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.
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:
- Masuk ke pusat admin Microsoft Entra sebagai setidaknya Administrator Aplikasi Cloud.
- 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.
- Telusuri Aplikasi >Identitas>Pendaftaran aplikasi.
- Pilih aplikasi Anda, lalu pilih Autentikasi>Tambahkan platform>Android.
- 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).
- 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
Pengecualian terkait broker
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:
- Di perangkat Android Anda, selesaikan permintaan menggunakan broker.
- 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 WEBVIEW
browser 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:
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: