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 wezen gebruik van de beheerde identiteit om een toegangstoken te verkrijgen van Microsoft Entra ID 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 dit niet is opgegeven, wordt ervan uitgegaan dat er een door het systeem toegewezen identiteit wordt gebruikt. Als de variabele client-id is 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.

Waarschuwing

Beveiligingsoverweging: Gebruikers met machtigingen voor het bewerken van API Management-beleid kunnen dit beleid gebruiken om te verifiëren als de beheerde identiteit van de service. Ze kunnen echter geen directe toegang krijgen tot resources zonder eerst een beheerde identiteit toe te wijzen aan het API Management-exemplaar. Zodra een beheerde identiteit is toegewezen, kunnen gebruikers die beleidsregels kunnen wijzigen mogelijk het verificatietoken exfiltreren, doorgeven aan een back-end of deze registreren voor later gebruik. Zie Beveiligingsoverwegingen voor beheerde identiteiten in het overzicht van beheerde identiteiten voor gedetailleerde beveiligingsrichtlijnen en risicobeperkingsstrategieën.

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
hulpbron Snaar. De toepassings-id van de doelweb-API (beveiligde resource) in Microsoft Entra ID. Beleidsexpressies zijn toegestaan. Ja N.v.t.
client-ID Snaar. De client-id van de door de gebruiker toegewezen identiteit in Microsoft Entra ID. Beleidsexpressies zijn niet toegestaan. Nee N.v.t. Door het systeem toegewezen identiteit wordt gebruikt als het kenmerk niet aanwezig is.
output-token-variable-name Snaar. 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

Gebruiksnotities

  • Als dit beleid is gedefinieerd in het globale bereik, is het verkregen token beschikbaar in de context van de beleidsuitvoering voor alle API's, inclusief die in werkruimten. Als het token alleen beschikbaar moet zijn voor specifieke API's, kunt u overwegen het beleid toe te passen op een beperkter bereik (bijvoorbeeld product- of API-niveau) in plaats van het globale beleid.

  • Token doorsturen is de verantwoordelijkheid van de klant. Bij het evalueren van dit beleid verkrijgt API Management een token van Microsoft Entra ID en stuurt het door naar de back-end as-is in de header Authorization. API Management valideert niet naar welke back-end het token wordt verzonden. Het is de verantwoordelijkheid van de klant om ervoor te zorgen dat tokens alleen worden doorgestuurd naar de beoogde en vertrouwde back-endservices. Configureer back-endentiteiten en ander beleid zorgvuldig om te voorkomen dat tokens naar onbedoelde bestemmingen worden verzonden.

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

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: