Mengonfigurasi penyedia klaim kustom untuk peristiwa penerbitan token
Artikel ini menjelaskan cara mengonfigurasi penyedia klaim kustom untuk peristiwa mulai penerbitan token. Dengan menggunakan REST API Azure Functions yang ada, Anda akan mendaftarkan ekstensi autentikasi kustom dan menambahkan atribut yang Anda harapkan untuk diurai dari REST API Anda. Untuk menguji ekstensi autentikasi kustom, Anda akan mendaftarkan sampel aplikasi OpenID Connect untuk mendapatkan token dan melihat klaim.
Prasyarat
- Langganan Azure dengan kemampuan untuk membuat Azure Functions. Jika Anda tidak memiliki akun Azure yang sudah ada, daftar untuk uji coba gratis atau gunakan manfaat Langganan Visual Studio saat Membuat akun.
- Fungsi pemicu HTTP yang dikonfigurasi untuk peristiwa penerbitan token yang disebarkan ke Azure Functions. Jika Anda tidak memilikinya, ikuti langkah-langkah dalam membuat REST API untuk peristiwa mulai penerbitan token di Azure Functions.
- Pemahaman dasar tentang konsep yang tercakup dalam Gambaran umum ekstensi autentikasi kustom.
- Penyewa ID Microsoft Entra. Anda dapat menggunakan pelanggan atau penyewa tenaga kerja untuk panduan cara ini.
- Untuk penyewa eksternal, gunakan alur pengguna pendaftaran dan masuk.
Langkah 1: Mendaftarkan ekstensi autentikasi kustom
Sekarang Anda akan mengonfigurasi ekstensi autentikasi kustom, yang akan digunakan oleh ID Microsoft Entra untuk memanggil fungsi Azure Anda. Ekstensi autentikasi kustom berisi informasi tentang titik akhir REST API Anda, klaim yang diuraikan dari REST API Anda, dan cara mengautentikasi ke REST API Anda. Ikuti langkah-langkah ini untuk mendaftarkan ekstensi autentikasi kustom ke aplikasi Azure Function Anda.
Catatan
Anda dapat memiliki maksimal 100 kebijakan ekstensi kustom.
Mendaftarkan ekstensi autentikasi kustom
- Masuk ke portal Azure setidaknya sebagai Administrator Aplikasi dan Administrator Autentikasi.
- Cari dan pilih MICROSOFT Entra ID dan pilih Aplikasi perusahaan.
- Pilih Ekstensi autentikasi kustom, lalu pilih Buat ekstensi kustom.
- Di Dasar, pilih TokenIssuanceMulai jenis peristiwa dan pilih Berikutnya.
- Di Konfigurasi Titik Akhir, isi properti berikut ini:
- Nama - Nama untuk ekstensi autentikasi kustom Anda. Misalnya, peristiwa penerbitan token.
- Url Target -
{Function_Url}
URL Fungsi Azure Anda. Navigasi ke halaman Gambaran Umum aplikasi Azure Function Anda, lalu pilih fungsi yang Anda buat. Di halaman Gambaran Umum fungsi, pilih Dapatkan Url Fungsi dan gunakan ikon salin untuk menyalin URL customauthenticationextension_extension (Kunci sistem). - Deskripsi - Deskripsi untuk ekstensi autentikasi kustom Anda.
- Pilih Selanjutnya.
- Di Autentikasi API, pilih opsi Buat pendaftaran aplikasi baru untuk membuat pendaftaran aplikasi yang mewakili aplikasi fungsi Anda.
- Beri nama aplikasi, misalnya API peristiwa autentikasi Azure Functions.
- Pilih Selanjutnya.
- Di Klaim, masukkan atribut yang Anda harapkan ekstensi autentikasi kustom Anda untuk diurai dari REST API Anda dan akan digabungkan ke dalam token. Tambahkan klaim berikut:
- dateOfBirth
- customRoles
- apiVersion
- correlationId
- Pilih Berikutnya, lalu Buat, yang mendaftarkan ekstensi autentikasi kustom dan pendaftaran aplikasi terkait.
- Perhatikan ID Aplikasi di bawah Autentikasi API, yang diperlukan untuk mengonfigurasi autentikasi untuk Azure Function Anda di aplikasi Azure Function Anda.
1.2 Memberikan persetujuan admin
Setelah ekstensi autentikasi kustom dibuat, Anda perlu memberikan izin ke API. Ekstensi autentikasi kustom menggunakan client_credentials
untuk mengautentikasi ke Aplikasi Fungsi Azure menggunakan Receive custom authentication extension HTTP requests
izin.
Buka halaman Gambaran Umum ekstensi autentikasi kustom baru Anda. Catat ID Aplikasi di bawah Autentikasi API, karena akan diperlukan saat menambahkan IdP.
Di bawah Autentikasi API, pilih Berikan izin.
Jendela baru terbuka, dan setelah masuk, jendela tersebut meminta izin untuk menerima permintaan HTTP ekstensi autentikasi kustom. Ini memungkinkan ekstensi autentikasi kustom untuk mengautentikasi ke API Anda. Pilih Terima.
Langkah 2: Mengonfigurasi aplikasi OpenID Connect untuk menerima token yang diperkaya
Untuk mendapatkan token dan menguji ekstensi autentikasi kustom, Anda dapat menggunakan https://jwt.ms aplikasi. Ini adalah aplikasi web milik Microsoft yang menampilkan konten token yang didekodekan (konten token tidak pernah meninggalkan browser Anda).
2.1 Mendaftarkan aplikasi web pengujian
Ikuti langkah-langkah berikut untuk mendaftarkan aplikasi web jwt.ms :
Dari halaman Beranda di portal Azure, pilih ID Microsoft Entra.
Pilih Pendaftaran aplikasi>Pendaftaran baru.
Masukkan Nama untuk aplikasi. Misalnya, aplikasi Uji Saya.
Di bawah Jenis akun yang didukung, pilih Hanya akun dalam direktori organisasi ini.
Di menu dropdown Pilih platform di URI Pengalihan, pilih Web lalu masukkan
https://jwt.ms
di kotak teks URL.Pilih Daftar untuk menyelesaikan pendaftaran aplikasi.
Di halaman Gambaran Umum pendaftaran aplikasi Anda, salin ID Aplikasi (klien). ID aplikasi disebut sebagai di langkah selanjutnya
{App_to_enrich_ID}
. Di Microsoft Graph, ini direferensikan oleh properti appId .
2.2 Mengaktifkan alur implisit
Aplikasi pengujian jwt.ms menggunakan alur implisit. Aktifkan alur implisit dalam pendaftaran aplikasi Uji Saya:
- Di bagian Kelola, pilih Autentikasi.
- Di bagian Izin implisit dan alur hibrid, pilih kotak centang Token ID (digunakan untuk alur implisit dan hibrid).
- Pilih Simpan.
2.3 Mengaktifkan Aplikasi Anda untuk kebijakan pemetaan klaim
Kebijakan pemetaan klaim digunakan untuk memilih atribut mana yang dikembalikan dari ekstensi autentikasi kustom yang dipetakan ke dalam token. Untuk memungkinkan token ditambah, Anda harus secara eksplisit mengaktifkan pendaftaran aplikasi untuk menerima klaim yang dipetakan:
- Di pendaftaran aplikasi Uji Saya, di bawah Kelola, pilih Manifes.
- Dalam manifes, temukan
acceptMappedClaims
atribut , dan atur nilai ketrue
. - Atur
accessTokenAcceptedVersion
ke2
. - Pilih Simpan untuk menyimpan perubahan.
Cuplikan JSON berikut menunjukkan cara mengonfigurasi properti ini.
{
"id": "22222222-0000-0000-0000-000000000000",
"acceptMappedClaims": true,
"accessTokenAcceptedVersion": 2,
...
}
Peringatan
Jangan menetapkan properti acceptMappedClaims
ke true
untuk aplikasi multipenyewa, yang dapat memungkinkan pelaku jahat membuat kebijakan pemetaan klaim untuk aplikasi Anda. Sebagai gantinya , konfigurasikan kunci penandatanganan kustom.
Lanjutkan ke langkah berikutnya, Tetapkan penyedia klaim kustom ke aplikasi Anda.
Langkah 3: Tetapkan penyedia klaim kustom ke aplikasi Anda
Agar token dikeluarkan dengan klaim yang masuk dari ekstensi autentikasi kustom, Anda harus menetapkan penyedia klaim kustom ke aplikasi Anda. Ini didasarkan pada audiens token, sehingga penyedia harus ditetapkan ke aplikasi klien untuk menerima klaim dalam token ID, dan ke aplikasi sumber daya untuk menerima klaim dalam token akses. Penyedia klaim kustom bergantung pada ekstensi autentikasi kustom yang dikonfigurasi dengan pendengar peristiwa mulai penerbitan token. Anda dapat memilih apakah semua, atau subset klaim, dari penyedia klaim kustom dipetakan ke dalam token.
Catatan
Anda hanya dapat membuat 250 penugasan unik antara aplikasi dan ekstensi kustom. Jika Anda ingin menerapkan panggilan ekstensi kustom yang sama ke beberapa aplikasi, sebaiknya gunakan authenticationEventListeners Microsoft Graph API untuk membuat listener untuk beberapa aplikasi. Ini tidak didukung di portal Azure.
Ikuti langkah-langkah ini untuk menyambungkan aplikasi Uji Saya dengan ekstensi autentikasi kustom Anda:
Untuk menetapkan ekstensi autentikasi kustom sebagai sumber penyedia klaim kustom;
Dari halaman Beranda di portal Azure, pilih ID Microsoft Entra.
PilihAplikasi perusahaan, lalu di bawah Kelola, pilih Semua aplikasi. Temukan dan pilih Aplikasi Uji Saya dari daftar.
Dari halaman Gambaran Umum aplikasi Uji Saya, navigasikan ke Kelola, dan pilih Akses menyeluruh.
Di bawah Atribut & Klaim, pilih Edit.
Perluas menu Pengaturan tingkat lanjut.
Di samping Penyedia klaim kustom, pilih Konfigurasikan.
Perluas kotak drop-down Penyedia klaim kustom, dan pilih peristiwa penerbitan Token yang Anda buat sebelumnya.
Pilih Simpan.
Selanjutnya, tetapkan atribut dari penyedia klaim kustom, yang harus dikeluarkan ke dalam token sebagai klaim:
Pilih Tambahkan klaim baru untuk menambahkan klaim baru. Berikan nama untuk klaim yang ingin Anda terbitkan, misalnya dateOfBirth.
Di bawah Sumber, pilih Atribut, dan pilih customClaimsProvider.dateOfBirth dari kotak drop-down Atribut sumber.
Pilih Simpan.
Ulangi proses ini untuk menambahkan atribut customClaimsProvider.customRoles, customClaimsProvider.apiVersion dan customClaimsProvider.correlationId , dan nama yang sesuai. Ada baiknya untuk mencocokkan nama klaim dengan nama atribut.
Langkah 4: Lindungi Fungsi Azure Anda
Ekstensi autentikasi kustom Microsoft Entra menggunakan alur server ke server untuk mendapatkan token akses yang dikirim di header HTTP Authorization
ke fungsi Azure Anda. Saat menerbitkan fungsi Anda ke Azure, terutama di lingkungan produksi, Anda perlu memvalidasi token yang dikirim di header otorisasi.
Untuk melindungi fungsi Azure Anda, ikuti langkah-langkah ini untuk mengintegrasikan autentikasi Microsoft Entra, untuk memvalidasi token masuk dengan pendaftaran aplikasi API peristiwa autentikasi Azure Functions Anda. Pilih salah satu tab berikut berdasarkan jenis penyewa Anda.
Catatan
Jika aplikasi fungsi Azure dihosting di penyewa Azure yang berbeda dari penyewa tempat ekstensi autentikasi kustom Anda terdaftar, pilih tab Open ID Connect .
4.1 Menggunakan IdP Microsoft Entra
Gunakan langkah-langkah berikut untuk menambahkan Microsoft Entra sebagai penyedia identitas ke aplikasi Azure Function Anda.
Di portal Azure, temukan dan pilih aplikasi fungsi yang sebelumnya Anda terbitkan.
Di bawah Pengaturan, pilih Autentikasi.
Pilih Tambahkan Penyedia Identitas.
Pilih Microsoft sebagai penyedia identitas.
Pilih Workforce sebagai jenis penyewa.
Di bawah Pendaftaran aplikasi pilih Pilih pendaftaran aplikasi yang ada di direktori ini untuk jenis Pendaftaran aplikasi, dan pilih pendaftaran aplikasi API peristiwa autentikasi Azure Functions yang sebelumnya Anda buat saat mendaftarkan penyedia klaim kustom.
Masukkan URL penerbit berikut,
https://login.microsoftonline.com/{tenantId}/v2.0
, di mana{tenantId}
adalah ID penyewa penyewa tenaga kerja Anda.Di bawah Persyaratan aplikasi klien, pilih Izinkan permintaan dari aplikasi klien tertentu dan masukkan
99045fe1-7639-4a75-9d4a-577b6ca3810f
.Di bawah Persyaratan penyewa, pilih Izinkan permintaan dari penyewa tertentu dan masukkan ID penyewa tenaga kerja Anda.
Di bawah Permintaan yang tidak diabaikan, pilih HTTP 401 Tidak Sah sebagai Penyedia Identitas.
Batalkan pilihan opsi Penyimpanan token .
Pilih Tambahkan untuk menambahkan autentikasi ke Azure Function Anda.
4.2 Menggunakan Penyedia Identitas OpenID Connect
Jika Anda mengonfigurasi IdP Microsoft, lewati langkah ini. Jika tidak, jika Azure Function dihosting di bawah penyewa yang berbeda dari penyewa tempat ekstensi autentikasi kustom Anda terdaftar, ikuti langkah-langkah berikut untuk melindungi fungsi Anda:
Membuat rahasia klien
- Dari halaman Beranda portal Azure, pilih ID> Microsoft Entra Pendaftaran aplikasi.
- Pilih pendaftaran aplikasi API peristiwa autentikasi Azure Functions yang Anda buat sebelumnya.
- Pilih Sertifikat & rahasia>Rahasia>klien Rahasia klien baru.
- Pilih kedaluwarsa untuk rahasia atau tentukan masa pakai kustom, tambahkan deskripsi, dan pilih Tambahkan.
- Catat nilai rahasia untuk digunakan dalam kode aplikasi klien Anda. Nilai rahasia ini tidak pernah ditampilkan lagi setelah Anda meninggalkan halaman ini.
Tambahkan penyedia identitas OpenID Connect ke aplikasi Azure Function Anda.
Temukan dan pilih aplikasi fungsi yang sebelumnya Anda terbitkan.
Di bawah Pengaturan, pilih Autentikasi.
Pilih Tambahkan Penyedia Identitas.
Pilih OpenID Connect sebagai penyedia identitas.
Berikan nama, seperti ID Contoso Microsoft Entra.
Di bawah entri Metadata, masukkan URL berikut ke URL Dokumen.
{tenantId}
Ganti dengan ID penyewa Microsoft Entra Anda.https://login.microsoftonline.com/{tenantId}/v2.0/.well-known/openid-configuration
Di bawah Pendaftaran aplikasi, masukkan ID aplikasi (ID klien) dari pendaftaran aplikasi API peristiwa autentikasi Azure Functions yang Anda buat sebelumnya.
Kembali ke Azure Function, di bawah Pendaftaran aplikasi, masukkan Rahasia klien.
Batalkan pilihan opsi Penyimpanan token .
Pilih Tambahkan untuk menambahkan IdP OpenID Connect.
Langkah 5: Uji aplikasi
Untuk menguji penyedia klaim kustom Anda, ikuti langkah-langkah berikut:
Buka browser privat baru dan navigasikan dan masuk melalui URL berikut.
https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/authorize?client_id={App_to_enrich_ID}&response_type=id_token&redirect_uri=https://jwt.ms&scope=openid&state=12345&nonce=12345
Ganti
{tenantId}
dengan ID penyewa, nama penyewa, atau salah satu nama domain terverifikasi Anda. Contohnya,contoso.onmicrosoft.com
.Ganti
{App_to_enrich_ID}
dengan ID klien aplikasi Uji Saya.Setelah masuk, Anda akan disajikan dengan token yang didekodekan di
https://jwt.ms
. Validasi bahwa klaim dari Azure Function disajikan dalam token yang didekodekan, misalnya,dateOfBirth
.