Bagikan melalui


Tutorial: Menyiapkan aplikasi Android untuk memasukkan pengguna dengan menggunakan platform identitas Microsoft

Berlaku untuk: Lingkaran hijau dengan simbol tanda centang putih. Penyewa Workforce Lingkaran hijau dengan simbol tanda centang putih. 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.

  1. Di bagian Kelola, pilih Autentikasi>Tambahkan platform>Android.

  2. Masukkan Nama Paket proyek Anda berdasarkan jenis sampel yang Anda unduh di atas.

    • Sampel Java - com.azuresamples.msalandroidapp
    • Sampel Kotlin - com.azuresamples.msalandroidkotlinapp
  3. 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.
  4. Masukkan Hash Tanda Tangan yang dihasilkan oleh KeyTool.

  5. Pilih Konfigurasikan dan simpan Konfigurasi MSAL yang muncul di panel konfigurasi Android sehingga Anda dapat memasukkannya saat mengonfigurasi aplikasi nanti.

  6. Pilih Selesai.

Tambahkan dependensi MSAL dan pustaka yang relevan ke proyek Anda

Untuk menambahkan dependensi MSAL di proyek Android Anda, ikuti langkah-langkah berikut:

  1. Buka proyek Anda di Android Studio atau buat proyek baru.

  2. 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 pustaka com.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.

  3. 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:

  1. Di panel proyek Android Studio, navigasikan ke app\src\main\res.

  2. Klik kanan res dan pilih Baru>Direktori. Masukkan raw sebagai nama direktori baru dan pilih OK.

  3. 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

  4. 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 seperti com.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.

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.

Langkah berikutnya