Apa itu autentikasi?
Peringatan
Konten ini untuk titik akhir Azure AD v1.0 yang lebih lama. Gunakan platform identitas Microsoft untuk proyek baru.
Autentikasi adalah tindakan menantang pihak untuk info masuk yang sah, memberikan dasar untuk pembuatan kepala keamanan yang akan digunakan untuk identitas dan kontrol akses. Dalam istilah yang lebih sederhana, ini adalah proses membuktikan bahwa Anda adalah siapa yang Anda katakan. Autentikasi terkadang disingkat menjadi AuthN.
Otorisasi adalah tindakan pemberian izin pokok keamanan terautentikasi untuk melakukan sesuatu. Ini menentukan data apa yang diizinkan untuk Anda akses dan apa yang dapat Anda lakukan dengan data tersebut. Otorisasi kadang-kadang disingkat menjadi AuthZ.
Azure Active Directory untuk pengembang (v1.0) (Azure AD) menyederhanakan autentikasi untuk pengembang aplikasi dengan menyediakan identitas sebagai layanan, dengan dukungan untuk protokol standar industri seperti OAuth 2.0 dan OpenID Connect, serta perpustakaan sumber terbuka untuk platform yang berbeda untuk membantu Anda memulai pengodean dengan cepat.
Ada dua kasus penggunaan utama dalam model pemrograman Microsoft Azure Active Directory:
- Selama alur pemberian izin otorisasi OAuth 2.0 - ketika pemilik sumber daya memberikan otorisasi ke aplikasi klien, memungkinkan klien untuk mengakses sumber daya dari pemilik sumber daya.
- Selama akses sumber daya oleh klien - seperti yang diterapkan oleh server sumber daya, menggunakan nilai klaim yang ada dalam token akses untuk membuat keputusan kontrol akses berdasarkan mereka.
Dasar-dasar autentikasi di Azure Active Directory
Pertimbangkan skenario paling mendasar di mana identitas diperlukan: pengguna di browser web perlu mengautentikasi ke aplikasi web. Diagram berikut menunjukkan skenario ini:
Inilah yang perlu Anda ketahui tentang berbagai komponen yang ditampilkan dalam diagram:
- Azure Active Directory adalah penyedia identitas. Penyedia identitas bertanggung jawab untuk memverifikasi identitas pengguna dan aplikasi yang ada di direktori organisasi, dan mengeluarkan token keamanan setelah keberhasilan autentikasi pengguna dan aplikasi tersebut.
- Aplikasi yang ingin melakukan outsourcing autentikasi ke Azure Active Directory harus terdaftar di Azure Active Directory (Azure AD). Azure Active Directory mendaftar dan mengidentifikasi aplikasi secara unik di direktori.
- Pengembang dapat menggunakan pustaka autentikasi Azure Active Directory sumber terbuka untuk mempermudah autentikasi dengan menangani detail protokol untuk Anda. Untuk info selengkapnya, lihat platform identitas Microsoft pustaka autentikasi v2.0 dan pustaka autentikasi v1.0.
- Setelah pengguna diautentikasi, aplikasi harus memvalidasi token keamanan pengguna untuk memastikan bahwa autentikasi berhasil. Anda dapat menemukan mulai cepat, tutorial, dan sampel kode dalam berbagai bahasa dan kerangka kerja yang menunjukkan apa yang harus dilakukan aplikasi.
- Untuk membuat aplikasi dengan cepat dan menambahkan fungsionalitas seperti mendapatkan token, me-refresh token, masuk ke pengguna, menampilkan beberapa info pengguna, dan lainnya, lihatbagian Mulai Cepat dari dokumentasi.
- Untuk mendapatkan prosedur mendalam berbasis skenario untuk tugas pengembang autentikasi teratas seperti mendapatkan token akses dan menggunakannya dalam panggilan ke API Microsoft Graph dan API lainnya, menerapkan masuk dengan Microsoft dengan aplikasi berbasis browser web tradisional menggunakan OpenID Connect, dan lainnya, lihat bagian Tutorial dari dokumentasi.
- Untuk mengunduh sampel kode, buka GitHub.
- Alur permintaan dan respons untuk proses autentikasi ditentukan oleh protokol otentikasi yang Anda gunakan, seperti OAuth 2.0, OpenID Connect, WS-Federation, atau SAML 2.0. Untuk info selengkapnya tentang protokol, lihat bagian Konsep > Protokol autentikasi dari dokumentasi.
Dalam contoh skenario di atas, Anda dapat mengklasifikasikan aplikasi sesuai dengan dua peran ini:
- Aplikasi yang perlu mengakses sumber daya dengan aman
- Aplikasi yang memainkan peran sumber daya itu sendiri
Bagaimana setiap alur mengeluarkan token dan kode
Bergantung pada bagaimana klien Anda dibangun, klien Anda dapat menggunakan satu (atau beberapa) alur autentikasi yang didukung oleh Azure Active Directory. Alur ini dapat menghasilkan berbagai token (id_token, token refresh, token akses) serta kode otorisasi, dan memerlukan token yang berbeda untuk membuatnya berfungsi. Bagan ini menyediakan gambaran umum:
Alur | Memerlukan | id_token | token akses | token refresh | kode otorisasi |
---|---|---|---|---|---|
Alur kode otorisasi | x | x | x | x | |
Alur implisit | x | x | |||
Alur OIDC hibrid | x | x | |||
Penukaran token refresh | token refresh | x | x | x | |
Alur atas nama | token akses | x | x | x | |
Informasi masuk klien | x (khusus aplikasi) |
Token yang dikeluarkan melalui mode implisit memiliki batasan panjang karena diteruskan kembali ke browser melalui URL (di mana response_mode
adalah query
atau fragment
). Beberapa browser memiliki batasan pada ukuran URL yang dapat dimasukkan ke dalam bilah browser dan gagal ketika terlalu lama. Dengan demikian, token ini tidak memiliki klaim groups
atau wids
.
Sekarang Setelah Anda memiliki gambaran umum tentang dasar-dasarnya, baca terus untuk memahami model aplikasi identitas dan API, cara kerja penyediaan di Azure Active Directory, dan tautan ke info terperinci tentang skenario umum yang didukung Azure Active Directory.
Model aplikasi
Azure Active Directory mewakili aplikasi yang mengikuti model tertentu yang dirancang untuk memenuhi dua fungsi utama:
Identifikasi aplikasi sesuai dengan protokol autentikasi yang didukungnya - Ini melibatkan menghitung semua pengidentifikasi, URL, rahasia, dan informasi terkait yang diperlukan pada waktu autentikasi. Di sini, Azure Active Directory:
- Menyimpan semua data yang diperlukan untuk mendukung autentikasi selama durasi.
- Menyimpan semua data untuk memutuskan sumber daya apa yang mungkin perlu diakses aplikasi dan apakah permintaan tertentu harus dipenuhi dan dalam keadaan seperti apa.
- Menyediakan infrastruktur untuk menerapkan penyediaan aplikasi dalam penyewa pengembang aplikasi dan penyewa Azure Active Directory lainnya.
Tangani persetujuan pengguna selama waktu permintaan token dan fasilitasi penyediaan aplikasi yang dinamis di seluruh penyewa - Di sini, Azure Active Directory:
- Memungkinkan pengguna dan administrator untuk secara dinamis memberikan atau menolak persetujuan bagi aplikasi untuk mengakses sumber daya atas nama mereka.
- Memungkinkan administrator untuk akhirnya memutuskan aplikasi apa yang diizinkan untuk dilakukan dan pengguna mana yang dapat menggunakan aplikasi tertentu, dan bagaimana sumber daya direktori diakses.
Di Azure Active Directory, objek aplikasi menjelaskan aplikasi sebagai entitas abstrak. Pengembang bekerja dengan aplikasi. Pada waktu penyebaran, Azure Active Directory menggunakan objek aplikasi tertentu sebagai cetak biru untuk membuat perwakilan layanan, yang mewakili contoh konkret aplikasi dalam direktori atau penyewa. Ini adalah perwakilan layanan yang mendefinisikan apa yang sebenarnya dapat dilakukan aplikasi dalam direktori target tertentu, yang dapat menggunakannya, sumber daya apa yang dapat diaksesnya, dan sebagainya. Azure Active Directory membuat perwakilan layanan dari objek aplikasi melalui persetujuan.
Diagram berikut menunjukkan alur penyediaan Azure Active Directory yang disederhanakan yang didorong oleh persetujuan. Di dalamnya, ada dua penyewa (A dan B), di mana penyewa A memiliki aplikasi, dan penyewa B membuat aplikasi melalui perwakilan layanan.
Dalam alur penyediaan ini:
- Pengguna dari penyewa B mencoba masuk dengan aplikasi, titik akhir otorisasi meminta token untuk aplikasi.
- Informasi masuk pengguna diperoleh dan diverifikasi untuk autentikasi
- Pengguna diminta untuk memberi persetujuan bagi aplikasi untuk mendapat akses ke penyewa B
- Azure Active Directory menggunakan objek aplikasi di penyewa A sebagai cetak biru untuk membuat perwakilan layanan di penyewa B
- Pengguna menerima token yang diminta
Anda dapat mengulangi proses ini sebanyak yang Anda inginkan untuk penyewa lain (C, D, dan sebagainya). Penyewa A mempertahankan cetak biru untuk aplikasi (objek aplikasi). Pengguna dan admin dari semua penyewa lain di mana aplikasi diberikan persetujuan mempertahankan kontrol atas apa yang diizinkan untuk dilakukan aplikasi melalui objek utama layanan yang sesuai di setiap penyewa. Untuk informasi selengkapnya, lihat Aplikasi dan objek utama layanan di platform identitas Microsoft.
Klaim dalam token keamanan Azure Active Directory
Token keamanan (akses dan token ID) yang dikeluarkan oleh Azure Active Directory berisi klaim, atau pernyataan informasi tentang subjek yang telah diautentikasi. Aplikasi dapat menggunakan klaim untuk berbagai tugas, termasuk:
- Memvalidasi token
- Mengidentifikasi penyewa direktori subjek
- Menampilkan informasi pengguna
- Menentukan otorisasi subjek
Klaim yang ada dalam token keamanan tertentu tergantung pada jenis token, jenis info masuk yang digunakan untuk mengautentikasi pengguna, dan konfigurasi aplikasi.
Deskripsi singkat tentang setiap jenis klaim yang dikeluarkan oleh Azure Active Directory disediakan dalam tabel di bawah ini. Untuk informasi lebih detail, lihat token akses dan token ID yang dikeluarkan oleh Azure Active Directory.
Klaim | Deskripsi |
---|---|
ID aplikasi | Mengidentifikasi aplikasi yang menggunakan token. |
Audiens | Mengidentifikasi sumber daya penerima yang dimaksudkan untuk token. |
Referensi Kelas Konteks Autentikasi Aplikasi | Menunjukkan bagaimana klien diautentikasi (klien publik vs. klien rahasia). |
Autentikasi Instan | Merekam tanggal dan waktu ketika autentikasi terjadi. |
Metode Autentikasi | Menunjukkan bagaimana subjek token diautentikasi (kata sandi, sertifikat, dll.). |
Nama Depan | Menyediakan nama pengguna yang diberikan sebagaimana diatur dalam Azure Active Directory. |
Grup | Berisi ID objek grup Azure Active Directory tempat pengguna menjadi anggotanya. |
IdP | Merekam penyedia identitas yang mengautentikasi subjek token. |
Diterbitkan pada | Merekam waktu di mana token dikeluarkan, sering digunakan untuk pembaruan token. |
Pengeluar sertifikat | Mengidentifikasi STS yang memancarkan token serta penyewa Azure Active Directory. |
Nama Belakang | Menyediakan nama keluarga pengguna sebagaimana diatur dalam Azure Active Directory. |
Nama | Memberi nilai yang dapat dibaca manusia yang mengidentifikasi subjek token. |
ID Objek | Berisi pengidentifikasi unik dan tidak dapat diubah dari subjek di Azure Active Directory. |
Peran | Berisi nama-nama populer Peran Aplikasi Azure Active Directory yang telah diberikan pengguna. |
Cakupan | Menunjukkan izin yang diberikan ke aplikasi klien. |
Subjek | Menunjukkan pokok tentang token yang menegaskan informasi. |
ID Penyewa | Berisi pengidentifikasi unik dan tidak dapat diubah dari penyewa direktori yang mengeluarkan token. |
Masa Pakai Token | Menentukan interval waktu ketika token valid. |
Nama Prinsipal Pengguna | Berisi nama utama pengguna subjek. |
Versi | Berisi nomor versi token. |
Langkah berikutnya
- Mempelajari tentang jenis aplikasi dan skenario yang didukung di platform identitas Microsoft