Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Ikhtisar
Layanan ID Terverifikasi Microsoft Entra dapat mengeluarkan kredensial yang dapat diverifikasi dengan mengambil klaim dari token ID yang dihasilkan oleh penyedia identitas yang sesuai dengan OpenID organisasi Anda. Artikel ini memberikan instruksi tentang cara menyiapkan penyedia identitas Anda sehingga Authenticator dapat berkomunikasi dengannya dan mengambil token ID yang tepat untuk diteruskan ke layanan penerbitan.
Untuk mengeluarkan kredensial yang dapat diverifikasi, Authenticator diinstruksikan melalui pengunduhan kontrak untuk mengumpulkan input dari pengguna dan mengirim informasi tersebut ke layanan penerbitan. Jika Anda perlu menggunakan token ID, Anda harus menyiapkan penyedia identitas Anda untuk mengizinkan Authenticator melakukan otentikasi pengguna menggunakan protokol OpenID Connect. Klaim dalam token ID yang dihasilkan digunakan untuk mengisi konten kredensial Anda yang dapat diverifikasi. Authenticator mengautentikasi pengguna menggunakan alur kode otorisasi OpenID Connect. Penyedia OpenID Anda harus mendukung fitur OpenID Connect berikut:
| Fitur | Deskripsi |
|---|---|
| Jenis pemberian | Harus mendukung jenis pemberian kode otorisasi. |
| Format token | Harus menghasilkan JWT ringkas yang tidak terenkripsi. |
| Algoritma tanda tangan | Harus menghasilkan JWT yang ditandatangani menggunakan RS 256. |
| Dokumen konfigurasi | Harus mendukung dokumen konfigurasi OpenID Connect dan jwks_uri. |
| Pendaftaran klien | Harus mendukung pendaftaran klien publik menggunakan redirect_uri nilai vcclient://openid/. |
| PKCE | Direkomendasikan untuk alasan keamanan, tetapi tidak diperlukan. |
Contoh permintaan HTTP yang dikirim ke penyedia identitas Anda disertakan di bagian berikut. Penyedia identitas Anda harus menerima dan menanggapi permintaan ini sesuai dengan standar autentikasi OpenID Connect.
Pendaftaran klien
Untuk menerima kredensial yang dapat diverifikasi, pengguna Anda perlu masuk ke IDP Anda dari aplikasi Microsoft Authenticator .
Untuk mengaktifkan pertukaran ini, daftarkan aplikasi dengan penyedia identitas Anda. Jika Anda menggunakan ID Microsoft Entra, Anda dapat menemukan instruksi di Mendaftarkan aplikasi. Gunakan nilai berikut saat mendaftar.
| Pengaturan | Nilai |
|---|---|
| Nama aplikasi | <Issuer Name> Verifiable Credential Service |
| Pengalihan URI | vcclient://openid/ |
Setelah Anda mendaftarkan aplikasi dengan penyedia identitas Anda, catat ID kliennya. Anda akan menggunakannya di bagian berikut. Anda juga perlu menuliskan URL ke endpoint terkenal untuk penyedia identitas yang kompatibel dengan OIDC. Layanan Penerbit menggunakan titik akhir ini untuk mengunduh kunci publik yang diperlukan untuk memvalidasi token ID setelah dikirim oleh Authenticator.
URI pengalihan yang dikonfigurasi digunakan oleh Authenticator sehingga mengetahui kapan masuk selesai dan dapat mengambil token ID.
Permintaan otorisasi
Permintaan otorisasi yang dikirim ke penyedia identitas Anda menggunakan format berikut.
GET /authorize?client_id=<client-id>&redirect_uri=vcclient%3A%2F%2Fopenid%2F&response_mode=query&response_type=code&scope=openid&state=12345&nonce=12345 HTTP/1.1
Host: www.contoso.com
Connection: Keep-Alive
| Pengaturan | Nilai |
|---|---|
client_id |
ID klien yang diperoleh selama proses pendaftaran aplikasi. |
redirect_uri |
Harus menggunakan vcclient://openid/. |
response_mode |
Harus mendukung query. |
response_type |
Harus mendukung code. |
scope |
Harus mendukung openid. |
state |
Harus dikembalikan ke klien sesuai dengan standar OpenID Connect. |
nonce |
Harus dikembalikan sebagai klaim dalam token ID sesuai dengan standar OpenID Connect. |
Saat menerima permintaan otorisasi, penyedia identitas Anda harus mengautentikasi pengguna dan mengambil langkah-langkah apa pun yang diperlukan untuk menyelesaikan login, seperti autentikasi multifaktor.
Anda dapat menyesuaikan proses masuk untuk memenuhi kebutuhan Anda. Anda dapat meminta pengguna untuk memberikan informasi tambahan, menerima persyaratan layanan, membayar kredensial mereka, dan banyak lagi. Setelah semua langkah selesai, tanggapi permintaan otorisasi dengan mengalihkan ke URI pengalihan seperti yang ditunjukkan dalam contoh berikut.
vcclient://openid/?code=nbafhjbh1ub1yhbj1h4jr1&state=12345
| Pengaturan | Nilai |
|---|---|
code |
Kode otorisasi yang dikembalikan oleh penyedia identitas Anda. |
state |
Harus dikembalikan ke klien sesuai dengan standar OpenID Connect. |
Permintaan token
Permintaan token yang dikirim ke penyedia identitas Anda memiliki formulir berikut.
POST /token HTTP/1.1
Host: www.contoso.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 291
client_id=<client-id>&redirect_uri=vcclient%3A%2F%2Fopenid%2F&grant_type=authorization_code&code=nbafhjbh1ub1yhbj1h4jr1&scope=openid
| Pengaturan | Nilai |
|---|---|
client_id |
ID klien yang diperoleh selama proses pendaftaran aplikasi. |
redirect_uri |
Harus menggunakan vcclient://openid/. |
scope |
Harus mendukung openid. |
grant_type |
Harus mendukung authorization_code. |
code |
Kode otorisasi yang dikembalikan oleh penyedia identitas Anda. |
Saat penyedia identitas Anda menerima permintaan token, penyedia identitas akan merespons dengan token ID.
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache
{
"id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjFlOWdkazcifQ.ewogImlzc
yI6ICJodHRwOi8vc2VydmVyLmV4YW1wbGUuY29tIiwKICJzdWIiOiAiMjQ4Mjg5
NzYxMDAxIiwKICJhdWQiOiAiczZCaGRSa3F0MyIsCiAibm9uY2UiOiAibi0wUzZ
fV3pBMk1qIiwKICJleHAiOiAxMzExMjgxOTcwLAogImlhdCI6IDEzMTEyODA5Nz
AKfQ.ggW8hZ1EuVLuxNuuIJKX_V8a_OMXzR0EHR9R6jgdqrOOF4daGU96Sr_P6q
Jp6IcmD3HP99Obi1PRs-cwh3LO-p146waJ8IhehcwL7F09JdijmBqkvPeB2T9CJ
NqeGpe-gccMg4vfKjkM8FcGvnzZUN4_KSP0aAp1tOJ1zZwgjxqGByKHiOtX7Tpd
QyHE5lcMiKPXfEIQILVq0pc_E2DzL7emopWoaoZTF_m0_N0YzFC6g6EJbOEoRoS
K5hoDalrcvRYLSrQAZZKflyuVCyixEoV9GfNQC3_osjzw2PAithfubEEBLuVVk4
XUVrWOLrLl0nx7RkKU8NXNHq-rvKMzqg"
}
Token ID harus menggunakan format serialisasi ringkas JWT, dan tidak boleh dienkripsi. Token ID harus berisi klaim berikut.
| Tuntutan | Nilai |
|---|---|
kid |
Pengidentifikasi kunci dari kunci yang digunakan untuk menandatangani token ID, yang sesuai dengan entri di penyedia OpenID jwks_uri. |
aud |
ID klien yang diperoleh selama proses pendaftaran aplikasi. |
iss |
Harus berupa issuer nilai dalam dokumen konfigurasi OpenID Connect Anda. |
exp |
Harus berisi waktu kedaluwarsa token ID. |
iat |
Harus berisi waktu token ID dikeluarkan. |
nonce |
Nilai yang disertakan dalam permintaan otorisasi. |
| Klaim tambahan | Token ID harus berisi klaim lain yang nilainya disertakan dalam kredensial yang dapat diverifikasi yang dikeluarkan. Bagian ini adalah tempat Anda harus menyertakan atribut apa pun tentang pengguna, seperti nama mereka. |