Jenis aplikasi untuk platform identitas Microsoft
platform identitas Microsoft mendukung autentikasi untuk berbagai arsitektur aplikasi modern, semuanya didasarkan pada protokol standar industri OAuth 2.0 atau OpenID Connect. Artikel ini menjelaskan jenis aplikasi yang dapat Anda buat dengan menggunakan platform identitas Microsoft, terlepas dari bahasa atau platform pilihan Anda. Informasi ini dirancang untuk membantu Anda memahami skenario tingkat tinggi sebelum Anda mulai bekerja dengan kode dalam skenario aplikasi.
Dasar-dasarnya
Anda harus mendaftarkan setiap aplikasi yang menggunakan platform identitas Microsoft di pusat admin Microsoft Entra Pendaftaran aplikasi. Proses pendaftaran aplikasi mengumpulkan dan menetapkan nilai-nilai ini untuk aplikasi Anda:
- ID Aplikasi (klien) yang secara unik mengidentifikasi aplikasi Anda
- URI Pengalihan yang dapat Anda gunakan untuk mengarahkan respons kembali ke aplikasi Anda
- Beberapa nilai khusus skenario lainnya seperti jenis akun yang didukung
Untuk detailnya, pelajari cara mendaftarkan aplikasi.
Setelah aplikasi terdaftar, aplikasi berkomunikasi dengan platform identitas Microsoft dengan mengirim permintaan ke titik akhir. Kami menyediakan kerangka kerja dan pustaka sumber terbuka yang menangani detail permintaan ini. Anda juga memiliki opsi untuk mengimplementasikan logika autentikasi sendiri dengan membuat permintaan ke titik akhir ini:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
https://login.microsoftonline.com/common/oauth2/v2.0/token
Jenis aplikasi yang didukung oleh platform identitas Microsoft adalah;
- Aplikasi satu halaman (SPA)
- Aplikasi web
- Web API
- Aplikasi seluler dan asli
- Layanan, daemon, skrip
Aplikasi satu halaman
Banyak aplikasi modern memiliki front end aplikasi satu halaman (SPA) yang ditulis terutama di JavaScript, sering kali dengan kerangka kerja seperti Angular, React, atau Vue. platform identitas Microsoft mendukung aplikasi ini dengan menggunakan protokol OpenID Connect untuk autentikasi dan salah satu dari dua jenis pemberian otorisasi yang ditentukan oleh OAuth 2.0. Gunakan alur kode otorisasi dengan PKCE saat mengembangkan SPAs. Alur ini lebih aman daripada alur implisit, yang tidak lagi direkomendasikan. Untuk informasi selengkapnya, lihat lebih memilih alur kode autentikasi.
Diagram alur menunjukkan alur pemberian kode otorisasi OAuth 2.0 (dengan detail seputar PKCE yang dihilangkan), di mana aplikasi menerima kode dari titik akhir platform identitas Microsoftauthorize
, dan menukarkannya dengan token akses dan token refresh menggunakan permintaan web lintas situs. Untuk SPAs, token akses berlaku selama 1 jam, dan setelah kedaluwarsa, harus meminta kode lain menggunakan token refresh. Selain token akses, id_token
yang mewakili pengguna yang masuk ke aplikasi klien biasanya juga diminta melalui alur yang sama dan/atau permintaan OpenID Connect terpisah (tidak ditampilkan di sini).
Untuk melihat tindakan ini, lihat Mulai Cepat: Memasukkan pengguna di aplikasi satu halaman (SPA) dan memanggil Microsoft Graph API menggunakan JavaScript.
Aplikasi web
Untuk aplikasi web (.NET, PHP, Java, Ruby, Python, Node) yang diakses pengguna melalui browser, Anda dapat menggunakan OpenID Connect untuk masuk pengguna. Di OpenID Connect, aplikasi web menerima token ID. Token ID adalah token keamanan yang memverifikasi identitas pengguna dan memberikan informasi tentang pengguna dalam bentuk klaim:
// Partial raw ID token
abC1dEf2Ghi3jkL4mNo5Pqr6stU7vWx8Yza9...
// Partial content of a decoded ID token
{
"name": "Casey Jensen",
"email": "casey.jensen@onmicrosoft.com",
"oid": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
...
}
Detail lebih lanjut dari berbagai jenis token yang digunakan dalam platform identitas Microsoft tersedia dalam referensi token akses dan referensi id_token.
Di aplikasi server web, alur autentikasi masuk mengambil langkah-langkah tingkat tinggi ini:
Anda dapat memastikan identitas pengguna dengan memvalidasi token ID dengan kunci penandatanganan publik yang diterima dari platform identitas Microsoft. Cookie sesi diatur, yang dapat digunakan untuk mengidentifikasi pengguna pada permintaan halaman berikutnya.
Pelajari selengkapnya dengan membangun aplikasi web ASP.NET Core yang memasukkan pengguna dalam seri tutorial multi-bagian berikut
Selain masuk sederhana, aplikasi server web mungkin perlu mengakses layanan web lain, seperti API Representational State Transfer (REST). Dalam hal ini, aplikasi server web terlibat dalam gabungan alur OpenID Connect dan OAuth 2.0, dengan menggunakan alur kode otorisasi OAuth 2.0. Untuk informasi selengkapnya tentang skenario ini, lihat sampel kode kami.
API Web
Anda dapat menggunakan platform identitas Microsoft untuk mengamankan layanan web, seperti API web RESTful aplikasi Anda. API Web dapat diimplementasikan dalam berbagai platform dan bahasa. Mereka juga dapat diimplementasikan menggunakan Pemicu HTTP di Azure Functions. Alih-alih token ID dan cookie sesi, API web menggunakan token akses OAuth 2.0 untuk mengamankan datanya dan untuk mengautentikasi permintaan masuk.
Pemanggil API web menambahkan token akses di header otorisasi permintaan HTTP, seperti ini:
GET /api/items HTTP/1.1
Host: www.mywebapi.com
Authorization: Bearer abC1dEf2Ghi3jkL4mNo5Pqr6stU7vWx8Yza9...
Accept: application/json
...
API web menggunakan token akses untuk memverifikasi identitas pemanggil API dan mengekstrak informasi tentang pemanggil dari klaim yang dikodekan dalam token akses. Detail lebih lanjut dari berbagai jenis token yang digunakan dalam platform identitas Microsoft tersedia dalam referensi token akses dan referensi token ID.
API web dapat memberi pengguna kekuatan untuk ikut serta atau menolak fungsionalitas atau data tertentu dengan mengekspos izin, juga dikenal sebagai cakupan. Agar aplikasi panggilan memperoleh izin ke cakupan, pengguna harus menyetujui cakupan selama alur. platform identitas Microsoft meminta izin kepada pengguna, lalu merekam izin di semua token akses yang diterima API web. API web memvalidasi token akses yang diterimanya pada setiap panggilan dan melakukan pemeriksaan otorisasi.
API web dapat menerima token akses dari semua jenis aplikasi, termasuk aplikasi server web, aplikasi desktop dan seluler, aplikasi satu halaman, daemon sisi server, dan bahkan API web lainnya. Aliran tingkat tinggi untuk API web terlihat seperti ini:
Untuk mempelajari cara mengamankan API web dengan menggunakan token akses OAuth2, lihat sampel kode API web dalam tutorial API web yang dilindungi.
Dalam banyak kasus, API web juga perlu membuat permintaan keluar ke API web hilir lainnya yang diamankan oleh platform identitas Microsoft. Untuk melakukannya, API web dapat memanfaatkan alur On-Behalf-Of (OBO), yang memungkinkan API web untuk menukar token akses masuk dengan token akses lain untuk digunakan dalam permintaan keluar. Untuk informasi selengkapnya, lihat alur atas nama platform identitas Microsoft dan OAuth 2.0.
Aplikasi seluler dan asli
Aplikasi yang diinstal perangkat, seperti aplikasi seluler dan desktop, sering kali perlu mengakses layanan back-end atau API web yang menyimpan data dan melakukan fungsi atas nama pengguna. Aplikasi ini dapat menambahkan masuk dan otorisasi ke layanan back-end dengan menggunakan alur kode otorisasi OAuth 2.0.
Dalam alur ini, aplikasi menerima kode otorisasi dari platform identitas Microsoft saat pengguna masuk. Kode otorisasi mewakili izin aplikasi untuk memanggil layanan back-end atas nama pengguna yang masuk. Aplikasi ini dapat menukar kode otorisasi di latar belakang dengan token akses OAuth 2.0 dan token refresh. Aplikasi ini dapat menggunakan token akses untuk mengautentikasi ke API web dalam permintaan HTTP, dan menggunakan token refresh untuk mendapatkan token akses baru saat token akses yang lebih lama kedaluwarsa.
Nota
Jika aplikasi menggunakan tampilan web sistem default, periksa informasi tentang fungsionalitas "Konfirmasi Masuk Saya" dan kode AADSTS50199
kesalahan di kode kesalahan autentikasi dan otorisasi Microsoft Entra.
Server, daemon, dan skrip
Aplikasi yang memiliki proses jangka panjang atau yang beroperasi tanpa interaksi dengan pengguna juga memerlukan cara untuk mengakses sumber daya yang aman, seperti API web. Aplikasi ini dapat mengautentikasi dan mendapatkan token dengan menggunakan identitas aplikasi, bukan identitas pengguna yang didelegasikan, dengan alur kredensial klien OAuth 2.0. Anda dapat membuktikan identitas aplikasi menggunakan rahasia atau sertifikat klien. Untuk informasi selengkapnya, lihat aplikasi konsol daemon .NET menggunakan platform identitas Microsoft.
Dalam alur ini, aplikasi berinteraksi langsung dengan /token
titik akhir untuk mendapatkan akses:
Untuk membuat aplikasi daemon, lihat dokumentasi kredensial klien, atau coba aplikasi sampel .NET.
Lihat juga
Sekarang setelah Anda terbiasa dengan jenis aplikasi yang didukung oleh platform identitas Microsoft, pelajari selengkapnya tentang OAuth 2.0 dan OpenID Connect untuk mendapatkan pemahaman tentang komponen protokol yang digunakan oleh berbagai skenario.