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 membantu Anda mengonfigurasi aplikasi dengan definisi peran aplikasi dan menetapkan grup keamanan ke peran aplikasi sehingga Anda dapat meningkatkan fleksibilitas dan kontrol sambil meningkatkan keamanan aplikasi dengan hak istimewa paling sedikit.
Microsoft Entra ID mendukung pengiriman grup keamanan yang ditugaskan kepada pengguna, peran direktori Microsoft Entra, dan grup distribusi sebagai klaim dalam token. Anda dapat menggunakan pendekatan ini untuk mendorong otorisasi di aplikasi. Namun, ID Microsoft Entra membatasi dukungan grup dalam token berdasarkan ukuran token. Ketika pengguna adalah anggota dari terlalu banyak grup, tidak ada grup dalam token.
Dalam artikel ini, Anda mempelajari pendekatan alternatif untuk mendapatkan informasi pengguna dalam token menggunakan dukungan grup Microsoft Entra. Sebagai gantinya, Anda mengonfigurasi aplikasi dengan definisi peran aplikasi dan menetapkan grup ke peran aplikasi. Praktik terbaik pengembang Zero Trust meningkatkan fleksibilitas dan kontrol sambil meningkatkan keamanan aplikasi dengan hak istimewa paling sedikit.
Anda dapat mengonfigurasi klaim grup dalam token yang dapat Anda gunakan dalam aplikasi Anda guna otorisasi. Ingat bahwa informasi grup dalam token hanya terkini ketika Anda menerima token. Klaim grup mendukung dua pola utama:
- Grup yang diidentifikasi oleh atribut pengidentifikasi objek Microsoft Entra (OID) mereka.
- Grup yang diidentifikasi oleh atribut
sAMAccountName
atauGroupSID
untuk grup dan pengguna yang disinkronkan Direktori Aktif.
Keanggotaan grup dapat mendorong keputusan otorisasi. Misalnya, contoh berikut menunjukkan beberapa klaim dalam token. Anda dapat menambahkan klaim dan peran grup ke ID atau token akses.
"aud": "00001111-aaaa-2222-bbbb-3333cccc4444",
"iss": "https://login.microsoftonline.com/833ced3d-cb2e-41de-92f1-29e2af035ddc/v2.0",
"iat": 1669657224, "nbf": 1669657224, "exp": 1669661124,
"groups": [
"0760b6cf-170e-4a14-91b3-4b78e0739963",
"3b2b0c93-acd8-4208-8eba-7a48db1cd4c0"
],
"oid": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"sub": "3OBtLXUC2ZrN_ADLNjW9X4o0lcd61py7lgHw3Skh77s",
"tid": "bbbbcccc-1111-dddd-2222-eeee3333ffff",
"ver": "2.0",
"wids": [
"cf1c38e5-3621-4004-a7cb-879624dced7c",
"b79fbf4d-3ef9-4689-8143-76b194e85509"
]
Array klaim groups
terdiri dari ID grup yang pengguna ini menjadi anggota. Array wids
terdiri dari ID peran Microsoft Entra yang ditetapkan untuk pengguna ini. Di sini, cf1c38e5-3621-4004-a7cb-879624dced7c
menunjukkan bahwa peran yang ditetapkan pengguna ini termasuk Pengembang Aplikasi dan anggota standar seperti yang ditunjukkan 3b2b0c93-acd8-4208-8eba-7a48db1cd4c0
.
Aplikasi Anda dapat membuat keputusan otorisasi berdasarkan keberadaan atau tidak adanya klaim ini dan nilainya. Lihat peran bawaan Microsoft Entra untuk daftar nilai untuk klaim wids
.
Untuk menambahkan klaim groups
dan wids
ke token Anda, pilih Semua grup seperti yang ditunjukkan dalam contoh Pendaftaran Aplikasi berikut | Konfigurasi Token | Klaim Opsional | layar Edit klaim grup.
Kelebihan grup
Saat Anda meminta semua grup dalam token seperti yang ditunjukkan dalam contoh, Anda tidak bisa mengandalkan klaim groups
akan ada dalam token Anda. Ada batas ukuran pada token dan pada klaim groups
sehingga tidak menjadi terlalu besar. Saat pengguna adalah anggota dari terlalu banyak grup, aplikasi Anda perlu mendapatkan keanggotaan grup pengguna dari Microsoft Graph. Batasan untuk grup dalam klaim groups
adalah:
- 200 grup untuk token web JSON (JWT).
- 150 kelompok untuk token Security Assertion Markup Language (SAML).
- Enam grup saat menggunakan alur implisit (misalnya, menggunakan inti ASP.NET yang mendapatkan token ID melalui bagian aliran implisit dari aliran hibrid).
- Alur implisit tidak lagi direkomendasikan untuk aplikasi web satu halaman.
- Alur implisit hanya dapat digunakan di aplikasi web untuk token ID, tidak pernah token akses, dalam alur hibrid OAuth2.
Jika Anda menggunakan OpenID Connect atau OAuth2, Anda dapat memiliki hingga 200 grup dalam token Anda. Jika Anda menggunakan SAML, Anda hanya dapat memiliki 150 grup karena token SAML lebih besar dari token OAuth2 dan OpenID Connect. Jika Anda menggunakan alur implisit, batasnya adalah enam karena respons tersebut muncul di URL. Dalam semua kasus ini, alih-alih memiliki klaim groups
, Anda melihat indikasi (dikenal sebagai kelebihan kelompok) yang memberi tahu Anda bahwa pengguna adalah anggota dari terlalu banyak grup untuk dimasukkan dalam token Anda.
Indikasi kelebihan aliran implisit dilakukan dengan klaim hasgroups
alih-alih klaim groups
.
Untuk memastikan otorisasi yang tepat menggunakan keanggotaan grup, minta aplikasi Anda memeriksa klaim groups
. Jika ada, gunakan klaim tersebut untuk menentukan keanggotaan grup pengguna. Jika tidak ada klaim groups
, periksa keberadaan klaim hasgroups
atau klaim _claim_names
dengan anggota array groups
. Jika salah satu klaim ini ada, pengguna adalah anggota dari terlalu banyak grup untuk token. Dalam hal ini, aplikasi Anda harus menggunakan Microsoft Graph untuk menentukan keanggotaan grup bagi pengguna. Lihat Mencantumkan keanggotaan pengguna (langsung dan transitif) untuk menemukan semua grup, baik langsung maupun transitif, di mana pengguna adalah anggota.
Jika aplikasi Anda memerlukan informasi keanggotaan grup real time, gunakan Microsoft Graph untuk menentukan keanggotaan grup. Ingatlah bahwa informasi dalam token yang Anda terima hanya terbaru pada saat Anda memperoleh token.
Lihat contoh pendaftaran Aplikasi berikut | konfigurasi Token | Klaim opsional | layar klaim Edit grup. Salah satu cara untuk menghindari mengajukan klaim kelebihan grup adalah dengan memilih Grup yang ditetapkan ke aplikasi pada layar Edit klaim grup alih-alih Semua grup.
Saat Anda memilih Grup yang ditetapkan ke aplikasi, grup disertakan dalam klaim groups
jika kondisi berikut ini benar:
- grup ditetapkan untuk Aplikasi Perusahaan
- pengguna adalah anggota langsung grup
Pada publikasi artikel ini, grup yang ditetapkan ke opsi aplikasi tidak mendukung keanggotaan secara tidak langsung. Tugas kelompok memerlukan setidaknya lisensi tingkat P1. Penyewa gratis tidak dapat menetapkan grup ke aplikasi.
Peran grup dan aplikasi
Cara lain untuk menghindari masalah kelebihan penggunaan grup adalah dengan aplikasi untuk menentukan peran aplikasi yang memungkinkan pengguna dan grup sebagai jenis anggota. Seperti yang ditunjukkan dalam contoh pendaftaran aplikasi berikut | Peran aplikasi | layar Membuat peran aplikasi, pilih Pengguna/Grup untuk jenis anggota Diizinkan.
Setelah membuat peran aplikasi dalam pendaftaran aplikasi, Anda dapat menetapkan pengguna dan grup ke peran tersebut. Aplikasi Anda memperoleh klaim roles
dalam token Anda (ID token untuk aplikasi, token akses untuk API) yang mencakup semua peran yang diberikan kepada pengguna yang sudah masuk, seperti yang ditunjukkan dalam contoh token berikut.
"aud": "11112222-bbbb-3333-cccc-4444dddd5555",
"iss": "https://login.microsoftonline.com/833ced3d-cb2e-41de-92f1-29e2af035ddc/v2.0",
"iat": 1670826509, "nbf": 1670826509, "exp": 1670830409,
"name": "Kyle Marsh",
"oid": "bbbbbbbb-1111-2222-3333-cccccccccccc",
"preferred_username": "kylemar@idfordevs.dev",
"roles": [
"Approver",
"Reviewer"
],
"sub": "dx-4lf-0loB3c3uVrULnZ2VTLuRRWYff0q7-QlIfYU4",
"tid": "ccccdddd-2222-eeee-3333-ffff4444aaaa",
Ingatlah agar aplikasi Anda menangani kondisi berikut:
- tidak adanya klaim
roles
- pengguna tidak memiliki penetapan peran
- beberapa nilai dalam klaim
roles
saat pengguna memiliki lebih dari satu penetapan peran
Saat Anda membuat peran aplikasi yang memungkinkan pengguna dan grup sebagai anggota, selalu tentukan peran pengguna dasar tanpa peran otorisasi yang ditingkatkan. Saat konfigurasi Aplikasi Perusahaan memerlukan penugasan, hanya pengguna dengan penugasan langsung ke aplikasi atau keanggotaan dalam grup yang ditetapkan ke aplikasi yang dapat menggunakan aplikasi.
Jika aplikasi Anda menyertakan peran aplikasi yang ditentukan yang memungkinkan pengguna dan grup sebagai anggota, saat pengguna atau grup ditetapkan ke aplikasi, salah satu peran aplikasi yang ditentukan harus menjadi bagian dari penugasan pengguna atau grup ke aplikasi. Jika aplikasi Anda hanya menyertakan peran tinggi yang telah ditentukan sebelumnya (seperti admin
) untuk aplikasi, semua pengguna dan grup diberi peran admin. Saat Anda menentukan peran dasar (seperti user
), pengguna dan grup yang ditetapkan ke aplikasi dapat diberi peran pengguna dasar.
Selain menghindari klaim kelebihan jumlah grup, keuntungan lain dari menggunakan peran adalah tidak perlu memetakan antara ID grup atau nama dan apa artinya dalam aplikasi Anda. Misalnya, kode Anda dapat mencari klaim peran admin alih-alih melakukan iterasi melalui grup dalam klaim groups
dan memutuskan ID grup mana yang harus diizinkan fungsionalitas admin.
Memverifikasi dan menggunakan peran dalam kode Anda
Saat Anda menentukan peran aplikasi untuk aplikasi, Anda bertanggung jawab untuk menerapkan logika otorisasi untuk peran tersebut. Untuk mempelajari cara menerapkan logika otorisasi di aplikasi Anda, lihat Menerapkan kontrol akses berbasis peran dalam aplikasi.
Langkah berikutnya
- Menyesuaikan token menjelaskan informasi yang dapat Anda terima di token Microsoft Entra. Ini menjelaskan cara menyesuaikan token untuk meningkatkan fleksibilitas dan kontrol sambil meningkatkan keamanan Zero Trust aplikasi dengan hak istimewa paling sedikit.
- Mengonfigurasi klaim grup untuk aplikasi dengan menggunakan MICROSOFT Entra ID menunjukkan bagaimana ID Microsoft Entra dapat memberikan informasi keanggotaan grup pengguna dalam token untuk digunakan dalam aplikasi.
- Praktik terbaik Keamanan untuk properti aplikasi menjelaskan URI pengalihan, token akses (digunakan untuk alur implisit), sertifikat dan rahasia, URI ID aplikasi, dan kepemilikan aplikasi.
- cakupan platform identitas Microsoft, izin, persetujuan & menjelaskan konsep dasar akses dan otorisasi untuk membantu Anda membangun aplikasi yang lebih aman dan dapat dipercaya.
- Gunakan identitas Zero Trust dan praktik terbaik pengembangan manajemen akses dalam siklus hidup pengembangan aplikasi Anda untuk membuat aplikasi yang aman.