Bagikan melalui


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:

  • Microsoft Entra ID untuk Pengembang Perangkat Lunak Independen menjelaskan cara menggunakan layanan manajemen identitas dan akses berbasis cloud ini untuk memungkinkan karyawan mengakses sumber daya dengan menggunakan aplikasi Anda.
  • Mendirikan aplikasi dalam ekosistem Microsoft Entra ID menjelaskan cara menggunakan Pusat Admin Microsoft Entra atau Antarmuka Pemrograman Aplikasi (API) Microsoft Graph untuk mendaftarkan aplikasi dalam penyewa Microsoft Entra ID.
  • Mengotorisasi aplikasi, sumber daya, dan beban kerja membahas otorisasi ketika seseorang berinteraksi dengan dan mengendalikan aplikasi, ketika API bertindak atas nama 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 dalam browser sama-sama menggunakan 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 dengan menggunakan Microsoft Authentication Libraries (MSAL), atau pustaka yang dibangun di atas MSAL, serta 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 Chrome Custom Tabs. 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 untuk Microsoft Entra ID.

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) di platform identitas Microsoft menjelaskan 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 saat aplikasi meminta token, pada atau mendekati akhir masa pakai token akses tersebut. Pada saat itu, MSAL meminta token ID baru. Untuk menerapkan OIDC, gunakan klaim exp (kedaluwarsa) dalam token ID untuk menjadwalkan permintaan token ID menggunakan penanda ForceRefresh di MSAL.

Ketika membangun di atas MSAL atau pustaka yang dibangun di atas MSAL tidak dimungkinkan, Anda dapat menggunakan standar OpenID Connect untuk mengautentikasi pengguna tersebut. Beberapa fungsionalitas dalam aplikasi asli mungkin tidak dimungkinkan tanpa menggunakan MSAL seperti memastikan aplikasi asli berjalan pada perangkat terkelola. Tinjau Meningkatkan ketahanan proses autentikasi dan otorisasi dalam aplikasi klien yang Anda kembangkan untuk panduan jika Anda tidak menggunakan 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 mungkin menambahkan atau menyesuaikan informasi yang dikembalikan oleh endpoint UserInfo. 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.

Autentikasi pengguna

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 mana pengguna berasal sampai setelah pengguna mengautentikasi, sehingga tidak mungkin untuk menggunakan endpoint penyewa tertentu.

Untuk mengaktifkan aplikasi multipenyewa, Microsoft Entra ID menyediakan dua endpoint OIDC/OAuth 2.0 penyewa independen.

  • 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 klaim iss (penerbit) atau tid (ID penyewa) dalam token ke dalam daftar putih penyewa yang Anda kelola.

Penyewa ID Microsoft Entra mendukung pengguna yang dapat menjadi anggota reguler penyewa atau yang dapat menjadi pengguna tamu penyewa. Secara bawaan, ada kemampuan terbatas untuk pengguna tamu dalam sebuah tenant. 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 asal 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 tenant yang ingin mereka akses saat aplikasi menggunakan titik akhir https://login.microsoftonline.com/organizations/v2.0, pengguna mungkin merasa kesulitan menemukan kemampuan tersebut.

Langkah berikutnya

  • Microsoft Entra ID untuk Pengembang Perangkat Lunak Independen menjelaskan cara menggunakan layanan manajemen identitas dan akses berbasis cloud ini untuk memungkinkan karyawan mengakses sumber daya dengan menggunakan 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.
  • Otorisasi aplikasi, sumber daya, dan beban kerja membahas otorisasi ketika seseorang berinteraksi dengan dan mengarahkan aplikasi, saat API bertindak atas nama pengguna, dan ketika aplikasi atau layanan beroperasi 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.