Dokumen ini menjelaskan item yang ada dalam token pengesahan Confidential VM, sebagaimana ditentukan dalam endpoint well-known
untuk Confidential VM. Token adalah token web JSON (JWT).
Contoh token
Berikut adalah contoh token pengesahan yang dienkode. Anda dapat menggunakan https://jwt.io/ untuk mendekodenya:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjFjNjdmYWVhYjRhYzE1ZDJmNmZmODMwY2E2ZmM1N2YyYmVhM2Y0YmIiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJcdTAwM2NZT1VSQVVESUVOQ0VcdTAwM2UiLCJleHAiOjE3MTU5NzE2OTcsImlhdCI6MTcxNTk2ODA5NywiaXNzIjoiaHR0cHM6Ly9jb25maWRlbnRpYWxjb21wdXRpbmcuZ29vZ2xlYXBpcy5jb20iLCJuYmYiOjE3MTU5NjgwOTcsInN1YiI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2NvbXB1dGUvdjEvcHJvamVjdHMvcnVpZGV6aGFuZy0yL3pvbmVzL3VzLWNlbnRyYWwxLWMvaW5zdGFuY2VzL2N2bS10b2tlbi1jbGFpbXMiLCJlYXRfbm9uY2UiOlsidGhpc0lzQWN1c3RvbU5vbmNlIiwidGhpc0lzQU11Y2hMb25nZXJDdXN0b21Ob25jZVdpdGhQYWRkaW5nRm9yNzRCeXRlczAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSwic2VjYm9vdCI6ZmFsc2UsIm9lbWlkIjoxMTEyOSwiaHdtb2RlbCI6IkdDUF9BTURfU0VWIiwic3duYW1lIjoiR0NFIiwiZGJnc3RhdCI6ImVuYWJsZWQiLCJzdWJtb2RzIjp7ImdjZSI6eyJ6b25lIjoidXMtY2VudHJhbDEtYyIsInByb2plY3RfaWQiOiJydWlkZXpoYW5nLTIiLCJwcm9qZWN0X251bWJlciI6IjQ3MDY1MjQyNjMwNSIsImluc3RhbmNlX25hbWUiOiJjdm0tdG9rZW4tY2xhaW1zIiwiaW5zdGFuY2VfaWQiOiI3MzMzMjUxNTQ2ODE2NDQ2MDY5In19LCJnb29nbGVfc2VydmljZV9hY2NvdW50cyI6WyI0NzA2NTI0MjYzMDUtY29tcHV0ZUBkZXZlbG9wZXIuZ3NlcnZpY2VhY2NvdW50LmNvbSJdfQ.Z8CIreuWj8vQKe9L5f5Ol80LcWBI_pFWwfT8qsky8hjtH3OMmqfUCJJRx-dX5Rqm5n4qe4dHacLgSWQlT9MDYyrtWDuocA2WtfPZLvM0DNc4HuoNPZtVrgMMcZ93Xyl5-tJuI5PbPshiDBT06_QaRm5l37RRL2CsxXZGCkKsxV1vs0gF5xZgSNmhDqg3q1fONhA3VglZ-H0SHAvMNr1qwXDKrQxdYxyFfEMLkcsRxSXlR5mLCbMIFptGTPXt-k83xJzCipuKSiKJrwaRdZTmlapn7UtaTRLvG3YCmXPg6oOvNKtE8T4KeBY36EdzR0Fdmz_pXSbWL-q8-y90VxDxwQ
Berikut adalah contoh token yang didekode:
{
"alg": "RS256",
"kid": "6e66f1aededf736581df2599ee20387718978dcd",
"typ": "JWT"
}.
{
"aud": "<YOURAUDIENCE>",
"exp": 1715359550,
"iat": 1715355950,
"iss": "https://confidentialcomputing.googleapis.com",
"nbf": 1698861565,
"sub": "https://www.googleapis.com/compute/v1/projects/<YOURPROJECT>/zones/us-central1-c/instances/cvm-token-claims",
"eat_nonce": [
"thisIsAcustomNonce",
"thisIsAMuchLongerCustomNonceWithPaddingFor74Bytes0000000000000000000000000"
],
"secboot": true,
"oemid": 11129,
"hwmodel": "GCP_AMD_SEV",
"swname": "Compute Engine",
"dbgstat": "disabled-since-boot",
"submods": {
"gce": {
"zone": "us-central1-c",
"project_id": "<YOURPROJECT>",
"project_number": "470652426305",
"instance_name": "cvm-token-claims",
"instance_id": "7333251546816446069"
}
},
"google_service_accounts": [
"470652426305-compute@"
]
}
Item dalam token dijelaskan lebih lanjut di bagian berikut.
Item token
Tabel berikut menjelaskan item tingkat tinggi dalam token pengesahan. Item ini mematuhi spesifikasi OpenID Connect 1.0.
Nilai endpoint well-known |
Deskripsi |
---|---|
claims_supported |
Lihat Klaim tingkat teratas. |
id_token_signing_alg_values_supported |
Algoritma penandatanganan (nilai alg ) yang didukung oleh
token. Confidential VM mendukung algoritma RS256 . |
issuer |
Skema HTTPS yang digunakan Confidential VM sebagai ID penerbitnya. Nilainya adalah
|
jwks_uri |
Jalur ke kunci publik yang digunakan untuk memverifikasi tanda tangan token. Anda dapat memublikasikan kunci ini di bucket Cloud Storage. Anda dapat menemukan kunci Contoh nilai adalah
|
response_types_supported |
Daftar jenis respons Confidential VM yang didukung. Confidential VM mendukung id_token .
|
scopes_supported |
Nilai cakupan
OAuth 2.0
yang didukung instance Confidential VM.
Confidential Space hanya mendukung openid . |
subject_types_supported |
Jenis ID subjek yang didukung Confidential VM. Confidential VM mendukung
public . |
Klaim tingkat teratas
Tabel berikut menjelaskan klaim tingkat teratas yang didukung dalam token pengesahan.
Klaim | Jenis | Deskripsi |
---|---|---|
aud |
String |
Audiens. Untuk token default yang digunakan dengan workload identity
pool, audiensnya adalah Untuk token dengan audiens kustom, audiens dikembalikan dari audiens dalam permintaan token. Panjang maksimum adalah 512 byte. |
dbgstat |
String |
Status debug untuk hardware. Dalam gambar produksi, nilainya adalah
disabled-since-boot . Dalam gambar debug, nilainya adalah
enabled .
|
eat_nonce |
String atau array string | Satu atau beberapa nonce untuk token pengesahan. Nilai dikembalikan dari opsi token yang dikirim dalam permintaan token kustom. Setiap nonce harus berada di antara 10 hingga 74 byte inklusif. Maksimum enam nonce yang diizinkan. |
exp |
Int, stempel waktu Unix |
Waktu habis masa berlaku pada atau setelah token tidak boleh diterima untuk
pemrosesan. Nilainya adalah angka JSON yang merepresentasikan jumlah
detik dari
1970-01-01T0:0:0Z yang diukur
dalam UTC hingga waktu habis masa berlaku.
|
google_service_accounts |
Array string | Akun layanan yang divalidasi yang menjalankan workload Confidential VM. |
hwmodel |
String |
ID unik untuk token hardware. ID harus berupa salah satu nilai berikut:
|
iat |
Int, stempel waktu Unix |
Waktu saat JWT diterbitkan. Nilainya adalah angka JSON yang
mewakili jumlah detik dari
1970-01-01T0:0:0Z yang diukur
dalam UTC hingga waktu masalah.
|
iss |
String |
Penerbit token, yang ditetapkan ke
https://confidentialcomputing.googleapis.com .
|
nbf |
Int, stempel waktu Unix |
Waktu setelah JWT diizinkan untuk diproses. Nilainya adalah
angka JSON yang merepresentasikan jumlah detik dari
1970-01-01T0:0:0Z yang diukur
dalam UTC.
|
oemid |
Uint64 |
Google
Private Enterprise Number (PEN), yaitu 11129 .
|
secboot |
Boolean |
Apakah Booting Aman diaktifkan, yang memastikan bahwa firmware dan
sistem operasi diautentikasi selama proses booting VM. Nilai
ini selalu true .
|
sub |
String |
Subjek, yang merupakan ID virtual machine yang sepenuhnya memenuhi syarat untuk
Confidential VM. Contoh: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_ID
Format ini dikenal sebagai
selfLink instance.
|
submods |
Array | Array berbagai klaim. Lihat Klaim submod. |
swname |
String |
Nama sistem operasi yang disetujui untuk VM. Nilainya selalu |
Klaim submod
Tabel berikut menjelaskan klaim submods
dalam token pengesahan.
Klaim | Jenis | Deskripsi |
---|---|---|
gce |
Objek | Lihat klaim Compute Engine. |
Klaim Compute Engine
Tabel berikut menjelaskan klaim gce
dalam token pengesahan.
Klaim | Jenis | Deskripsi |
---|---|---|
instance_id |
String | ID instance VM. |
instance_name |
String | Nama instance VM. |
project_id |
String | project ID untuk project tempat VM berjalan. |
project_number |
String | Nomor project untuk project tempat VM berjalan. |
zone |
String | Zona Compute Engine tempat instance Confidential VM berjalan. |
Langkah berikutnya
Lihat draf IETF untuk Token Pengesahan Entitas (EAT) untuk mengetahui informasi selengkapnya tentang klaim pengesahan.
Lihat OpenID Connect Core 1.0 untuk mengetahui informasi selengkapnya tentang klaim token OpenID.
Untuk mengetahui informasi selengkapnya tentang token dan cara mengambilnya, lihat Codelab Pengesahan vTPM.