Bagikan melalui


Konfigurasikan autentikasi dalam sampel aplikasi Android dengan menggunakan Azure AD B2C

Artikel ini menggunakan contoh aplikasi Android (Kotlin dan Java) untuk mengilustrasikan cara menambahkan autentikasi Azure Active Directory B2C (Azure AD B2C) ke aplikasi ponsel Anda.

Gambaran Umum

OpenID Connect (OIDC) adalah protokol autentikasi yang dibuat di OAuth 2.0. Anda dapat menggunakan OIDC untuk memasukkan pengguna ke aplikasi dengan aman. Sampel aplikasi seluler ini menggunakan Pustaka Autentikasi Microsoft (MSAL) dengan alir kode otorisasi OIDC PKCE. Pustaka MSAL adalah pustaka yang disediakan Microsoft yang menyederhanakan penambahan dukungan autentikasi dan otorisasi ke aplikasi seluler.

Alur rincian masuk melibatkan langkah berikut:

  1. Pengguna membuka aplikasi dan memilih masuk.
  2. Aplikasi ini membuka browser sistem perangkat seluler, dan memulai permintaan autentikasi ke Azure AD B2C.
  3. Pengguna mendaftar atau masuk, atur ulang kata sandi, atau masuk dengan akun sosial.
  4. Setelah pengguna berhasil masuk, Azure AD B2C mengembalikan kode otorisasi ke aplikasi.
  5. Aplikasi ini mengambil tindakan berikut:
    1. Itu menukar kode otorisasi ke token ID, token akses, dan token refresh.
    2. Aplikasi membaca klaim token ID.
    3. Aplikasi menyimpan token ke tembolokan memori untuk digunakan nanti.

Ringkasan pendaftaran aplikasi

Untuk memungkinkan aplikasi untuk masuk menggunakan Azure AD B2C dan memproses API web, daftarkan dua aplikasi dalam direktori Azure AD B2C.

  • Pendaftaran aplikasi seluler memungkinkan aplikasi Anda untuk masuk menggunakan Azure AD B2C. Selama pendaftaran aplikasi, tentukan URI Pengalihan. URI pengalihan adalah titik akhir tempat pengguna diarahkan oleh Azure AD B2C setelah mereka mengautentikasi dengan Azure AD B2C. Proses pendaftaran aplikasi menghasilkan ID Aplikasi, juga dikenal sebagai ID klien, yang mengidentifikasi aplikasi Anda secara unik (misalnya, ID Aplikasi: 1).

  • Pendaftaran API web memungkinkan aplikasi Anda untuk memanggil API web yang dilindungi. Pendaftaran mengekspos izin API web (cakupan). Proses pendaftaran aplikasi menghasilkan ID Aplikasi, yang secara unik mengidentifikasi API web Anda (misalnya, ID ApIikasi: 2). Berikan izin aplikasi seluler Anda (ID Aplikasi: 1) ke cakupan API web (ID Aplikasi: 2).

Pendaftaran aplikasi dan arsitektur aplikasi digambarkan dalam diagram berikut:

Diagram of the mobile app with web API call registrations and tokens.

Memanggil API web

Setelah autentikasi selesai, pengguna berinteraksi dengan aplikasi, yang memanggil API web yang dilindungi. API web menggunakan autentikasi token pembawa. Token pembawa adalah token akses yang diperoleh aplikasi dari Azure AD B2C. Aplikasi melewati token di header otorisasi permintaan HTTPS.

Authorization: Bearer <access token>

Jika cakupan token akses tidak cocok dengan cakupan API web, pustaka autentikasi memperoleh token akses baru dengan cakupan yang benar.

Alur keluar

Alur proses keluar meliputi langkah-langkah berikut:

  1. Dari aplikasi, pengguna keluar.
  2. Aplikasi menghapus objek sesinya, dan pustaka autentikasi menghapus cache tokennya.
  3. Aplikasi mengalihkan pengguna ke titik akhir keluar Azure Active Directory B2C untuk mengakhiri sesi Azure Active Directory B2C.
  4. Pengguna dialihkan kembali ke aplikasi.

Prasyarat

Komputer yang menjalankan:

Langkah 1: Mengonfigurasi alur pengguna

Saat pengguna mencoba masuk ke aplikasi Anda, aplikasi memulai permintaan autentikasi ke titik akhir otorisasi melalui alur pengguna. Alur pengguna mendefinisikan dan mengontrol pengalaman pengguna. Setelah pengguna menyelesaikan alur pengguna, Azure Active Directory B2C membuat token dan kemudian mengarahkan pengguna kembali ke aplikasi Anda.

Jika Anda belum melakukannya, buat alur pengguna atau kebijakan kustom. Ulangi langkah-langkah tersebut untuk membuat tiga alur pengguna terpisah sebagai berikut:

  • Gabungan alur pengguna daftar dan masuk, seperti susi. Alur pengguna ini juga mendukung pengalaman Lupa kata sandi Anda.
  • Alur pengguna Pengeditan profil, seperti edit_profile.
  • Alur pengguna Pengaturan ulang kata sandi, seperti reset_password.

Azure AD B2C menambahkan B2C_1_ ke nama alur pengguna. Misalnya, susi menjadi B2C_1_susi.

Langkah 2: Mendaftarkan aplikasi seluler

Buat aplikasi seluler dan pendaftaran aplikasi API web, dan tentukan cakupan API web Anda.

Langkah 2.1: Mendaftarkan aplikasi API web

Untuk membuat pendaftaran aplikasi API web (ID Aplikasi: 2), ikuti langkah-langkah berikut:

  1. Masuk ke portal Azure.

  2. Pastikan Anda menggunakan direktori yang berisi penyewa AAD B2C Anda. Pilih ikon Direktori + langganan di bilah alat portal.

  3. Pada Setelan portal | Direktori + langganan, temukan direktori Azure AD B2C Anda di daftar Nama direktori, lalu pilih Beralih.

  4. Di portal Microsoft Azure, cari dan pilih AAD B2C.

  5. Pilih Pendaftaran aplikasi, lalu pilih Pendaftaran baru.

  6. Untuk Nama, masukkan nama untuk aplikasi (misalnya, my-api1). Biarkan nilai default untuk URI Pengalihan dan Jenis akun yang didukung.

  7. Pilih Daftarkan.

  8. Setelah pendaftaran aplikasi selesai, pilih Ringkasan.

  9. Catat nilai ID Aplikasi (klien) untuk digunakan nanti, saat Anda mengonfigurasi aplikasi web.

    Screenshot that demonstrates how to get a web A P I application I D.

Langkah 2.2: Mengonfigurasi cakupan aplikasi API web

  1. Pilih aplikasi my-api1 yang Anda buat (ID Aplikasi: 2) untuk membuka halaman Ringkasannya.

  2. Di bagian Kelola, pilih Ekspos API.

  3. Di samping URI ID Aplikasi, pilih tautan Set. Ganti nilai default (GUID) dengan nama yang unik (misalnya, tasks-api ), kemudian pilih Simpan .

    Ketika aplikasi web Anda meminta token akses untuk API, ia harus menambahkan URI ini sebagai awalan bagi setiap cakupan yang Anda tentukan untuk API.

  4. Di bagian Cakupan yang ditentukan oleh API ini, pilih Tambahkan cakupan.

  5. Untuk membuat cakupan yang menentukan akses baca ke API:

    1. Untuk Nama cakupan, masukkan tasks.read.
    2. Untuk Nama tampilan perizinan admin, masukkan Akses baca ke API tugas.
    3. Untuk Deskripsi perizinan admin, masukkan Izinkan akses baca ke API tugas.
  6. Pilih Tambahkan cakupan.

  7. Pilih Tambahkan cakupan, lalu tambahkan cakupan yang menentukan akses tulis ke API:

    1. Untuk Nama cakupan, masukkan tasks.write.
    2. Untuk Nama tampilan perizinan admin, masukkan Akses tulis ke API tugas.
    3. Untuk Deskripsi perizinan admin, masukkan Izinkan akses tulis ke API tugas.
  8. Pilih Tambahkan cakupan.

Langkah 2.3: Mendaftarkan aplikasi seluler

Untuk membuat pendaftaran aplikasi web, lakukan hal berikut:

  1. Masuk ke portal Azure.

  2. Pilih Pendaftaran aplikasi, lalu pilih Pendaftaran baru.

  3. Di bawah Nama, masukkan nama untuk aplikasi (misalnya, android-app1).

  4. Di bagian Tipe akun yang didukung, pilih Akun di penyedia identitas atau direktori organisasi apa pun (untuk mengautentikasi pengguna dengan alur pengguna).

  5. Pada URI Pengalihan, pilih Klien publik/asli (seluler & desktop), lalu pada kotak teks URL, masukkan salah satu URI berikut:

    • Untuk sampel Kotlin: msauth://com.azuresamples.msalandroidkotlinapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D
    • Untuk sampel Java: msauth://com.azuresamples.msalandroidapp/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D
  6. Pilih Daftarkan.

  7. Setelah pendaftaran aplikasi selesai, pilih Ringkasan.

  8. Catat ID Aplikasi (klien) untuk digunakan nanti, saat Anda mengonfigurasi aplikasi seluler.

    Screenshot highlighting the Android application ID

Langkah 2.4 Memberikan izin aplikasi seluler untuk API web

Untuk memberi izin kepada aplikasi Anda (ID Aplikasi: 1), ikuti langkah-langkah berikut:

  1. Pilih Pendaftaran aplikasi, lalu pilih aplikasi yang Anda buat (ID Aplikasi: 1).

  2. Di bagian Kelola, pilih Izin API.

  3. Di Izin yang dikonfigurasi, pilih Tambahkan izin.

  4. Pilih tab API Saya.

  5. Pilih API (ID Aplikasi: 2) yang aplikasi webnya akan diberi akses. Contohnya, masukkan my-api1.

  6. Di bagian Izin, luaskan tugas, lalu pilih cakupan yang Anda tentukan sebelumnya (misalnya, tasks.read dan tasks.write).

  7. Pilih Tambahkan izin.

  8. Pilih Beri persetujuan admin untuk <nama penyewa Anda>.

  9. Pilih Ya.

  10. Pilih Refresh, lalu pastikan bahwa Diberikan untuk ... muncul di bawah Status untuk kedua cakupan.

  11. Dari daftar Izin akses yang dikonfigurasi, pilih cakupan Anda, lalu salin nama lengkap cakupan.

    Screenshot of the configured permissions pane, showing that read access permissions are granted.

Langkah 3: Mendapatkan sampel aplikasi ponsel Android

Lakukan salah satu hal berikut:

  • Unduh salah satu sampel ini:

    Ekstrak contoh file ZIP ke folder kerja Anda.

  • Kloning sampel aplikasi ponsel Android dari GitHub.

    git clone https://github.com/Azure-Samples/ms-identity-android-kotlin
    

Langkah 4: Mengonfigurasi sampel API web

Sampel ini memperoleh token akses dengan cakupan relevan yang dapat digunakan aplikasi seluler untuk API web. Untuk memanggil API web dari kode, lakukan hal berikut:

  1. Gunakan API web yang ada, atau buat yang baru. Untuk informasi selengkapnya, lihat Mengaktifkan autentikasi di API web Anda sendiri menggunakan Azure AD B2C.
  2. Ubah kode sampel menjadi Memanggil API web.

Langkah 5: Mengonfigurasi sampel aplikasi ponsel

Buka proyek sampel dengan Android Studio atau editor kode lain, lalu buka file /app/src/main/res/raw/auth_config_b2c.json.

File konfigurasi auth_config_b2c.json berisi informasi penyedia identitas Azure AD B2C Anda. Aplikasi seluler menggunakan informasi ini untuk menjalin hubungan kepercayaan dengan Azure AD B2C, memasukkan dan mengeluarkan pengguna, memperoleh token, dan memvalidasinya.

Perbarui properti pengaturan aplikasi berikut:

Tombol Nilai
client_id ID aplikasi seluler dari langkah 2.3.
redirect_uri Aplikasi ponsel mengalihkan URI dari langkah 2.3.
Pihak berwenang Otoritas adalah URL yang menunjukkan direktori untuk MSAL meminta token. Gunakan format berikut: https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-sign-in-sign-up-policy>. Ganti <your-tenant-name> dengan nama penyewa Azure AD B2C Anda. Kemudian, ganti <your-sign-in-sign-up-policy> dengan alur pengguna, atau kebijakan kustom yang Anda buat di langkah 1.

Buka kelas B2CConfiguration, dan perbarui anggota kelas berikut:

Tombol Nilai
Kebijakan Daftar alur pengguna, atau kebijakan kustom yang Anda buat di langkah 1.
azureAdB2CHostName Bagian pertama dari nama penyewa Azure AD B2C Anda (misalnya, https://contoso.b2clogin.com).
tenantName Nama penyewa lengkap penyewa Azure AD B2C Anda (misalnya, contoso.onmicrosoft.com).
cakupan Cakupan API web yang Anda buat di langkah 2.4.

Langkah 6: Jalankan dan uji aplikasi ponsel

  1. Buat dan jalankan proyek.

  2. Di kiri atas, pilih ikon hamburger (juga disebut ikon menu ciutkan), seperti yang ditunjukkan di sini:

    Screenshot highlighting the hamburger, or collapsed menu, icon.

  3. Di panel kiri, pilih Mode B2C.

    Screenshot highlighting the

  4. Pilih Jalankan Alur Pengguna.

    Screenshot highlighting the

  5. Mendaftar atau masuk dengan akun lokal atau sosial Azure AD B2C Anda.

  6. Setelah autentikasi berhasil, Anda akan melihat nama tampilan Anda pada panel Mode B2C.

    Screenshot showing a successful authentication, with signed-in user and policy displayed.

Langkah berikutnya

Pelajari cara: