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 |
Jeton JWT émis par un tiers pour affirmer l'identité de l'utilisateur. Pour en savoir plus, consultez la section sur l'authentification. |
authorization |
Jeton JWT avec les revendications |
reason |
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
, leresource_name
et le motif transmis dans la requête. - Générez, signez et renvoyez un jeton JWT contenant les revendications
delegated_to
etresource_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 |
Jeton JWT d'authentification déléguée valide pour accéder à |
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...}"
}