Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini memperlihatkan kepada Anda cara membuat identitas terkelola untuk aplikasi Azure App Service dan Azure Functions, dan cara menggunakannya untuk mengakses sumber daya lain.
Identitas terkelola dari MICROSOFT Entra ID memungkinkan aplikasi Anda mengakses sumber daya lain yang dilindungi Microsoft Entra dengan mudah, seperti Azure Key Vault. Platform Azure mengelola identitas, sehingga Anda tidak perlu menyediakan atau memutar rahasia apa pun. Untuk informasi selengkapnya tentang identitas terkelola di ID Microsoft Entra, lihat Identitas terkelola untuk sumber daya Azure.
Anda dapat memberikan dua jenis identitas ke aplikasi Anda:
- Identitas yang ditetapkan sistem terkait dengan aplikasi dan dihapus jika aplikasi dihapus. Aplikasi hanya dapat memiliki satu identitas yang ditetapkan sistem.
- Identitas yang ditetapkan pengguna adalah sumber daya Azure mandiri yang dapat ditetapkan ke aplikasi Anda. Aplikasi dapat memiliki beberapa identitas yang ditetapkan pengguna. Satu identitas yang ditetapkan pengguna dapat ditetapkan ke beberapa sumber daya Azure, seperti dua aplikasi App Service.
Konfigurasi identitas terkelola ini khusus untuk masing-masing slot. Untuk mengonfigurasi identitas terkelola untuk slot penyebaran di portal, pertama-tama buka slot tersebut. Untuk menemukan identitas terkelola (managed identity) untuk aplikasi web atau slot penyebaran di penyewa Microsoft Entra Anda dari portal Azure, langsung mencarinya di halaman Gambaran Umum penyewa Anda.
Catatan
Identitas terkelola tidak tersedia untuk aplikasi yang disebarkan di Azure Arc.
Karena identitas terkelola tidak mendukung skenario lintas direktori, identitas tersebut tidak berperilaku seperti yang diharapkan jika aplikasi Anda dimigrasikan di seluruh langganan atau penyewa. Untuk membuat ulang identitas terkelola setelah pemindahan tersebut, lihat Akankah identitas terkelola dibuat ulang secara otomatis jika saya memindahkan langganan ke direktori lain?. Sumber daya hilir juga perlu memperbarui kebijakan akses untuk menggunakan identitas baru.
Prasyarat
Untuk melakukan langkah-langkah dalam artikel ini, Anda harus memiliki sekumpulan izin minimum atas sumber daya Azure Anda. Izin khusus yang Anda butuhkan bervariasi berdasarkan skenario Anda. Tabel berikut ini meringkas skenario yang paling umum:
Skenario | Izin yang diperlukan | Peran bawaan contoh |
---|---|---|
Membuat identitas yang ditetapkan sistem |
Microsoft.Web/sites/write melalui aplikasi, atau Microsoft.Web/sites/slots/write melalui slot |
Kontributor Situs Web |
Membuat identitas yang ditetapkan pengguna |
Microsoft.ManagedIdentity/userAssignedIdentities/write pada grup sumber daya tempat identitas akan dibuat |
Kontributor Identitas Terkelola |
Menetapkan identitas yang ditetapkan pengguna ke aplikasi Anda |
Microsoft.Web/sites/write melalui aplikasi, Microsoft.Web/sites/slots/write melalui slot, atau Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action terhadap identitas |
Kontributor Web dan Operator Identitas Terkelola |
Membuat penetapan peran Azure |
Microsoft.Authorization/roleAssignments/write di atas cakupan sumber daya target |
Administrator Kontrol Akses Berbasis Peran atau Administrator Akses Pengguna |
Tambahkan identitas yang ditetapkan sistem
Untuk mengaktifkan identitas terkelola yang ditetapkan sistem, gunakan instruksi berikut.
Di portal Microsoft Azure, buka halaman aplikasi Anda.
Di menu sebelah kiri, pilih Pengaturan>Identitas.
Pada tab Sistem yang ditetapkan, alihkan Status ke Aktif. Kemudian pilih Simpan.
Menambahkan identitas yang ditetapkan pengguna
Untuk membuat aplikasi dengan identitas yang ditetapkan pengguna, buat identitas lalu tambahkan pengidentifikasi sumber dayanya ke konfigurasi aplikasi Anda.
Buat sumber daya identitas terkelola yang ditetapkan pengguna sesuai dengan petunjuk ini.
Di menu sebelah kiri untuk halaman aplikasi Anda, pilih Identitas Pengaturan>.
Pilih Pengguna yang ditetapkan, lalu pilih Tambahkan.
Cari identitas yang Anda buat sebelumnya, pilih identitas tersebut, lalu pilih Tambahkan.
Setelah Anda menyelesaikan langkah-langkah ini, aplikasi dimulai ulang.
Mengonfigurasi sumber daya target
Anda perlu mengonfigurasi sumber daya target untuk mengizinkan akses dari aplikasi Anda. Untuk sebagian besar layanan Azure, Anda mengonfigurasi sumber daya target dengan membuat penetapan peran.
Beberapa layanan menggunakan mekanisme selain kontrol akses berbasis peran Azure. Untuk memahami cara mengonfigurasi akses dengan menggunakan identitas, lihat dokumentasi untuk setiap sumber daya target. Untuk mempelajari selengkapnya tentang sumber daya mana yang mendukung token Microsoft Entra, lihat Layanan Azure yang mendukung autentikasi Microsoft Entra.
Misalnya, jika Anda meminta token untuk mengakses rahasia di Azure Key Vault, Anda juga harus membuat penugasaan peran yang memungkinkan identitas terkelola mengelola rahasia di brankas target. Jika tidak, Key Vault menolak panggilan Anda meskipun Anda menggunakan token yang valid. Hal yang sama berlaku untuk Azure SQL Database dan layanan lainnya.
Penting
Layanan back-end untuk identitas terkelola mempertahankan cache per URI sumber daya selama sekitar 24 jam. Diperlukan waktu beberapa jam agar perubahan pada keanggotaan grup atau peran dari identitas terkelola diterapkan. Saat ini tidak mungkin untuk memaksa token identitas terkelola disegarkan sebelum kedaluwarsa. Jika Anda mengubah grup identitas terkelola atau keanggotaan peran untuk menambahkan atau menghapus izin, Anda mungkin perlu menunggu beberapa jam agar sumber daya Azure yang menggunakan identitas memiliki akses yang benar.
Untuk alternatif grup atau keanggotaan peran, lihat Batasan penggunaan identitas terkelola untuk otorisasi.
Sambungkan ke layanan Azure dalam kode aplikasi
Dengan identitas terkelolanya, aplikasi dapat memperoleh token untuk sumber daya Azure yang dilindungi oleh ID Microsoft Entra, seperti Azure SQL Database, Azure Key Vault, dan Azure Storage. Token ini mewakili aplikasi yang mengakses sumber daya, dan bukan pengguna aplikasi tertentu.
App Service dan Azure Functions menyediakan titik akhir REST yang dapat diakses secara internal untuk pengambilan token. Anda dapat mengakses titik akhir REST dari dalam aplikasi dengan menggunakan permintaan HTTP GET
standar. Anda dapat menerapkan permintaan dengan klien HTTP generik dalam setiap bahasa.
Untuk .NET, JavaScript, Java, dan Python, pustaka klien Azure Identity menyediakan abstraksi melalui titik akhir REST ini dan menyederhanakan pengalaman pengembangan. Menghubungkan ke layanan Azure lainnya semudah menambahkan objek kredensial ke klien khusus layanan.
Permintaan HTTP GET
mentah menggunakan dua variabel lingkungan yang disediakan dan terlihat seperti contoh berikut:
GET /MSI/token?resource=https://vault.azure.net&api-version=2019-08-01 HTTP/1.1
Host: <ip-address-:-port-in-IDENTITY_ENDPOINT>
X-IDENTITY-HEADER: <value-of-IDENTITY_HEADER>
Contoh respons mungkin terlihat seperti contoh berikut:
HTTP/1.1 200 OK
Content-Type: application/json
{
"access_token": "eyJ0eXAi…",
"expires_on": "1586984735",
"resource": "https://vault.azure.net",
"token_type": "Bearer",
"client_id": "00001111-aaaa-2222-bbbb-3333cccc4444"
}
Respons ini sama dengan respons untuk permintaan token akses antar-layanan Microsoft Entra. Untuk mengakses Key Vault, tambahkan nilai access_token
ke koneksi klien dengan vault.
Untuk informasi selengkapnya tentang titik akhir REST, lihat Referensi titik akhir REST nanti di artikel ini.
Menghapus sebuah identitas
Saat Anda menghapus identitas yang ditetapkan sistem, identitas tersebut akan dihapus dari ID Microsoft Entra. Identitas yang ditetapkan sistem juga secara otomatis dihapus dari ID Microsoft Entra saat Anda menghapus sumber daya aplikasi itu sendiri.
Di menu sebelah kiri untuk halaman aplikasi Anda, pilih Identitas Pengaturan>.
Ikuti langkah-langkah berdasarkan jenis identitas:
- Untuk identitas yang ditetapkan sistem: Pada tab Yang ditetapkan sistem, alihkanStatus ke Nonaktif. Kemudian pilih Simpan.
- Untuk identitas yang ditetapkan pengguna: Pilih tab Pengguna yang ditetapkan , pilih kotak centang untuk identitas, lalu pilih Hapus. Pilih Ya untuk mengonfirmasi.
Catatan
Anda juga dapat mengatur pengaturan aplikasi yang hanya menonaktifkan layanan token lokal: WEBSITE_DISABLE_MSI
. Namun, itu meninggalkan identitas tetap pada posisinya. Alat masih menunjukkan identitas terkelola sebagai aktif atau diaktifkan. Akibatnya, kami tidak menyarankan Anda menggunakan pengaturan ini.
Referensi titik akhir REST
Aplikasi dengan identitas terkelola membuat titik akhir ini tersedia dengan mendefinisikan dua variabel lingkungan:
-
IDENTITY_ENDPOINT
: URL ke layanan token lokal. -
IDENTITY_HEADER
: Header yang dapat membantu mengurangi serangan pemalsuan permintaan sisi server (SSRF). Platform tersebut memutar nilai.
Variabel IDENTITY_ENDPOINT
adalah URL lokal tempat aplikasi Anda dapat meminta token. Untuk mendapatkan token untuk sumber daya, buat permintaan HTTP GET
ke titik akhir ini. Sertakan parameter berikut:
Nama Parameter Di dalam Deskripsi resource
Pertanyaan URI sumber daya Microsoft Entra untuk sumber daya yang memerlukan token. Sumber daya ini bisa menjadi salah satu layanan Azure yang mendukung autentikasi Microsoft Entra atau URI sumber daya lainnya. api-version
Pertanyaan Versi API token yang akan digunakan. Gunakan 2019-08-01
.X-IDENTITY-HEADER
Kepala Halaman Nilai IDENTITY_HEADER
variabel lingkungan. Header ini digunakan untuk membantu mengurangi serangan SSRF.client_id
Pertanyaan (Opsional) Client ID dari identitas yang ditetapkan pengguna yang akan digunakan. Ini tidak dapat digunakan pada permintaan yang mencakup principal_id
, ,mi_res_id
atauobject_id
. Jika semua parameter ID (client_id
,principal_id
,object_id
, danmi_res_id
) dihilangkan, identitas yang ditetapkan sistem akan digunakan.principal_id
Pertanyaan (Opsional) ID utama dari identitas yang ditetapkan pengguna yang akan digunakan. Parameter object_id
adalah alias yang dapat digunakan sebagai gantinya. Ini tidak dapat digunakan pada permintaan yang mencakupclient_id
, ,mi_res_id
atauobject_id
. Jika semua parameter ID (client_id
,principal_id
,object_id
, danmi_res_id
) dihilangkan, identitas yang ditetapkan sistem akan digunakan.mi_res_id
Pertanyaan (Opsional) ID sumber daya Azure dari identitas yang ditetapkan pengguna yang akan digunakan. Ini tidak dapat digunakan pada permintaan yang mencakup principal_id
, ,client_id
atauobject_id
. Jika semua parameter ID (client_id
,principal_id
,object_id
, danmi_res_id
) dihilangkan, identitas yang ditetapkan sistem akan digunakan.
Penting
Jika Anda mencoba mendapatkan token untuk identitas yang ditetapkan pengguna, sertakan salah satu properti opsional. Jika tidak, layanan token mencoba mendapatkan token untuk identitas yang ditetapkan sistem, yang mungkin atau mungkin tidak ada.
Konten terkait
Pertimbangkan tutorial berikut: