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.

Skenario dengan pengguna

Namun, ada juga aplikasi daemon. Dalam skenario ini, aplikasi memperoleh token atas nama sendiri tanpa pengguna.

Skenario dengan aplikasi daemon

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)
Autentikasi aplikasi satu halaman Implisit autentikasi aplikasi satu halaman

Aplikasi web yang memasukkan pengguna

Sebuah 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

Aplikasi web memanggil API web

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.

Aplikasi desktop yang memanggil API web

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.

Aliran 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.

Aplikasi seluler yang 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. MSAL sekarang dapat berinteraksi dengan broker. Untuk informasi selengkapnya tentang broker, lihat Memanfaatkan broker di Android dan iOS.

Untuk informasi selengkapnya, lihat Aplikasi seluler yang memanggil API web.

Catatan

Aplikasi seluler yang menggunakan MSAL.iOS, MSAL. Android, atau MSAL.NET pada Xamarin dapat menerapkan kebijakan perlindungan aplikasi untuknya. 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.

API web memanggil API web lain

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.

Aplikasi daemon yang dipanggil oleh aplikasi dan API lain

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 dengan kode autentikasi Aplikasi satu halaman Kode otorisasi dengan PKCE Akun kantor atau sekolah, akun pribadi, dan Azure Active Directory B2C (Azure AD B2C)
Aplikasi Satu Halaman dengan Implicit Aplikasi satu halaman Implisit Akun kantor atau sekolah, akun pribadi, dan Azure Active Directory B2C (Azure AD B2C)
Aplikasi web yang memasukkan ke pengguna Aplikasi web yang memasukkan ke pengguna Kode otorisasi Akun kantor atau sekolah, akun pribadi, dan Azure AD B2C
Aplikasi web yang memanggil API web Aplikasi web yang memanggil API web Kode otorisasi Akun kantor atau sekolah, akun pribadi, dan Azure AD B2C
Aplikasi desktop yang memanggil API web 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 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 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 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
  • Xamarin.iOS
  • Xamarin.Android

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
Autentikasi Aplikasi Satu Halaman
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js MSAL.js MSAL.js
MSAL.js
Aplikasi satu halaman
Implisit Aplikasi Satu Halaman
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js MSAL.js MSAL.js
MSAL.js
Aplikasi web yang memasukkan ke pengguna
Aplikasi web yang memasukkan ke pengguna
Inti ASP.NET
ASP.NET Core Simpul MSAL
Simpul MSAL
Inti ASP.NET
ASP.NET Core Simpul MSAL
Simpul MSAL
Inti ASP.NET
ASP.NET Core Simpul MSAL
Simpul MSAL
Aplikasi web yang memanggil API web

Aplikasi web yang memanggil API web
Inti ASP.NET
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
Flask + MSAL Python Simpul MSAL
Simpul MSAL
Inti ASP.NET
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
Flask + MSAL Python Simpul MSAL
Simpul MSAL
Inti ASP.NET
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
Flask + MSAL Python Simpul MSAL
Simpul MSAL
Aplikasi desktop yang memanggil API web

Aplikasi desktop yang memanggil API webAliran kode perangkat
.NETMSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python Simpul MSAL
Simpul MSAL
.NETMSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python Simpul MSAL
Simpul MSAL
.NETMSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python
Simpul MSAL
Simpul MSAL
iOS / Objective C atau swift MSAL.objc
Aplikasi desktop yang memanggil API web
Aplikasi desktop yang memanggil API web
UWP MSAL.NET Xamarin MSAL.NET iOS / Objective C atau swift MSAL.objc Android MSAL. Android
Aplikasi Daemon
Aplikasi Daemon
.NETMSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python Simpul MSAL
Simpul MSAL
.NET MSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python Simpul MSAL
Simpul MSAL
.NETMSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python Simpul MSAL
Simpul MSAL
API Web yang memanggil API web

API Web yang memanggil API web
Inti ASP.NET
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python Simpul MSAL
Simpul MSAL
.NET
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python Simpul MSAL
Simpul MSAL
.NET
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python Simpul MSAL
Simpul MSAL

Untuk informasi selengkapnya, lihat Pustaka autentikasi platform identitas Microsoft.

Langkah berikutnya

Untuk informasi selengkapnya tentang jenis autentikasi, lihat: