Azure AD B2C: Protokol autentikasi

Azure Active Directory B2C (Azure AD B2C) menyediakan identitas sebagai layanan untuk aplikasi Anda dengan mendukung dua protokol standar industri: OpenID Connect dan OAuth 2.0. Layanan ini sesuai standar, tetapi setiap dua implementasi protokol ini dapat memiliki perbedaan yang hampir tidak terlihat.

Informasi dalam panduan ini berguna jika Anda menulis kode Anda dengan langsung mengirim dan menangani permintaan HTTP, daripada dengan menggunakan pustaka sumber terbuka. Kami menyarankan agar Anda membaca halaman ini sebelum menyelami detail pada setiap protokol tertentu. Tetapi jika Anda sudah terbiasa dengan Azure AD B2C, Anda dapat langsung masuk ke panduan referensi protokol.

Dasar-dasar

Setiap aplikasi yang menggunakan Azure AD B2C harus terdaftar di direktori B2C Anda di portal Microsoft Azure. Proses pendaftaran aplikasi mengumpulkan dan menetapkan beberapa nilai ke aplikasi Anda:

  • Sebuah ID Aplikasi yang secara unik mengidentifikasi aplikasi Anda.

  • Sebuah URI Pengalihan atau pengidentifikasi paket yang dapat digunakan untuk mengarahkan respons kembali ke aplikasi Anda.

  • Beberapa nilai skenario yang spesifik lainnya. Untuk informasi lebih lanjut, pelajari cara mendaftarkan aplikasi Anda.

Setelah Anda mendaftarkan aplikasi Anda, aplikasi berkomunikasi dengan Azure AD B2C dengan mengirim permintaan ke titik akhir:

https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/oauth2/v2.0/authorize
https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/oauth2/v2.0/token

Jika Anda menggunakan domain kustom, ganti {tenant}.b2clogin.com dengan domain kustom Anda, seperti contoso.com, di titik akhir.

Di hampir semua alur OAuth dan OpenID Connect, empat pihak terlibat dalam pertukaran:

Diagram yang memperlihatkan empat Peran OAuth 2.0.

  • Server otorisasinya adalah titik akhir Azure AD B2C. Ini menangani dengan aman apapun yang terkait dengan informasi dan akses pengguna. Ini juga menangani hubungan kepercayaan antara para pihak di dalam suatu alur. Ini bertanggung jawab untuk memverifikasi identitas pengguna, memberikan dan mencabut akses ke sumber daya, serta mengeluarkan token. Ini juga dikenal sebagai IdP.

  • Biasanya, pemilik sumber daya adalah pengguna akhir. Ini adalah pihak yang memiliki data dan kekuatan untuk mengizinkan pihak ketiga mengakses data atau sumber daya tersebut.

  • Dan Klien OAuth adalah aplikasi Anda. Ini diidentifikasi oleh ID Aplikasinya. Biasanya pihak yang berinteraksi dengan pengguna akhir. Ini juga meminta token dari server otorisasi. Pemilik sumber daya harus memberikan izin klien untuk mengakses sumber daya.

  • Di mana server sumber daya adalah tempat sumber daya atau data berada. Ini mempercayai server otorisasi untuk mengautentikasi dan mengotorisasi klien OAuth dengan aman. Ini juga menggunakan token akses pembawa untuk memastikan bahwa akses ke suatu sumber daya dapat diberikan.

Kebijakan dan alur pengguna

Azure AD B2C memperluas protokol OAuth 2.0 dan OpenID Connect standar dengan memperkenalkan kebijakan. Ini memungkinkan Azure AD B2C untuk melakukan lebih dari sekadar autentikasi dan otorisasi sederhana.

Untuk membantu Anda menyiapkan tugas identitas yang paling umum, portal Azure AD B2C menyertakan kebijakan yang telah ditentukan dan dapat dikonfigurasi yang disebut alur pengguna. Alur pengguna sepenuhnya menggambarkan pengalaman identitas konsumen, termasuk pendaftaran, proses masuk, dan pengeditan profil. Alur pengguna dapat didefinisikan di sebuah antarmuka pengguna administratif. Mereka dapat dijalankan dengan menggunakan parameter kueri khusus dalam permintaan autentikasi HTTP.

Kebijakan dan alur pengguna bukanlah fitur standar OAuth 2.0 dan OpenID Connect, jadi Anda harus meluangkan waktu untuk memahaminya. Untuk informasi selengkapnya, lihat panduan referensi alur pengguna Azure AD B2C.

Token

Implementasi Azure AD B2C dari OAuth 2.0 dan OpenID Connect membuat penggunaan token pembawa secara ekstensif, termasuk token pembawa yang diwakili sebagai token web JSON (JWTs). Token pembawa adalah token keamanan ringan yang memberikan akses "pembawa" ke sebuah sumber daya yang dilindungi.

Pembawa adalah pihak manapun yang dapat menunjukkan tokennya. Azure AD B2C terlebih dahulu harus mengautentikasi satu pihak sebelum ia dapat menerima token pembawa. Tetapi jika langkah-langkah yang diperlukan tidak diambil untuk mengamankan token dalam transmisi dan penyimpanan, demikian dapat dicegat dan digunakan oleh pihak yang tidak diinginkan.

Beberapa token keamanan memiliki mekanisme bawaan yang mencegah pihak yang tidak berwenang menggunakannya, tetapi token pembawa tidak memiliki mekanisme ini. Mereka harus diangkut dalam sebuah saluran aman, seperti sebagai sebuah keamanan lapisan transportasi (HTTPS).

Jika token pembawa ditransmisikan di luar saluran aman, sebuah pihak yang jahat dapat menggunakan serangan man-in-the-middle untuk mendapatkan tokennya dan menggunakannya untuk mendapatkan akses tidak sah ke sumber daya yang dilindungi. Prinsip keamanan yang sama berlaku ketika token pembawa disimpan atau di-cache untuk digunakan nanti. Selalu pastikan aplikasi Anda mengirimkan dan menyimpan token pembawa dengan cara yang aman.

Untuk pertimbangan keamanan token pembawa tambahan, lihat RFC 6750 Bagian 5.

Informasi selengkapnya tentang berbagai jenis token yang digunakan di Azure AD B2C tersedia dalam referensi token Azure AD B2C.

Protokol

Ketika Anda sudah siap untuk meninjau beberapa contoh permintaan, Anda dapat memulai dengan salah satu tutorial berikut. Masing-masing sesuai dengan skenario autentikasi tertentu. Jika Anda perlu bantuan untuk menentukan alur mana yang tepat untuk Anda, lihat jenis aplikasi yang dapat Anda bangun dengan menggunakan Azure AD B2C.