Verifiëren met beheerde identiteit

VAN TOEPASSING OP: Alle API Management-lagen

Gebruik het authentication-managed-identity beleid om te verifiëren met een back-endservice met behulp van de beheerde identiteit. Dit beleid maakt in feite gebruik van de beheerde identiteit om een toegangstoken van Microsoft Entra ID te verkrijgen voor toegang tot de opgegeven resource. Nadat het token is verkregen, stelt het beleid de waarde van het token in de Authorization header in met behulp van het Bearer schema. API Management slaat het token in de cache op totdat het verloopt.

Zowel door het systeem toegewezen identiteit als een van de meerdere door de gebruiker toegewezen identiteiten kunnen worden gebruikt om een token aan te vragen. Als client-id deze niet is opgegeven, wordt ervan uitgegaan dat de door het systeem toegewezen identiteit wordt gebruikt. Als de client-id variabele wordt opgegeven, wordt het token aangevraagd voor die door de gebruiker toegewezen identiteit van Microsoft Entra-id.

Notitie

Stel de elementen en onderliggende elementen van het beleid in de volgorde in die in de beleidsverklaring is opgegeven. Meer informatie over het instellen of bewerken van API Management-beleid.

Beleidsinstructie

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

Kenmerken

Kenmerk Beschrijving Vereist Standaardinstelling
resource Tekenreeks. De toepassings-id van de doelweb-API (beveiligde resource) in Microsoft Entra-id. Beleidsexpressies zijn toegestaan. Ja N.v.t.
client-id Tekenreeks. De client-id van de door de gebruiker toegewezen identiteit in Microsoft Entra-id. Beleidsexpressies zijn niet toegestaan. Nee door het systeem toegewezen identiteit
output-token-variable-name Tekenreeks. Naam van de contextvariabele die tokenwaarde als object van het type stringontvangt. Beleidsexpressies zijn niet toegestaan. Nee N.v.t.
ignore-error Booleaans. Als deze optie is ingesteld true, wordt de beleidspijplijn nog steeds uitgevoerd, zelfs als er geen toegangstoken wordt verkregen. Nee false

Gebruik

Voorbeelden

Beheerde identiteit gebruiken om te verifiëren met een back-endservice

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

Beheerde identiteit gebruiken en koptekst handmatig instellen

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

Beheerde identiteit gebruiken in beleid voor verzenden-aanvragen

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

Zie voor meer informatie over het werken met beleid: