Menggunakan identitas terkelola di Azure API Management

BERLAKU UNTUK: Semua tingkatan manajemen API

Artikel ini memperlihatkan cara membuat identitas terkelola untuk instans Azure API Management dan cara menggunakannya untuk mengakses sumber daya lain. Dengan menggunakan identitas terkelola yang dihasilkan oleh Microsoft Entra ID, API Management dapat dengan mudah dan aman mengakses sumber daya lain yang dilindungi oleh Microsoft Entra, seperti Azure Key Vault. Azure mengelola identitas ini, sehingga Anda tidak perlu menyediakan atau memutar rahasia apa pun. Untuk informasi selengkapnya tentang identitas terkelola, lihat Apa identitas terkelola untuk sumber daya Azure?

Anda dapat memberikan dua jenis identitas ke instans API Management:

  • Identitas yang ditetapkan sistem terkait dengan layanan Anda dan dihapus jika layanan Anda dihapus. Layanan ini hanya dapat memiliki satu identitas yang ditetapkan sistem.
  • Identitas yang ditetapkan pengguna adalah sumber daya Azure mandiri yang dapat Anda tetapkan ke layanan Anda. Layanan ini dapat memiliki beberapa identitas yang ditetapkan pengguna.

Nota

  • Identitas terkelola bersifat spesifik untuk penyewa Microsoft Entra di mana langganan Azure Anda ditempatkan. Langganan tidak diperbarui jika Anda memindahkan langganan ke direktori lain. Jika Anda memindahkan langganan, Anda perlu membuat ulang dan mengonfigurasi ulang identitas.
  • Identitas terkelola API Management juga khusus untuk langganan Azure tempat layanan dihosting. Jika Anda memindahkan layanan ke langganan lain di penyewa yang sama, Anda perlu membuat ulang dan mengonfigurasi ulang identitas.

Nota

Saat ini, fitur ini tidak tersedia di ruang kerja.

Membuat identitas terkelola yang ditetapkan sistem

portal Azure

Di portal Azure, Anda dapat mengaktifkan identitas terkelola yang ditetapkan sistem saat membuat instans API Management, atau Anda dapat membuat instans API Management lalu mengaktifkan fitur tersebut.

Untuk mengaktifkan identitas terkelola dalam instans yang ada:

  1. Buat instans API Management di portal seperti biasa. Pergi ke dalam portal.

  2. Di menu sebelah kiri, di bawah Keamanan, pilih Identitas terkelola.

  3. Pada tab Sistem yang ditetapkan , ubah Status menjadi Aktif. Pilih Simpan.

    Cuplikan layar yang memperlihatkan cara mengaktifkan identitas terkelola yang ditetapkan sistem.

Azure PowerShell

Nota

Kami menyarankan agar Anda menggunakan modul Az PowerShell Azure untuk berinteraksi dengan Azure. Untuk memulai, lihat Install Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Migrasikan Azure PowerShell dari AzureRM ke Az.

Langkah-langkah berikut mengarahkan Anda membuat instans API Management dan menetapkannya identitas dengan menggunakan Azure PowerShell.

  1. Jika perlu, instal Azure PowerShell dengan mengikuti instruksi di panduan Azure PowerShell. Kemudian jalankan Connect-AzAccount untuk membuat koneksi dengan Azure.

  2. Gunakan kode berikut untuk membuat instans dengan identitas terkelola yang ditetapkan sistem. Untuk contoh selengkapnya tentang cara menggunakan Azure PowerShell dengan API Management, lihat sampel PowerShell API Management.

    # Create a resource group.
    New-AzResourceGroup -Name $resourceGroupName -Location $location
    
    # Create an API Management Consumption SKU service.
    New-AzApiManagement -ResourceGroupName $resourceGroupName -Name consumptionskuservice -Location $location -Sku Consumption -Organization contoso -AdminEmail contoso@contoso.com -SystemAssignedIdentity
    

Anda juga dapat memperbarui instans yang ada untuk membuat identitas:

# Get an API Management instance
$apimService = Get-AzApiManagement -ResourceGroupName $resourceGroupName -Name $apiManagementName

# Update an API Management instance
Set-AzApiManagement -InputObject $apimService -SystemAssignedIdentity

templat Azure Resource Manager (ARM)

Anda dapat membuat instans API Management dengan identitas yang ditetapkan sistem dengan menyertakan properti berikut dalam definisi sumber daya templat ARM:

"identity" : {
    "type" : "SystemAssigned"
}

Properti ini menginstruksikan Azure untuk membuat dan mengelola identitas untuk instans API Management Anda.

Misalnya, templat ARM lengkap mungkin terlihat seperti contoh berikut:

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "0.9.0.0",
    "resources": [{
        "apiVersion": "2021-08-01",
        "name": "contoso",
        "type": "Microsoft.ApiManagement/service",
        "location": "[resourceGroup().location]",
        "tags": {},
        "sku": {
            "name": "Developer",
            "capacity": "1"
        },
        "properties": {
            "publisherEmail": "admin@contoso.com",
            "publisherName": "Contoso"
        },
        "identity": {
            "type": "systemAssigned"
        }
    }]
}

Saat instans dibuat, instans memiliki properti tambahan berikut:

"identity": {
    "type": "SystemAssigned",
    "tenantId": "<TENANTID>",
    "principalId": "<PRINCIPALID>"
}

Properti tenantId mengidentifikasi penyewa Microsoft Entra mana yang dimiliki oleh identitas tersebut. Properti principalId adalah pengidentifikasi unik untuk identitas baru instans. Dalam Microsoft Entra ID, perwakilan layanan memiliki nama yang sama dengan yang Anda berikan ke instans API Management Anda.

Nota

Instans API Management dapat memiliki identitas yang ditetapkan sistem dan ditetapkan pengguna. Dalam skenario itu, properti type adalah SystemAssigned,UserAssigned.

Mengonfigurasi akses Key Vault dengan menggunakan identitas terkelola

Untuk menggunakan API Management untuk mengakses sertifikat atau rahasia lain dari brankas kunci Azure, konfigurasikan pengaturan berikut.

Mengonfigurasi akses ke Key Vault

  1. Di portal Azure, buka brankas kunci Anda.
  2. Di menu sebelah kiri, pilih Pengaturan>Konfigurasi akses. Catat model Izin yang dikonfigurasi.
  3. Bergantung pada model izin, konfigurasikan kebijakan akses ke key vault atau akses RBAC Azure untuk identitas terkelola di API Management.

Untuk menambahkan kebijakan akses Key Vault:

  1. Di menu sebelah kiri, pilih Kebijakan akses.
  2. Pada halaman Kebijakan akses , pilih + Buat.
  3. Pada tab Izin , di bawah Izin rahasia, pilih Dapatkan dan Daftar, lalu pilih Berikutnya.
  4. Pada tab Utama , cari nama sumber daya identitas terkelola Anda, lalu pilih Berikutnya. Jika Anda menggunakan identitas yang diberikan oleh sistem, prinsipal adalah nama instans Pengelolaan API Anda.
  5. Pilih Berikutnya lagi. Di tab Tinjau + buat, pilih Buat.

Untuk mengonfigurasi akses RBAC Azure:

  1. Di menu sebelah kiri, pilih Kontrol akses (IAM).
  2. Pada halaman Kontrol akses (IAM), pilih Tambahkan penetapan peran.
  3. Pada tab Peran, pilih Pengguna Rahasia di Key Vault.
  4. Pada tab Anggota, pilih Identitas> terkelola+ Pilih anggota.
  5. Di jendela Pilih identitas terkelola , pilih identitas terkelola yang ditetapkan sistem atau identitas terkelola yang ditetapkan pengguna yang terkait dengan instans API Management Anda, lalu klik Pilih.
  6. Pilih Tinjau + beri tugas.

Persyaratan untuk firewall Key Vault

Jika firewall Key Vault diaktifkan pada key vault, Anda harus memenuhi persyaratan berikut:

  • Anda harus menggunakan identitas terkelola yang ditetapkan sistem instans API Management untuk mengakses brankas kunci. Anda tidak dapat menggunakan identitas yang ditetapkan pengguna untuk akses dari API Management.

  • Di firewall Key Vault, aktifkan opsi Allow Trusted Microsoft Services untuk melewati firewall ini:

    1. Di brankas kunci Anda, pilih Pengaturan>Jaringan.
    2. Di bawah Firewall dan jaringan virtual, pilih Izinkan akses publik dari jaringan virtual dan alamat IP tertentu.
    3. Di bawah Exception, pilih Perbolehkan layanan Microsoft tepercaya untuk melewati firewall ini.

    API Management mendukung konektivitas layanan tepercaya untuk mengakses brankas kunci untuk opsi sarana kontrol.

  • Pastikan bahwa alamat IP klien lokal Anda diizinkan untuk mengakses brankas kunci untuk sementara waktu. Anda harus memilih sertifikat atau rahasia untuk ditambahkan ke Azure API Management. Untuk informasi selengkapnya, lihat Konfigurasi pengaturan jaringan Azure Key Vault.

    Setelah menyelesaikan konfigurasi, Anda dapat memblokir alamat klien di firewall brankas kunci.

Persyaratan jaringan virtual

Jika instance Manajemen API diterapkan di jaringan virtual, konfigurasikan juga pengaturan jaringan berikut:

  • Aktifkan titik akhir service untuk Key Vault pada subnet API Management.
  • Konfigurasikan aturan kelompok keamanan jaringan (NSG) untuk mengizinkan lalu lintas keluar ke AzureKeyVault dan AzureActiveDirectorytag layanan.

Untuk informasi selengkapnya, lihat Konfigurasi jaringan saat menyiapkan API Management di jaringan virtual.

Skenario yang didukung yang menggunakan identitas yang ditetapkan sistem

Daftar berikut ini memperlihatkan beberapa skenario umum untuk menggunakan identitas terkelola yang ditetapkan sistem di Azure API Management.

Mendapatkan sertifikat TLS/SSL kustom untuk instans API Management dari Key Vault

Anda dapat menggunakan identitas instans API Management yang ditetapkan sistem untuk mengambil sertifikat TLS/SSL kustom yang disimpan di Key Vault. Anda kemudian dapat menetapkan sertifikat ini ke domain kustom di instans API Management. Pertimbangkan poin-poin berikut:

  • Jenis konten rahasia harus aplikasi/x-pkcs12. Untuk informasi selengkapnya, lihat Opsi sertifikat domain.
  • Anda harus menggunakan titik akhir rahasia sertifikat Key Vault, yang berisi rahasia.

Penting

Jika Anda tidak memberikan versi objek sertifikat, API Management secara otomatis mendapatkan versi sertifikat yang lebih baru dalam waktu empat jam setelah diperbarui di Key Vault.

Contoh berikut menunjukkan templat ARM yang menggunakan identitas terkelola yang ditetapkan sistem dari instans API Management untuk mengambil sertifikat domain kustom dari Key Vault.

Prasyarat

  • Instans API Management yang dikonfigurasi dengan identitas terkelola yang ditetapkan sistem. Untuk membuat instans, Anda dapat menggunakan Templat Quickstart Azure.
  • Instans Key Vault dalam grup sumber daya yang sama. Instans harus menghosting sertifikat yang Anda gunakan sebagai sertifikat domain kustom di API Management.

Templat berisi langkah-langkah berikut:

  1. Perbarui kebijakan akses instans Key Vault dan izinkan instans API Management untuk mendapatkan rahasia darinya.
  2. Perbarui instans API Management dengan mengatur nama domain kustom melalui sertifikat dari instans Key Vault.

Saat Anda menjalankan templat, berikan nilai parameter yang sesuai untuk lingkungan Anda.

{
	"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
	"contentVersion": "1.0.0.0",
	"parameters": {
        "apiManagementServiceName": {
            "type": "string",
            "minLength": 8,
            "metadata":{
                "description": "The name of the API Management instance"
            }
        },
		"publisherEmail": {
			"type": "string",
			"minLength": 1,
			"metadata": {
				"description": "The email address of the owner of the instance"
			}
		},
		"publisherName": {
			"type": "string",
			"minLength": 1,
			"metadata": {
				"description": "The name of the owner of the instance"
			}
		},
		"sku": {
			"type": "string",
			"allowedValues": ["Developer",
			"Standard",
			"Premium"],
			"defaultValue": "Developer",
			"metadata": {
				"description": "The pricing tier of the API Management instance"
			}
		},
		"skuCount": {
			"type": "int",
			"defaultValue": 1,
			"metadata": {
				"description": "The instance size of the API Management instance"
			}
		},
        "keyVaultName": {
            "type": "string",
            "metadata": {
                "description": "The name of the key vault"
            }
        },
		"proxyCustomHostname1": {
			"type": "string",
			"metadata": {
				"description": "Gateway custom hostname 1. Example: api.contoso.com"
			}
		},
		"keyVaultIdToCertificate": {
			"type": "string",
			"metadata": {
				"description": "Reference to the key vault certificate. Example: https://contoso.vault.azure.net/secrets/contosogatewaycertificate"
			}
		}
	},
	 "variables": {
        "apimServiceIdentityResourceId": "[concat(resourceId('Microsoft.ApiManagement/service', parameters('apiManagementServiceName')),'/providers/Microsoft.ManagedIdentity/Identities/default')]"
		    },
	"resources": [ 
   {
        "apiVersion": "2021-08-01",
        "name": "[parameters('apiManagementServiceName')]",
        "type": "Microsoft.ApiManagement/service",
        "location": "[resourceGroup().location]",
        "tags": {
        },
        "sku": {
            "name": "[parameters('sku')]",
            "capacity": "[parameters('skuCount')]"
        },
        "properties": {
            "publisherEmail": "[parameters('publisherEmail')]",
            "publisherName": "[parameters('publisherName')]"
        },
        "identity": {
            "type": "systemAssigned"
        }
    },
    {
        "type": "Microsoft.KeyVault/vaults/accessPolicies",
        "name": "[concat(parameters('keyVaultName'), '/add')]",
        "apiVersion": "2018-02-14",
        "properties": {
            "accessPolicies": [{
                "tenantId": "[reference(variables('apimServiceIdentityResourceId'), '2018-11-30').tenantId]",
                "objectId": "[reference(variables('apimServiceIdentityResourceId'), '2018-11-30').principalId]",
                "permissions": {
                     "secrets": ["get", "list"]
                }
            }]
        }
    },
	{
        "apiVersion": "2021-04-01",
		"type": "Microsoft.Resources/deployments",
        "name": "apimWithKeyVault",
		 "dependsOn": [
        "[resourceId('Microsoft.ApiManagement/service', parameters('apiManagementServiceName'))]"
        ],
        "properties": {
            "mode": "incremental",
            "template": {
                "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
				"contentVersion": "1.0.0.0",
				"parameters": {},			
				"resources": [{
					"apiVersion": "2021-08-01",
					"name": "[parameters('apiManagementServiceName')]",
					"type": "Microsoft.ApiManagement/service",
					"location": "[resourceGroup().location]",
					"tags": {
					},
					"sku": {
						"name": "[parameters('sku')]",
						"capacity": "[parameters('skuCount')]"
					},
					"properties": {
						"publisherEmail": "[parameters('publisherEmail')]",
						"publisherName": "[parameters('publisherName')]",
						"hostnameConfigurations": [{
							"type": "Proxy",
							"hostName": "[parameters('proxyCustomHostname1')]",
							"keyVaultId": "[parameters('keyVaultIdToCertificate')]"
						}]
					},
					"identity": {
						"type": "systemAssigned"
					}
				}]
		}
		}
	}
]
}

Menyimpan dan mengelola nilai bernama dari Key Vault

Anda dapat menggunakan identitas terkelola yang ditetapkan sistem untuk mengakses Key Vault, untuk menyimpan dan mengelola rahasia yang digunakan dalam kebijakan API Management. Untuk informasi selengkapnya, lihat Gunakan nilai bernama dalam kebijakan Azure API Management.

Mengautentikasi ke backend dengan menggunakan identitas API Management

Gunakan identitas yang ditetapkan sistem untuk mengautentikasi ke layanan backend melalui kebijakan identitas terkelola autentikasi . Untuk pertimbangan keamanan saat menggunakan autentikasi berbasis kebijakan, lihat Pertimbangan keamanan untuk identitas terkelola.

Menyambungkan ke sumber daya Azure di belakang firewall IP dengan menggunakan identitas terkelola yang ditetapkan sistem

API Management adalah layanan Microsoft tepercaya untuk sumber daya berikut. Status tepercaya ini memungkinkan layanan untuk menghubungkan ke sumber daya berikut di belakang firewall ketika firewall mengaktifkan pengaturan Mengizinkan Layanan Microsoft Tepercaya untuk melewati firewall ini. Setelah Anda secara eksplisit menetapkan peran Azure yang sesuai ke identitas terkelola yang ditetapkan system untuk instans sumber daya, cakupan akses untuk instans sesuai dengan peran Azure yang ditetapkan ke identitas terkelola.

Penting

Mulai Maret 2026, konektivitas layanan tepercaya ke layanan Azure dari gateway API Management dengan mengaktifkan Perbolehkan Layanan Microsoft Tepercaya untuk melewati firewall ini pengaturan firewall tidak akan didukung lagi. Untuk terus mengakses layanan ini dari gateway API Management setelah perubahan ini, pastikan Anda memilih opsi akses jaringan yang didukung yang berbeda. Untuk operasi sarana kontrol, Anda dapat terus menggunakan konektivitas layanan tepercaya. Pelajari selengkapnya.

Mencatat kejadian ke event hub

Anda dapat mengonfigurasi dan menggunakan identitas terkelola yang ditetapkan sistem untuk mengakses hub peristiwa untuk mencatat peristiwa dari instans API Management. Untuk informasi selengkapnya, lihat Cara mencatat peristiwa ke Azure Event Hubs di Azure API Management.

Buat identitas terkelola yang ditetapkan pengguna

portal Azure

Untuk menyiapkan identitas terkelola di portal, pertama-tama buat instans API Management dan buat identitas yang ditetapkan pengguna. Kemudian selesaikan langkah-langkah berikut.

  1. Buka instans API Management Anda di portal.

  2. Di menu sebelah kiri, di bawah Keamanan, pilih Identitas terkelola.

  3. Pada tab Ditetapkan pengguna, pilih Tambahkan.

  4. Cari identitas yang Anda buat sebelumnya dan pilih identitas tersebut. Pilih Tambahkan.

    Cuplikan layar yang memperlihatkan cara mengaktifkan identitas terkelola yang ditetapkan pengguna.

Azure PowerShell

Nota

Kami menyarankan agar Anda menggunakan modul Az PowerShell Azure untuk berinteraksi dengan Azure. Untuk memulai, lihat Install Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Migrasikan Azure PowerShell dari AzureRM ke Az.

Langkah-langkah berikut mengarahkan Anda membuat instans API Management dan menetapkannya identitas dengan menggunakan Azure PowerShell.

  1. Jika perlu, instal Azure PowerShell dengan mengikuti instruksi di panduan Azure PowerShell. Kemudian jalankan Connect-AzAccount untuk membuat koneksi dengan Azure.

  2. Gunakan kode berikut untuk membuat instans. Untuk contoh selengkapnya tentang cara menggunakan Azure PowerShell dengan API Management, lihat sampel PowerShell API Management.

    # Create a resource group.
    New-AzResourceGroup -Name $resourceGroupName -Location $location
    
    # Create a user-assigned identity. This code requires installation of the Az.ManagedServiceIdentity module.
    $userAssignedIdentity = New-AzUserAssignedIdentity -Name $userAssignedIdentityName -ResourceGroupName $resourceGroupName
    
    # Create an API Management Consumption SKU service.
    $userIdentities = @($userAssignedIdentity.Id)
    
    New-AzApiManagement -ResourceGroupName $resourceGroupName -Location $location -Name $apiManagementName -Organization contoso -AdminEmail admin@contoso.com -Sku Consumption -UserAssignedIdentity $userIdentities
    

Anda juga dapat memperbarui layanan yang ada untuk menetapkan identitas ke layanan:

# Get an API Management instance.
$apimService = Get-AzApiManagement -ResourceGroupName $resourceGroupName -Name $apiManagementName

# Create a user-assigned identity. This code requires installation of the Az.ManagedServiceIdentity module.
$userAssignedIdentity = New-AzUserAssignedIdentity -Name $userAssignedIdentityName -ResourceGroupName $resourceGroupName

# Update the API Management instance.
$userIdentities = @($userAssignedIdentity.Id)
Set-AzApiManagement -InputObject $apimService -UserAssignedIdentity $userIdentities

Templat ARM

Anda dapat membuat instans API Management yang memiliki identitas dengan menyertakan properti berikut dalam definisi sumber daya:

"identity": {
    "type": "UserAssigned",
    "userAssignedIdentities": {
        "<RESOURCEID>": {}
    }
}

Menambahkan jenis yang ditetapkan pengguna menginformasikan Azure untuk menggunakan identitas yang ditetapkan pengguna yang Anda tentukan untuk instans Anda.

Misalnya, templat ARM lengkap mungkin terlihat seperti contoh berikut:

{
    "$schema": "https://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
    "contentVersion": "0.9.0.0",
    "resources": [{
        "apiVersion": "2021-08-01",
        "name": "contoso",
        "type": "Microsoft.ApiManagement/service",
        "location": "[resourceGroup().location]",
        "tags": {},
        "sku": {
            "name": "Developer",
            "capacity": "1"
        },
        "properties": {
            "publisherEmail": "admin@contoso.com",
            "publisherName": "Contoso"
        },
        "identity": {
            "type": "UserAssigned",
             "userAssignedIdentities": {
                "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', variables('identityName'))]": {}
             }
        },
         "dependsOn": [
          "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', variables('identityName'))]"
        ]
    }]
}

Saat Anda membuat layanan, layanan ini memiliki properti tambahan berikut:

"identity": {
    "type": "UserAssigned",
    "userAssignedIdentities": {
        "<RESOURCEID>": {
            "principalId": "<PRINCIPALID>",
            "clientId": "<CLIENTID>"
        }
    }
}

Properti principalId adalah pengidentifikasi unik dari identitas yang digunakan untuk administrasi Microsoft Entra. Properti clientId adalah pengidentifikasi unik untuk identitas baru aplikasi yang digunakan untuk menentukan identitas mana yang akan digunakan selama panggilan runtime.

Nota

Instans API Management dapat memiliki identitas yang ditetapkan sistem dan ditetapkan pengguna. Dalam skenario itu, properti type adalah SystemAssigned,UserAssigned.

Skenario yang didukung yang menggunakan identitas terkelola yang ditetapkan pengguna

Daftar berikut ini memperlihatkan beberapa skenario umum untuk menggunakan identitas terkelola yang ditetapkan pengguna di Azure API Management.

Mendapatkan sertifikat TLS/SSL kustom untuk instans API Management dari Key Vault

Anda dapat menggunakan identitas yang ditetapkan pengguna untuk membangun kepercayaan antara instans API Management dan Key Vault. Kepercayaan ini kemudian dapat digunakan untuk mengambil sertifikat TLS/SSL kustom yang disimpan dalam Key Vault. Anda kemudian dapat menetapkan sertifikat ini ke domain kustom di instans API Management.

Penting

Jika Anda mengaktifkan Key Vault firewall pada Key Vault Anda, Anda tidak dapat menggunakan identitas yang ditetapkan oleh pengguna untuk akses dari API Management. Anda harus menggunakan identitas yang ditetapkan sistem sebagai gantinya. Untuk informasi selengkapnya, lihat bagian Persyaratan untuk firewall brankas kunci.

Pertimbangkan persyaratan berikut:

  • Jenis konten rahasia harus aplikasi/x-pkcs12.
  • Anda harus menggunakan titik akhir rahasia sertifikat Key Vault, yang berisi rahasia.

Penting

Jika Anda tidak memberikan versi objek sertifikat, API Management secara otomatis mendapatkan versi sertifikat yang lebih baru dalam waktu empat jam setelah diperbarui di Key Vault.

Menyimpan dan mengelola nilai bernama dari Key Vault

Anda dapat menggunakan identitas terkelola yang ditetapkan pengguna untuk mengakses Azure Key Vault, untuk menyimpan dan mengelola rahasia yang digunakan dalam kebijakan API Management. Untuk informasi selengkapnya, lihat Gunakan nilai bernama dalam kebijakan Azure API Management.

Nota

Jika Anda mengaktifkan Key Vault firewall pada Key Vault Anda, Anda tidak dapat menggunakan identitas yang ditetapkan oleh pengguna untuk akses dari API Management. Anda harus menggunakan identitas yang ditetapkan sistem sebagai gantinya. Untuk informasi selengkapnya, lihat bagian Persyaratan untuk firewall brankas kunci.

Mengautentikasi ke backend dengan menggunakan identitas yang ditetapkan pengguna

Anda dapat menggunakan identitas yang ditetapkan pengguna untuk mengautentikasi ke layanan backend melalui kebijakan identitas terkelola autentikasi . Untuk pertimbangan keamanan saat menggunakan autentikasi berbasis kebijakan, lihat Pertimbangan keamanan untuk identitas terkelola.

Mencatat kejadian ke event hub

Anda dapat mengonfigurasi dan menggunakan identitas terkelola yang ditetapkan pengguna untuk mengakses hub peristiwa untuk mencatat peristiwa dari instans API Management. Untuk informasi selengkapnya, lihat Cara mencatat peristiwa untuk Azure Event Hubs di Azure API Management.

Pertimbangan keamanan untuk identitas terkelola

Saat menggunakan identitas terkelola di API Management, penting untuk mengikuti praktik terbaik keamanan untuk melindungi sumber daya Anda dan meminimalkan risiko:

Perhatian

Akses pengeditan kebijakan memberikan akses sumber daya tidak langsung: Pengguna dengan izin untuk mengedit kebijakan API Management (misalnya, pengguna yang diberi peran Kontributor Layanan API Management , atau peran kustom apa pun dengan Microsoft.ApiManagement/service/apis/write atau Microsoft.ApiManagement/service/apis/policies/write izin) dapat menggunakan authentication-managed-identity kebijakan untuk mengautentikasi sebagai identitas terkelola layanan. Pengguna tidak dapat langsung mendapatkan akses ke sumber daya hanya dengan memiliki izin pengeditan kebijakan saja. Namun, mereka dapat memodifikasi kebijakan untuk menyelundupkan token autentikasi, menyebarkannya ke layanan backend, atau mencatatnya untuk digunakan nanti—sehingga mendapatkan akses tidak langsung ke sumber daya yang dapat dijangkau identitas terkelola.

Untuk mengurangi risiko ini:

  • Ikuti prinsip hak istimewa paling sedikit saat menetapkan peran Azure ke identitas terkelola. Hanya berikan izin yang diperlukan layanan.
  • Hanya tetapkan peran Kontributor API Management atau izin pengeditan kebijakan (seperti Microsoft.ApiManagement/service/apis/write dan Microsoft.ApiManagement/service/apis/policies/write) kepada pengguna tepercaya.
  • Tinjau dan audit penetapan peran identitas terkelola secara teratur dan pantau siapa yang memiliki akses untuk mengedit kebijakan API Management.
  • Terapkan kontrol dan tata kelola kebijakan untuk mencegah modifikasi yang tidak sah terhadap kebijakan penting.

Penting

Penerusan token adalah tanggung jawab pelanggan: Saat menggunakan authentication-managed-identity kebijakan, API Management mendapatkan token dari Microsoft Entra ID dan meneruskannya apa adanya ke backend dalam header Authorization. API Management tidak memvalidasi backend yang menerima token. Pelanggan bertanggung jawab untuk memastikan bahwa token hanya diteruskan ke layanan backend yang dimaksudkan dan tepercaya. Konfigurasikan entitas dan kebijakanbackend dengan hati-hati untuk mencegah token dikirim ke tujuan yang tidak diinginkan.

Menghapus sebuah identitas

Anda dapat menghapus identitas yang ditetapkan sistem dengan menonaktifkan fitur melalui portal atau dengan menggunakan templat ARM, seperti yang Anda buat. Anda dapat menghapus identitas yang ditetapkan pengguna satu per satu. Untuk menghapus semua identitas, atur jenis identitas ke "None".

Saat menghapus identitas yang ditetapkan sistem, Anda juga menghapusnya dari Microsoft Entra ID. Saat Anda menghapus instans API Management, identitas yang ditetapkan sistem secara otomatis dihapus dari Microsoft Entra ID.

Untuk menghapus semua identitas dengan menggunakan templat ARM, perbarui bagian ini:

"identity": {
    "type": "None"
}

Penting

Jika Anda mengonfigurasi instans API Management dengan sertifikat SSL kustom dari Key Vault dan mencoba menonaktifkan identitas terkelola, permintaan gagal.

Anda dapat mengatasi masalah ini dengan beralih dari sertifikat Key Vault ke sertifikat yang dikodekan sebaris lalu menonaktifkan identitas terkelola. Untuk informasi selengkapnya, lihat Mengonfigurasi nama domain kustom.