Этот вызов возвращает новый JSON Web Token (JWT) для аутентификации, который позволяет сущности получать доступ к указанному ресурсу от имени пользователя, аутентифицированного в исходном JWT. Он используется для делегирования ограниченного доступа к функции wrap или unwrap другой сущности, когда этой сущности необходимо действовать от имени пользователя.
HTTP-запрос
POST https://<base_url>/delegate
Замените <base_url> на URL-адрес службы списков контроля доступа по ключу (KACLS).
Параметры пути
Никто.
Текст запроса
Тело запроса содержит JSON-представление запроса:
| JSON-представление | |
|---|---|
{ "authentication": string, "authorization": string, "reason": string } | |
| Поля | |
|---|---|
authentication | JWT-токен, выданный третьей стороной, подтверждающий личность пользователя. Подробности см. в разделе аутентификации. |
authorization | JWT с утверждениями |
reason | JSON-строка, передающая дополнительную информацию об операции. Предоставленный JSON-файл должен быть очищен перед отображением. Максимальный размер: 1 КБ. |
Необходимые этапы обработки
KACLS должен выполнить как минимум следующие шаги:
- Проверьте как токены авторизации, так и токены аутентификации. Для получения дополнительной информации см. разделы «Токены авторизации» и «Токены аутентификации» .
- Убедитесь, что токены авторизации и аутентификации принадлежат одному и тому же пользователю. Дополнительную информацию см. в разделе «Шифрование и расшифровка данных» .
- Убедитесь, что поле
kacls_urlв токене авторизации соответствует текущему URL-адресу KACLS. Это позволяет обнаруживать потенциальные серверы, используемые для атак типа «человек посередине», настроенные инсайдерами или недобросовестными администраторами домена. - Если в токене авторизации присутствует утверждение
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 | 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...}"
}