Authentifizieren mit einer verwalteten Identität

GILT FÜR: Alle API Management-Ebenen

Verwenden Sie die Richtlinie authentication-managed-identity für die Authentifizierung mit einem Back-End-Dienst unter Verwendung einer verwalteten Identität. Diese Richtlinie verwendet im Grunde die verwaltete Identität, um aus Microsoft Entra ID ein Zugriffstoken für den Zugriff auf die angegebene Ressource abzurufen. Wenn das Token erfolgreich abgerufen wurde, legt die Richtlinie den Wert des Tokens unter Verwendung des Schemas Bearer im Header Authorization fest. API Management speichert das Token bis zu seinem Ablauf zwischen.

Sowohl eine systemseitig zugewiesene Identität als auch eine der benutzerseitig zugewiesenen Identitäten können verwendet werden, um Token anzufordern. Wenn client-id nicht bereitgestellt wird, wird die systemseitig zugewiesene Identität angenommen. Wenn die client-id-Variable bereitgestellt wird, wird das Token für die entsprechende benutzerseitig zugewiesene Identität aus Microsoft Entra ID angefordert.

Hinweis

Legen Sie die Elemente und untergeordneten Elemente einer Richtlinie in der Reihenfolge fest, die in der Richtlinienanweisung angegeben ist. Erfahren Sie mehr darüber, wie Sie API Management-Richtlinien festlegen oder bearbeiten.

Richtlinienanweisung

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

Attribute

Attribut BESCHREIBUNG Erforderlich Standard
resource Eine Zeichenfolge. Die Anwendungs-ID der Ziel-Web-API (geschützte Ressource) in Microsoft Entra ID. Richtlinienausdrücke sind zulässig. Ja
client-id Eine Zeichenfolge. Die Client-ID der benutzerseitig zugewiesenen Identität in Microsoft Entra ID. Richtlinienausdrücke sind nicht zulässig. Nein Systemseitig zugewiesene Identität
output-token-variable-name Eine Zeichenfolge. Name der Kontextvariablen, die den Tokenwert als Objekt vom Typ string empfängt. Richtlinienausdrücke sind nicht zulässig. Nein
ignore-error Boolesch. Wenn sie auf true festgelegt ist, wird die Richtlinienpipeline auch dann weiter ausgeführt, wenn kein Zugriffstoken erhalten wird. Nein false

Verwendung

Beispiele

Verwenden der verwalteten Identität für die Authentifizierung bei einem Back-End-Dienst

<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://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="AD_application_id"/> <!--Application (client) ID of your own Azure AD Application-->

Verwenden der verwalteten Identität und manuelles Festlegen des Headers

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

Verwenden der verwalteten Identität in einer Richtlinie vom Typ „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>

Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier: