Contoh komunikasi layanan penerbit

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.

Langkah selanjutnya