OAuth 2.0 dan OpenID Connect (OIDC) di platform identitas Microsoft

Mengetahui tentang Koneksi OAuth atau OpenID (OIDC) di tingkat protokol tidak diperlukan untuk menggunakan platform identitas Microsoft. Namun, Anda akan menemukan istilah dan konsep protokol saat menggunakan platform identitas untuk menambahkan autentikasi ke aplikasi Anda. Saat Anda bekerja dengan pusat admin Microsoft Entra, dokumentasi, dan pustaka autentikasi kami, mengetahui beberapa dasar-dasar dapat membantu integrasi dan pengalaman Anda secara keseluruhan.

Peran di OAuth 2.0

Empat pihak umumnya terlibat dalam pertukaran autentikasi dan otorisasi OAuth 2.0 dan OpenID Koneksi. Pertukaran ini sering disebut alur autentikasi atau alur autentikasi.

Diagram showing the OAuth 2.0 roles

  • Server otorisasi - Platform identitas Microsoft adalah server otorisasi. Juga disebut sebagai penyedia identitas atau IdP, ia dengan aman menangani informasi pengguna akhir, akses mereka, dan hubungan kepercayaan antara para pihak dalam alur auth. Server otorisasi menerbitkan token keamanan yang digunakan aplikasi dan API Anda untuk memberikan, menolak, atau mencabut akses ke sumber daya (otorisasi) setelah pengguna masuk (diautentikasi).

  • Klien - Klien dalam pertukaran OAuth adalah aplikasi yang meminta akses ke sumber daya yang dilindungi. Klien dapat berupa aplikasi web yang berjalan di server, aplikasi web satu halaman yang berjalan di browser web pengguna, atau API web yang memanggil API web lainnya. Anda akan sering melihat klien disebut sebagai aplikasi klien, aplikasi, atau app.

  • Pemilik sumber daya - Pemilik sumber daya dalam alur autentikasi biasanya adalah pengguna aplikasi, atau pengguna akhir dalam terminologi OAuth. Pengguna akhir "memiliki" sumber daya yang dilindungi (data mereka) yang diakses aplikasi Anda atas nama mereka. Pemilik sumber daya dapat memberikan atau menolak akses aplikasi Anda (klien) ke sumber daya yang mereka miliki. Misalnya, aplikasi Anda mungkin memanggil API sistem eksternal untuk mendapatkan alamat email pengguna dari profil mereka di sistem tersebut. Data profil mereka adalah sumber daya yang dimiliki pengguna akhir pada sistem eksternal, dan pengguna akhir dapat menyetujui atau menolak permintaan aplikasi Anda untuk mengakses data mereka.

  • Server sumber daya - Server sumber daya menghosting atau menyediakan akses ke data pemilik sumber daya. Paling sering, server sumber daya adalah API web yang menghadap ke penyimpanan data. Server sumber daya bergantung pada server otorisasi untuk melakukan autentikasi dan menggunakan informasi dalam token pembawa yang diterbitkan oleh server otorisasi untuk memberikan atau menolak akses ke sumber daya.

Token

Para pihak dalam alur autentikasi menggunakan token pembawa untuk memastikan identifikasi (autentikasi) dan untuk memberikan atau menolak akses ke sumber daya yang dilindungi (otorisasi). Token pembawa di platform identitas Microsoft diformat sebagai JSON Web Tokens (JWT).

Tiga jenis token pembawa digunakan oleh platform identitas sebagai token keamanan:

  • Token akses - Token akses diterbitkan oleh server otorisasi untuk aplikasi klien. Klien meneruskan token akses ke server sumber daya. Token akses berisi izin yang telah diberikan untuk klien oleh server otorisasi.

  • Token ID - Token ID diterbitkan oleh server otorisasi untuk aplikasi klien. Klien menggunakan token ID saat memasukkan pengguna dan untuk mendapatkan informasi dasar mengenai mereka.

  • Token refresh - Klien menggunakan token refresh, atau RT, untuk meminta akses baru dan token ID dari server otorisasi. Kode Anda harus memperlakukan token refresh dan konten stringnya sebagai data sensitif karena hanya ditujukan untuk digunakan oleh server otorisasi.

Pendaftaran aplikasi

Aplikasi klien Anda memerlukan cara untuk mempercayai token keamanan yang diterbitkan untuknya oleh platform identitas Microsoft. Langkah pertama dalam membangun kepercayaan adalah dengan mendaftarkan aplikasi Anda. Saat Anda mendaftarkan aplikasi, platform identitas secara otomatis menetapkan beberapa nilai, sementara yang lain yang Anda konfigurasi berdasarkan jenis aplikasi.

Dua pengaturan pendaftaran aplikasi yang paling umum direferensikan adalah:

  • ID aplikasi (klien) - Juga disebut ID aplikasi dan ID klien, nilai ini ditetapkan ke aplikasi Anda oleh platform identitas. ID klien secara unik mengidentifikasi aplikasi Anda di platform identitas dan termasuk dalam token keamanan yang diterbitkan oleh platform.
  • URI pengalihan - Server otorisasi menggunakan URI pengalihan untuk mengarahkan agen pengguna (browser web, aplikasi seluler) pemilik sumber daya ke tujuan lain setelah menyelesaikan interaksi mereka. Misalnya, setelah pengguna akhir mengautentikasi dengan server otorisasi. Tidak semua jenis klien menggunakan URI pengalihan.

Pendaftaran aplikasi Anda juga menyimpan informasi mengenai titik akhir autentikasi dan otorisasi yang akan Anda gunakan dalam kode Anda untuk mendapatkan ID dan token akses.

Titik akhir

Platform identitas Microsoft menawarkan layanan autentikasi dan otorisasi menggunakan implementasi OAuth 2.0 dan OpenID Connect (OIDC) 1.0 yang sesuai standar. Server otorisasi yang mematuhi standar seperti platform identitas menyediakan serangkaian titik akhir HTTP untuk digunakan oleh para pihak dalam alur autentikasi untuk menjalankan alur.

URI titik akhir untuk aplikasi Anda dibuat secara otomatis saat Anda mendaftar atau mengonfigurasi aplikasi Anda. Titik akhir yang Anda gunakan dalam kode aplikasi bergantung pada jenis aplikasi dan identitas (jenis akun) yang harus didukungnya.

Dua titik akhir yang umum digunakan adalah titik akhir otorisasi dan titik akhir token. Berikut adalah contoh titik akhir authorize dan token:

# Authorization endpoint - used by client to obtain authorization from the resource owner.
https://login.microsoftonline.com/<issuer>/oauth2/v2.0/authorize
# Token endpoint - used by client to exchange an authorization grant or refresh token for an access token.
https://login.microsoftonline.com/<issuer>/oauth2/v2.0/token

# NOTE: These are examples. Endpoint URI format may vary based on application type,
#       sign-in audience, and Azure cloud instance (global or national cloud).

#       The {issuer} value in the path of the request can be used to control who can sign into the application. 
#       The allowed values are **common** for both Microsoft accounts and work or school accounts, 
#       **organizations** for work or school accounts only, **consumers** for Microsoft accounts only, 
#       and **tenant identifiers** such as the tenant ID or domain name.

Untuk menemukan titik akhir untuk aplikasi yang telah Anda daftarkan, di pusat admin Microsoft Entra navigasikan ke:

Aplikasi> Identitas>Pendaftaran aplikasi>< Titik Akhir APLIKASI-ANDA>>

Langkah berikutnya

Selanjutnya, pelajari alur autentikasi OAuth 2.0 yang digunakan oleh setiap jenis aplikasi dan pustaka yang dapat Anda gunakan di aplikasi Anda untuk melakukannya:

Kami sangat menyarankan untuk tidak membuat pustaka Anda sendiri atau panggilan HTTP mentah untuk menjalankan alur autentikasi. Pustaka Autentikasi Microsoft lebih aman dan lebih mudah. Namun, jika skenario Anda mencegah Anda menggunakan pustaka kami atau Anda hanya ingin mempelajari selengkapnya tentang implementasi platform identitas Microsoft, kami memiliki referensi protokol: