Метод: делегировать
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Этот вызов возвращает новый JSON-токен аутентификации (JWT), который позволяет сущности получить доступ к указанному ресурсу от имени пользователя, аутентифицированного в исходном JWT аутентификации. Он используется для делегирования ограниченного доступа к упаковке или распаковке другой сущности, когда этой сущности необходимо действовать от имени пользователя.
HTTP-запрос
POST https://<base_url>/delegate
Замените <base_url>
на URL-адрес службы списков контроля доступа к ключам (KACLS).
Параметры пути
Никто.
Текст запроса
Тело запроса содержит JSON-представление запроса:
JSON-представление |
---|
{
"authentication": string,
"authorization": string,
"reason": string
} |
Поля |
---|
authentication | string JWT, выпущенный третьей стороной, подтверждающий личность пользователя. Подробности см. в разделе «Аутентификация». |
authorization | string JWT с утверждениями delegated_to и resource_name , подтверждающий, что сущность, идентифицированная утверждением delegated_to , имеет право доступа к resource_name от имени пользователя. Подробнее см. в разделе «Токены авторизации» . |
reason | string (UTF-8) Строка JSON для передачи, предоставляющая дополнительный контекст операции. Перед отображением предоставленный JSON-файл должен быть очищен. Максимальный размер: 1 КБ. |
Требуемые этапы обработки
KACLS должен выполнить как минимум следующие шаги:
- Проверьте токены авторизации и аутентификации. Подробнее см. в разделах Токены авторизации и Токены аутентификации .
- Убедитесь, что токены авторизации и аутентификации принадлежат одному и тому же пользователю. Подробнее см. в разделе Шифрование и дешифрование данных .
- Убедитесь, что утверждение
kacls_url
в токене авторизации соответствует текущему URL-адресу KACLS. Это позволяет обнаружить потенциальные серверы типа «man-in-the-middle», настроенные инсайдерами или недобросовестными администраторами домена. - Если в токене авторизации присутствует утверждение
kacls_owner_domain
, убедитесь, что его значение соответствует домену Google Workspace владельца KACLS. Это поможет предотвратить регистрацию вашего KACLS в Google неавторизованными пользователями. - Зарегистрируйте операцию, включая пользователя, инициировавшего ее,
delegated_to
, resource_name
и причину, переданную в запросе. - Сгенерируйте, подпишите и верните токен JWT, содержащий утверждения
delegated_to
и resource_name
из токена авторизации.
KACLS может свободно выполнять дополнительные проверки безопасности, включая проверки на основе утверждений JWT.
Тело ответа
В случае успеха этот метод возвращает JWT аутентификации, содержащий утверждения delegated_to
и resource_name
. Этот токен впоследствии можно использовать для аутентификации при вызовах методов Wrap и Unwrap. В случае ошибки должен быть возвращен структурированный ответ об ошибке .
JSON-представление |
---|
{
"delegated_authentication": string
} |
Поля |
---|
delegated_authentication | string Делегированный JWT аутентификации, действительный для доступа resource_name пользователем, указанным в исходном JWT аутентификации. Подробнее см. в разделе «Токен аутентификации KACLS для 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...}"
}
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-25 UTC.
[null,null,["Последнее обновление: 2025-07-25 UTC."],[],[],null,["# Method: delegate\n\nThis call returns a new authentication JSON Web Token (JWT) that allows\nan entity to access a specified resource on behalf of the user\nauthenticated in the original authentication JWT. It is used to delegate\nscoped access to [wrap](/workspace/cse/reference/wrap) or\n[unwrap](/workspace/cse/reference/unwrap) to another entity when that\nentity needs to act on behalf of the user.\n\n### HTTP request\n\n`POST https://\u003cbase_url\u003e/delegate`\n\nReplace `\u003cbase_url\u003e` with the Key Access Control List Service (KACLS) URL.\n\n### Path parameters\n\nNone.\n\n### Request body\n\nThe request body contains a JSON representation of the request:\n\n| JSON representation ||\n|---------------------------------------------------------------------------------|---|\n| ``` { \"authentication\": string, \"authorization\": string, \"reason\": string } ``` |\n\n| Fields ||\n|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `authentication` | `string` A JWT issued by a third-party asserting who the user is. See the authentication section for details. |\n| `authorization` | `string` A JWT with `delegated_to` and `resource_name` claims asserting that the entity identified by `delegated_to` claim is allowed to access `resource_name` on behalf of the user. For more information, see [Authorization Tokens](/workspace/cse/reference/authorization-tokens). |\n| `reason` | `string (UTF-8)` A passthrough JSON string providing additional context about the operation. The JSON provided should be sanitized before being displayed. Max size: 1 KB. |\n\n### Required processing steps\n\nThe KACLS must perform at least these steps:\n\n- Validate both authorization and authentication tokens. For more information, see [Authorization Tokens](/workspace/cse/reference/authorization-tokens) and [Authentication Tokens](/workspace/cse/reference/authentication-tokens).\n- Check that authorization and authentication tokens are for the same user. For more information, see [Encrypt and decrypt data](/workspace/cse/guides/encrypt-and-decrypt-data).\n- Check that the `kacls_url` claim in the authorization token matches the current KACLS URL. This allows detection of potential man-in-the-middle servers configured by insiders or rogue domain admins.\n- If the `kacls_owner_domain` claim exists in the authorization token, check that the value matches the KACLS owner's Google Workspace domain. This helps prevent unauthorized users from registering your KACLS with Google.\n- Log the operation, including the user originating it, the `delegated_to`, the `resource_name`, and the reason passed in the request.\n- Generate, sign, and return a JWT token containing `delegated_to` and `resource_name` claims from the authorization token.\n\nThe KACLS is free to perform additional security checks, including JWT claim\nbased ones.\n\n### Response body\n\nIf successful, this method returns an authentication JWT containing\n`delegated_to` and `resource_name` claims. This token can later be used for\nauthentication in calls to the Wrap and Unwrap methods. In case of an error, a\n[structured error reply](/workspace/cse/reference/structured-errors)\nshould be returned.\n\n| JSON representation ||\n|------------------------------------------------|---|\n| ``` { \"delegated_authentication\": string } ``` |\n\n| Fields ||\n|----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `delegated_authentication` | `string` A delegated authentication JWT valid for accessing `resource_name` by the user mentioned in the original authentication JWT. For more information, see [KACLS authentication token for `delegate`](/workspace/cse/reference/authentication-tokens#kacls_authentication_token_for_delegate). |\n\n### Example\n\n#### Request\n\n POST https://mykacls.example.com/v1/delegate\n {\n \"authentication\": \"eyJhbGciOi...\",\n \"authorization\": \"eyJhbGciOi...delegated_to\\\":\\\"other_entity_id\\\",\\\"resource_name\\\":\\\"meeting_id\\\"...}\",\n \"reason\": \"{client:'meet' op:'delegate_access'}\"\n }\n\n#### Response\n\n {\n \"delegated_authentication\": \"eyJhbGciOi...delegated_to_from_authz_token...resource_name_from_authz_token...}\"\n }"]]