Bagikan melalui


Membuat ekstensi autentikasi kustom untuk pengumpulan atribut memulai dan mengirimkan peristiwa (pratinjau)

Berlaku untuk: Lingkaran putih dengan simbol X abu-abu. Penyewa Tenaga Kerja Penyewa Lingkaran hijau dengan simbol tanda centang putih. eksternal (pelajari lebih lanjut)

Artikel ini menjelaskan cara memperluas pengalaman pendaftaran pengguna di MICROSOFT Entra External ID untuk pelanggan. Dalam alur pengguna pendaftaran pelanggan, pendengar peristiwa dapat digunakan untuk memperluas proses pengumpulan atribut sebelum pengumpulan atribut dan pada saat pengiriman atribut:

  • Peristiwa OnAttributeCollectionStart terjadi di awal langkah pengumpulan atribut, sebelum halaman pengumpulan atribut dirender. Anda dapat menambahkan tindakan seperti mengisi nilai sebelumnya dan menampilkan kesalahan pemblokiran.

    Tip

    Coba sekarang

    Untuk mencoba fitur ini, buka demo Woodgrove Groceries dan mulai kasus penggunaan "Atribut pendaftaran prepopulasi".

  • Peristiwa OnAttributeCollectionSubmit terjadi setelah pengguna memasukkan dan mengirimkan atribut. Anda dapat menambahkan tindakan seperti memvalidasi atau memodifikasi entri pengguna.

    Tip

    Coba sekarang

    Untuk mencoba fitur ini, buka demo Woodgrove Groceries dan mulai kasus penggunaan "Validasi atribut pendaftaran", atau kasus penggunaan "Blokir pengguna agar tidak melanjutkan proses pendaftaran".

Selain membuat ekstensi autentikasi kustom untuk pengumpulan atribut memulai dan mengirimkan peristiwa, Anda perlu membuat REST API yang menentukan tindakan alur kerja yang harus diambil untuk setiap peristiwa. Anda dapat menggunakan bahasa pemrograman, kerangka kerja, dan lingkungan hosting apa pun untuk membuat dan menghosting REST API Anda. Artikel ini menunjukkan cara cepat untuk mulai menggunakan C# Azure Function. Dengan Azure Functions, Anda menjalankan kode di lingkungan tanpa server tanpa harus terlebih dahulu membuat komputer virtual (VM) atau menerbitkan aplikasi web.

Prasyarat

  • Untuk menggunakan layanan Azure, termasuk Azure Functions, Anda memerlukan langganan Azure. Jika Anda tidak memiliki akun Azure yang sudah ada, Anda dapat mendaftar untuk uji coba gratis atau menggunakan manfaat Langganan Visual Studio saat membuat akun.
  • Alur pengguna pendaftaran dan masuk.

Langkah 1: Membuat REST API ekstensi autentikasi kustom (aplikasi Azure Function)

Tip

Langkah-langkah dalam artikel ini mungkin sedikit berbeda berdasarkan portal tempat Anda memulai.

Dalam langkah ini, Anda membuat API fungsi pemicu HTTP menggunakan Azure Functions. API fungsi adalah sumber logika bisnis untuk alur pengguna Anda. Setelah membuat fungsi pemicu, Anda dapat mengonfigurasinya untuk salah satu peristiwa berikut:

  1. Masuk ke portal Azure dengan akun administrator Anda.

  2. Pada menu portal Microsoft Azure atau halaman Beranda, pilih Buat sumber daya.

  3. Cari dan pilih Aplikasi Fungsi dan pilih Buat.

  4. Di halaman Dasar, gunakan pengaturan aplikasi fungsi seperti ditentukan dalam tabel di bawah:

    Pengaturan Nilai yang disarankan Deskripsi
    Langganan Langganan Anda Langganan tempat aplikasi fungsi baru akan dibuat.
    Grup Sumber Daya myResourceGroup Pilih dan grup sumber daya yang sudah ada, atau beri nama untuk grup baru tempat Anda akan membuat aplikasi fungsi.
    Nama Aplikasi Fungsi Nama unik secara global Nama yang mengidentifikasi aplikasi fungsi baru. Karakter yang valid a-z (peka huruf besar dan kecil), 0-9, dan -.
    Mempublikasikan Kode Opsi untuk menerbitkan file kode atau sebuah kontainer Docker. Untuk tutorial ini, pilih Kode.
    Tumpukan runtime .NET Bahasa pemrograman pilihan Anda. Untuk tutorial ini, pilih .NET.
    Versi 6 (LTS) Dalam proses Versi runtime .NET. Dalam proses menandakan bahwa Anda dapat membuat dan memodifikasi fungsi di portal, yang direkomendasikan untuk panduan ini
    Wilayah Wilayah pilihan Pilih wilayah yang ada di dekat Anda atau di dekat layanan lain yang dapat diakses oleh fungsi Anda.
    Sistem Operasi Windows Sistem operasi telah dipilih sebelumnya untuk Anda berdasarkan pilihan tumpukan runtime Anda.
    Jenis paket Konsumsi (Tanpa Server) Paket hosting yang menentukan cara sumber daya dialokasikan ke aplikasi fungsi Anda.
  5. Pilih Tinjau + buat untuk meninjau pilihan konfigurasi aplikasi lalu pilih Buat. Penyebaran membutuhkan waktu beberapa menit.

  6. Setelah disebarkan, pilih Buka sumber daya untuk melihat aplikasi fungsi baru Anda.

1.1 Membuat fungsi pemicu HTTP

Sekarang setelah Anda membuat aplikasi Azure Function, Anda membuat fungsi pemicu HTTP untuk tindakan yang ingin Anda panggil dengan permintaan HTTP. Pemicu HTTP dirujuk dan dipanggil oleh ekstensi autentikasi kustom Microsoft Entra Anda.

  1. Dalam halaman Gambaran Umum aplikasi fungsi Anda, pilih panel Fungsi dan pilih Buat fungsi di bawah Buat di portal Azure.
  2. Di jendela Buat Fungsi , biarkan properti Lingkungan pengembangan sebagai Kembangkan di portal. Di bawah Templat, pilih pemicu HTTP.
  3. Di bawah Detail templat, masukkan CustomAuthenticationExtensionsAPI untuk properti Fungsi Baru.
  4. Untuk tingkat Otorisasi, pilih Fungsi.
  5. Pilih Buat.

1.2 Mengonfigurasi pemicu HTTP untuk OnAttributeCollectionStart

  1. Dari menu, pilih Kode + Uji.
  2. Pilih tab di bawah ini untuk skenario yang ingin Anda terapkan: Lanjutkan, Blokir, atau SetPrefillValues. Ganti kode dengan cuplikan kode yang disediakan.
  3. Setelah Anda mengganti kode, dari menu atas, pilih Dapatkan Url Fungsi, dan salin URL. Anda menggunakan URL ini di Langkah 2: Membuat dan mendaftarkan ekstensi autentikasi kustom untuk Url Target.

Gunakan pemicu HTTP ini untuk memungkinkan pengguna melanjutkan alur pendaftaran jika tidak ada tindakan lebih lanjut yang diperlukan.

#r "Newtonsoft.Json"

using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
using System.Text;

public static async Task<object> Run(HttpRequest req, ILogger log)
{
    log.LogInformation("C# HTTP trigger function processed a request.");

    string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
    dynamic request = JsonConvert.DeserializeObject(requestBody);


    var actions = new List<ContinueWithDefaultBehavior>{
        new ContinueWithDefaultBehavior { type = "microsoft.graph.attributeCollectionStart.continueWithDefaultBehavior"}
    };

    var dataObject = new Data {
        type = "microsoft.graph.onAttributeCollectionStartResponseData",
        actions= actions
    };

    dynamic response = new ResponseObject {
        data = dataObject
    };

    // Send the response
    return response;
}

public class ResponseObject
{
    public Data data { get; set; }
}

[JsonObject]
public class Data {
    [JsonProperty("@odata.type")]
    public string type { get; set; }
    public List<ContinueWithDefaultBehavior> actions { get; set; }
}

[JsonObject]
public class ContinueWithDefaultBehavior {
    [JsonProperty("@odata.type")]
    public string type { get; set; }
}

1.3 Mengonfigurasi pemicu HTTP untuk OnAttributeCollectionSubmit

  1. Dari menu, pilih Kode + Uji.
  2. Pilih tab di bawah ini untuk skenario yang ingin Anda terapkan: Lanjutkan, Blokir, Ubah nilai, atau Kesalahan validasi. Ganti kode dengan cuplikan kode yang disediakan.
  3. Setelah Anda mengganti kode, dari menu atas, pilih Dapatkan Url Fungsi, dan salin URL. Anda menggunakan URL ini di Langkah 2: Membuat dan mendaftarkan ekstensi autentikasi kustom untuk Url Target.

Gunakan pemicu HTTP ini untuk memungkinkan pengguna melanjutkan alur pendaftaran jika tidak ada tindakan lebih lanjut yang diperlukan.

#r "Newtonsoft.Json"

using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
using System.Text;

public static async Task<object> Run(HttpRequest req, ILogger log)
{
    log.LogInformation("C# HTTP trigger function processed a request.");

    string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
    dynamic request = JsonConvert.DeserializeObject(requestBody);
    
    var actions = new List<ContinueWithDefaultBehavior>{
        new ContinueWithDefaultBehavior { type = "microsoft.graph.attributeCollectionSubmit.continueWithDefaultBehavior"}
    };
						
    var dataObject = new Data {
        type = "microsoft.graph.onAttributeCollectionSubmitResponseData",
        actions= actions
    };
	    
	dynamic response = new ResponseObject {
        data = dataObject
    };

    // Send the response
    return response;
}

public class ResponseObject
{
    public Data data { get; set; }
}

[JsonObject]
public class Data {
    [JsonProperty("@odata.type")]
    public string type { get; set; }
    
    public List<ContinueWithDefaultBehavior> actions { get; set; }
}

[JsonObject]
public class ContinueWithDefaultBehavior {
    [JsonProperty("@odata.type")]
	public string type { get; set; }
}

Langkah 2: Membuat dan mendaftarkan ekstensi autentikasi kustom

Dalam langkah ini, Anda mendaftarkan ekstensi autentikasi kustom yang digunakan oleh ID Microsoft Entra untuk memanggil fungsi Azure Anda. Ekstensi autentikasi kustom berisi informasi tentang titik akhir REST API Anda, pengumpulan atribut memulai dan mengirimkan tindakan yang diuraikan dari REST API Anda, dan cara mengautentikasi ke REST API Anda.

  1. Masuk ke pusat admin Microsoft Entra sebagai setidaknya Administrator Aplikasi dan Administrator Autentikasi.

  2. Telusuri ke >Identitas Eksternal Identitas Identitas>Kustom ekstensi autentikasi.

  3. Pilih Buat ekstensi kustom.

  4. Di Dasar-dasar, pilih peristiwa AttributeCollectionStart atau peristiwa AttributeCollectionSubmit , lalu pilih Berikutnya. Pastikan bahwa ini cocok dengan konfigurasi di langkah sebelumnya.

  5. Di Konfigurasi Titik Akhir, isi properti berikut ini:

    • Nama - Nama untuk ekstensi autentikasi kustom Anda. Misalnya, Pada Peristiwa Pengumpulan Atribut.
    • Url Target - {Function_Url} URL Fungsi Azure Anda.
    • 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. Pilih Buat, yang membuat ekstensi autentikasi kustom dan pendaftaran aplikasi terkait.

Setelah ekstensi autentikasi kustom Anda dibuat, berikan persetujuan aplikasi ke aplikasi terdaftar, yang memungkinkan ekstensi autentikasi kustom untuk mengautentikasi ke API Anda.

  1. Telusuri ke Identitas>Eksternal Identitas Identitas>Kustom ekstensi autentikasi (Pratinjau).
  2. Pilih ekstensi autentikasi kustom Anda dari daftar.
  3. Pada tab Gambaran Umum , pilih tombol Beri izin untuk memberikan persetujuan admin ke aplikasi terdaftar. Ekstensi autentikasi kustom menggunakan client_credentials untuk mengautentikasi ke Aplikasi Fungsi Azure menggunakan Receive custom authentication extension HTTP requests izin. Pilih Terima.

Langkah 3: Menambahkan ekstensi autentikasi kustom ke alur pengguna

Sekarang Anda dapat mengaitkan ekstensi autentikasi kustom dengan satu atau beberapa alur pengguna Anda.

Catatan

Jika Anda perlu membuat alur pengguna, ikuti langkah-langkah dalam Membuat alur pengguna pendaftaran dan masuk untuk pelanggan.

3.1 Menambahkan ekstensi autentikasi kustom ke alur pengguna yang ada

  1. Masuk ke pusat admin Microsoft Entra sebagai setidaknya Administrator Aplikasi dan Administrator Autentikasi

  2. Jika Anda memiliki akses ke beberapa penyewa, gunakan ikon Pengaturan di menu atas untuk beralih ke penyewa eksternal Anda.

  3. Telusuri ke >Identitas Eksternal Identitas>Alur pengguna.

  4. Memilih alur pengguna dari daftar.

  5. Pilih Ekstensi autentikasi kustom.

  6. Pada halaman Ekstensi autentikasi kustom, Anda dapat mengaitkan ekstensi autentikasi kustom Anda dengan dua langkah berbeda dalam alur pengguna Anda:

    • Sebelum mengumpulkan informasi dari pengguna dikaitkan dengan peristiwa OnAttributeCollectionStart . Pilih pensil edit. Hanya ekstensi kustom yang dikonfigurasi untuk peristiwa OnAttributeCollectionStart yang akan ditampilkan. Pilih aplikasi yang Anda konfigurasi untuk peristiwa mulai pengumpulan atribut, lalu pilih Pilih.
    • Saat pengguna mengirimkan informasi mereka dikaitkan dengan peristiwa OnAttributeCollectionSubmit . hanya ekstensi kustom yang dikonfigurasi untuk peristiwa OnAttributeCollectionSubmit yang akan ditampilkan. Pilih aplikasi yang Anda konfigurasi untuk peristiwa pengiriman koleksi atribut, lalu pilih Pilih.
  7. Pastikan aplikasi yang tercantum di samping kedua langkah pengumpulan atribut sudah benar.

  8. Pilih ikon Simpan.

Langkah 4: Uji aplikasi

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

Ikuti langkah-langkah berikut untuk mendaftarkan aplikasi web jwt.ms :

4.1 Mendaftarkan aplikasi web jwt.ms

  1. Masuk ke pusat admin Microsoft Entra sebagai setidaknya Administrator Aplikasi.
  2. Telusuri pendaftaran Aplikasi Aplikasi>Identitas>.
  3. Pilih Pendaftaran baru.
  4. Masukkan Nama untuk aplikasi. Misalnya, aplikasi Uji Saya.
  5. Di bawah Jenis akun yang didukung, pilih Hanya akun dalam direktori organisasi ini.
  6. Di menu dropdown Pilih platform di URI Pengalihan, pilih Web lalu masukkan https://jwt.ms di kotak teks URL.
  7. Pilih Daftar untuk menyelesaikan pendaftaran aplikasi.

4.2 Dapatkan ID aplikasi

Di pendaftaran aplikasi Anda, di bawah Gambaran Umum, salin ID Aplikasi (klien). ID aplikasi disebut sebagai di langkah selanjutnya <client_id> . Di Microsoft Graph, ini direferensikan oleh properti appId .

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

Langkah 5: 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.

Catatan

Jika aplikasi fungsi Azure dihosting di penyewa Azure yang berbeda dari penyewa tempat ekstensi autentikasi kustom Anda terdaftar, lewati ke 5.1 Menggunakan OpenID Koneksi langkah penyedia identitas.

5.1 Menambahkan IdP ke Azure Function Anda

  1. Masuk ke portal Azure.

  2. Navigasikan dan pilih aplikasi fungsi yang sebelumnya Anda terbitkan.

  3. Pilih Autentikasi pada menu di sebelah kiri.

  4. Pilih Tambahkan Penyedia Identitas.

  5. Pilih Microsoft sebagai penyedia identitas.

  6. Pilih Pelanggan sebagai jenis penyewa.

  7. Di bawah Pendaftaran aplikasi, masukkan client_idpendaftaran aplikasi API peristiwa autentikasi Azure Functions yang sebelumnya Anda buat saat mendaftarkan penyedia klaim kustom.

  8. Untuk URL Pengeluar Sertifikat, masukkan URL https://{domainName}.ciamlogin.com/{tenant_id}/v2.0berikut , di mana

    • {domainName} adalah nama domain penyewa eksternal Anda.
    • {tenantId} adalah ID penyewa penyewa eksternal Anda. Ekstensi autentikasi kustom Anda harus didaftarkan di sini.
  9. Di bawah Permintaan yang tidak diabaikan, pilih HTTP 401 Tidak Sah sebagai Penyedia Identitas.

  10. Batalkan pilihan opsi Penyimpanan token .

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

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

5.2 Menggunakan OpenID Koneksi IdP

Jika Anda mengonfigurasi Langkah 5: Lindungi Azure Function Anda, 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:

  1. Masuk ke portal Azure, lalu navigasikan dan pilih aplikasi fungsi yang sebelumnya Anda terbitkan.

  2. Pilih Autentikasi pada menu di sebelah kiri.

  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 sebelumnya Anda buat.

  8. Di pusat admin Microsoft Entra:

    1. Pilih pendaftaran aplikasi API peristiwa autentikasi Azure Functions yang sebelumnya Anda buat.
    2. Pilih Sertifikat & rahasia>Rahasia>klien Rahasia klien baru.
    3. Tambahkan deskripsi untuk rahasia klien Anda.
    4. Pilih kedaluwarsa untuk rahasia atau tentukan masa pakai kustom.
    5. Pilih Tambahkan.
    6. Catat nilai rahasia untuk digunakan dalam kode aplikasi klien Anda. Nilai rahasia ini tidak pernah ditampilkan lagi setelah Anda meninggalkan halaman ini.
  9. Kembali ke Azure Function, di bawah Pendaftaran aplikasi, masukkan Rahasia klien.

  10. Batalkan pilihan opsi Penyimpanan token .

  11. Pilih Tambahkan untuk menambahkan IdP Koneksi OpenID.

Langkah 6: Uji aplikasi

Untuk menguji ekstensi autentikasi kustom Anda, ikuti langkah-langkah berikut:

  1. Buka browser privat baru dan navigasikan ke URL berikut:

    https://<domainName>.ciamlogin.com/<tenant_id>/oauth2/v2.0/authorize?client_id=<client_id>&response_type=code+id_token&redirect_uri=https://jwt.ms&scope=openid&state=12345&nonce=12345
    
    • Ganti <domainName> dengan nama penyewa eksternal Anda, dan ganti <tenant-id> dengan ID penyewa eksternal Anda.
    • Ganti <client_id> dengan ID untuk aplikasi yang Anda tambahkan ke alur pengguna.
  2. Setelah masuk, Anda akan disajikan dengan token yang didekodekan di https://jwt.ms.

Langkah berikutnya