Dokumen ini menjelaskan item yang ada dalam token pengesahan VM
Confidential, seperti yang ditentukan dalam endpoint well-known
untuk VM Confidential. Token tersebut 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@developer.gserviceaccount.com"
]
}
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 yang didukung. |
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 nilainya 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 VM Rahasia. Confidential VM mendukung
public . |
Klaim yang didukung
Tabel berikut menjelaskan klaim tingkat teratas yang didukung dalam token pengesahan.
Klaim | Jenis | Deskripsi |
---|---|---|
aud |
String | Audiens. Untuk token default (yang diambil setiap jam oleh
peluncur dalam Confidential VM), audiensnya adalah
https://sts.googleapis.com . Untuk token kustom, audiens
akan ditampilkan dari audiens dalam permintaan token. Panjang maksimumnya adalah
512 byte. |
dbgstat |
String | Status debug untuk hardware. Dalam image 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 tersebut ditampilkan dari opsi token yang dikirim dalam permintaan token kustom. Setiap nonce harus antara 10 hingga 74 byte inklusif. Maksimum enam nonce diizinkan. |
exp |
Int, stempel waktu Unix | Waktu habis masa berlaku pada atau setelah token tidak boleh diterima untuk diproses. Nilainya adalah angka JSON yang mewakili jumlah detik dari 1970-01-01T0:0:0Z seperti yang diukur dalam UTC hingga waktu habis masa berlaku. |
google_service_accounts |
Array string | Akun layanan tervalidasi yang menjalankan workload VM Rahasia. |
hwmodel |
String |
ID unik untuk token hardware. Nilai saat ini adalah |
iat |
Int, stempel waktu Unix | Waktu saat JWT diterbitkan. Nilainya adalah angka JSON yang mewakili jumlah detik dari 1970-01-01T0:0:0Z seperti yang diukur dalam UTC hingga waktu masalah. |
iss |
String | Penerbit token, yang ditetapkan ke
https://confidentialcomputing.googleapis.com . |
nbf |
Int, stempel waktu Unix | Waktu sebelum JWT tidak dapat digunakan untuk pemrosesan. |
oemid |
Uint64 |
Private Enterprise Number (PEN) Google, yaitu 11129 .
|
secboot |
Boolean | Apakah Booting Aman diaktifkan, yang memastikan bahwa firmware dan sistem operasi diautentikasi selama proses booting VM. |
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 adalah |
Klaim sub-mod
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 VM Rahasia berjalan. |
Langkah selanjutnya
Lihat draf IETF untuk Token Pengesahan Entitas (EAT) untuk mengetahui informasi selengkapnya tentang klaim pengesahan.
Lihat OpenID Connect Core 1.0 untuk informasi selengkapnya tentang klaim token OpenID.
Untuk informasi selengkapnya tentang token dan cara mengambilnya, lihat Codelab Attestasi vTPM.