Obter contexto de autorização
APLICA-SE A: Todas as camadas de gerenciamento de API
Use a get-authorization-context
política para obter o contexto de autorização de uma conexão especificada (anteriormente chamada de autorização) para um provedor de credenciais configurado na instância de Gerenciamento de API.
A política busca e armazena tokens de autorização e atualização do provedor de credenciais configurado usando a conexão.
Nota
Defina os elementos da política e os elementos filho na ordem fornecida na declaração de política. Saiba mais sobre como definir ou editar políticas de Gerenciamento de API.
Declaração de política
<get-authorization-context
provider-id="credential provider id"
authorization-id="connection id"
context-variable-name="variable name"
identity-type="managed | jwt"
identity="JWT bearer token"
ignore-error="true | false" />
Atributos
Atributo | Description | Necessário | Predefinição |
---|---|---|---|
ID do provedor | O identificador de recurso do provedor de credenciais. São permitidas expressões de política. | Sim | N/A |
ID de autorização | O identificador de recurso de conexão. São permitidas expressões de política. | Sim | N/A |
nome-variável-contexto | O nome da variável de contexto para receber o Authorization objeto. São permitidas expressões de política. |
Sim | N/A |
tipo de identidade | Tipo de identidade a ser verificada em relação à política de acesso da conexão. - managed : identidade gerenciada atribuída pelo sistema da instância de Gerenciamento de API. - jwt : Token portador JWT identity especificado no atributo.São permitidas expressões de política. |
Não | managed |
de identidade | Um token de portador JWT do Microsoft Entra para verificar as permissões de conexão. Ignorado para identity-type outros que não jwt . Reivindicações esperadas: - Público: https://azure-api.net/authorization-manager - oid : ID do objeto de permissão - tid : ID do locatário de permissãoSão permitidas expressões de política. |
No | N/A |
ignorar-erro | Booleano. Se a aquisição do contexto de autorização resultar em um erro (por exemplo, o recurso de conexão não for encontrado ou estiver em um estado de erro): - true : à variável de contexto é atribuído um valor nulo. - false : regresso 500 Se você definir o valor como false , e a configuração da política incluir uma on-error seção, o erro estará disponível na context.LastError propriedade.São permitidas expressões de política. |
Não | false |
Objeto de autorização
A variável de contexto Authorization recebe um objeto do tipo Authorization
.
class Authorization
{
public string AccessToken { get; }
public IReadOnlyDictionary<string, object> Claims { get; }
}
Nome de Propriedade | Description |
---|---|
AccessToken | Token de acesso ao portador para autorizar uma solicitação HTTP de back-end. |
Pedidos | Declarações retornadas da API de resposta de token do servidor de autorização (consulte RFC6749#section-5.1). |
Utilização
- Secções políticas: entrada
- Escopos da política: global, produto, API, operação
- Gateways: clássico, v2, consumo
Notas de utilização
- Configure
identity-type=jwt
quando a política de acesso para a conexão é atribuída a uma entidade de serviço. Somente/.default
escopos somente de aplicativo são suportados para o JWT.
Exemplos
Obter token de volta
<!-- Add to inbound policy. -->
<get-authorization-context
provider-id="github-01"
authorization-id="auth-01"
context-variable-name="auth-context"
identity-type="managed"
ignore-error="false" />
<!-- Return the token -->
<return-response>
<set-status code="200" />
<set-body template="none">@(((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</set-body>
</return-response>
Obtenha o token de volta com atributos definidos dinamicamente
<!-- Add to inbound policy. -->
<get-authorization-context
provider-id="@(context.Request.Url.Query.GetValueOrDefault("authorizationProviderId"))"
authorization-id="@(context.Request.Url.Query.GetValueOrDefault("authorizationId"))" context-variable-name="auth-context"
ignore-error="false"
identity-type="managed" />
<!-- Return the token -->
<return-response>
<set-status code="200" />
<set-body template="none">@(((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</set-body>
</return-response>
Anexar o token à chamada de back-end
<!-- Add to inbound policy. -->
<get-authorization-context
provider-id="github-01"
authorization-id="auth-01"
context-variable-name="auth-context"
identity-type="managed"
ignore-error="false" />
<!-- Attach the token to the backend call -->
<set-header name="Authorization" exists-action="override">
<value>@("Bearer " + ((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</value>
</set-header>
Obter token de solicitação de entrada e token de retorno
<!-- Add to inbound policy. -->
<get-authorization-context
provider-id="github-01"
authorization-id="auth-01"
context-variable-name="auth-context"
identity-type="jwt"
identity="@(context.Request.Headers["Authorization"][0].Replace("Bearer ", ""))"
ignore-error="false" />
<!-- Return the token -->
<return-response>
<set-status code="200" />
<set-body template="none">@(((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</set-body>
</return-response>
Políticas relacionadas
Conteúdos relacionados
Para obter mais informações sobre como trabalhar com políticas, consulte:
- Tutorial: Transforme e proteja sua API
- Referência de política para uma lista completa de declarações de política e suas configurações
- Expressões de política
- Definir ou editar políticas
- Reutilizar configurações de política
- Recompra de trechos de política
- Criar políticas usando o Microsoft Copilot no Azure