Compartir vía


Autenticación con una identidad administrada

SE APLICA A: todos los niveles de API Management

Use la directiva authentication-managed-identity para realizar la autenticación con un servicio de back-end mediante la identidad administrada. En esencia, esta directiva usa la identidad administrada para obtener un token de acceso de Microsoft Entra ID para acceder al recurso especificado. Después de obtener el token correctamente, la Directiva establecerá el valor del token en el Authorization encabezado mediante el esquema Bearer. API Management almacena en caché el token hasta que expire.

Para solicitar el token, se puede usar tanto la identidad asignada por el sistema como cualquiera de las distintas identidades asignadas por el usuario. Si no se proporciona client-id, se presupone la identidad asignada por el sistema. Si se proporciona la variable client-id, se solicita el token para esa identidad asignada por el usuario de Microsoft Entra ID.

Nota:

Establezca los elementos de la directiva y los elementos secundarios en el orden proporcionado en la instrucción de directiva. Obtenga más información sobre el establecimiento o modificación de directivas de API Management.

Instrucción de la directiva

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

Atributos

Atributo Descripción Necesario Valor predeterminado
resource String. Identificador de aplicación de la API web de destino (recurso protegido) en Microsoft Entra ID. Se permiten expresiones de directiva. N/D
client-id String. Id. de cliente de la identidad asignada por el usuario en Microsoft Entra ID. No se permiten expresiones de directiva. No N/D La identidad asignada por el sistema se usa si el atributo no está presente.
output-token-variable-name String. Nombre de la variable de contexto que recibirá el valor del token como un objeto de tipo string. No se permiten expresiones de directiva. No N/D
ignore-error booleano. Si se establece en true, la canalización de directivas seguirá ejecutándose incluso si no se obtiene un token de acceso. No false

Uso

Ejemplos

Uso de una identidad administrada para autenticación con un servicio 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-->

Uso de una identidad administrada y establecimiento manual de un encabezado

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

Uso de una identidad administrada en una directiva send-request

<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 más información sobre el trabajo con directivas, vea: