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 Koneksi 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.
  • Aplikasi Azure Function dengan fungsi pemicu HTTP yang dikonfigurasi untuk peristiwa mulai penerbitan token. Jika Anda tidak memilikinya, ikuti langkah-langkah dalam membuat fungsi pemicu HTTP peristiwa mulai penerbitan token.
  • 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

  1. Masuk ke portal Azure setidaknya sebagai Administrator Aplikasi dan Administrator Autentikasi.
  2. Cari dan pilih MICROSOFT Entra ID dan pilih Aplikasi perusahaan.
  3. Pilih Ekstensi autentikasi kustom, lalu pilih Buat ekstensi kustom.
  4. Di Dasar, pilih TokenIssuanceMulai jenis peristiwa dan pilih Berikutnya.
  5. 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.
    • Deskripsi - Deskripsi untuk ekstensi autentikasi kustom Anda.
  6. Pilih Selanjutnya.
  7. Di Autentikasi API, pilih opsi Buat pendaftaran aplikasi baru untuk membuat pendaftaran aplikasi yang mewakili aplikasi fungsi Anda.
  8. Beri nama aplikasi, misalnya API peristiwa autentikasi Azure Functions.
  9. Pilih Selanjutnya.
  10. 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
  11. Pilih Berikutnya, lalu Buat, yang mendaftarkan ekstensi autentikasi kustom dan pendaftaran aplikasi terkait.
  12. Perhatikan ID Aplikasi di bawah Autentikasi API, yang diperlukan untuk mengatur variabel lingkungan di aplikasi Azure Function Anda.

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.

  1. Buka halaman Gambaran Umum ekstensi autentikasi kustom baru Anda. Catat ID Aplikasi di bawah Autentikasi API, karena akan diperlukan saat menambahkan IdP.

  2. Di bawah Autentikasi API, pilih Berikan izin.

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

    Cuplikan layar yang memperlihatkan cara memberikan persetujuan admin.

Langkah 2: Mengonfigurasi aplikasi Koneksi OpenID 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 :

  1. Dari halaman Beranda di portal Azure, pilih ID Microsoft Entra.

  2. Pilih Pendaftaran aplikasi>Pendaftaran baru.

  3. Masukkan Nama untuk aplikasi. Misalnya, aplikasi Uji Saya.

  4. Di bawah Jenis akun yang didukung, pilih Hanya akun dalam direktori organisasi ini.

  5. Di menu dropdown Pilih platform di URI Pengalihan, pilih Web lalu masukkan https://jwt.ms di kotak teks URL.

  6. Pilih Daftar untuk menyelesaikan pendaftaran aplikasi.

    Cuplikan layar yang memperlihatkan cara memilih jenis akun yang didukung dan mengalihkan URI.

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

    Cuplikan layar yang memperlihatkan cara menyalin ID aplikasi.

2.2 Mengaktifkan alur implisit

Aplikasi pengujian jwt.ms menggunakan alur implisit. Aktifkan alur implisit dalam pendaftaran aplikasi Uji Saya:

  1. Di bagian Kelola, pilih Autentikasi.
  2. Di bagian Izin implisit dan alur hibrid, pilih kotak centang Token ID (digunakan untuk alur implisit dan hibrid).
  3. 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:

  1. Di pendaftaran aplikasi Uji Saya, di bawah Kelola, pilih Manifes.
  2. Dalam manifes, temukan acceptMappedClaims atribut , dan atur nilai ke true.
  3. Atur accessTokenAcceptedVersion ke 2.
  4. 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;

  1. Dari halaman Beranda di portal Azure, pilih ID Microsoft Entra.

  2. PilihAplikasi perusahaan, lalu di bawah Kelola, pilih Semua aplikasi. Temukan dan pilih Aplikasi Uji Saya dari daftar.

  3. Dari halaman Gambaran Umum aplikasi Uji Saya, navigasikan ke Kelola, dan pilih Akses menyeluruh.

  4. Di bawah Atribut & Klaim, pilih Edit.

    Cuplikan layar yang memperlihatkan cara mengonfigurasi klaim aplikasi.

  5. Perluas menu Pengaturan tingkat lanjut.

  6. Di samping Penyedia klaim kustom, pilih Konfigurasikan.

  7. Perluas kotak drop-down Penyedia klaim kustom, dan pilih peristiwa penerbitan Token yang Anda buat sebelumnya.

  8. Pilih Simpan.

Selanjutnya, tetapkan atribut dari penyedia klaim kustom, yang harus dikeluarkan ke dalam token sebagai klaim:

  1. Pilih Tambahkan klaim baru untuk menambahkan klaim baru. Berikan nama untuk klaim yang ingin Anda terbitkan, misalnya dateOfBirth.

  2. Di bawah Sumber, pilih Atribut, dan pilih customClaimsProvider.dateOfBirth dari kotak drop-down Atribut sumber.

    Cuplikan layar yang memperlihatkan cara menambahkan pemetaan klaim ke aplikasi Anda.

  3. Pilih Simpan.

  4. 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 Buka ID Koneksi.

4.1 Menggunakan IdP Microsoft Entra

Gunakan langkah-langkah berikut untuk menambahkan Microsoft Entra sebagai penyedia identitas ke aplikasi Azure Function Anda.

  1. Di portal Azure, temukan dan pilih aplikasi fungsi yang sebelumnya Anda terbitkan.

  2. Di bawah Pengaturan, pilih Autentikasi.

  3. Pilih Tambahkan Penyedia Identitas.

  4. Pilih Microsoft sebagai penyedia identitas.

  5. Pilih Workforce sebagai jenis penyewa.

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

  7. Masukkan URL penerbit berikut, https://login.microsoftonline.com/{tenantId}/v2.0, di mana {tenantId} adalah ID penyewa penyewa tenaga kerja Anda.

  8. Di bawah Permintaan yang tidak diabaikan, pilih HTTP 401 Tidak Sah sebagai Penyedia Identitas.

  9. Batalkan pilihan opsi Penyimpanan token .

  10. Pilih Tambahkan untuk menambahkan autentikasi ke Azure Function Anda.

    Cuplikan layar yang memperlihatkan cara menambahkan autentikasi ke aplikasi fungsi Anda saat berada di penyewa tenaga kerja.

4.2 Menggunakan OpenID Koneksi idP

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

  1. Dari halaman Beranda portal Azure, pilih ID> Microsoft Entra Pendaftaran aplikasi.
  2. Pilih pendaftaran aplikasi API peristiwa autentikasi Azure Functions yang Anda buat sebelumnya.
  3. Pilih Sertifikat & rahasia>Rahasia>klien Rahasia klien baru.
  4. Pilih kedaluwarsa untuk rahasia atau tentukan masa pakai kustom, tambahkan deskripsi, dan pilih Tambahkan.
  5. Catat nilai rahasia untuk digunakan dalam kode aplikasi klien Anda. Nilai rahasia ini tidak pernah ditampilkan lagi setelah Anda meninggalkan halaman ini.

Tambahkan IdP Koneksi OpenID ke aplikasi Azure Function Anda.

  1. Temukan dan pilih aplikasi fungsi yang sebelumnya Anda terbitkan.

  2. Di bawah Pengaturan, pilih Autentikasi.

  3. Pilih Tambahkan Penyedia Identitas.

  4. Pilih OpenID Koneksi sebagai idP.

  5. Berikan nama, seperti ID Contoso Microsoft Entra.

  6. 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
    
  7. Di bawah Pendaftaran aplikasi, masukkan ID aplikasi (ID klien) dari pendaftaran aplikasi API peristiwa autentikasi Azure Functions yang Anda buat sebelumnya.

  8. Kembali ke Azure Function, di bawah Pendaftaran aplikasi, masukkan Rahasia klien.

  9. Batalkan pilihan opsi Penyimpanan token .

  10. Pilih Tambahkan untuk menambahkan IdP Koneksi OpenID.

Langkah 5: Uji aplikasi

Untuk menguji penyedia klaim kustom Anda, ikuti langkah-langkah berikut:

  1. 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
    
  2. Ganti {tenantId} dengan ID penyewa, nama penyewa, atau salah satu nama domain terverifikasi Anda. Contohnya,contoso.onmicrosoft.com.

  3. Ganti {App_to_enrich_ID} dengan ID klien aplikasi Uji Saya.

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

Lihat juga