Método: delegate

Esta llamada devuelve un nuevo token web JSON (JWT) de autenticación que permite que una entidad acceda a un recurso especificado en nombre del usuario autenticado en el JWT de autenticación original. Se usa para delegar el acceso con alcance a wrap o unwrap a otra entidad cuando esta necesita actuar en nombre del usuario.

Solicitud HTTP

POST https://<base_url>/delegate

Reemplaza <base_url> por la URL del servicio de lista de control de acceso a las claves (KACLS).

Parámetros de ruta

Ninguno

Cuerpo de la solicitud

El cuerpo de la solicitud contiene una representación JSON de la solicitud:

Representación JSON
{
  "authentication": string,
  "authorization": string,
  "reason": string
}
Campos
authentication

string

Es un JWT emitido por un tercero que afirma quién es el usuario. Consulta la sección de autenticación para obtener más detalles.

authorization

string

Un JWT con las reclamaciones delegated_to y resource_name que confirman que la entidad identificada por la reclamación delegated_to puede acceder a resource_name en nombre del usuario. Para obtener más información, consulta Tokens de autorización.

reason

string (UTF-8)

Es una cadena JSON de transferencia que proporciona contexto adicional sobre la operación. El JSON proporcionado debe limpiarse antes de mostrarse. Tamaño máx.: 1 KB

Pasos de procesamiento obligatorios

El KACLS debe realizar, al menos, estos pasos:

  • Valida los tokens de autorización y autenticación. Para obtener más información, consulta Tokens de autorización y Tokens de autenticación.
  • Verifica que los tokens de autorización y autenticación sean para el mismo usuario. Para obtener más información, consulta Encripta y desencripta datos.
  • Verifica que el reclamo kacls_url en el token de autorización coincida con la URL actual de KACLS. Esto permite detectar posibles servidores de intermediarios configurados por personas internas o administradores de dominios no autorizados.
  • Si el reclamo kacls_owner_domain existe en el token de autorización, verifica que el valor coincida con el dominio de Google Workspace del propietario del KACLS. Esto ayuda a evitar que usuarios no autorizados registren tu KACLS en Google.
  • Registra la operación, incluido el usuario que la originó, el delegated_to, el resource_name y el motivo que se pasó en la solicitud.
  • Genera, firma y devuelve un token JWT que contiene las reclamaciones delegated_to y resource_name del token de autorización.

El KACLS es gratuito para realizar verificaciones de seguridad adicionales, incluidas las basadas en reclamos de JWT.

Cuerpo de la respuesta

Si la operación se realiza correctamente, este método devuelve un JWT de autenticación que contiene las declaraciones delegated_to y resource_name. Este token se puede usar más adelante para la autenticación en las llamadas a los métodos Wrap y Unwrap. En caso de error, se debe devolver una respuesta de error estructurada.

Representación JSON
{
  "delegated_authentication": string
}
Campos
delegated_authentication

string

Es un JWT de autenticación delegada válido para acceder a resource_name por el usuario mencionado en el JWT de autenticación original. Para obtener más información, consulta Token de autenticación de KACLS para delegate.

Ejemplo

Solicitud

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'}"
}

Respuesta

{
  "delegated_authentication": "eyJhbGciOi...delegated_to_from_authz_token...resource_name_from_authz_token...}"
}