Tutorial: Menyiapkan aplikasi Android (Kotlin) Anda untuk autentikasi
Ini adalah tutorial kedua dalam seri tutorial yang menunjukkan cara menambahkan Microsoft Authentication Library (MSAL) untuk Android ke aplikasi Android (Kotlin) Anda. MSAL memungkinkan aplikasi Android untuk mengautentikasi pengguna dengan Microsoft Entra.
Dalam tutorial ini, Anda akan:
- Tambahkan dependensi MSAL.
- Tambahkan Konfigurasi.
Prasyarat
- Android Studio
- Jika Anda belum melakukannya, ikuti petunjuk di Tutorial: Mendaftarkan dan mengonfigurasi aplikasi seluler Android (Kotlin) dan mendaftarkan aplikasi di penyewa eksternal Anda.
- Proyek Android. Jika Anda tidak memiliki proyek Android, buatlah.
Menambahkan dependensi MSAL
Untuk menambahkan dependensi MSAL di proyek Android Anda, ikuti langkah-langkah berikut:
Buka proyek Anda di Android Studio atau buat proyek baru.
Buka aplikasi
build.gradle
Anda dan tambahkan dependensi berikut:allprojects { repositories { //Needed for com.microsoft.device.display:display-mask library maven { url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1' name 'Duo-SDK-Feed' } mavenCentral() google() } } //... dependencies { implementation 'com.microsoft.identity.client:msal:5.+' //... }
build.gradle
Dalam konfigurasi, repositori didefinisikan untuk dependensi proyek. Ini termasuk URL repositori Maven untukcom.microsoft.device.display:display-mask
pustaka dari Azure DevOps. Selain itu, ia menggunakan repositori Maven Central dan Google. Bagian dependensi menentukan implementasi MSAL versi 5 dan kemungkinan dependensi lainnya.Di Android Studio, pilih File>Sync Project dengan Gradle Files.
Menambahkan konfigurasi
Anda meneruskan pengidentifikasi penyewa yang diperlukan, seperti ID aplikasi (klien), ke MSAL SDK melalui pengaturan konfigurasi JSON.
Gunakan langkah-langkah ini untuk membuat file konfigurasi:
Di panel proyek Android Studio, buka app\src\main\res.
Klik kanan res dan pilih Direktori Baru>. Masukkan
raw
sebagai nama direktori baru dan pilih OK.Di app\src\main\res\raw, buat file JSON baru yang disebut
auth_config_ciam_auth.json
.auth_config_ciam_auth.json
Dalam file, tambahkan konfigurasi MSAL berikut:{ "client_id" : "Enter_the_Application_Id_Here", "authorization_user_agent" : "DEFAULT", "redirect_uri" : "Enter_the_Redirect_Uri_Here", "account_mode" : "SINGLE", "authorities" : [ { "type": "CIAM", "authority_url": "https://Enter_the_Tenant_Subdomain_Here.ciamlogin.com/Enter_the_Tenant_Subdomain_Here.onmicrosoft.com/" } ] }
File konfigurasi JSON menentukan berbagai pengaturan untuk aplikasi Android. Ini termasuk ID klien, agen pengguna otorisasi, URI pengalihan, dan mode akun. Selain itu, ini mendefinisikan otoritas untuk autentikasi, menentukan jenis dan URL otoritas.
Ganti tempat penampung berikut dengan nilai penyewa yang Anda peroleh dari pusat admin Microsoft Entra:
Enter_the_Application_Id_Here
dan ganti dengan ID Aplikasi (klien) aplikasi yang Anda daftarkan sebelumnya.Enter_the_Redirect_Uri_Here
dan ganti dengan nilai redirect_uri dalam file konfigurasi Microsoft Authentication Library (MSAL) yang Anda unduh sebelumnya saat menambahkan URL pengalihan platform.Enter_the_Tenant_Subdomain_Here
dan ganti dengan subdomain Direktori (penyewa). Misalnya, jika domain utama penyewa Anda adalahcontoso.onmicrosoft.com
, gunakancontoso
. Jika Anda tidak mengetahui subdomain penyewa Anda, pelajari cara membaca detail penyewa Anda.
Buka file /app/src/main/AndroidManifest.xml .
Di AndroidManifest.xml, tambahkan spesifikasi data berikut ke filter niat:
<data android:host="ENTER_YOUR_PROJECT_PACKAGE_NAME_HERE" android:path="/ENTER_YOUR_SIGNATURE_HASH_HERE" android:scheme="msauth" />
Temukan tempat penampung:
- ENTER_YOUR_PROJECT_PACKAGE_NAME_HERE dan ganti dengan nama paket proyek Android Anda.
- ENTER_YOUR_SIGNATURE_HASH_HERE dan ganti dengan Hash Tanda Tangan yang Anda buat sebelumnya saat menambahkan URL pengalihan platform.
Menggunakan domain URL kustom (Opsional)
Gunakan domain kustom untuk sepenuhnya memberi merek URL autentikasi. Dari perspektif pengguna, pengguna tetap berada di domain Anda selama proses autentikasi, daripada dialihkan ke nama domain ciamlogin.com .
Gunakan langkah-langkah berikut untuk menggunakan domain kustom:
Gunakan langkah-langkah dalam Mengaktifkan domain URL kustom untuk aplikasi di penyewa eksternal untuk mengaktifkan domain URL kustom untuk penyewa eksternal Anda.
Buka file auth_config_ciam_auth.json :
- Perbarui nilai properti ke
authority_url
https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Here. GantiEnter_the_Custom_Domain_Here
dengan domain URL kustom Anda danEnter_the_Tenant_ID_Here
dengan ID penyewa Anda. Jika Anda tidak memiliki ID penyewa, pelajari cara membaca detail penyewa Anda. - Tambahkan
knownAuthorities
properti dengan nilai [Enter_the_Custom_Domain_Here].
- Perbarui nilai properti ke
Setelah Anda membuat perubahan pada file auth_config_ciam_auth.json Anda, jika domain URL kustom Anda login.contoso.com, dan ID penyewa Anda adalah aaaabbbb-0000-cc-1111-dddd2222eeee, maka file Anda akan terlihat mirip dengan cuplikan berikut:
{
"client_id" : "Enter_the_Application_Id_Here",
"authorization_user_agent" : "DEFAULT",
"redirect_uri" : "Enter_the_Redirect_Uri_Here",
"account_mode" : "SINGLE",
"authorities" : [
{
"type": "CIAM",
"authority_url": "https://login.contoso.com/aaaabbbb-0000-cccc-1111-dddd2222eeee",
"knownAuthorities": ["login.contoso.com"]
}
]
}
Membuat instans MSAL SDK
Untuk menginisialisasi instans MSAL SDK, gunakan kode berikut:
private suspend fun initClient(): ISingleAccountPublicClientApplication = withContext(Dispatchers.IO) {
return@withContext PublicClientApplication.createSingleAccountPublicClientApplication(
this@MainActivity,
R.raw.auth_config_ciam_auth
)
}
Kode ini menginisialisasi aplikasi klien publik satu akun secara asinkron. Ini menggunakan file konfigurasi autentikasi yang disediakan dan berjalan pada dispatcher I/O.
Pastikan Anda menyertakan pernyataan impor. Android Studio harus menyertakan pernyataan impor untuk Anda secara otomatis.
Langkah berikutnya
Tutorial: Memasukkan pengguna di aplikasi seluler Android (Kotlin)