這項呼叫會傳回新的驗證 JSON Web Token (JWT),讓實體代表原始驗證 JWT 中通過驗證的使用者,存取指定資源。當其他實體需要代表使用者執行動作時,這個權杖可用於將範圍存取權委派給包裝或解除包裝。
HTTP 要求
POST https://<base_url>/delegate
將 <base_url>
替換為金鑰存取控制清單服務 (KACLS) 網址。
路徑參數
無。
要求主體
要求主體包含要求的 JSON 表示法:
JSON 表示法 | |
---|---|
{ "authentication": string, "authorization": string, "reason": string } |
欄位 | |
---|---|
authentication |
第三方發出的 JWT,用於聲明使用者身分。詳情請參閱驗證一節。 |
authorization |
JWT 包含 |
reason |
這個 JSON 字串會直接傳遞,提供作業的額外背景資訊。顯示前應先清除提供的 JSON。大小上限:1 KB。 |
必要處理步驟
KACLS 至少須執行下列步驟:
- 驗證授權和驗證權杖。詳情請參閱「授權權杖」和「驗證權杖」。
- 確認授權和驗證權杖適用於同一位使用者。 詳情請參閱加密及解密資料。
- 檢查授權權杖中的
kacls_url
聲明是否與目前的 KACLS 網址相符。這樣一來,系統就能偵測內部人員或惡意網域管理員設定的潛在中間人伺服器。 - 如果授權權杖中存在
kacls_owner_domain
聲明,請確認該值與 KACLS 擁有者的 Google Workspace 網域相符。這有助於防止未經授權的使用者向 Google 註冊 KACLS。 - 記錄作業,包括發起作業的使用者、
delegated_to
、resource_name
,以及要求中傳遞的原因。 - 產生、簽署並傳回 JWT 憑證,其中包含授權權杖的
delegated_to
和resource_name
聲明。
KACLS 可免費執行額外安全檢查,包括以 JWT 宣告為準的檢查。
回應主體
如果成功,這個方法會傳回包含 delegated_to
和 resource_name
聲明的驗證 JWT。這個權杖稍後可用於呼叫 Wrap 和 Unwrap 方法時的驗證。如果發生錯誤,應傳回結構化錯誤回覆。
JSON 表示法 | |
---|---|
{ "delegated_authentication": string } |
欄位 | |
---|---|
delegated_authentication |
委派驗證 JWT,可供原始驗證 JWT 中提及的使用者存取 |
範例
要求
POST https://mykacls.example.com/v1/delegate
{
"authentication": "eyJhbGciOi...",
"authorization": "eyJhbGciOi...delegated_to\":\"other_entity_id\",\"resource_name\":\"meeting_id\"...}",
"reason": "{client:'meet' op:'delegate_access'}"
}
回應
{
"delegated_authentication": "eyJhbGciOi...delegated_to_from_authz_token...resource_name_from_authz_token...}"
}