Метод: делегировать

Этот вызов возвращает новый 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...}"
}