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.
Penting
Berlaku mulai 1 Mei 2025, Azure AD B2C tidak akan lagi tersedia untuk dibeli untuk pelanggan baru. Pelajari lebih lanjut di FAQ kami.
Azure Active Directory B2C (Azure AD B2C) mendukung autentikasi untuk berbagai arsitektur aplikasi modern. Semuanya didasarkan pada protokol standar industri OAuth 2.0 atau OpenID Connect. Artikel ini menjelaskan jenis aplikasi yang dapat Anda bangun, independen dari bahasa atau platform yang Anda sukai. Ini juga membantu Anda memahami skenario tingkat tinggi sebelum Anda mulai membangun aplikasi.
Setiap aplikasi yang menggunakan Azure AD B2C harus terdaftar di penyewa Azure AD B2C Anda dengan menggunakan portal Microsoft Azure. Proses pendaftaran aplikasi mengumpulkan dan menetapkan nilai, seperti:
- ID Aplikasi yang secara unik mengidentifikasi aplikasi Anda.
- URL Balasan yang dapat digunakan untuk mengarahkan respons kembali ke aplikasi Anda.
Setiap permintaan yang dikirim ke Azure AD B2C menentukan alur pengguna (kebijakan bawaan) atau kebijakan kustom yang mengontrol perilaku Azure AD B2C. Kedua jenis kebijakan memungkinkan Anda membuat serangkaian pengalaman pengguna yang sangat dapat disesuaikan.
Interaksi setiap aplikasi mengikuti pola tingkat tinggi yang serupa:
- Aplikasi mengarahkan pengguna ke titik akhir v2.0 untuk menjalankan kebijakan.
- Pengguna menyelesaikan kebijakan sesuai dengan definisi kebijakan.
- Aplikasi menerima token keamanan dari titik akhir v2.0.
- Aplikasi ini menggunakan token keamanan untuk mengakses informasi yang dilindungi atau sumber daya yang dilindungi.
- Server sumber daya memvalidasi token keamanan untuk memverifikasi bahwa akses dapat diberikan.
- Aplikasi secara berkala me-refresh token keamanan.
Langkah-langkah ini dapat sedikit berbeda berdasarkan jenis aplikasi yang Anda bangun.
Aplikasi web
Untuk aplikasi web (termasuk .NET, PHP, Java, Ruby, Python, dan Node.js) yang dihosting di server web dan diakses melalui browser, Azure AD B2C mendukung OpenID Connect untuk semua pengalaman pengguna. Dalam implementasi OpenID Connect Azure AD B2C, aplikasi web Anda memulai pengalaman pengguna dengan mengeluarkan permintaan autentikasi ke ID Microsoft Entra. Hasil dari permintaan adalah id_token. Token keamanan ini mewakili identitas pengguna. Ini juga menyediakan informasi tentang pengguna dalam bentuk klaim:
// Partial raw id_token
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImtyaU1QZG1Cd...
// Partial content of a decoded id_token
{
"name": "John Smith",
"email": "john.smith@gmail.com",
"oid": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
...
}
Pelajari selengkapnya tentang jenis token dan klaim yang tersedia untuk aplikasi di referensi token Azure AD B2C.
Dalam aplikasi web, setiap eksekusi kebijakan mengambil langkah-langkah tingkat tinggi ini:
- Pengguna menelusuri ke aplikasi web.
- Aplikasi web mengalihkan pengguna ke Azure AD B2C yang menunjukkan kebijakan untuk dijalankan.
- Pengguna menyelesaikan kebijakan.
- Azure AD B2C mengembalikan
id_tokenke browser. -
id_tokendiposting ke URI pengalihan. -
id_tokendivalidasi dan cookie sesi ditetapkan. - Halaman aman dikembalikan ke pengguna.
Validasi id_token dengan menggunakan kunci penandatanganan publik yang diterima dari ID Microsoft Entra cukup untuk memverifikasi identitas pengguna. Proses ini juga mengatur cookie sesi yang dapat digunakan untuk mengidentifikasi pengguna pada permintaan halaman berikutnya.
Untuk melihat skenario ini beraksi, coba salah satu sampel kode masuk aplikasi web di bagian Memulai kami.
Selain memfasilitasi masuk sederhana, aplikasi web mungkin juga perlu mengakses layanan web back-end. Dalam hal ini, aplikasi web dapat melakukan alur OpenID Connect yang sedikit berbeda dan memperoleh token dengan menggunakan kode otorisasi dan menyegarkan token. Skenario ini digambarkan di bagian API Web berikut.
Aplikasi satu halaman
Banyak aplikasi web modern dibangun sebagai aplikasi satu halaman sisi klien ("SPAs"). Pengembang menulisnya dengan menggunakan JavaScript atau kerangka kerja SPA seperti Angular, Vue, atau React. Aplikasi ini berjalan di browser web dan memiliki karakteristik autentikasi yang berbeda dari aplikasi web sisi server tradisional.
Azure AD B2C menyediakan dua opsi untuk mengaktifkan aplikasi satu halaman untuk memasukkan pengguna dan mendapatkan token untuk mengakses layanan back-end atau API web:
Alur kode otorisasi (dengan PKCE)
Alur kode Otorisasi OAuth 2.0 (dengan PKCE) memungkinkan aplikasi untuk bertukar kode otorisasi dengan token ID untuk mewakili pengguna terautentikasi dan Token akses yang diperlukan untuk memanggil API yang dilindungi. Selain itu, ini mengembalikan token Refresh yang menyediakan akses jangka panjang ke sumber daya atas nama pengguna tanpa memerlukan interaksi dengan pengguna tersebut.
Kami merekomendasikan pendekatan ini. Memiliki token refresh seumur hidup terbatas membantu aplikasi Anda beradaptasi dengan batasan privasi cookie browser modern, seperti Safari ITP.
Untuk memanfaatkan alur ini, aplikasi Anda dapat menggunakan pustaka autentikasi yang mendukungnya, seperti MSAL.js 2.x.
Aliran hibah implisit
Beberapa pustaka, seperti MSAL.js 1.x, hanya mendukung alur pemberian implisit atau aplikasi Anda diimplementasikan untuk menggunakan alur implisit. Dalam kasus ini, Azure AD B2C mendukung alur implisit OAuth 2.0. Alur pemberian implisit memungkinkan aplikasi untuk mendapatkan token ID dan Akses . Tidak seperti alur kode otorisasi, alur pemberian implisit tidak mengembalikan token Refresh.
Alur autentikasi ini tidak menyertakan skenario aplikasi yang menggunakan kerangka kerja JavaScript lintas platform seperti Electron dan React-Native. Skenario tersebut memerlukan kemampuan lebih lanjut untuk interaksi dengan platform asli.
Peringatan
Microsoft menyarankan Agar Anda tidak menggunakan alur pemberian implisit. Cara yang direkomendasikan untuk mendukung SPAs adalah alur kode Otorisasi OAuth 2.0 (dengan PKCE). Konfigurasi tertentu dari alur ini membutuhkan tingkat kepercayaan yang sangat tinggi dalam aplikasi, dan membawa risiko yang tidak ada dalam alur lain. Anda hanya boleh menggunakan alur ini ketika alur lain yang lebih aman tidak memungkinkan. Untuk informasi selengkapnya, lihat masalah keamanan dengan alur pemberian implisit.
Web API
Anda dapat menggunakan Azure AD B2C untuk mengamankan layanan web seperti API web RESTful aplikasi Anda. API Web dapat menggunakan OAuth 2.0 untuk mengamankan data mereka, dengan mengautentikasi permintaan HTTP masuk menggunakan token. Pemanggil API web menambahkan token di header otorisasi permintaan HTTP:
GET /api/items HTTP/1.1
Host: www.mywebapi.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6...
Accept: application/json
...
API web kemudian dapat menggunakan token untuk memverifikasi identitas pemanggil API dan untuk mengekstrak informasi tentang pemanggil dari klaim yang dikodekan dalam token. Pelajari selengkapnya tentang jenis token dan klaim yang tersedia untuk aplikasi di referensi token Azure AD B2C.
API web dapat menerima token dari banyak jenis klien, termasuk aplikasi web, aplikasi desktop dan seluler, aplikasi satu halaman, daemon sisi server, dan API web lainnya. Berikut adalah contoh alur lengkap untuk aplikasi web yang memanggil API web:
- Aplikasi web menjalankan kebijakan dan pengguna menyelesaikan pengalaman pengguna.
- Azure AD B2C mengembalikan (OpenID Connect)
id_tokendan kode otorisasi ke browser. - Browser memposting
id_tokendan kode otorisasi ke URI pengalihan. - Server web memvalidasi
id_tokendan mengatur cookie sesi. - Server web meminta Azure AD B2C untuk sebuah
access_tokendengan menyediakan kode otorisasi, ID klien aplikasi, dan kredensial klien. -
access_tokendanrefresh_tokendikembalikan ke server web. - API web dipanggil dengan
access_tokendi header otorisasi. - API web melakukan validasi token.
- Data aman dikembalikan ke aplikasi web.
Untuk mempelajari selengkapnya tentang kode otorisasi, token refresh, dan langkah-langkah untuk mendapatkan token, baca tentang protokol OAuth 2.0.
Untuk mempelajari cara mengamankan API web dengan menggunakan Azure AD B2C, lihat tutorial API web di bagian Memulai kami.
Aplikasi seluler dan aplikasi asli
Aplikasi yang diinstal pada perangkat, seperti aplikasi seluler dan desktop, sering kali perlu mengakses layanan back-end atau API web atas nama pengguna. Anda dapat menambahkan pengalaman manajemen identitas yang disesuaikan ke aplikasi asli Anda dan memanggil layanan back-end dengan aman menggunakan Azure AD B2C dan alur kode otorisasi OAuth 2.0.
Dalam alur ini, aplikasi menjalankan kebijakan dan menerima authorization_code dari ID Microsoft Entra setelah pengguna menyelesaikan kebijakan.
authorization_code mewakili izin aplikasi untuk memanggil layanan back-end atas nama pengguna yang saat ini masuk. Aplikasi kemudian dapat menukar authorization_code di latar belakang dengan access_token dan refresh_token. Aplikasi dapat menggunakan access_token untuk mengautentikasi ke API web back-end dalam permintaan HTTP. Ini juga dapat menggunakan refresh_token untuk mendapatkan access_token yang baru ketika access_token yang lama kedaluwarsa.
Aplikasi sisi daemon/server
Aplikasi yang berisi proses jangka panjang atau yang beroperasi tanpa kehadiran pengguna juga memerlukan cara untuk mengakses sumber daya aman seperti API web. Aplikasi ini dapat mengautentikasi dan mendapatkan token dengan menggunakan identitas mereka (bukan identitas yang didelegasikan pengguna) dan dengan menggunakan alur kredensial klien OAuth 2.0. Alur kredensial klien tidak sama dengan aliran atas nama dan aliran atas nama tidak boleh digunakan untuk autentikasi server-ke-server.
Untuk Azure AD B2C, alur kredensial klien OAuth 2.0 saat ini dalam pratinjau publik. Namun, Anda dapat menyiapkan alur kredensial klien menggunakan ID Microsoft Entra dan titik akhir platform /token identitas Microsoft (https://login.microsoftonline.com/your-tenant-name.onmicrosoft.com/oauth2/v2.0/token) untuk aplikasi Microsoft Graph atau aplikasi Anda sendiri. Untuk informasi selengkapnya, lihat artikel referensi token Microsoft Entra .
Jenis aplikasi yang tidak didukung
Rantai API Web (alur atas nama)
Banyak arsitektur termasuk API web yang perlu memanggil API web hilir lain, di mana keduanya diamankan oleh Azure AD B2C. Skenario ini umum di klien asli yang memiliki back-end API Web dan memanggil layanan online Microsoft seperti Microsoft Graph API.
Skenario API web berantai ini dapat didukung dengan menggunakan pemberian kredensial pembawa OAuth 2.0 JWT, yang juga dikenal sebagai alur atas nama. Namun, alur atas nama saat ini tidak diimplementasikan di Azure AD B2C.
Langkah selanjutnya
Cari tahu selengkapnya tentang kebijakan bawaan yang disediakan oleh Alur pengguna di Azure Active Directory B2C.