Ověřování pomocí spravované identity

PLATÍ PRO: Všechny úrovně služby API Management

Použijte zásadu authentication-managed-identity k ověření pomocí back-endové služby pomocí spravované identity. Tato zásada v podstatě používá spravovanou identitu k získání přístupového tokenu z Microsoft Entra ID pro přístup k zadanému prostředku. Po úspěšném získání tokenu zásada nastaví hodnotu tokenu Authorization v hlavičce pomocí schématu Bearer . Služba API Management token ukládá do mezipaměti, dokud nevyprší platnost.

K vyžádání tokenu je možné použít identitu přiřazenou systémem i některou z více identit přiřazených uživatelem. Pokud client-id není k dispozici, předpokládá se identita přiřazená systémem. Pokud je k dispozici proměnná client-id, vyžádá se token pro tuto identitu přiřazenou uživatelem z Microsoft Entra ID.

Poznámka:

Nastavte prvky zásad a podřízené prvky v pořadí uvedeném v prohlášení o zásadách. Přečtěte si další informace o tom, jak nastavit nebo upravit zásady služby API Management.

Upozornění

Důležité informace o zabezpečení: Uživatelé s oprávněními k úpravám zásad služby API Management můžou tuto zásadu použít k ověření jako spravované identity služby. Nemůžou ale získat přímý přístup k prostředkům, aniž by nejprve přiřadili spravovanou identitu instanci služby API Management. Jakmile je spravovaná identita přiřazená, uživatelé, kteří můžou změnit zásady, můžou ověřovací token exfiltrovat, rozšířit ho do back-endu nebo ho protokolovat pro pozdější použití. Podrobné pokyny k zabezpečení a strategie zmírnění rizik najdete v tématu Důležité informace o zabezpečení spravovaných identit v přehledu spravované identity.

Prohlášení o zásadách

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

Atributy

Atribut Popis Požaduje se Výchozí
prostředek Řetězec. ID aplikace cílového webového rozhraní API (zabezpečeného prostředku) v Microsoft Entra ID. Výrazy zásad jsou povolené. Ano –
id klienta Řetězec. ID klienta identity přiřazené uživatelem v Microsoft Entra ID. Výrazy zásad nejsou povolené. Ne Není k dispozici. Identita přiřazená systémem se používá, pokud atribut není k dispozici.
output-token-variable-name Řetězec. Název kontextové proměnné, která obdrží hodnotu tokenu jako objekt typu string. Výrazy zásad nejsou povolené. Ne –
ignore-error Logický. Pokud je nastavená hodnota true, kanál zásad se bude dál spouštět i v případě, že se přístupový token nezístane. Ne false

Využití

Poznámky k využití

  • Pokud je tato zásada definovaná v globálním oboru, bude získaný token dostupný v kontextu provádění zásad pro všechna rozhraní API, včetně těch v pracovních prostorech. Pokud by token měl být dostupný jenom pro konkrétní rozhraní API, zvažte použití zásad v užším rozsahu (například na úrovni produktu nebo rozhraní API) místo globálních zásad.

  • Předávání tokenů je zodpovědností zákazníka. Při vyhodnocování této zásady služba API Management získá token z Microsoft Entra ID a předá ho back-endovému as-is v hlavičce Authorization. API Management neověřuje, do kterého back-endu se token odesílá. Je zodpovědností zákazníka zajistit, aby se tokeny předávaly jenom zamýšleným a důvěryhodným back-endovým službám. Pečlivě nakonfigurujte back-endové entity a další zásady, abyste zabránili odesílání tokenů do nezamýšlených cílů.

Příklady

Použití spravované identity k ověření pomocí back-endové služby

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

Ruční použití spravované identity a nastavení hlavičky

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

Použití spravované identity v zásadách odesílání žádostí

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

Další informace o práci se zásadami najdete v tématech: