Mengonfigurasi opsi autentikasi di aplikasi Android dengan menggunakan Azure AD B2C
Artikel ini menjelaskan cara mengaktifkan, mengkustomisasi, dan meningkatkan pengalaman autentikasi Azure Active Directory B2C (Azure AD B2C) untuk aplikasi Android Anda.
Sebelum Anda mulai, biasakan diri Anda dengan artikel berikut:
- Konfigurasikan autentikasi dalam sampel aplikasi Android dengan menggunakan Azure AD B2C
- Aktifkan autentikasi di aplikasi Android Anda menggunakan Azure AD B2C
Menggunakan domain kustom
Dengan menggunakan domain kustom, Anda dapat sepenuhnya menandai URL autentikasi. Dari perspektif pengguna, pengguna tetap berada di domain Anda selama proses autentikasi, bukan dialihkan ke nama domain b2clogin.com Azure Active Directory B2C.
Untuk menghapus semua referensi “b2c” pada URL, Anda dapat mengganti nama penyewa B2C Anda, contoso.onmicrosoft.com, pada URL permintaan autentikasi dengan pengidentifikasi unik ID penyewa Anda. Misalnya, Anda dapat mengubah https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/
menjadi https://account.contosobank.co.uk/<tenant ID GUID>/
.
Untuk menggunakan domain kustom dan ID penyewa Anda di URL autentikasi, ikuti panduan di Mengaktifkan domain kustom. Cari Pustaka Autentikasi Microsoft Anda (objek konfigurasi MSAL, lalu perbarui otoritas dengan nama domain kustom dan ID penyewa Anda.
Kode Kotlin berikut menunjukkan objek konfig. MSAL sebelum perubahan:
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.fromAuthority("https://contoso.b2clogin.com/fabrikamb2c.contoso.com/B2C_1_susi")
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
Kode Kotlin berikut menunjukkan objek konfig. MSAL setelah perubahan:
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.fromAuthority("https://custom.domain.com/00000000-0000-0000-0000-000000000000/B2C_1_susi")
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
Prepopulasi nama rincian masuk
Selama perjalanan pengguna masuk, aplikasi Anda mungkin menargetkan pengguna tertentu. Saat aplikasi menargetkan pengguna, aplikasi dapat menentukan permintaan otorisasi login_hint
parameter kueri dengan nama rincian masuk pengguna. Azure Active Directory B2C secara otomatis mengisi nama rincian masuk, dan pengguna hanya perlu memberikan kata sandi.
Untuk mengisi nama rincian masuk terlebih dahulu, lakukan hal berikut:
- Jika Anda menggunakan kebijakan kustom, tambahkan klaim input yang diperlukan, seperti yang dijelaskan dalam Menyiapkan masuk langsung.
- Cari objek konfigurasi MSAL Anda, lalu tambahkan metode
withLoginHint()
dengan petunjuk masuk.
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.withLoginHint("bob@contoso.com")
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
Memilih sebelumnya penyedia identitas
Jika Anda mengonfigurasi perjalanan rincian masuk untuk aplikasi Anda untuk menyertakan akun sosial, seperti Facebook, LinkedIn, atau Google, Anda dapat menentukan parameter domain_hint
. Parameter kueri ini memberikan petunjuk untuk Azure AD B2C tentang IdP sosial yang harus digunakan untuk rincian masuk. Misalnya, jika aplikasi menentukan domain_hint=facebook.com
, alur masuk langsung menuju ke halaman masuk Facebook.
Untuk mengalihkan pengguna ke penyedia identitas eksternal, lakukan tindakan berikut:
- Periksa nama domain penyedia identitas eksternal Anda. Untuk informasi selengkapnya, lihat Mengalihkan rincian masuk ke penyedia sosial.
- Buat atau Gunakan objek daftar yang sudah ada untuk menyimpan parameter kueri tambahan.
- Tambahkan parameter
domain_hint
dengan nama domain yang sesuai ke daftar (misalnya,facebook.com
). - Teruskan daftar parameter kueri tambahan ke dalam metode
withAuthorizationQueryStringParameters
objek konfigurasi MSAL.
val extraQueryParameters: MutableList<Pair<String, String>> = ArrayList()
extraQueryParameters.add(Pair("domain_hint", "facebook.com"))
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.withAuthorizationQueryStringParameters(extraQueryParameters)
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
Tentukan bahasa UI
Kustomisasi bahasa pemrogram di Microsoft Azure AD B2C memungkinkan alur pengguna Anda untuk mengakomodasi berbagai bahasa yang sesuai dengan kebutuhan pelanggan Anda. Untuk informasi selengkapnya, lihat Kustomisasi bahasa.
Untuk mengatur bahasa pilihan, lakukan hal berikut:
- Mengonfigurasi penyesuaian bahasa.
- Buat atau Gunakan objek daftar yang sudah ada untuk menyimpan parameter kueri tambahan.
- Tambahkan parameter
ui_locales
dengan kode bahasa yang sesuai ke daftar (misalnya,en-us
). - Teruskan daftar parameter kueri tambahan ke dalam metode
withAuthorizationQueryStringParameters
objek konfigurasi MSAL.
val extraQueryParameters: MutableList<Map.Entry<String, String>> = ArrayList()
val mapEntry = object : Map.Entry<String, String> {
override val key: String = "ui_locales"
override val value: String = "en-us"
}
extraQueryParameters.add(mapEntry )
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.withAuthorizationQueryStringParameters(extraQueryParameters)
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
Meneruskan parameter string kueri kustom
Dengan kebijakan kustom, Anda dapat meneruskan parameter string kueri kustom. Contoh kasus penggunaan yang tepat adalah saat Anda ingin mengubah konten halaman secara dinamis.
Untuk meneruskan parameter string kueri kustom, lakukan tindakan berikut:
- Konfigurasi elemen ContentDefinitionParameters.
- Buat atau Gunakan objek daftar yang sudah ada untuk menyimpan parameter kueri tambahan.
- Tambahkan parameter string kueri kustom, seperti
campaignId
. Tetapkan nilai parameter (misalnya,germany-promotion
). - Teruskan daftar parameter kueri tambahan ke dalam metode
withAuthorizationQueryStringParameters
objek konfigurasi MSAL.
val extraQueryParameters: MutableList<Pair<String, String>> = ArrayList()
extraQueryParameters.add(Pair("campaignId", "germany-promotion"))
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.withAuthorizationQueryStringParameters(extraQueryParameters)
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
Meneruskan petunjuk token ID
Aplikasi pihak yang mengandalkan dapat mengirim JSON Web Token (JWT) masuk sebagai bagian dari permintaan otorisasi OAuth2. Token masuk adalah petunjuk tentang pengguna atau permintaan otorisasi. Azure AD B2C memvalidasi token, lalu mengekstrak klaim.
Untuk memasukkan petunjuk token ID dalam permintaan autentikasi, lakukan tindakan berikut:
- Dalam kebijakan kustom Anda, tetapkan profil teknis petunjuk token ID.
- Dalam kode Anda, buat atau dapatkan token ID, lalu setel token ke variabel (misalnya,
idToken
). - Buat atau Gunakan objek daftar yang sudah ada untuk menyimpan parameter kueri tambahan.
- Tambahkan parameter
id_token_hint
dengan variabel yang sesuai yang menyimpan token ID. - Teruskan daftar parameter kueri tambahan ke dalam metode
withAuthorizationQueryStringParameters
objek konfigurasi MSAL.
val extraQueryParameters: MutableList<Pair<String, String>> = ArrayList()
extraQueryParameters.add(Pair("id_token_hint", idToken))
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.withAuthorizationQueryStringParameters(extraQueryParameters)
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
Pengalaman tampilan web tersemat
Browser web diperlukan untuk autentikasi interaktif. Secara default, perpustakaan MSAL menggunakan tampilan web sistem. Selama proses masuk, pustaka MSAL memunculkan tampilan web sistem Android dengan antarmuka pengguna Azure Active Directory B2C.
Untuk informasi selengkapnya, lihat artikel Mengaktifkan SSO lintas aplikasi di Android menggunakan MSAL.
Tergantung pada kebutuhan Anda, Anda dapat menggunakan tampilan web tertanam. Ada perbedaan perilaku visual dan masuk tunggal antara tampilan web yang disematkan dan tampilan web sistem di MSAL.
Penting
Kami menyarankan Anda menggunakan platform default, yang biasanya adalah browser sistem. Browser sistem lebih baik mengingat pengguna yang telah masuk sebelumnya. Beberapa penyedia identitas, seperti Google, tidak mendukung pengalaman tampilan tersemat.
Untuk mengubah perilaku ini, buka file app/src/main/res/raw/auth_config_b2c.json. Kemudian tambahkan atribut authorization_user_agent
dengan nilai WEBVIEW
. Contoh berikut menunjukkan cara mengubah tipe tampilan web ke tampilan tersemat:
{
"authorization_user_agent": "WEBVIEW"
}
Langkah berikutnya
- Untuk mempelajari selengkapnya tentang konfigurasi Android, lihat opsi konfigurasi MSAL untuk Android.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk