Bagikan melalui


Contoh komunikasi layanan pengeluar sertifikat

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 menginstruksikan Anda tentang cara mengatur penyedia identitas Anda sehingga Authenticator dapat berkomunikasi dengannya dan mengambil Token ID yang benar untuk diteruskan ke layanan penerbitan.

Untuk menerbitkan Kredensial yang Dapat Diverifikasi, Authenticator mendapatkan instruksi dengan cara mengunduh kontrak untuk mengumpulkan masukan dari pengguna dan mengirim informasi tersebut ke layanan yang menerbitkan. Jika Anda perlu menggunakan Token ID, Anda harus mengatur agar penyedia identitas Anda mengizinkan Authenticator masuk ke pengguna lewat protokol OpenID Connect. Klaim dalam token ID yang dihasilkan digunakan untuk mengisi konten kredensial yang dapat diverifikasi Anda. Authenticator mengautentikasi pengguna menggunakan alur kode otorisasi OpenID Connect. Penyedia OpenID Anda harus mendukung fitur OpenID Connect berikut:

Fitur Deskripsi
Jenis hibah Harus mendukung kode otorisasi jenis hibah.
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.
Registrasi klien Harus mendukung pendaftaran klien publik menggunakan nilai redirect_uri dari vcclient://openid/.
PKCE Direkomendasikan karena alasan keamanan, tetapi tidak diperlukan.

Contoh permintaan HTTP yang dikirim ke penyedia identitas Anda disertakan di bawah ini. Penyedia identitas Anda harus menerima dan menanggapi permintaan ini sesuai dengan standar autentikasi OpenID Connect.

Registrasi klien

Untuk menerima kredensial yang dapat diverifikasi, pengguna Anda harus 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 sini. Gunakan nilai berikut saat mendaftar.

Pengaturan Nilai
Nama aplikasi <Issuer Name> Verifiable Credential Service
URI Pengalihan vcclient://openid/

Setelah Anda mendaftarkan aplikasi dengan penyedia identitas Anda, rekam 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 ia tahu kapan sign-in dilakukan 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
Parameter Value
client_id ID klien yang diperoleh selama proses registrasi klien.
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 ke klien sesuai dengan standar OpenID Connect.

Ketika menerima permintaan otorisasi, penyedia identitas Anda harus mengautentikasi pengguna dan mengambil langkah apa pun yang diperlukan untuk menyelesaikan sign-in, seperti autentikasi multifaktor.

Anda dapat menyesuaikan proses sign-in sesuai dengan kebutuhan Anda. Anda dapat meminta pengguna untuk memberikan informasi tambahan, menerima ketentuan layanan, membayar kredensial mereka, dan banyak lagi. Setelah semua langkah selesai, tanggapi permintaan otorisasi dengan mengalihkan ke URI pengalihan seperti yang ditunjukkan di bawah ini.

vcclient://openid/?code=nbafhjbh1ub1yhbj1h4jr1&state=12345
Parameter Value
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 akan memiliki format sebagai 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
Parameter Value
client_id ID klien yang diperoleh selama proses registrasi klien.
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.

Setelah menerima permintaan token, penyedia identitas Anda harus 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.

Klaim Value
kid Pengidentifikasi utama dari kunci yang digunakan untuk menandatangani token ID akan menyesuaikan dengan entri jwks_uri penyedia OpenID.
aud ID klien yang diperoleh selama proses registrasi klien.
iss Harus berupa nilai issuer dalam dokumen konfigurasi OpenID Connect Anda.
exp Harus berisi waktu kedaluwarsa token ID.
iat Harus berisi waktu di mana token ID diterbitkan.
nonce Nilai yang disertakan dalam permintaan otorisasi.
Klaim tambahan Token ID harus berisi klaim tambahan yang nilainya akan disertakan dalam Kredensial Yang Dapat Diverifikasi yang akan dikeluarkan. Di bagian ini Anda harus menyertakan atribut apa pun tentang pengguna, seperti namanya.

Langkah berikutnya