Mengautentikasi dengan identitas terkelola

BERLAKU UNTUK: Semua tingkatAN API Management

Gunakan kebijakan authentication-managed-identity untuk mengautentikasi dengan layanan backend menggunakan identitas terkelola. Kebijakan ini pada dasarnya menggunakan identitas terkelola untuk mendapatkan token akses dari ID Microsoft Entra untuk mengakses sumber daya yang ditentukan. Setelah berhasil mendapatkan token, kebijakan akan menetapkan nilai token di header Authorization menggunakan skema Bearer. API Management menyimpan token hingga kedaluwarsa.

Baik identitas yang ditetapkan sistem maupun salah satu dari beberapa identitas yang ditetapkan pengguna dapat digunakan untuk meminta token. Jika client-id tidak diberikan, identitas yang digunakan untuk meminta token adalah identitas yang ditetapkan sistem. client-id Jika variabel disediakan, token diminta untuk identitas yang ditetapkan pengguna tersebut dari ID Microsoft Entra.

Catatan

Tetapkan elemen kebijakan dan elemen turunan dalam urutan yang disediakan dalam pernyataan kebijakan. Pelajari lebih lanjut cara mengatur atau mengedit kebijakan API Management.

Pernyataan kebijakan

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

Atribut

Atribut Deskripsi Wajib diisi Default
resource String. ID aplikasi API web target (sumber daya aman) di ID Microsoft Entra. Ekspresi kebijakan diizinkan. Ya T/A
client-id String. ID klien identitas yang ditetapkan pengguna di ID Microsoft Entra. Ekspresi kebijakan tidak diizinkan. No identitas yang ditetapkan sistem
output-token-variable-name String. Nama variabel konteks yang akan menerima nilai token sebagai objek jenis string. Ekspresi kebijakan tidak diizinkan. No T/A
ignore-error Boolean. Jika diatur ke true, alur kebijakan terus dijalankan meskipun token akses tidak diperoleh. No false

Penggunaan

Contoh

Gunakan identitas terkelola untuk mengautentikasi dengan layanan backend

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

Gunakan identitas terkelola dan atur header secara manual

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

Gunakan identitas terkelola dalam kebijakan permintaan-kirim

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

Untuk informasi selengkapnya tentang bekerja dengan kebijakan, lihat: