此调用会返回一个新的身份验证 JSON Web 令牌 (JWT),该令牌允许实体代表原始身份验证 JWT 中经过身份验证的用户访问指定资源。当实体需要代表用户执行操作时,该参数用于将范围受限的访问权限委托给封装或解封装的另一个实体。
HTTP 请求
POST https://<base_url>/delegate
将 <base_url>
替换为密钥访问控制列表服务 (KACLS) 网址。
路径参数
无。
请求正文
请求正文包含请求的 JSON 表示形式:
JSON 表示法 | |
---|---|
{ "authentication": string, "authorization": string, "reason": string } |
字段 | |
---|---|
authentication |
由第三方签发的 JWT,用于断言用户身份。如需了解详情,请参阅身份验证部分。 |
authorization |
包含 |
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...}"
}