Metodo: delegate

Questa chiamata restituisce un nuovo token JWT (JSON Web Token) di autenticazione che consente a un'entità di accedere a una risorsa specificata per conto dell'utente autenticato nel JWT di autenticazione originale. Viene utilizzato per delegare l'accesso con ambito a wrap o unwrap a un'altra entità quando questa deve agire per conto dell'utente.

Richiesta HTTP

POST https://<base_url>/delegate

Sostituisci <base_url> con l'URL del servizio di elenco di controllo dell'accesso per le chiavi (KACLS).

Parametri del percorso

Nessuno.

Corpo della richiesta

Il corpo della richiesta contiene una rappresentazione JSON della richiesta:

Rappresentazione JSON
{
  "authentication": string,
  "authorization": string,
  "reason": string
}
Campi
authentication

string

Un JWT emesso da una terza parte che dichiara l'identità dell'utente. Per maggiori dettagli, consulta la sezione relativa all'autenticazione.

authorization

string

Un JWT con attestazioni delegated_to e resource_name che dichiarano che l'entità identificata dall'attestazione delegated_to è autorizzata ad accedere a resource_name per conto dell'utente. Per ulteriori informazioni, consulta Token di autorizzazione.

reason

string (UTF-8)

Una stringa JSON passthrough che fornisce un contesto aggiuntivo sull'operazione. Il JSON fornito deve essere sanificato prima di essere visualizzato. Dimensioni massime: 1 kB.

Passaggi di elaborazione obbligatori

Il KACLS deve eseguire almeno questi passaggi:

  • Convalida sia i token di autorizzazione sia quelli di autenticazione. Per maggiori informazioni, consulta Token di autorizzazione e Token di autenticazione.
  • Verifica che i token di autorizzazione e autenticazione siano per lo stesso utente. Per maggiori informazioni, vedi Criptare e decriptare i dati.
  • Verifica che l'attestazione kacls_url nel token di autorizzazione corrisponda all'URL KACLS attuale. Ciò consente di rilevare potenziali server man-in-the-middle configurati da insider o amministratori di domini non autorizzati.
  • Se l'attestazione kacls_owner_domain esiste nel token di autorizzazione, verifica che il valore corrisponda al dominio Google Workspace del proprietario di KACLS. In questo modo si impedisce a utenti non autorizzati di registrare il tuo KACLS su Google.
  • Registra l'operazione, inclusi l'utente che l'ha originata, delegated_to, resource_name e il motivo indicato nella richiesta.
  • Genera, firma e restituisce un token JWT contenente le rivendicazioni delegated_to e resource_name dal token di autorizzazione.

Il KACLS è libero di eseguire controlli di sicurezza aggiuntivi, inclusi quelli basati sulle rivendicazioni JWT.

Corpo della risposta

In caso di esito positivo, questo metodo restituisce un JWT di autenticazione contenente le attestazioni delegated_to e resource_name. Questo token può essere utilizzato in un secondo momento per l'autenticazione nelle chiamate ai metodi Wrap e Unwrap. In caso di errore, deve essere restituita una risposta di errore strutturata.

Rappresentazione JSON
{
  "delegated_authentication": string
}
Campi
delegated_authentication

string

Un JWT di autenticazione delegata valido per l'accesso a resource_name da parte dell'utente menzionato nel JWT di autenticazione originale. Per maggiori informazioni, consulta Token di autenticazione KACLS per delegate.

Esempio

Richiesta

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

Risposta

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