Autentikasi kustom di Azure Static Web Apps
Azure Static Web Apps menyediakan autentikasi terkelola yang menggunakan pendaftaran penyedia yang dikelola oleh Azure. Untuk memungkinkan fleksibilitas yang lebih terhadap pendaftaran, Anda dapat mengganti default dengan pendaftaran kustom.
Autentikasi kustom juga memungkinkan Anda mengonfigurasi penyedia kustom yang mendukung OpenID Connect. Konfigurasi ini memungkinkan pendaftaran beberapa penyedia eksternal.
Menggunakan pendaftaran kustom apa pun akan menonaktifkan semua penyedia yang telah dikonfigurasi sebelumnya.
Catatan
Autentikasi kustom hanya tersedia dalam paket Azure Static Web Apps Standard.
Mengonfigurasi penyedia identitas kustom
Penyedia identitas kustom dikonfigurasi di bagian auth dari file konfigurasi.
Untuk menghindari menempatkan rahasia dalam kontrol sumber, konfigurasi memeriksa pengaturan aplikasi untuk mencari nama yang cocok dalam file konfigurasi. Anda juga dapat memilih untuk menyimpan rahasia Anda di Azure Key Vault.
Untuk membuat pendaftaran, mulailah dengan membuat pengaturan aplikasi berikut:
| Nama Pengaturan | Nilai |
|---|---|
AZURE_CLIENT_ID |
ID Aplikasi (klien) pendaftaran aplikasi Azure Active Directory. |
AZURE_CLIENT_SECRET |
Rahasia klien pendaftaran Aplikasi Azure Active Directory. |
Selanjutnya, gunakan sampel berikut untuk mengonfigurasi penyedia di file konfigurasi.
Penyedia Azure Active Directory tersedia dalam dua versi yang berbeda. Versi 1 secara eksplisit mendefinisikan userDetailsClaim, yang memungkinkan payload agar menampilkan informasi pengguna. Sebaliknya, versi 2 menampilkan informasi pengguna secara default, dan ditunjuk oleh v2.0 di URL openIdIssuer.
Versi 1 Azure Active Directory
{
"auth": {
"identityProviders": {
"azureActiveDirectory": {
"userDetailsClaim": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name",
"registration": {
"openIdIssuer": "https://login.microsoftonline.com/<TENANT_ID>",
"clientIdSettingName": "AZURE_CLIENT_ID",
"clientSecretSettingName": "AZURE_CLIENT_SECRET"
}
}
}
}
}
Pastikan untuk mengganti <TENANT_ID> dengan ID penyewa Azure Active Directory Anda.
Versi 2 Azure Active Directory
{
"auth": {
"identityProviders": {
"azureActiveDirectory": {
"registration": {
"openIdIssuer": "https://login.microsoftonline.com/<TENANT_ID>/v2.0",
"clientIdSettingName": "AZURE_CLIENT_ID",
"clientSecretSettingName": "AZURE_CLIENT_SECRET"
}
}
}
}
}
Pastikan untuk mengganti <TENANT_ID> dengan ID penyewa Azure Active Directory Anda.
Untuk informasi selengkapnya tentang cara mengonfigurasi Azure Active Directory, lihat dokumentasi Autentikasi/Otorisasi App Service aktif menggunakan pendaftaran yang ada.
Untuk mengonfigurasi akun mana yang dapat masuk, lihat Mengubah akun yang didukung oleh aplikasi dan Membatasi aplikasi Azure AD Anda ke sekumpulan pengguna di penyewa Azure AD.
Catatan
Sementara bagian konfigurasi untuk Azure Active Directory adalah azureActiveDirectory, platform memberikan alias pada konfigurasi tersebut ke aad dalam URL untuk masuk, keluar dan membersihkan informasi pengguna. Lihat bagian autentikasi dan otorisasi untuk informasi selengkapnya.
Panggilan balik autentikasi
Penyedia identitas memerlukan URL pengalihan untuk menyelesaikan permintaan masuk atau keluar. Sebagian besar penyedia mengharuskan Anda menambahkan URL panggilan balik ke daftar izin. Titik akhir berikut ini tersedia sebagai tujuan pengalihan.
| Jenis | Pola URL |
|---|---|
| Masuk | https://<YOUR_SITE>/.auth/login/<PROVIDER_NAME_IN_CONFIG>/callback |
| Keluar | https://<YOUR_SITE>/.auth/logout/<PROVIDER_NAME_IN_CONFIG>/callback |
Jika Anda menggunakan Azure Active Directory, gunakan aad sebagai nilai untuk tempat penampung <PROVIDER_NAME_IN_CONFIG>.
Catatan
URL ini disediakan oleh Azure Static Web Apps untuk menerima respons dari penyedia autentikasi, Anda tidak perlu membuat halaman di rute ini.
Rincian masuk, keluar, dan pengguna
Untuk menggunakan penyedia identitas kustom, gunakan pola URL berikut.
| Tindakan | Pola |
|---|---|
| Masuk | /.auth/login/<PROVIDER_NAME_IN_CONFIG> |
| Keluar | /.auth/logout |
| Detail pengguna | /.auth/me |
| Menghapus detail pengguna secara menyeluruh | /.auth/purge/<PROVIDER_NAME_IN_CONFIG> |
Jika Anda menggunakan Azure Active Directory, gunakan aad sebagai nilai untuk tempat penampung <PROVIDER_NAME_IN_CONFIG>.