Essa chamada retorna um novo JSON Web Token (JWT) de autenticação que permite que uma entidade acesse um recurso especificado em nome do usuário autenticado no JWT de autenticação original. Usado para delegar acesso limitado a wrap ou unwrap a outra entidade quando ela precisa agir em nome do usuário.
Solicitação HTTP
POST https://<base_url>/delegate
Substitua <base_url>
pelo URL do serviço de lista de controle de acesso a chaves (KACLS, na sigla em inglês).
Parâmetros de caminho
Nenhum.
Corpo da solicitação
O corpo da solicitação contém uma representação JSON da solicitação:
Representação JSON | |
---|---|
{ "authentication": string, "authorization": string, "reason": string } |
Campos | |
---|---|
authentication |
Um JWT emitido por terceiros que afirma quem é o usuário. Consulte a seção de autenticação para mais detalhes. |
authorization |
Um JWT com declarações |
reason |
Uma string JSON de transmissão que fornece mais contexto sobre a operação. O JSON fornecido precisa ser limpo antes de ser exibido. Tamanho máximo: 1 KB. |
Etapas de processamento necessárias
O KACLS precisa executar pelo menos estas etapas:
- Valide os tokens de autorização e autenticação. Para mais informações, consulte Tokens de autorização e Tokens de autenticação.
- Verifique se os tokens de autorização e autenticação são do mesmo usuário. Para mais informações, consulte Criptografar e descriptografar dados.
- Verifique se a declaração
kacls_url
no token de autorização corresponde ao URL atual do KACLS. Isso permite a detecção de possíveis servidores man-in-the-middle configurados por pessoas de dentro da empresa ou administradores de domínio desonestos. - Se a declaração
kacls_owner_domain
existir no token de autorização, verifique se o valor corresponde ao domínio do Google Workspace do proprietário do KACLS. Isso ajuda a impedir que usuários não autorizados registrem seu KACLS no Google. - Registre a operação, incluindo o usuário que a originou, o
delegated_to
, oresource_name
e o motivo transmitido na solicitação. - Gere, assine e retorne um token JWT que contenha as declarações
delegated_to
eresource_name
do token de autorização.
O KACLS pode realizar outras verificações de segurança, incluindo as baseadas em declarações de JWT.
Corpo da resposta
Se for bem-sucedido, esse método vai retornar um JWT de autenticação com declarações de
delegated_to
e resource_name
. Esse token pode ser usado posteriormente para
autenticação em chamadas para os métodos Wrap e Unwrap. Em caso de erro, uma resposta de erro estruturada precisa ser retornada.
Representação JSON | |
---|---|
{ "delegated_authentication": string } |
Campos | |
---|---|
delegated_authentication |
Um JWT de autenticação delegada válido para acessar |
Exemplo
Solicitação
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'}"
}
Resposta
{
"delegated_authentication": "eyJhbGciOi...delegated_to_from_authz_token...resource_name_from_authz_token...}"
}