方法:delegate

這項呼叫會傳回新的驗證 JSON Web Token (JWT),讓實體代表原始驗證 JWT 中通過驗證的使用者,存取指定資源。當其他實體需要代表使用者執行動作時,這個權杖可用於將範圍存取權委派給包裝解除包裝

HTTP 要求

POST https://<base_url>/delegate

<base_url> 替換為金鑰存取控制清單服務 (KACLS) 網址。

路徑參數

無。

要求主體

要求主體包含要求的 JSON 表示法:

JSON 表示法
{
  "authentication": string,
  "authorization": string,
  "reason": string
}
欄位
authentication

string

第三方發出的 JWT,用於聲明使用者身分。詳情請參閱驗證一節。

authorization

string

JWT 包含 delegated_toresource_name 憑證附加資訊,可聲明 delegated_to 憑證附加資訊所識別的實體有權代表使用者存取 resource_name。詳情請參閱「授權權杖」。

reason

string (UTF-8)

這個 JSON 字串會直接傳遞,提供作業的額外背景資訊。顯示前應先清除提供的 JSON。大小上限:1 KB。

必要處理步驟

KACLS 至少須執行下列步驟:

  • 驗證授權和驗證權杖。詳情請參閱「授權權杖」和「驗證權杖」。
  • 確認授權和驗證權杖適用於同一位使用者。 詳情請參閱加密及解密資料
  • 檢查授權權杖中的 kacls_url 聲明是否與目前的 KACLS 網址相符。這樣一來,系統就能偵測內部人員或惡意網域管理員設定的潛在中間人伺服器。
  • 如果授權權杖中存在 kacls_owner_domain 聲明,請確認該值與 KACLS 擁有者的 Google Workspace 網域相符。這有助於防止未經授權的使用者向 Google 註冊 KACLS。
  • 記錄作業,包括發起作業的使用者、delegated_toresource_name,以及要求中傳遞的原因。
  • 產生、簽署並傳回 JWT 憑證,其中包含授權權杖的 delegated_toresource_name 聲明。

KACLS 可免費執行額外安全檢查,包括以 JWT 宣告為準的檢查。

回應主體

如果成功,這個方法會傳回包含 delegated_toresource_name 聲明的驗證 JWT。這個權杖稍後可用於呼叫 Wrap 和 Unwrap 方法時的驗證。如果發生錯誤,應傳回結構化錯誤回覆

JSON 表示法
{
  "delegated_authentication": string
}
欄位
delegated_authentication

string

委派驗證 JWT,可供原始驗證 JWT 中提及的使用者存取 resource_name。詳情請參閱「KACLS authentication token for delegate」。

範例

要求

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...}"
}