platform identitas Microsoft jenis aplikasi dan alur autentikasi
Platform identitas Microsoft mendukung autentikasi untuk berbagai jenis arsitektur aplikasi modern. Semuanya arsitektur berbasis protokol standar industri OAuth 2.0 atau OpenID Connect. Dengan menggunakan pustaka autentikasi untuk platform identitas Microsoft, aplikasi mengautentikasi identitas dan memperoleh token untuk mengakses API yang dilindungi.
Artikel ini menjelaskan alur autentikasi dan skenario aplikasi di mana aplikasi digunakan.
Kategori aplikasi
Token keamanan dapat diperoleh dari beberapa jenis aplikasi, termasuk:
- Aplikasi web
- Aplikasi seluler
- Aplikasi desktop
- Web API
Token juga dapat diperoleh dengan aplikasi yang berjalan pada perangkat yang tidak memiliki browser atau berjalan di Internet of Things (IoT).
Bagian berikut ini menjelaskan kategori aplikasi.
Sumber daya yang dilindungi vs. aplikasi klien
Skenario otentikasi melibatkan dua aktivitas:
- Memperoleh token keamanan untuk API web yang dilindungi: Kami menyarankan agar Anda menggunakan Microsoft Authentication Library (MSAL), yang dikembangkan dan didukung oleh Microsoft.
- Melindungi API web atau aplikasi web: Salah satu tantangan melindungi sumber daya ini adalah memvalidasi token keamanan. Pada beberapa platform, Microsoft menawarkan pustaka middleware.
Dengan pengguna atau tanpa pengguna
Sebagian besar skenario autentikasi memperoleh token atas nama pengguna yang masuk.
Namun, ada juga aplikasi daemon. Dalam skenario ini, aplikasi memperoleh token atas nama sendiri tanpa pengguna.
Aplikasi satu halaman, klien publik, dan klien rahasia
Token keamanan dapat diperoleh oleh beberapa jenis aplikasi. Aplikasi ini cenderung dipisahkan ke dalam tiga kategori berikut. Masing-masing digunakan dengan pustaka dan objek yang berbeda.
Aplikasi halaman tunggal: Juga dikenal sebagai SPA, ini adalah aplikasi web di mana token diperoleh oleh aplikasi JavaScript atau TypeScript yang berjalan di browser. Banyak aplikasi modern memiliki aplikasi satu halaman di ujung depan, terutama yang ditulis di JavaScript. Aplikasi ini seringkali menggunakan kerangka kerja seperti Angular, React, atau Vue. MSAL.js adalah satu-satunya pustaka autentikasi Microsoft yang mendukung aplikasi satu halaman.
Aplikasi klien publik: Aplikasi dalam kategori ini, seperti jenis berikut, selalu memasukkan pengguna:
- Aplikasi desktop yang memanggil API web atas nama pengguna yang masuk
- Mobile apps
- Aplikasi yang berjalan di perangkat yang tidak memiliki browser, seperti yang berjalan di IoT
Aplikasi klien rahasia: Aplikasi dalam kategori ini meliputi:
- Aplikasi web yang memanggil API web
- API web yang memanggil API web
- Aplikasi Daemon, bahkan ketika diterapkan sebagai layanan konsol seperti daemon Linux atau layanan Windows
Audiens masuk
Alur autentikasi yang tersedia berbeda tergantung pada audiens masuk. Beberapa alur hanya tersedia untuk akun kantor atau sekolah. Alur lain tersedia baik untuk akun kantor atau sekolah maupun untuk akun Microsoft pribadi.
Untuk informasi selengkapnya, lihat Jenis akun yang didukung.
Tipe aplikasi
Platform identitas Microsoft mendukung autentikasi untuk arsitektur aplikasi ini:
- Aplikasi satu halaman
- Aplikasi web
- Web API
- Mobile apps
- Aplikasi native
- Aplikasi daemon
- Aplikasi sisi server
Aplikasi menggunakan alur autentikasi yang berbeda untuk masuk ke pengguna dan memperoleh token untuk memanggil API terlindungi.
Aplikasi satu halaman
Banyak aplikasi web modern dibangun sebagai aplikasi satu halaman di sisi klien. Aplikasi ini menggunakan JavaScript atau kerangka kerja seperti Angular, Vue, dan React. Aplikasi ini berjalan di browser web.
Aplikasi satu halaman berbeda dari aplikasi web sisi server biasa dalam hal karakteristik autentikasi. Dengan menggunakan platform identitas Microsoft, aplikasi satu halaman dapat memasukkan pengguna dan memperoleh token untuk mengakses layanan ujung belakang atau API web. Platform identitas Microsoft menawarkan dua jenis pemberian izin untuk aplikasi JavaScript:
MSAL.js (2.x) | MSAL.js (1.x) |
---|---|
Aplikasi web yang memasukkan pengguna
Untuk membantu melindungi aplikasi web yang memasukkan pengguna:
Jika Anda mengembangkan di .NET, Anda menggunakan ASP.NET atau ASP.NET Core dengan middleware OpenID Connect ASP.NET. Melindungi sumber daya melibatkan validasi token keamanan, yang dilakukan oleh ekstensi IdentityModel untuk .NET dan bukan pustaka MSAL.
Jika Anda mengembangkan dalam Node.js, Anda menggunakan Simpul MSAL.
Untuk informasi selengkapnya, lihat Aplikasi web yang memasukkan pengguna.
Aplikasi web yang memasukkan pengguna dan memanggil API web atas nama pengguna
Untuk memanggil API web dari aplikasi web atas nama pengguna, gunakan alur kode otorisasi, lalu simpan token yang diperoleh di cache token. Ketika diperlukan, MSAL menyegarkan token dan pengontrol diam-diam memperoleh token dari cache.
Untuk informasi selengkapnya, lihat Aplikasi web yang memanggil API web.
Aplikasi desktop yang memanggil API web atas nama pengguna yang masuk
Agar aplikasi desktop memanggil API web memasukkan pengguna, gunakan metode akuisisi token interaktif MSAL. Dengan metode interaktif ini, Anda dapat mengontrol pengalaman UI masuk. MSAL menggunakan browser web untuk interaksi ini.
Ada kemungkinan lain untuk aplikasi yang dihosting Windows di komputer yang bergabung baik ke domain Windows atau oleh ID Microsoft Entra. Aplikasi ini dapat memperoleh token secara diam-diam dengan menggunakan NTLM terintegrasi .
Aplikasi yang berjalan pada perangkat tanpa browser, masih dapat memanggil API atas nama pengguna. Untuk mengautentikasi, pengguna harus masuk di perangkat lain yang memiliki browser web. Skenario ini mengharuskan Anda menggunakan alur kode perangkat.
Meskipun kami tidak menyarankan Anda menggunakannya, alur nama pengguna/kata sandi tersedia di aplikasi klien publik. Alur ini masih diperlukan dalam beberapa skenario seperti DevOps.
Menggunakan alur nama pengguna/kata sandi membatasi aplikasi Anda. Misalnya, aplikasi tidak dapat memasukkan pengguna yang perlu menggunakan autentikasi multifaktor atau alat Akses Bersyarat di ID Microsoft Entra. Aplikasi Anda juga tidak mendapat manfaat dari akses menyeluruh. Autentikasi dengan alur nama pengguna/kata sandi bertentangan dengan prinsip-prinsip autentikasi modern, dan hanya disediakan karena alasan warisan.
Di aplikasi desktop, jika Anda ingin cache token tetap ada, Anda dapat menyesuaikan serialisasi cache token. Dengan menerapkan serialisasi cache token ganda, Anda dapat menggunakan cache token yang kompatibel versi lama dan kompatibel versi baru.
Untuk informasi selengkapnya, lihat Aplikasi desktop yang memanggil API web.
Aplikasi seluler yang memanggil API web atas nama pengguna interaktif
Serupa dengan aplikasi desktop, aplikasi seluler memanggil metode akuisisi token interaktif MSAL untuk mendapatkan token untuk memanggil API web.
MSAL iOS dan MSAL Android menggunakan browser web sistem secara default. Namun, Anda dapat mengarahkannya untuk menggunakan tampilan web tersemat sebagai gantinya. Ada kekhususan yang bergantung pada platform seluler: Universal Windows Platform (UWP), iOS, atau Android.
Beberapa skenario, seperti melibatkan Akses Bersyarat yang terkait dengan ID perangkat atau pendaftaran perangkat, mengharuskan broker terpasang pada perangkat. Contoh broker adalah Microsoft Company Portal di Android dan Microsoft Authenticator pada Android dan iOS.
Untuk informasi selengkapnya, lihat Aplikasi seluler yang memanggil API web.
Catatan
Aplikasi seluler yang menggunakan MSAL iOS atau MSAL Android dapat menerapkan kebijakan perlindungan aplikasi. Misalnya, kebijakan tersebut dapat mencegah pengguna menyalin teks yang diproteksi. Aplikasi seluler dikelola oleh Intune dan diakui oleh Intune sebagai aplikasi terkelola. Untuk informasi selengkapnya, lihat Ikhtisar SDK Aplikasi Microsoft Intune.
SDK Aplikasi Intune terpisah dari pustaka MSAL dan berinteraksi dengan ID Microsoft Entra sendiri.
API web yang dilindungi
Anda dapat menggunakan titik akhir platform identitas Microsoft untuk mengamankan layanan web seperti RESTful API aplikasi Anda. API web yang dilindungi dipanggil melalui token akses. Token membantu mengamankan data API dan mengautentikasi permintaan masuk. Pemanggil API web menambahkan token akses di header otorisasi permintaan HTTP.
Jika Anda ingin melindungi akun API web ASP.NET atau ASP.NET Core, validasi token akses. Untuk validasi ini, Anda menggunakan ASP.NET JWT. Validasi dilakukan oleh Ekstensi IdentityModel untuk pustaka .NET, dan bukan dengan MSAL.NET.
Untuk informasi selengkapnya, lihat API web terlindungi.
API web yang memanggil API web lain atas nama pengguna
Agar API web terlindungi memanggil API web lain atas nama pengguna, aplikasi Anda harus memperoleh token untuk API web hilir. Panggilan semacam itu terkadang disebut sebagai panggilan layanan ke layanan. API Web yang memanggil API web lain harus menyediakan serialisasi cache kustom.
Untuk informasi selengkapnya, lihat Aplikasi web yang memanggil API web.
Aplikasi Daemon yang memanggil API web atas nama daemon
Aplikasi yang memiliki proses jangka panjang atau yang beroperasi tanpa interaksi pengguna, juga memerlukan cara untuk mengakses API web yang aman. Aplikasi semacam itu dapat mengautentikasi dan memperoleh token dengan menggunakan identitas aplikasi. Aplikasi ini membuktikan identitasnya dengan menggunakan klien rahasia atau sertifikat.
Anda dapat menulis aplikasi daemon semacam itu yang memperoleh token untuk aplikasi panggilan dengan menggunakan metode akuisisi kredensial klien di MSAL. Metode ini memerlukan rahasia klien yang Anda tambahkan ke pendaftaran aplikasi di ID Microsoft Entra. Aplikasi ini lalu berbagi rahasia dengan daemon yang dipanggil. Contoh rahasia tersebut termasuk kata sandi aplikasi, penegasan sertifikat, dan penegasan klien.
Untuk informasi selengkapnya, lihat Aplikasi Daemon yang memanggil API web.
Skenario dan alur autentikasi yang didukung
Anda menggunakan alur autentikasi untuk menerapkan skenario aplikasi yang meminta token. Tidak ada pemetaan satu-ke-satu antara skenario aplikasi dan alur autentikasi.
Skenario yang melibatkan pengukur token juga memetakan alur autentikasi OAuth 2.0. Untuk informasi selengkapnya, lihat Protokol OAuth 2.0 dan OpenID Connect pada platform identitas Microsoft.
Skenario | Panduan skenario terperinci | ALur dan hibah OAuth 2.0 | Audiens |
---|---|---|---|
Aplikasi satu halaman | Kode otorisasi dengan PKCE | Akun kantor atau sekolah, akun pribadi, dan Azure Active Directory B2C (Azure AD B2C) | |
Aplikasi satu halaman | Implisit | Akun kantor atau sekolah, akun pribadi, dan Azure Active Directory B2C (Azure AD B2C) | |
Aplikasi web yang memasukkan ke pengguna | Kode otorisasi | Akun kantor atau sekolah, akun pribadi, dan Azure AD B2C | |
Aplikasi web yang memanggil API web | Kode otorisasi | Akun kantor atau sekolah, akun pribadi, dan Azure AD B2C | |
Aplikasi desktop yang memanggil API web | Interaktif dengan menggunakan kode otorisasi dengan PKCE | Akun kantor atau sekolah, akun pribadi, dan Azure AD B2C | |
Autentikasi Windows yang terintegrasi | Akun kantor atau sekolah | ||
Kata sandi pemilik sumber daya | Akun kantor atau sekolah dan Azure AD B2C | ||
Aplikasi tanpa browser | Kode perangkat | Akun kerja atau sekolah, akun pribadi, tapi bukan Azure AD B2C | |
Aplikasi desktop yang memanggil API web | Interaktif dengan menggunakan kode otorisasi dengan PKCE | Akun kantor atau sekolah, akun pribadi, dan Azure AD B2C | |
Kata sandi pemilik sumber daya | Akun kantor atau sekolah dan Azure AD B2C | ||
Aplikasi daemon yang memanggil API web | Informasi masuk klien | Izin khusus aplikasi yang tidak memiliki pengguna dan hanya digunakan di organisasi Microsoft Entra | |
API Web yang memanggil API web | Atas nama | Akun kantor atau sekolah dan akun pribadi |
Skenario dan platform dan bahasa yang didukung
Pustaka autentikasi Microsoft mendukung beberapa platform:
- .NET
- .NET Framework
- Java
- JavaScript
- macOS
- Android Native
- iOS Native
- Node.js
- Python
- Windows 10/UWP
Anda juga dapat menggunakan beragam bahasa untuk membangun aplikasi Anda.
Di kolom Windows dari tabel berikut, setiap kali .NET disebutkan, .NET Framework juga dimungkinkan. Yang terakhir dihilangkan untuk menghindari kekacauan tabel.
Skenario | Windows | Linux | Mac | iOS | Android |
---|---|---|---|---|---|
Aplikasi satu halaman |
MSAL.js |
MSAL.js |
MSAL.js |
MSAL.js | MSAL.js |
Aplikasi satu halaman |
MSAL.js |
MSAL.js |
MSAL.js |
MSAL.js | MSAL.js |
Aplikasi web yang memasukkan ke pengguna |
ASP.NET Core Simpul MSAL |
ASP.NET Core Simpul MSAL |
ASP.NET Core Simpul MSAL |
||
Aplikasi web yang memanggil API web |
ASP.NET Core + MSAL.NET MSAL Java Flask + MSAL Python Simpul MSAL |
ASP.NET Core + MSAL.NET MSAL Java Flask + MSAL Python Simpul MSAL |
ASP.NET Core + MSAL.NET MSAL Java Flask + MSAL Python Simpul MSAL |
||
Aplikasi desktop yang memanggil API web |
MSAL.NET MSAL Java MSAL Python Simpul MSAL |
MSAL.NET MSAL Java MSAL Python Simpul MSAL |
MSAL.NET MSAL Java MSAL Python Simpul MSAL MSAL.objc |
||
Aplikasi desktop yang memanggil API web |
MSAL.NET MSAL.NET | MSAL.objc | MSAL. Android | ||
Aplikasi Daemon |
MSAL.NET MSAL Java MSAL Python Simpul MSAL |
MSAL.NET MSAL Java MSAL Python Simpul MSAL |
MSAL.NET MSAL Java MSAL Python Simpul MSAL |
||
API Web yang memanggil API web |
ASP.NET Core + MSAL.NET MSAL Java MSAL Python Simpul MSAL |
ASP.NET Core + MSAL.NET MSAL Java MSAL Python Simpul MSAL |
ASP.NET Core + MSAL.NET MSAL Java MSAL Python Simpul MSAL |
Untuk informasi selengkapnya, lihat Pustaka autentikasi platform identitas Microsoft.
Langkah berikutnya
Untuk informasi selengkapnya tentang jenis autentikasi, lihat: