Uwierzytelnianie przy użyciu tożsamości zarządzanej

DOTYCZY: Wszystkie warstwy usługi API Management

authentication-managed-identity Użyj zasad, aby uwierzytelnić się za pomocą usługi zaplecza przy użyciu tożsamości zarządzanej. Te zasady zasadniczo używają tożsamości zarządzanej do uzyskania tokenu dostępu z Microsoft Entra ID na potrzeby uzyskiwania dostępu do określonego zasobu. Po pomyślnym uzyskaniu tokenu zasady ustawią wartość tokenu w nagłówku Authorization przy użyciu schematu Bearer . Usługa API Management buforuje token do momentu jego wygaśnięcia.

Tożsamość przypisana przez system i dowolna z wielu tożsamości przypisanych przez użytkownika może służyć do żądania tokenu. Jeśli client-id nie zostanie podana, przyjmuje się, że przyjmuje się tożsamość przypisaną przez system. Jeśli jest podana zmienna client-id, token jest wymagany dla tej tożsamości przypisanej przez użytkownika z Microsoft Entra ID.

Uwaga

Ustaw elementy zasad i elementy podrzędne w kolejności podanej w instrukcji zasad. Dowiedz się więcej na temat ustawiania lub edytowania zasad usługi API Management.

Ostrzeżenie

Zagadnienia dotyczące zabezpieczeń: Użytkownicy z uprawnieniami do edytowania zasad usługi API Management mogą używać tych zasad do uwierzytelniania jako tożsamości zarządzanej usługi. Nie mogą jednak uzyskać bezpośredniego dostępu do zasobów bez uprzedniego przypisania tożsamości zarządzanej do wystąpienia usługi API Management. Po przypisaniu tożsamości zarządzanej użytkownicy, którzy mogą modyfikować zasady, mogą eksfiltrować token uwierzytelniania, propagować go do zaplecza lub rejestrować do późniejszego użycia. Aby uzyskać szczegółowe wskazówki dotyczące zabezpieczeń i strategie ograniczania ryzyka, zobacz Zagadnienia dotyczące zabezpieczeń tożsamości zarządzanych w omówieniu tożsamości zarządzanej.

Instrukcja zasad

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

Atrybuty

Atrybut opis Wymagani Wartość domyślna
zasób Struna. Identyfikator aplikacji docelowego internetowego interfejsu API (zabezpieczony zasób) w Microsoft Entra ID. Wyrażenia zasad są dozwolone. Tak Nie dotyczy
identyfikator klienta Struna. Identyfikator klienta tożsamości przypisanej przez użytkownika w Microsoft Entra ID. Wyrażenia zasad nie są dozwolone. Nie. Nie dotyczy. Tożsamość przypisana przez system jest używana, jeśli atrybut nie jest obecny.
output-token-variable-name Struna. Nazwa zmiennej kontekstowej, która będzie otrzymywać wartość tokenu jako obiekt typu string. Wyrażenia zasad nie są dozwolone. Nie. Nie dotyczy
ignoruj błąd Wartość logiczna. Jeśli ustawiono truewartość , potok zasad będzie nadal wykonywany, nawet jeśli token dostępu nie zostanie uzyskany. Nie. false

Użycie

Przykłady

Używanie tożsamości zarządzanej do uwierzytelniania za pomocą usługi zaplecza

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

Ręczne używanie tożsamości zarządzanej i ustawianie nagłówka

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

Używanie tożsamości zarządzanej w zasadach wysyłania żądań

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

Aby uzyskać więcej informacji na temat pracy z zasadami, zobacz: