Autenticar com a identidade gerida

APLICA-SE A: Todas as camadas de gerenciamento de API

Use a authentication-managed-identity política para autenticar com um serviço de back-end usando a identidade gerenciada. Esta política utiliza essencialmente a identidade gerida para obter um token de acesso do Microsoft Entra ID para aceder ao recurso especificado. Depois de obter com êxito o token, a política definirá o valor do token no Authorization cabeçalho usando o Bearer esquema. O Gerenciamento de API armazena o token em cache até que ele expire.

Tanto a identidade atribuída pelo sistema quanto qualquer uma das várias identidades atribuídas pelo usuário podem ser usadas para solicitar um token. Se client-id não for fornecida, a identidade atribuída ao sistema será assumida. Se for fornecida a variável client-id, é solicitado o token para essa identidade atribuída pelo utilizador a Microsoft Entra ID.

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.

Atenção

Considerações de segurança: Utilizadores com permissões para editar políticas de Gestão de API podem usar esta política para autenticar como identidade gerida do serviço. No entanto, não podem obter acesso direto aos recursos sem primeiro atribuir uma identidade gerida à instância de Gestão da API. Uma vez atribuída uma identidade gerida, os utilizadores que conseguem modificar políticas podem ser capazes de exfiltrar o token de autenticação, propagá-lo para um backend ou logá-lo para uso posterior. Para orientações detalhadas de segurança e estratégias de mitigação, consulte Considerações de Segurança para identidades geridas na visão geral da identidade gerida.

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"/>  

Atributos

Atributo Descrição Necessário Predefinição
recurso Cadeia O ID da aplicação da API web alvo (recurso seguro) no Microsoft Entra ID. São permitidas expressões de política. Sim N/A
ID do cliente Cadeia O ID do cliente da identidade atribuída pelo utilizador no Microsoft Entra ID. Expressões de política não são permitidas. Não N/A. A identidade atribuída ao sistema é usada se o atributo não estiver presente.
output-token-variable-name Cadeia Nome da variável de contexto que receberá o valor do token como um objeto do tipo string. Expressões de política não são permitidas. Não N/A
ignorar-erro Booleano. Se definido como true, o pipeline de política continua a ser executado mesmo que um token de acesso não seja obtido. Não false

Utilização

Exemplos

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

<authentication-managed-identity resource="https://graph.microsoft.com"/> 
<authentication-managed-identity resource="https://cognitiveservices.azure.com"/> <!--Azure OpenAI-->
<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://eventhubs.azure.net/"/> <!--Azure Event Hub-->
<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="https://signalr.azure.com"/> <!--Azure SignalR-->
<authentication-managed-identity resource="AD_application_id"/> <!--Application (client) ID of your own Azure AD Application-->

Usar identidade gerenciada e definir cabeçalho manualmente

<authentication-managed-identity resource="AD_application_id"
   output-token-variable-name="msi-access-token" ignore-error="false" /> <!--Application (client) ID of 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>

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