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

Anda tidak perlu mempelajari OAuth atau OpenID Connect (OIDC) di tingkat protokol untuk menggunakan platform identitas Microsoft. Namun, Anda akan menemukan ini dan istilah serta konsep protokol lainnya saat Anda menggunakan platform identitas untuk menambahkan fungsionalitas autentikasi ke aplikasi Anda.

Saat Anda bekerja dengan portal Azure, dokumentasi kami, dan pustaka autentikasi kami, mengetahui beberapa dasar seperti ini dapat membuat tugas integrasi dan penelusuran kesalahan Anda menjadi lebih mudah.

Peran di OAuth 2.0

Empat pihak biasanya terlibat dalam pertukaran autentikasi dan otorisasi OAuth 2.0 dan OpenID Connect. Pertukaran semacam itu sering disebut alur autentikasi atau alur auth.

Diagram showing the OAuth 2.0 roles

  • Server otorisasi - Platform identitas Microsoft itu sendiri merupakan 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 Microsoft 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 string mereka sebagai buram karena mereka dimaksudkan untuk digunakan hanya 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 tersebut adalah dengan mendaftarkan aplikasi Anda dengan platform identitas di Azure Active Directory (Microsoft Azure AD).

Saat Anda mendaftarkan aplikasi di Microsoft Azure AD, platform identitas Microsoft secara otomatis menetapkan beberapa nilai, sementara yang lain Anda konfigurasikan berdasarkan jenis aplikasi.

Dua pengaturan pendaftaran aplikasi yang paling sering direferensikan adalah:

  • ID Aplikasi (klien) - Juga disebut ID aplikasi dan ID klien, nilai ini ditetapkan untuk aplikasi Anda oleh platform identitas Microsoft. 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 sesuai standar seperti platform identitas Microsoft menyediakan satu set titik akhir HTTP untuk digunakan oleh pihak-pihak dalam alur autentikasi untuk menjalankan alur.

URI titik akhir untuk aplikasi dibuat untuk Anda saat mendaftarkan atau mengonfigurasi aplikasi di Microsoft Azure AD. 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 portal Microsoft Azure navigasikan ke:

Azure Active Directory>Pendaftaran aplikasi><YOUR-APPLICATION>>Titik Akhir

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 lebih lanjut tentang implementasi platform identitas, kami memiliki referensi protokol: