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 Koneksi. Artikel ini menjelaskan jenis aplikasi yang dapat Anda bangun 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-dasar

Anda harus mendaftarkan setiap aplikasi yang menggunakan platform identitas Microsoft di pusat admin Microsoft Entra Pendaftaran aplikasi. Proses pendaftaran aplikasi mengumpulkan dan menetapkan beberapa nilai berikut ke aplikasi Anda:

  • Sebuah ID Aplikasi (klien) yang mengidentifikasi aplikasi Anda secara unik
  • URI Pengalihan yang dapat Anda gunakan untuk mengarahkan respons kembali ke aplikasi Anda
  • Beberapa nilai khusus skenario lainnya seperti jenis akun yang didukung

Untuk detail, pelajari cara mendaftarkan aplikasi.

Setelah terdaftar, aplikasi berkomunikasi dengan platform identitas Microsoft melalui pengiriman permintaan ke titik akhir. Kami menyediakan kerangka kerja dan pustaka sumber terbuka yang menangani permintaan ini. Anda juga dapat memilih untuk menerapkan logika autentikasi sendiri dengan membuat permintaan ke titik akhir berikut:

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
  • API Web
  • Aplikasi seluler dan native
  • 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 Koneksi OpenID untuk autentikasi dan salah satu dari dua jenis pemberian otorisasi yang ditentukan oleh OAuth 2.0. Jenis pemberian yang didukung adalah alur pemberian izin implisit OAuth 2.0 atau kode otorisasi OAuth 2.0 + alur PKCE yang lebih baru (lihat di bawah).

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 dimasukkan aplikasi klien umumnya juga diminta melalui alur yang sama dan/atau permintaan OpenID Connect terpisah (tidak ditampilkan di sini).

Diagram memperlihatkan alur kode otorisasi OAuth 2.0 antara aplikasi satu halaman dan titik akhir layanan token keamanan.

Untuk melihat tindakan ini, lihat Mulai Cepat: Memasukkan pengguna di aplikasi satu halaman (SPA) dan memanggil Microsoft Graph API menggunakan JavaScript.

Alur kode otorisasi vs. alur implisit

Alur kode otorisasi OAuth 2.0 sekarang merupakan cara yang disarankan untuk membangun SPAs untuk memastikan kompatibilitas aplikasi Anda di Safari dan browser sadar privasi lainnya. Setelah penghapusan cookie pihak ketiga dan perhatian yang lebih besar, penggunaan berkelanjutan dari alur implisit tidak disarankan.

Aplikasi web

Untuk aplikasi web (.NET, PHP, Java, Ruby, Python, Node) yang diakses pengguna melalui browser, Anda dapat menggunakan OpenID Connect untuk eincian masuk pengguna. Dalam 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": "ab12cd34-effe-5678-9012-abcdef012345"
    ...
}

Detail selengkapnya tentang berbagai jenis token yang digunakan dalam platform identitas Microsoft tersedia dalam referensi token akses dan id_token.

Dalam aplikasi server web, alur autentikasi rincian masuk mengambil langkah tingkat tinggi berikut:

Menunjukkan alur autentikasi aplikasi web

Anda dapat memastikan identitas pengguna melalui 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 kasus 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.

Web API

Anda dapat menggunakan titik akhir 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 Microsoft Azure Functions. Alih-alih token ID dan cookie sesi, API web menggunakan token akses OAuth 2.0 untuk mengamankan data 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 untuk memverifikasi identitas pemanggil API dan untuk 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 kuasa untuk ikut serta atau menolak fungsionalitas atau data tertentu dengan menyingkap izin, juga dikenal sebagai cakupan. Agar aplikasi panggilan mendapatkan izin ke cakupan, pengguna harus menyetujui cakupan dalam alur. Platform identitas Microsoft meminta izin kepada pengguna, lalu mencatat izin di semua token akses yang diterima API web. API web memvalidasi token akses yang diterimanya di 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 halaman tunggal, daemon sisi server, dan bahkan API web lainnya. Alur tingkat tinggi untuk API web terlihat seperti ini:

Menunjukkan alur autentikasi API web

Untuk mempelajari cara mengamankan API web dengan menggunakan token akses OAuth2, lihat sampel kode API web dalam tutorial API web yang dilindungi.

Sering kali, API web juga perlu membuat permintaan keluar ke API web downstream 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 info selengkapnya, lihat Platform identitas Microsoft dan alur Atas Nama OAuth 2.0.

Aplikasi seluler dan native

Aplikasi yang diinstal perangkat, seperti aplikasi seluler dan desktop, sering kali perlu mengakses layanan ujung belakang atau API web yang menyimpan data dan melakukan fungsi atas nama pengguna. Aplikasi ini dapat menambahkan rincian masuk dan otorisasi ke layanan ujung belakang 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 ujung belakang atas nama pengguna yang masuk. Aplikasi ini dapat menukar kode otorisasi di latar belakang 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 lama kedaluwarsa.

Menunjukkan alur autentikasi aplikasi asli

Catatan

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 berjalan tanpa interaksi pengguna juga memerlukan cara untuk mengakses sumber daya yang aman, seperti API web. Aplikasi ini dapat mengautentikasi dan mendapatkan token dengan menggunakan identitas aplikasi alih-alih identitas terdelegasi pengguna, dengan alur info masuk 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:

Menunjukkan alur autentikasi aplikasi daemon

Untuk membangun aplikasi daemon, lihat dokumentasi kredensial klien, atau coba aplikasi sampel .NET.

Lihat juga

Sekarang setelah mengenali 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 dalam berbagai skenario.