この呼び出しは、新しい認証 JSON Web Token(JWT)を返します。これにより、エンティティは元の認証 JWT で認証されたユーザーに代わって、指定されたリソースにアクセスできます。これは、ユーザーの代わりに別のエンティティが動作する必要がある場合に、ラップまたはアンラップへのスコープ付きアクセスを別のエンティティに委任するために使用されます。
HTTP リクエスト
POST https://<base_url>/delegate
<base_url>
は、Key Access Control List Service(KACLS)の URL に置き換えます。
パスパラメータ
なし。
リクエストの本文
リクエストの本文には、リクエストの JSON 表現が含まれています。
JSON 表現 | |
---|---|
{ "authentication": string, "authorization": string, "reason": string } |
フィールド | |
---|---|
authentication |
ユーザーが誰であるかをアサートするサードパーティによって発行された JWT。詳しくは、認証のセクションをご覧ください。 |
authorization |
|
reason |
オペレーションに関する追加のコンテキストを提供するパススルー JSON 文字列。提供された JSON は、表示する前にサニタイズする必要があります。最大サイズ: 1 KB。 |
必要な処理手順
KACLS は、少なくとも次の手順を実行する必要があります。
- 認可トークンと認証トークンの両方を検証します。詳細については、認可トークンと認証トークンをご覧ください。
- 認可トークンと認証トークンが同じユーザーのものであることを確認します。詳細については、データの暗号化と復号をご覧ください。
- 認可トークンの
kacls_url
クレームが現在の KACLS URL と一致することを確認します。これにより、内部関係者や不正なドメイン管理者によって構成された潜在的な中間者サーバーを検出できます。 - 認証トークンに
kacls_owner_domain
クレームが存在する場合は、値が KACLS 所有者の Google Workspace ドメインと一致することを確認します。これにより、権限のないユーザーが KACLS を Google に登録することを防ぐことができます。 - オペレーションをログに記録します。これには、オペレーションを開始したユーザー、
delegated_to
、resource_name
、リクエストで渡された理由が含まれます。 - 認可トークンから
delegated_to
とresource_name
のクレームを含む JWT トークンを生成、署名して返します。
KACLS は、JWT クレームに基づくものなど、追加のセキュリティ チェックを自由に行うことができます。
レスポンスの本文
成功すると、このメソッドは delegated_to
クレームと resource_name
クレームを含む認証 JWT を返します。このトークンは、後で Wrap メソッドと Unwrap メソッドの呼び出しで認証に使用できます。エラーが発生した場合は、構造化されたエラー応答を返す必要があります。
JSON 表現 | |
---|---|
{ "delegated_authentication": string } |
フィールド | |
---|---|
delegated_authentication |
元の認証 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...}"
}