Yönetilen kimlikle kimlik doğrulaması

UYGULANANLAR: Tüm API Management katmanları

authentication-managed-identity Yönetilen kimliği kullanarak bir arka uç hizmetiyle kimlik doğrulaması yapmak için ilkeyi kullanın. Bu ilke temelde yönetilen kimliği kullanarak belirtilen kaynağa erişmek üzere Microsoft Entra ID'dan erişim belirteci alır. Belirteci başarıyla aldıktan sonra ilke, düzeni kullanarak Authorization üst bilgideki Bearer belirtecin değerini ayarlar. API Management, süresi dolana kadar belirteci önbelleğe alır.

Belirteç istemek için hem sistem tarafından atanan kimlik hem de kullanıcı tarafından atanan birden çok kimlik kullanılabilir. Sağlanmazsa client-id , sistem tarafından atanan kimlik varsayılır. client-id değişkeni sağlanırsa, Microsoft Entra ID kullanıcı tarafından atanan kimlik için belirteç istenir.

Not

İlkenin öğelerini ve alt öğelerini ilke bildiriminde sağlanan sırayla ayarlayın. API Management ilkelerini ayarlama veya düzenleme hakkında daha fazla bilgi edinin.

Dikkat

Güvenlikle ilgili dikkat edilmesi gerekenler: API Management ilkelerini düzenleme izinleri olan kullanıcılar, hizmetin yönetilen kimliği olarak kimlik doğrulaması yapmak için bu ilkeyi kullanabilir. Ancak, önce API Management örneğine yönetilen kimlik atamadan kaynaklara doğrudan erişim elde edemezler. Yönetilen kimlik atandıktan sonra, ilkeleri değiştirebilen kullanıcılar kimlik doğrulama belirtecini silip arka uça yayabilir veya daha sonra kullanmak üzere günlüğe kaydedebilir. Ayrıntılı güvenlik yönergeleri ve risk azaltma stratejileri için bkz. Yönetilen kimliklere genel bakış bölümünde yönetilen kimlikler için güvenlik konuları .

İlke bildirimi

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

Özellikler

Öznitelik Açıklama Zorunlu Varsayılan
kaynak Dizgi. Microsoft Entra ID'deki hedef web API'sinin (güvenli kaynak) uygulama kimliği. İlke ifadelerine izin verilir. Evet Yok
istemci kimliği Dizgi. Microsoft Entra ID kullanıcı tarafından atanan kimliğin istemci kimliği. İlke ifadelerine izin verilmez. Hayır Yok. Öznitelik yoksa sistem tarafından atanan kimlik kullanılır.
output-token-variable-name Dizgi. Belirteç değerini türünde stringbir nesne olarak alacak bağlam değişkeninin adı. İlke ifadelerine izin verilmez. Hayır Yok
ignore-error Boole. olarak ayarlanırsa true, erişim belirteci alınmasa bile ilke işlem hattı yürütülmeye devam eder. Hayır false

Kullanım

Örnekler

Arka uç hizmetiyle kimlik doğrulaması yapmak için yönetilen kimlik kullanma

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

Yönetilen kimliği kullanma ve üst bilgiyi el ile ayarlama

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

İstek gönderme ilkesinde yönetilen kimliği kullanma

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

İlkelerle çalışma hakkında daha fazla bilgi için bkz: