Créer et mettre à jour les autorisations des utilisateurs

Cette page explique comment créer, mettre à jour et révoquer les autorisations des utilisateurs.

Votre application enregistre séparément les artefacts d'autorisation et les autorisations. Cette API stocke les données sensibles relatives à l'autorisation de l'utilisateur en tant que ConsentArtifact. Une ConsentArtifact peut inclure des horodatages de signature et des images de signatures ou d'autres documents faisant office de "preuve" d'autorisation.

L'API Consent Management stocke des données d'autorisation non sensibles sous la forme d'objets Consent. Un élément Consent comprend un ID utilisateur opaque, les règles d'autorisation accordées par l'utilisateur et l'état des règles d'autorisation.

Comme les autorisations et les artefacts d'autorisation possèdent des chemins de ressources distincts, leurs autorisations peuvent être définies indépendamment afin de réduire l'accès aux données d'autorisation sensibles dans les artefacts d'autorisation.

Les autorisations acceptent une durée d'expiration qui vous permet de configurer le délai d'expiration lorsque l'autorisation arrive à expiration. La durée d'expiration peut correspondre à une date spécifique ou à une période, par exemple un an.

Lors de la création d'un magasin d'autorisations, vous pouvez configurer une durée d'expiration par défaut pour celui-ci. Lors de la création d'une autorisation, vous pouvez configurer une durée d'expiration pour celle-ci. La durée d'expiration définie lors de la création d'une autorisation ignore la durée par défaut définie pour le magasin d'autorisations.

Les autorisations peuvent être créées dans l'état ACTIVE ou DRAFT. Les autorisations nécessaires à l'état ACTIVE sont utilisées par l'API de gestion du consentement pour l'attribution des décisions d'accès. Les autorisations définies dans l'état DRAFT ne sont utilisées que dans le cadre des décisions d'accès spécifiées dans une demande de contrôle d'accès. Vous pouvez remplacer l'état DRAFT par ACTIVE ou REJECTED en mettant à jour le consentement.

Pour enregistrer l'autorisation d'un utilisateur, créez un artefact d'autorisation à l'aide de la méthodeprojects.locations.datasets.consentStores.consentArtifacts.create , puis associez l'artefact d'autorisation à une autorisation créée à l'aide de projects.locations.datasets.consentStores.consents.create.

Les exemples de cette page partent du principe que vous avez créé un magasin d'autorisations et configuré des règles d'autorisation.

Un artefact d'autorisation stocke des données sensibles liées à l'autorisation d'un utilisateur. Un artefact d'autorisation peut inclure les coordonnées de l'utilisateur, les horodatages de signature et les images de signatures ou d'autres documents agissant en tant que "preuves" de l'autorisation.

Pour créer un artefact de consentement, utilisez la méthode projects.locations.datasets.consentStores.consentArtifacts.create. Effectuez une requête POST et spécifiez les informations suivantes dans la requête :

  • Nom du magasin d'autorisations parent
  • ID utilisateur unique et opaque représentant l'utilisateur qui a fourni l'autorisation.
  • La signature de l'utilisateur, y compris l'image de signature, l'horodatage et d'autres métadonnées. Cette image peut être spécifiée comme emplacement d'image dans Cloud Storage ou sous forme de chaîne d'octets bruts.
  • Signature de représentant légal ou témoin facultative.
  • Images ou documents facultatifs faisant "office" d'autorisation, comme une image de signature, captures d'écrans d'un flux d'autorisations pour mobile ou document PDF signé. Ces images peuvent être spécifiées sous forme d'emplacement dans Cloud Storage ou sous forme de chaîne d'octets bruts.
  • Identifiant des informations de consentement que l'utilisateur a vues.
  • Métadonnées facultatives concernant le consentement de l'utilisateur.
  • Un jeton d'accès

Une autorisation stocke des données non sensibles, y compris des ID utilisateur opaques, les règles d'autorisation accordées par les utilisateurs et l'état de validité de ces règles.

Pour créer une autorisation, utilisez la méthode projects.locations.datasets.consentStores.consents.create. Effectuez une requête POST et spécifiez les informations suivantes dans la requête :

  • Nom du magasin d'autorisations parent
  • ID utilisateur unique et opaque représentant l'utilisateur qui a fourni l'autorisation.
  • Un maximum de 10 règles de consentement, chacune avec un ensemble de valeurs d'attribut RESOURCE et une règle d'autorisation exprimée en langage d'expression commun (CEL) décrivant l'intent de l'utilisateur avec les définitions d'attributs créées précédemment. Les restrictions suivantes s'appliquent au CEL :
    • Vous ne pouvez définir au maximum 10 opérateurs logiques par règle.
    • Vous pouvez utiliser les opérateurs AND (&&), OR (||) et IN.
  • Le chemin REST vers l'artefact d'autorisation correspondant (renvoyé lors de la création de l'artefact d'autorisation).
  • Un état d'autorisation facultatif, DRAFT ou ACTIVE. Si vous ne spécifiez pas cet état, le consentement est créé dans l'état ACTIVE.
  • Durée d'expiration facultative pour le consentement, définie sous la forme d'une date ou d'une période. Cette valeur doit être fournie en secondes et commencer par les lettres "s". Par exemple, 86000s. Cette valeur remplace la durée d'expiration configurée pour le magasin d'autorisations. Si vous ne configurez pas de délai d'expiration, la ressource hérite de la durée d'expiration par défaut du magasin d'autorisations. Si aucune durée d'expiration n'est spécifiée pour la ressource ou le magasin, celle-ci n'expire pas.
  • Un jeton d'accès

Les exemples suivants expliquent comment obtenir une autorisation. Pour en savoir plus, consultez les sections sur projects.locations.datasets.consentStores.consents.get

Pour obtenir une autorisation, effectuez une requête GET et spécifiez les informations suivantes dans la requête :

  • Nom de l'ensemble de données parent
  • Nom du magasin d'autorisations
  • Le nom de l'autorisation
  • Un jeton d'accès

Les exemples suivants montrent comment répertorier les autorisations dans un magasin d'autorisations.

Pour répertorier les autorisations dans un magasin d'autorisations, utilisez la méthode projects.locations.datasets.consentStores.consents.list.

Vous pouvez également répertorier les révisions d'un consentement spécifique à l'aide de la méthode projects.locations.datasets.consentStores.consents.listRevisions.

Mettre à jour les autorisations

Vous devrez peut-être mettre à jour l'état des autorisations au fil du temps. Pour ce faire, modifiez l'état d'autorisation. Chaque mise à jour et modification de l'état entraîne une nouvelle révision de l'autorisation. Les révisions précédentes sont accessibles en ajoutant @{revision_id} au nom de ressource du consentement.

Mettre à jour les autorisations

Pour mettre à jour une autorisation active ou brouillon d'autorisation userId, policies, consentArtifact, ourevokeConsentArtifact, utilisez la méthode projects.locations.datasets.consentStores.consents.patch. Une nouvelle révision comportant les modifications est validée et définie sur l'état actuel.

Pour mettre à jour une autorisation, envoyez une requête PATCH et spécifiez les informations suivantes dans la requête :

  • Chemin REST de l'autorisation à mettre à jour
  • Champs à mettre à jour
  • Un masque de mise à jour
  • Un jeton d'accès

Activer les autorisations

Pour passer de l'état d'un accord de DRAFT à ACTIVE après que l'utilisateur ait donné son autorisation, utilisez la méthode projects.locations.datasets.consentStores.consents.activateConsent. Une nouvelle révision est validée avec l'état ACTIVE. Lorsque l'état du consentement est ACTIVE, le consentement est inclus dans les demandes de contrôle d'accès.

Pour activer une autorisation, effectuez une requête POST et spécifiez les informations suivantes dans la requête :

  • Chemin REST de l'autorisation à activer
  • Chemin REST vers un artefact facultatif pour documenter la raison de l'activation de l'autorisation
  • Un jeton d'accès

Révoquer et rejeter les autorisations

Par exemple, pour changer l'état d'une autorisation de DRAFT à REJECTED, si l'utilisateur indique qu'il n'est pas acceptable, utilisez projects.locations.datasets.consentStores.consents.reject. Lorsque l'état d'une autorisation est REJECTED, celle-ci n'est pas incluse dans les requêtes de décision d'accès.

Pour faire passer l'état d'un consentement de ACTIVE à REVOKED, par exemple, si un utilisateur demande d'annuler un consentement accordé précédemment, utilisez la méthode projects.locations.datasets.consentStores.consents.revoke. . Une nouvelle révision est validée avec l'état REVOKED. Les autorisations dont l'état est REVOKED ne sont pas incluses dans les demandes de contrôle d'accès. Vous pouvez créer un artefact facultatif associé à l'autorisation de documenter les raisons pour lesquelles l'autorisation a été révoquée. Le fait de révoquer une autorisation ne supprime pas l'autorisation.

Pour révoquer une autorisation, effectuez une requête POST et spécifiez les informations suivantes dans la requête :

  • Chemin REST de l'autorisation à révoquer
  • Chemin REST vers un artefact facultatif pour documenter la raison de la révocation de l'autorisation
  • Un jeton d'accès