Políticas de autenticação de Gerenciamento de API

Este tópico fornece uma referência para as políticas de Gerenciamento de API a seguir. Para obter mais informações sobre como adicionar e configurar políticas, consulte Políticas de Gerenciamento de API.

Políticas de autenticação

Autenticar com o Basic

Use a política authentication-basic para autenticar com um serviço de back-end usando a autenticação do Basic. Essa política define efetivamente o cabeçalho de autorização HTTP para o valor correspondente às credenciais fornecidas na política.

Declaração de política

<authentication-basic username="username" password="password" />

Exemplo

<authentication-basic username="testuser" password="testpassword" />

Elementos

Nome Descrição Obrigatório
authentication-basic Elemento raiz. Sim

Atributos

Nome Descrição Obrigatório Padrão
Nome de Usuário Especifica o nome de usuário da credencial do Basic. Sim N/D
password Especifica a senha da credencial do Basic. Sim N/D

Uso

Essa política pode ser usada nas seções e nos escopos da política a seguir.

  • Seções de política: de entrada

  • Escopos da política: todos os escopos

Autenticar com o certificado de cliente

Use a política authentication-certificate para autenticar num serviço de back-end usando um certificado de cliente. O certificado precisa ser instalado no Gerenciamento de API primeiro e é identificado por sua impressão digital ou ID do certificado (nome do recurso).

Cuidado

Se o certificado fizer referência a um certificado armazenado no Azure Key Vault, identifique-o usando a ID do certificado. Quando um certificado do cofre de chaves for girado, sua impressão digital no Gerenciamento de API será alterada e a política não resolverá o novo certificado se ele for identificado pela impressão digital.

Declaração de política

<authentication-certificate thumbprint="thumbprint" certificate-id="resource name"/>

Exemplos

Neste exemplo, o certificado do cliente é identificado pela ID do certificado:

<authentication-certificate certificate-id="544fe9ddf3b8f30fb490d90f" />  

Neste exemplo, o certificado do cliente é identificado pela impressão digital:

<authentication-certificate thumbprint="CA06F56B258B7A0D4F2B05470939478651151984" />

Neste exemplo, o certificado do cliente é definido na política, em vez de ser recuperado do repositório de certificados interno:

<authentication-certificate body="@(context.Variables.GetValueOrDefault<byte[]>("byteCertificate"))" password="optional-certificate-password" />

Elementos

Nome Descrição Obrigatório
authentication-certificate Elemento raiz. Sim

Atributos

Nome Descrição Obrigatório Padrão
thumbprint A impressão digital do certificado do cliente. thumbprint ou certificate-id deve estar presente. N/D
ID do certificado O nome do recurso de certificado. thumbprint ou certificate-id deve estar presente. N/D
body Certificado de cliente como uma matriz de bytes. Não N/D
password A senha para o certificado do cliente. Usada se o certificado especificado em body for protegido por senha. N/D

Uso

Essa política pode ser usada nas seções e nos escopos da política a seguir.

  • Seções de política: de entrada

  • Escopos da política: todos os escopos

Autenticar com identidade gerenciada

Use a política authentication-managed-identity para autenticar num serviço de back-end usando uma identidade gerenciada. Essa política usa basicamente a identidade gerenciada para obter um token de acesso de Azure Active Directory para acessar o recurso especificado. Depois de obter o token com êxito, a política definirá o valor do token no cabeçalho Authorization usando o esquema Bearer.

Tanto a identidade atribuída pelo sistema quanto qualquer uma das várias identidades atribuídas pelo usuário podem ser usadas para solicitar o token. Se client-id não for fornecida, a identidade atribuída pelo sistema será assumida. Se a variável client-id for fornecida, o token será solicitado para essa identidade atribuída pelo usuário no Azure Active Directory

Declaração de política

<authentication-managed-identity resource="resource" client-id="clientid of user-assigned identity" output-token-variable-name="token-variable" ignore-error="true|false"/>  

Exemplo

Usar identidade gerenciada para autenticar num serviço de back-end

<authentication-managed-identity resource="https://graph.microsoft.com"/> 
<authentication-managed-identity resource="https://management.azure.com/"/> <!--Azure Resource Manager-->
<authentication-managed-identity resource="https://vault.azure.net"/> <!--Azure Key Vault-->
<authentication-managed-identity resource="https://servicebus.azure.net/"/> <!--Azure Service Bus-->
<authentication-managed-identity resource="https://storage.azure.com/"/> <!--Azure Blob Storage-->
<authentication-managed-identity resource="https://database.windows.net/"/> <!--Azure SQL-->
<authentication-managed-identity resource="Client_id_of_Backend"/> <!--Your own Azure AD Application-->

Usar identidade gerenciada e definir o cabeçalho manualmente

<authentication-managed-identity resource="Client_id_of_Backend"
   output-token-variable-name="msi-access-token" ignore-error="false" /> <!--Your own Azure AD Application-->
<set-header name="Authorization" exists-action="override">
   <value>@("Bearer " + (string)context.Variables["msi-access-token"])</value>
</set-header>

Usar identidade gerenciada na política de solicitação de envio

<send-request mode="new" timeout="20" ignore-error="false">
    <set-url>https://example.com/</set-url>
    <set-method>GET</set-method>
    <authentication-managed-identity resource="ResourceID"/>
</send-request>

Elementos

Nome Descrição Obrigatório
authentication-managed-identity Elemento raiz. Sim

Atributos

Nome Descrição Obrigatório Padrão
recurso Cadeia de caracteres. A ID do aplicativo da API da Web de destino (recurso protegido) no Azure Active Directory. Sim N/D
client-id Cadeia de caracteres. A ID do aplicativo da identidade atribuída pelo usuário no Azure Active Directory. Não identidade atribuída pelo sistema
output-token-variable-name Cadeia de caracteres. Nome da variável de contexto que receberá o valor de token como um tipo de objeto string. Não N/D
ignore-error Booliano. Se definido como true, o pipeline de política continuará a ser executado, mesmo se um token de acesso não for obtido. Não false

Uso

Essa política pode ser usada nas seções e nos escopos da política a seguir.

  • Seções de política: de entrada

  • Escopos da política: todos os escopos

Próximas etapas

Para obter mais informações sobre como trabalhar com políticas, consulte: