Bagikan melalui


Aktifkan SSO lintas aplikasi di Android menggunakan MSAL

Akses menyeluruh (SSO) memungkinkan pengguna untuk hanya memasukkan kredensial mereka sekali dan memiliki kredensial tersebut secara otomatis berfungsi di seluruh aplikasi. Ini meningkatkan pengalaman pengguna dan meningkatkan keamanan dengan mengurangi jumlah kata sandi yang perlu dikelola pengguna, menurunkan risiko kelelahan kata sandi dan kerentanan terkait.

platform identitas Microsoft dan Microsoft Authentication Library (MSAL) membantu Anda mengaktifkan SSO di seluruh rangkaian aplikasi Anda. Dengan mengaktifkan kemampuan Broker, Anda dapat memperluas SSO di seluruh perangkat.

Dengan cara ini, Anda akan mempelajari cara mengonfigurasi SDK yang digunakan oleh aplikasi Anda untuk menyediakan SSO kepada pelanggan Anda.

Prasyarat

Cara ini mengasumsikan Anda tahu cara:

  • Provisikan aplikasi Anda. Untuk informasi selengkapnya, lihat instruksi untuk membuat aplikasi di tutorial Android
  • Mengintegrasikan aplikasi Anda dengan MSAL untuk Android

Metode untuk SSO

Ada dua cara untuk aplikasi menggunakan MSAL untuk Android untuk mencapai SSO:

  • Melalui aplikasi broker

  • Melalui browser sistem

    Disarankan untuk menggunakan aplikasi broker untuk keuntungan seperti SSO di seluruh perangkat, manajemen akun, dan Akses Bersyar. Namun, itu mengharuskan pengguna Anda untuk mengunduh aplikasi tambahan.

SSO melalui autentikasi broker

Kami menyarankan agar Anda menggunakan salah satu broker autentikasi Microsoft untuk berpartisipasi dalam SSO di seluruh perangkat dan untuk memenuhi kebijakan Akses Bersyar organisasi. Mengintegrasikan dengan broker memberi manfaat berikut:

  • SSO perangkat
  • Akses Bersyarah untuk:
    • Perlindungan Aplikasi Intune
    • Pendaftaran Perangkat (Bergabung di Worksplace)
    • Manajemen Perangkat Seluler
  • Manajemen Akun di seluruh perangkat
    • melalui Android AccountManager & Account Settings
    • "Akun Kerja" - jenis akun kustom

Di Android, Microsoft Authentication Broker adalah komponen yang disertakan dalam Aplikasi Microsoft Authenticator, Intune Company Portal, dan Koneksi ke Windows.

Diagram berikut mengilustrasikan hubungan antara aplikasi Anda, MSAL, dan broker autentikasi Microsoft.

Diagram yang memperlihatkan bagaimana aplikasi berhubungan dengan MSAL, aplikasi broker, dan manajer akun Android.

Menginstal aplikasi yang menghosting broker

Aplikasi hosting broker dapat diinstal oleh pemilik perangkat dari toko aplikasinya (biasanya Google Play Store) kapan saja. Namun, beberapa API (sumber daya) dilindungi oleh Kebijakan Akses Bersyarat yang mengharuskan perangkat:

  • Terdaftar (bergabung dengan tempat kerja) dan/atau
  • Terdaftar pada Device Management atau
  • Terdaftar pada Intune App Protection

Jika perangkat dengan persyaratan yang disebutkan di atas belum menginstal aplikasi broker, MSAL menginstruksikan pengguna untuk menginstalnya segera setelah aplikasi mencoba mendapatkan token secara interaktif. Aplikasi kemudian akan mengarahkan pengguna melalui langkah-langkah untuk membuat perangkat mematuhi kebijakan yang diperlukan. Jika tidak ada persyaratan kebijakan, atau pengguna masuk dengan akun Microsoft, penginstalan aplikasi Broker tidak diperlukan.

Efek menginstal dan menghapus instalasi broker

Ketika broker diinstal

