Mengautentikasi aplikasi dan pengguna dengan ID Microsoft Entra
Fungsi ID Microsoft Entra utama untuk aplikasi adalah autentikasi, proses di mana pengguna mendeklarasikan identitas mereka dengan pengidentifikasi pribadi, seperti nama pengguna atau alamat email. Bukti identitas disediakan. Buktinya bisa berupa kata sandi, artefak autentikasi multifaktor, biometrik, atau persetujuan tanpa kata sandi.
Artikel ini menjelaskan cara aplikasi menggunakan ID Microsoft Entra untuk mengautentikasi pengguna dan aplikasi. Ini adalah yang ketiga dalam serangkaian artikel tentang bagaimana Pengembang Perangkat Lunak Independen (ISV) dapat membangun dan mengoptimalkan aplikasi mereka untuk ID Microsoft Entra. Dalam seri ini, Anda dapat mempelajari lebih lanjut tentang topik-topik ini:
- ID Microsoft Entra untuk Pengembang Perangkat Lunak Independen menjelaskan cara menggunakan layanan manajemen identitas dan akses berbasis cloud ini untuk memungkinkan karyawan mengakses sumber daya dengan aplikasi Anda.
- Membuat aplikasi dalam ekosistem ID Microsoft Entra menjelaskan cara menggunakan pusat admin Microsoft Entra atau Antarmuka Pemrograman Aplikasi (API) Microsoft Graph untuk mendaftarkan aplikasi di penyewa MICROSOFT Entra ID.
- Mengotorisasi aplikasi, sumber daya, dan beban kerja membahas otorisasi ketika seseorang berinteraksi dengan manusia dan mengarahkan aplikasi, ketika API bertindak untuk pengguna. Selain itu, ketika aplikasi atau layanan bekerja secara independen.
- Menyesuaikan token membantu Anda membangun keamanan ke dalam aplikasi dengan token ID dan token akses dari ID Microsoft Entra. Ini menjelaskan informasi yang dapat Anda terima di token ID Microsoft Entra dan bagaimana Anda dapat menyesuaikannya.
Meminta token
Aplikasi meminta token dari ID Microsoft Entra. Setelah aplikasi menerima token, mereka dapat menggunakan informasi dalam token tersebut untuk mengidentifikasi pengguna. Saat Anda membangun di MICROSOFT Entra ID, pengguna dapat mengautentikasi banyak aplikasi dengan satu akun ID Microsoft Entra (SSO) terdaftar. Metode autentikasi SSO memungkinkan pengguna untuk masuk ke beberapa sistem perangkat lunak independen menggunakan satu set kredensial.
Protokol yang dapat digunakan pengembang untuk meminta token dari MICROSOFT Entra ID menggunakan browser untuk menghubungkan pengguna ke situs web ID Microsoft Entra. Situs web ini memungkinkan pengguna untuk melakukan percakapan privat dengan ID Microsoft Entra. Aplikasi bukan peserta dalam percakapan privat tersebut. Aplikasi meluncurkan situs web ID Microsoft Entra tempat pengguna memulai proses autentikasi. Setelah proses autentikasi selesai, MICROSOFT Entra ID mengalihkan pengguna kembali ke aplikasi, dengan atau tanpa token.
Penting bahwa pengguna jarang perlu melalui proses autentikasi. Semakin sering pengguna harus melakukannya, semakin rentan terhadap eksploitasi seperti serangan phishing.
Mengurangi perintah masuk
SSO dapat mengurangi atau menghilangkan perintah masuk. Pengembang memainkan peran penting dalam mengurangi dan menghilangkan perintah masuk. Semua aplikasi harus berbagi browser yang mengakses situs web ID Microsoft Entra tempat pengguna melakukan proses autentikasi. Jika aplikasi Anda adalah aplikasi halaman tunggal (SPA) atau aplikasi web berbasis browser, maka tidak ada langkah pengembang yang diperlukan. Semua aplikasi di browser berbagi browser. Untuk aplikasi asli yang berjalan di desktop dan perangkat seluler, pengembang harus secara proaktif mengurangi atau menghilangkan perintah masuk.
Metode terbaik untuk mengurangi atau menghilangkan perintah masuk adalah menggunakan Microsoft Authentication Libraries (MSAL), atau pustaka yang dibangun di MSAL, dan autentikasi broker. Metode ini meminimalkan perintah masuk dan memberikan pengalaman yang paling mulus. Jika membangun MSAL tidak dimungkinkan, aplikasi Anda harus menggunakan browser sistem untuk meminimalkan perintah masuk.
Untuk aplikasi yang berjalan di iOS atau Android, penyedia platform seluler memiliki beberapa fungsionalitas untuk membuat pengalaman ini lebih mulus. Google memiliki panduan untuk aplikasi Android dengan Tab Kustom Chrome. Apple memiliki panduan untuk Mengautentikasi Pengguna Melalui Layanan Web di aplikasi iOS. Hindari menggunakan WebView yang disematkan karena mungkin tidak mengizinkan berbagi di seluruh aplikasi atau dengan browser sistem.
Dua protokol untuk autentikasi pengguna adalah Security Assertion Markup Language (SAML) 2.0 dan OpenID Connect (OIDC). MICROSOFT Entra ID sepenuhnya mendukung aplikasi menggunakan kedua protokol, sehingga pengembang dapat memilih salah satu berdasarkan persyaratannya.
Referensi ini merinci dukungan SAML MICROSOFT Entra ID.
- platform identitas Microsoft menggunakan protokol SAML adalah titik awal untuk dokumentasi MICROSOFT Entra ID SAML untuk pengembang.
- Protokol SAML akses menyeluruh adalah referensi untuk permintaan dan respons autentikasi SAML 2.0 yang didukung MICROSOFT Entra ID.
- Metadata federasi Microsoft Entra menjelaskan metadata Federasi dan titik akhir metadata untuk metadata khusus penyewa dan independen penyewa. Ini mencakup metadata untuk SAML dan standar WS-Federation yang lebih lama. Meskipun didukung penuh, kami tidak merekomendasikan WS-Federation untuk aplikasi baru.
- Referensi klaim token SAML 2.0 adalah dokumentasi untuk token SAML ID Microsoft Entra (pernyataan).
Ada beberapa batasan dalam dukungan MICROSOFT Entra ID SAML. Secara khusus, Anda tidak dapat memigrasikan aplikasi yang memerlukan kemampuan protokol ini: dukungan untuk pola WS-Trust ActAs dan resolusi artefak SAML.
Meskipun MICROSOFT Entra ID sepenuhnya mendukung SAML untuk aplikasi yang dibangun pada protokol SAML, platform identitas Microsoft tidak menyediakan pustaka atau alat pengembangan lainnya untuk mengembangkan aplikasi dengan SAML. Untuk pengembangan aplikasi baru, sebaiknya gunakan OpenID Connect (OIDC) untuk autentikasi.
MICROSOFT Entra ID sepenuhnya mendukung OpenID Connect. Microsoft menyediakan pustaka MSAL, Microsoft Identity Web, dan Azure SDK untuk memudahkan pengembangan aplikasi OIDC. OpenID Connect (OIDC) pada detail platform identitas Microsoft dukungan Microsoft Entra ID OIDC. MSAL secara otomatis mendukung OIDC. MSAL selalu meminta token ID OIDC dengan setiap permintaan token, termasuk permintaan otorisasi aplikasi untuk mengakses sumber daya.
Masa pakai token
MSAL menyimpan token ID dan token akses berdasarkan waktu kedaluwarsa token akses. Karena MICROSOFT Entra ID secara berbeda mengatur masa pakai pada token ID dan token akses, Anda mungkin menerima token ID kedaluwarsa dari cache MSAL yang kedaluwarsa saat token akses masih dalam masa berlakunya.
MSAL tidak memperbarui token ID secara otomatis. MSAL memperbarui token akses di, atau di dekatnya, akhir masa pakai untuk token akses saat aplikasi meminta token. Pada saat itu, MSAL meminta token ID baru. Untuk menerapkan OIDC, gunakan klaim (kedaluwarsa exp
) dalam token ID untuk menjadwalkan permintaan token ID menggunakan ForceRefresh
bendera di MSAL.
Saat membangun MSAL atau pustaka yang dibangun di MSAL tidak dimungkinkan, Anda dapat menggunakan standar OpenID Connect untuk mengautentikasi pengguna saat ini. Beberapa fungsionalitas dalam aplikasi asli mungkin tidak dimungkinkan tanpa menggunakan MSAL seperti memastikan aplikasi asli berjalan pada perangkat terkelola. Tinjau Meningkatkan ketahanan autentikasi dan otorisasi dalam aplikasi klien yang Anda kembangkan untuk panduan saat Anda tidak membangun MSAL.
MICROSOFT Entra ID menerapkan titik akhir UserInfo sebagai bagian dari dukungan standar Microsoft Entra ID OIDC dengan jalur Microsoft Graph tertentu (https://graph.microsoft.com/oidc/userinfo
). Tidak dimungkinkan untuk menambahkan atau menyesuaikan informasi yang UserInfo
dikembalikan titik akhir. Karena informasi dalam token ID adalah superset dari informasi yang dikembalikan dengan memanggil UserInfo
titik akhir, sebaiknya gunakan token ID alih-alih memanggil UserInfo
titik akhir.
Pengguna yang diautentikasi
Aplikasi berinteraksi dengan penyewa MICROSOFT Entra ID untuk mengautentikasi pengguna. Untuk mengautentikasi pengguna, aplikasi mengarahkan browser ke https://login.microsoftonline.com/{tenant}/v2.0
, di mana {tenant}
adalah ID atau domain penyewa. Namun, sebaiknya ISV menggunakan MICROSOFT Entra ID untuk membangun aplikasi multipenyewa yang dapat mendukung berbagai pelanggan. Untuk aplikasi multipenyewa, aplikasi mungkin tidak tahu dari penyewa dari apa pengguna hingga setelah pengguna mengautentikasi, sehingga tidak dimungkinkan untuk menggunakan titik akhir penyewa tertentu.
Untuk mengaktifkan aplikasi multipenyewa, MICROSOFT Entra ID menyediakan dua titik akhir OIDC/OAuth 2.0 independen penyewa:
https://login.microsoftonline.com/common/v2.0
memungkinkan pengguna untuk mengautentikasi aplikasi saat mereka berasal dari penyewa ID Microsoft Entra atau yang memiliki Akun Microsoft konsumen dari situs seperti outlook.com, skype.com, xbox.com, live.com, atau Hotmail.com.https://login.microsoftonline.com/organizations/v2.0
memungkinkan pengguna untuk mengautentikasi aplikasi saat mereka berasal dari penyewa ID Microsoft Entra mana pun.
Titik akhir ini memungkinkan setiap pengguna dari penyewa ID Microsoft Entra mana pun untuk mengautentikasi aplikasi Anda. Jika Anda hanya ingin mengizinkan pengguna dari penyewa tertentu, terapkan logika untuk hanya mengizinkan pengguna dari penyewa tersebut mengakses aplikasi Anda. Implementasi normal adalah memfilter pengguna berdasarkan iss
klaim (penerbit) atau tid
(ID penyewa) dalam token ke daftar izin penyewa yang Anda pertahankan.
Penyewa ID Microsoft Entra mendukung pengguna yang dapat menjadi anggota reguler penyewa atau yang dapat menjadi pengguna tamu penyewa. Secara default, ada kemampuan terbatas untuk pengguna tamu di penyewa. Misalnya, pengguna tamu tidak dapat melihat profil lengkap pengguna lain di penyewa. Pengguna tamu, terkadang disebut pengguna Business to Business (B2B), memungkinkan organisasi yang berbeda untuk berkolaborasi dengan alat dan layanan yang dilindungi ID Microsoft Entra. Contoh skenario mengundang pengguna dari luar organisasi Anda untuk mengakses file SharePoint di penyewa Anda. Biasanya, pengguna B2B menggunakan alamat email mereka sebagai userid
. Namun, mereka dapat menggunakan alamat yang sama seperti userid
di penyewa rumah mereka. Secara default, MICROSOFT Entra ID memasukkan pengguna ke penyewa rumah mereka saat mereka memasukkan userid
.
Untuk memasukkan pengguna sebagai pengguna B2B, aplikasi harus menggunakan titik akhir penyewa tertentu di mana pengguna adalah tamu. Meskipun pengguna dapat menentukan penyewa yang ingin mereka akses saat aplikasi menggunakan https://login.microsoftonline.com/organizations/v2.0
titik akhir, pengguna mungkin menemukan kemampuan tersebut sulit ditemukan.
Langkah berikutnya
- ID Microsoft Entra untuk Pengembang Perangkat Lunak Independen menjelaskan cara menggunakan layanan manajemen identitas dan akses berbasis cloud ini untuk memungkinkan karyawan mengakses sumber daya dengan aplikasi Anda.
- Membuat aplikasi di ekosistem ID Microsoft Entra menjelaskan cara menggunakan pusat admin Microsoft Entra atau Microsoft Graph API untuk mendaftarkan aplikasi di penyewa ID Microsoft Entra.
- Mengotorisasi aplikasi, sumber daya, dan beban kerja membahas otorisasi ketika seseorang berinteraksi dengan dan mengarahkan aplikasi, ketika API bertindak untuk pengguna, dan ketika aplikasi atau layanan bekerja secara independen.
- Menyesuaikan token membantu Anda membangun keamanan ke dalam aplikasi dengan token ID dan token akses dari ID Microsoft Entra. Ini menjelaskan informasi yang dapat Anda terima di token ID Microsoft Entra dan bagaimana Anda dapat menyesuaikannya.