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.
Berlaku untuk: Penyewa Workforce
Penyewa eksternal (pelajari lebih lanjut)
Dalam tutorial ini Anda cara menambahkan Microsoft Authentication Library (MSAL) untuk Android ke aplikasi Android Anda. MSAL memungkinkan aplikasi Android untuk mengautentikasi pengguna dengan Microsoft Entra.
Dalam tutorial ini Anda akan;
- Menambahkan dependensi MSAL
- Menambahkan konfigurasi
- Membuat instance MSAL SDK
Prasyarat
- Penyewa dari kalangan tenaga kerja. Anda dapat menggunakan Direktori Default atau menyiapkan tenant baru.
- Daftarkan aplikasi baru di pusat admin Microsoft Entra, dikonfigurasi hanya untuk Akun di direktori organisasi ini. Lihat Mendaftarkan aplikasi untuk detail selengkapnya. Rekam nilai berikut dari halaman Gambaran Umum aplikasi untuk digunakan nanti:
- ID Aplikasi (klien)
- ID Direktori (Penyewa)
- Proyek Android. Jika Anda tidak memiliki proyek Android, buatlah.
Menambahkan URI pengalihan
Anda harus mengonfigurasi URI pengalihan tertentu dalam pendaftaran aplikasi Anda untuk memastikan kompatibilitas dengan sampel kode yang diunduh. URI ini sangat penting untuk mengalihkan pengguna kembali ke aplikasi setelah mereka berhasil masuk.
Di bagian Kelola, pilih Autentikasi>Tambahkan platform>Android.
Masukkan Nama Paket proyek Anda berdasarkan jenis sampel yang Anda unduh di atas.
- Sampel Java -
com.azuresamples.msalandroidapp
- Sampel Kotlin -
com.azuresamples.msalandroidkotlinapp
- Sampel Java -
Di bagian Hash Tanda Tangan dari panel Konfigurasi aplikasi Android Anda, pilih Membuat Hash Tanda Tangan Pengembangan. dan salin perintah KeyTool ke baris perintah Anda.
- KeyTool.exe diinstal sebagai bagian dari Java Development Kit (JDK). Anda juga harus menginstal alat OpenSSL untuk menjalankan perintah KeyTool. Untuk informasi selengkapnya, lihat dokumentasi Android tentang membuat kunci untuk informasi selengkapnya.
Masukkan Hash Tanda Tangan yang dihasilkan oleh KeyTool.
Pilih Konfigurasikan dan simpan Konfigurasi MSAL yang muncul di panel konfigurasi Android sehingga Anda dapat memasukkannya saat mengonfigurasi aplikasi nanti.
Pilih Selesai.
Tambahkan dependensi MSAL dan pustaka yang relevan ke proyek Anda
Untuk menambahkan dependensi MSAL di proyek Android Anda, ikuti langkah-langkah berikut:
Buka proyek Anda di Android Studio atau buat proyek baru.
Buka
build.gradle
aplikasi 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.+' //... }
Dalam konfigurasi
build.gradle
, repositori didefinisikan untuk dependensi proyek. Termasuk URL repositori Maven untuk pustakacom.microsoft.device.display:display-mask
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>Sinkronkan Proyek dengan Berkas Gradle.
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, navigasikan ke app\src\main\res.
Klik kanan res dan pilih Baru>Direktori. Masukkan
raw
sebagai nama direktori baru dan pilih OK.Dalam aplikasi , di src>>main>res>raw, buat file JSON baru bernama
auth_config_single_account.json
dan tempelkan Konfigurasi MSAL yang sudah Anda simpan.Di bawah URI pengalihan, tempel:
"account_mode" : "SINGLE",
File konfigurasi Anda harus menyerupai contoh ini:
{ "client_id": "00001111-aaaa-bbbb-3333-cccc4444", "authorization_user_agent": "WEBVIEW", "redirect_uri": "msauth://com.azuresamples.msalandroidapp/00001111%cccc4444%3D", "broker_redirect_uri_registered": true, "account_mode": "SINGLE", "authorities": [ { "type": "AAD", "audience": { "type": "AzureADandPersonalMicrosoftAccount", "tenant_id": "common" } } ] }
Karena tutorial ini hanya menunjukkan cara mengonfigurasi aplikasi dalam mode akun tunggal, lihat mode akun tunggal vs. mode beberapa akun dan mengonfigurasi aplikasi Anda untuk informasi selengkapnya
Sebaiknya gunakan 'WEBVIEW'. Jika Anda ingin mengonfigurasi "authorization_user_agent" sebagai 'BROWSER' di aplikasi, Anda perlu membuat pembaruan berikut. a) Perbarui auth_config_single_account.json dengan "authorization_user_agent": "Browser". b) Perbarui AndroidManifest.xml. Di aplikasi, buka app>src>utama>AndroidManifest.xml, tambahkan aktivitas
BrowserTabActivity
sebagai anak dari elemen<application>
. Entri ini memungkinkan MICROSOFT Entra ID untuk memanggil kembali ke aplikasi Anda setelah menyelesaikan autentikasi:<!--Intent filter to capture System Browser or Authenticator calling back to our app after sign-in--> <activity android:name="com.microsoft.identity.client.BrowserTabActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="msauth" android:host="Enter_the_Package_Name" android:path="/Enter_the_Signature_Hash" /> </intent-filter> </activity>
- Gunakan Nama paket untuk menggantikan nilai
android:host=.
. Ini akan terlihat seperticom.azuresamples.msalandroidapp
. - Gunakan Hash Tanda Tangan untuk menggantikan nilai
android:path=
. Pastikan bahwa ada/
yang berada di bagian depan Hash Tanda Tangan Anda. Ini akan terlihat seperti/aB1cD2eF3gH4+iJ5kL6-mN7oP8q=
.
Anda juga dapat menemukan nilai-nilai ini di bilah Autentikasi pendaftaran aplikasi Anda.
- Gunakan Nama paket untuk menggantikan nilai
Membuat instance MSAL SDK
Untuk menginisialisasi instans MSAL SDK, gunakan kode berikut:
PublicClientApplication.createSingleAccountPublicClientApplication(
getContext(),
R.raw.auth_config_single_account,
new IPublicClientApplication.ISingleAccountApplicationCreatedListener() {
@Override
public void onCreated(ISingleAccountPublicClientApplication application) {
// Initialize the single account application instance
mSingleAccountApp = application;
loadAccount();
}
@Override
public void onError(MsalException exception) {
// Handle any errors that occur during initialization
displayError(exception);
}
}
);
Kode ini membuat aplikasi klien publik akun tunggal menggunakan file konfigurasi auth_config_single_account.json. Ketika aplikasi berhasil dibuat, aplikasi menetapkan instans untuk mSingleAccountApp
dan memanggil metode loadAccount()
. Jika terjadi kesalahan selama pembuatan, kesalahan ditangani dengan memanggil metode displayError(exception).
Pastikan Anda menyertakan pernyataan impor. Android Studio seharusnya secara otomatis menyertakan pernyataan impor untuk Anda.