Méthode : delegate

Cet appel renvoie un nouveau jeton Web JSON (JWT) d'authentification qui permet à une entité d'accéder à une ressource spécifiée au nom de l'utilisateur authentifié dans le jeton JWT d'authentification d'origine. Il est utilisé pour déléguer un accès limité à wrap ou unwrap à une autre entité lorsque celle-ci doit agir au nom de l'utilisateur.

Requête HTTP

POST https://<base_url>/delegate

Remplacez <base_url> par l'URL du service de liste de contrôle d'accès aux clés (KACLS).

Paramètres de chemin d'accès

Aucune.

Corps de la requête

Le corps de la requête contient une représentation JSON de la requête :

Représentation JSON
{
  "authentication": string,
  "authorization": string,
  "reason": string
}
Champs
authentication

string

Jeton JWT émis par un tiers pour affirmer l'identité de l'utilisateur. Pour en savoir plus, consultez la section sur l'authentification.

authorization

string

Jeton JWT avec les revendications delegated_to et resource_name indiquant que l'entité identifiée par la revendication delegated_to est autorisée à accéder à resource_name au nom de l'utilisateur. Pour en savoir plus, consultez Jetons d'autorisation.

reason

string (UTF-8)

Chaîne JSON directe fournissant un contexte supplémentaire sur l'opération. Le JSON fourni doit être nettoyé avant d'être affiché. Taille maximale : 1 Ko.

Étapes de traitement requises

Le KACLS doit au moins effectuer les étapes suivantes :

  • Validez les jetons d'autorisation et d'authentification. Pour en savoir plus, consultez Jetons d'autorisation et Jetons d'authentification.
  • Vérifiez que les jetons d'autorisation et d'authentification sont destinés au même utilisateur. Pour en savoir plus, consultez Chiffrer et déchiffrer des données.
  • Vérifiez que la revendication kacls_url du jeton d'autorisation correspond à l'URL KACLS actuelle. Cela permet de détecter les serveurs potentiels d'attaque de l'homme du milieu configurés par des personnes internes ou des administrateurs de domaine malveillants.
  • Si la revendication kacls_owner_domain existe dans le jeton d'autorisation, vérifiez que la valeur correspond au domaine Google Workspace du propriétaire de KACLS. Cela permet d'empêcher les utilisateurs non autorisés d'enregistrer votre KACLS auprès de Google.
  • Consignez l'opération, y compris l'utilisateur à l'origine de l'opération, le delegated_to, le resource_name et le motif transmis dans la requête.
  • Générez, signez et renvoyez un jeton JWT contenant les revendications delegated_to et resource_name du jeton d'autorisation.

Le KACLS est libre d'effectuer des vérifications de sécurité supplémentaires, y compris celles basées sur les revendications JWT.

Corps de la réponse

En cas de succès, cette méthode renvoie un jeton JWT d'authentification contenant les revendications delegated_to et resource_name. Ce jeton pourra ensuite être utilisé pour l'authentification dans les appels aux méthodes Wrap et Unwrap. En cas d'erreur, une réponse d'erreur structurée doit être renvoyée.

Représentation JSON
{
  "delegated_authentication": string
}
Champs
delegated_authentication

string

Jeton JWT d'authentification déléguée valide pour accéder à resource_name par l'utilisateur mentionné dans le jeton JWT d'authentification d'origine. Pour en savoir plus, consultez Jeton d'authentification KACLS pour delegate.

Exemple

Requête

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

Réponse

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