Ketika broker diinstal pada perangkat, semua permintaan token interaktif berikutnya (panggilan ke acquireToken()) ditangani oleh broker daripada secara lokal oleh MSAL. Status SSO apa pun yang sebelumnya tersedia untuk MSAL tidak tersedia untuk broker. Akibatnya, pengguna perlu mengautentikasi lagi, atau memilih akun dari daftar akun yang ada yang diketahui perangkat.

Menginstal broker tidak mengharuskan pengguna untuk masuk lagi. Hanya ketika pengguna perlu menyelesaikan MsalUiRequiredException, permintaan berikutnya pergi ke broker. MsalUiRequiredException dapat ditolak karena beberapa alasan, dan perlu diselesaikan secara interaktif. Contohnya:

  • Pengguna mengubah kata sandi yang terkait dengan akunnya.
  • Akun pengguna tidak lagi memenuhi kebijakan Akses Bersyarat.
  • Pengguna mencabut persetujuannya agar aplikasi tidak lagi dikaitkan dengan akunnya.

Beberapa broker - Jika beberapa broker diinstal pada perangkat, MSAL akan mengidentifikasi broker aktif sendiri untuk menyelesaikan proses autentikasi

Ketika broker dihapus instalasinya

Jika hanya ada satu aplikasi hosting broker yang terinstal, dan aplikasi tersebut dihapus, maka pengguna perlu masuk lagi. Menghapus instalasi broker aktif menghapus akun dan token terkait dari perangkat.

Jika Microsoft Authenticator, Intune Company Portal, atau Koneksi ke Windows dihapus instalasinya, pengguna mungkin diminta untuk masuk lagi.

Mengintegrasikan dengan broker

Menghasilkan URI pengalihan untuk broker

Tip

Langkah-langkah dalam artikel ini mungkin sedikit berbeda berdasarkan portal tempat Anda memulai.

Anda harus mendaftarkan URI pengalihan yang kompatibel dengan broker. URI pengalihan untuk broker harus menyertakan nama paket aplikasi Anda dan representasi tanda tangan aplikasi Anda yang dikodekan dengan Base64.

Format URI pengalihan adalah: msauth://<yourpackagename>/<base64urlencodedsignature>

Anda dapat menggunakan keytool untuk menghasilkan hash tanda tangan yang dikodekan Base64 menggunakan kunci penandatanganan aplikasi Anda, lalu membuat URI pengalihan Menggunakan hash tersebut.

Linux dan macOS:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Windows:

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

Setelah Anda membuat hash tanda tangan dengan keytool,gunakan portal Microsoft Azure untuk menghasilkan URI pengalihan:

  1. Masuk ke pusat admin Microsoft Entra sebagai setidaknya Administrator Aplikasi Cloud.
  2. Jika Anda memiliki akses ke beberapa penyewa, gunakan ikon Pengaturan di menu atas untuk beralih ke penyewa yang berisi pendaftaran aplikasi dari menu Direktori + langganan.
  3. Telusuri Aplikasi >Identitas>Pendaftaran aplikasi.
  4. Pilih aplikasi Anda, lalu pilih Autentikasi>Tambahkan platform>Android.
  5. Di panel Configure your Android app (Konfigurasikan aplikasi Android Anda) yang terbuka, masukkan Signature hash (Hash tanda tangan) yang Anda buat sebelumnya dan Package name (Nama paket).
  6. Pilih tombol Configure (Konfigurasi).

URI pengalihan dihasilkan untuk Anda dan ditampilkan di bidang URI Pengalihan panel konfigurasi Android.

Untuk informasi selengkapnya tentang menandatangani aplikasi Anda, lihat Menandatangani aplikasi Anda di Petunjuk Pengguna Android Studio.

Mengonfigurasi MSAL untuk menggunakan broker

Untuk menggunakan broker di aplikasi, Anda harus membuktikan bahwa Anda telah mengonfigurasi pengalihan broker Anda. Misalnya, sertakan URI pengalihan yang diaktifkan broker Anda--dan tunjukkan bahwa Anda mendaftarkannya--dengan menyertakan pengaturan berikut dalam file konfigurasi MSAL Anda:

"redirect_uri" : "<yourbrokerredirecturi>",
"broker_redirect_uri_registered": true

MSAL berkomunikasi dengan broker dalam dua cara:

  • Layanan terikat broker
  • Android AccountManager

MSAL pertama kali menggunakan layanan terikat broker karena memanggil layanan ini tidak memerlukan izin Android apa pun. Jika pengikatan ke layanan terikat gagal, MSAL menggunakan ANDROID AccountManager API. MSAL hanya melakukannya jika aplikasi Anda telah diberi izin "READ_CONTACTS".

Jika Anda mendapat MsalClientException kode kesalahan "BROKER_BIND_FAILURE", maka ada dua opsi:

  • Minta pengguna untuk menonaktifkan pengoptimalan daya untuk aplikasi Microsoft Authenticator dan Intune Company Portal.
  • Meminta pengguna untuk memberi izin "READ_CONTACTS"

Memverifikasi integrasi broker

Mungkin tidak segera jelas bahwa integrasi broker berfungsi, tetapi Anda dapat menggunakan langkah-langkah berikut untuk memeriksa:

  1. Di perangkat Android Anda, selesaikan permintaan menggunakan broker.
  2. Di pengaturan di perangkat Android Anda, cari akun yang baru dibuat yang sesuai dengan akun yang Anda autentikasikan. Akun harus berdasarkan jenis Akun kerja.

Anda dapat menghapus akun dari pengaturan jika ingin mengulangi pengujian.

SSO melalui browser sistem

Aplikasi Android memiliki opsi untuk menggunakan WEBVIEWbrowser sistem, atau Tab Kustom Chrome untuk pengalaman pengguna autentikasi. Jika aplikasi tidak menggunakan autentikasi broker, aplikasi perlu menggunakan browser sistem daripada webview asli untuk mencapai SSO.

Agen otorisasi

Memilih strategi khusus untuk agen otorisasi penting dan mewakili aplikasi fungsionalitas tambahan yang dapat disesuaikan. Sebaiknya gunakan 'WEBVIEW'. Untuk mengetahui selengkapnya tentang nilai confguration lainnya (lihat Memahami file konfigurasi MSAL Android.

MSAL mendukung otorisasi menggunakan WEBVIEW, atau browser sistem. Gambar di bawah ini menunjukkan bagaimana tampilannya saat menggunakan WEBVIEW, atau browser sistem dengan CustomTabs atau tanpa CustomTabs:

Contoh login MSAL

Implikasi SSO

Jika aplikasi menggunakan WEBVIEW strategi tanpa mengintegrasikan dengan autentikasi broker ke dalam aplikasi mereka, pengguna tidak akan memiliki satu pengalaman masuk di seluruh perangkat atau antara aplikasi asli dan aplikasi web.

Aplikasi dapat diintegrasikan dengan MSAL untuk menggunakan BROWSER untuk mengotorisasi. Tidak seperti WEBVIEW, BROWSER bagikan jar cookie dengan browser sistem default yang memungkinkan lebih sedikit rincian masuk dengan web atau aplikasi asli lainnya yang telah terintegrasi dengan Tab Kustom.

Jika aplikasi menggunakan MSAL dengan broker seperti Microsoft Authenticator, Intune Company Portal, atau Koneksi ke Windows, maka pengguna dapat memiliki pengalaman SSO di seluruh aplikasi jika mereka memiliki rincian masuk aktif dengan salah satu aplikasi.

Catatan

MSAL dengan broker menggunakan WebView dan menyediakan Akses Menyeluruh (SSO) untuk semua aplikasi yang menggunakan pustaka MSAL dan berpartisipasi dalam autentikasi broker. Status SSO dari broker tidak diperluas ke aplikasi lain yang tidak menggunakan MSAL.

WebView

Untuk menggunakan WebView dalam aplikasi, letakkan baris berikut dalam konfigurasi aplikasi JSON yang diteruskan ke MSAL:

"authorization_user_agent" : "WEBVIEW"

Saat menggunakan WEBVIEW dalam aplikasi, pengguna masuk langsung ke aplikasi. Token disimpan di dalam kotak pasir aplikasi dan tidak tersedia di luar cookie jar aplikasi. Akibatnya, pengguna tidak dapat memiliki pengalaman SSO di seluruh aplikasi kecuali aplikasi terintegrasi dengan aplikasi Microsoft Authenticator, Intune Company Portal, atau Koneksi ke Windows.

Namun, WEBVIEW memang memberi kemampuan untuk menyesuaikan tampilan dan nuansa untuk UI masuk. Lihat Android WebViews untuk informasi selengkapnya tentang cara melakukan penyesuaian ini.

Browser

Sebaiknya gunakan WEBVIEW, meskipun kami menyediakan opsi untuk menggunakan browser dan strategi tab kustom. Anda dapat secara eksplisit menunjukkan strategi ini dengan menggunakan konfigurasi JSON berikut dalam file konfigurasi kustom:

"authorization_user_agent" : "BROWSER"

Gunakan pendekatan ini untuk memberikan pengalaman SSO melalui browser perangkat. MSAL menggunakan cookie jar yang dibagikan, yang memungkinkan aplikasi native atau aplikasi web lainnya mencapai SSO pada perangkat dengan menggunakan cookie sesi yang berlangsung yang ditetapkan oleh MSAL.

Heuristik pemilihan browser

Karena tidak mungkin bagi MSAL untuk menentukan paket browser yang tepat untuk digunakan pada setiap array luas ponsel Android, MSAL menerapkan heuristik pemilihan browser yang mencoba memberi SSO lintas perangkat terbaik.

MSAL terutama mengambil browser default dari manajer paket dan memeriksa apakah browser default itu ada di dalam daftar browser aman yang diuji. Jika tidak, MSAL kembali menggunakan Webview alih-alih meluncurkan browser non-default lain dari daftar aman. Browser default dipilih terlepas dari apakah mendukung tab kustom. Jika browser mendukung Tab Kustom, MSAL meluncurkan Tab Kustom. Tab Kustom memiliki tampilan dan nuansa lebih dekat dengan dalam aplikasi WebView dan memungkinkan kustomisasi UI dasar. Lihat Custom Tabs di Android untuk mempelajari selengkapnya.

Jika tidak ada paket browser di perangkat, MSAL menggunakan WebView dalam aplikasi. Jika pengaturan default perangkat tidak diubah, browser yang sama harus diluncurkan untuk setiap masuk untuk memastikan pengalaman SSO.

Browser yang Diuji

Browser berikut telah diuji untuk melihat apakah dialihkan dengan benar ke "redirect_uri" yang ditentukan dalam file konfigurasi:

Perangkat Browser Bawaan Chrome Opera Microsoft Edge UC Browser Firefox
Nexus 4 (API 17) pass pass tidak berlaku tidak berlaku tidak berlaku tidak berlaku
Samsung S7 (API 25) lulus1 pass pass pass gagal pass
Vivo (API 26) pass pass pass pass pass gagal
Pixel 2 (API 26) pass pass pass pass gagal pass
Oppo pass tidak berlaku2 tidak berlaku tidak berlaku tidak berlaku tidak berlaku
OnePlus (API 25) pass pass pass pass gagal pass
Nexus (API 28) pass pass pass pass gagal pass
MI pass pass pass pass gagal pass

1 Browser bawaan Samsung adalah Samsung Internet.
2Browser default tidak dapat diubah di dalam pengaturan perangkat Oppo.

Langkah berikutnya

Mode perangkat bersama untuk perangkat Android memungkinkan Anda mengonfigurasi perangkat Android sehingga dapat dengan mudah dibagikan oleh beberapa karyawan.

Untuk informasi selengkapnya tentang aplikasi broker, buka halaman berikut: