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 vous permettant de configurer la date à laquelle l'autorisation expire et n'est plus valide. 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 consentements peuvent être créés dans les états ACTIVE
ou DRAFT
. Les autorisations à l'état ACTIVE
sont utilisées par l'API Consent Management pour déterminer les accès. Les autorisations à l'état DRAFT
ne sont utilisées que dans les cas
de ces décisions si cela est spécifié
dans une demande de détermination de l'accès. Vous pouvez faire passer l'état de DRAFT
à ACTIVE
ou REJECTED
en mettant à jour l'autorisation.
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.
Créer un artefact 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 d'autorisation, 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.
- La signature facultative d'un représentant légal ou d'un témoin
- 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.
- Un identifiant des informations d'autorisation présentées à l'utilisateur
- Des métadonnées facultatives concernant l'autorisation de l'utilisateur
- Un jeton d'accès
curl
L'exemple suivant montre une requête POST
utilisant curl
:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/consent+json; charset=utf-8" \ --data "{ 'user_id': 'USER_ID', 'user_signature' : { 'user_id': 'USER_ID', 'image': { 'gcs_uri': 'gs://IMG_URI' }, 'signature_time': { 'seconds': EPOCH_SECONDS }, }, 'consent_content_screenshots': [ { 'raw_bytes': 'BASE_64_IMAGE' }], 'consent_content_version': 'v1', 'metadata': {'client': 'mobile'} }" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts"
Si la requête aboutit, le serveur affiche une réponse semblable à l'exemple suivant au format JSON :
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_RESOURCE_ID", "userId": "USER_ID", "userSignature": { "userId": "USER_ID", "signatureTime": "SIGNATURE_TIME" }, "consentContentVersion": "v1", "metadata": { "client": "mobile" } }
PowerShell
L'exemple suivant montre une requête POST
utilisant Windows PowerShell :
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/consent+json; charset=utf-8" ` -Body "{ 'user_id': 'USER_ID', 'user_signature' : { 'user_id': 'USER_ID', 'image': { 'gcs_uri': 'gs://IMG_URI' }, 'signature_time': { 'seconds': EPOCH_SECONDS } }, 'consent_content_screenshots': [ { 'raw_bytes': 'BASE_64_IMAGE' }], 'consent_content_version': 'v1', 'metadata': {'client': 'mobile'} }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts" | Select-Object -Expand Content
Si la requête aboutit, le serveur affiche la réponse suivante au format JSON :
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_RESOURCE_ID", "userId": "USER_ID", "userSignature": { "userId": "USER_ID", "signatureTime": "SIGNATURE_TIME" }, "consentContentVersion": "v1", "metadata": { "client": "mobile" } }
Créer une autorisation
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.
- Jusqu'à 10 règles d'autorisation, chacune avec un ensemble de valeurs d'attribut
RESOURCE
et une règle d'autorisation exprimée en Common Expression Language (CEL) qui décrit l'intention 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 qu'un maximum de 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).
- État du consentement facultatif,
DRAFT
ouACTIVE
. Si vous ne spécifiez pas l'état, le consentement est créé dans l'étatACTIVE
. - Durée d'expiration facultative pour l'autorisation, définie sous la forme d'une date ou d'une période. Cette valeur doit être indiquée en secondes et porter le suffixe du
lettre s. Par exemple,
86000s
. Cette valeur remplace la durée d'expiration configurée pour le store 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 store d'autorisations. Si aucune durée d'expiration n'est spécifiée pour la ressource ou le store, la ressource d'autorisation n'expire pas. - Un jeton d'accès
curl
L'exemple suivant montre une requête POST
utilisant curl
:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/consent+json; charset=utf-8" \ --data "{ \"user_id\": \"USER_ID\", \"policies\": [{ \"resource_attributes\": [{ \"attribute_definition_id\": \"data_identifiable\", \"values\": [\"identifiable\"] }], \"authorization_rule\": { \"expression\": \"requester_identity == 'clinical-admin'\", } }, { \"resource_attributes\": [{ \"attribute_definition_id\": \"data_identifiable\", \"values\": [\"de-identified\"] }], \"authorization_rule\": { \"expression\": \"requester_identity in ['internal-researcher', 'external-researcher']\" } }], \"consent_artifact\": \"projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID\", \"ttl\": \"EXPIRATION_DURATION\" }" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents"
Si la requête aboutit, le serveur affiche une réponse semblable à l'exemple suivant :
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "CONSENT_STATE", "stateChangeTime": "STATE_CHANGE_TIME", "expireTime": "EXPIRE_TIME" }
PowerShell
L'exemple suivant montre une requête POST
utilisant Windows PowerShell :
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/consent+json; charset=utf-8" ` -Body "{ 'user_id': 'USER_ID', 'policies': [{ 'resource_attributes': [{ 'attribute_definition_id': 'data_identifiable', 'values': ['identifiable'] }], 'authorization_rule': { 'expression': 'requester_identity == \'clinical-admin\'', } },{ 'resource_attributes': [{ 'attribute_definition_id': 'data_identifiable', 'values': ['de-identified'] }], 'authorization_rule': { 'expression': 'requester_identity in [\'internal-researcher\', \'external-researcher\']' } }], 'consent_artifact': 'projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID', 'ttl': 'EXPIRATION_DURATION' }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents" | Select-Object -Expand Content
Si la requête aboutit, le serveur affiche une réponse semblable à l'exemple suivant :
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "CONSENT_STATE", "stateChangeTime": "STATE_CHANGE_TIME", "expireTime": "EXPIRE_TIME" }
Obtenir un consentement
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
- Nom de l'autorisation
- Un jeton d'accès
curl
L'exemple suivant montre une requête GET
utilisant curl
:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID"
Si la requête aboutit, le serveur renvoie la réponse au format JSON :
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "CONSENT_STATE", "stateChangeTime": "STATE_CHANGE_TIME", "revisionCreateTime": "REVISION_CREATE_TIME", "expireTime": "EXPIRE_TIME" }
PowerShell
L'exemple suivant montre une requête GET
utilisant Windows PowerShell :
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-RestMethod ` -Method Get ` -Headers $headers ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID" | ConvertTo-Json
Si la requête aboutit, le serveur renvoie la réponse au format JSON :
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": "", "authorizationRule": "@{expression=requester_identity == 'clinical-admin'}" }, { "resourceAttributes": "", "authorizationRule": "@{expression=requester_identity in ['internal-researcher', 'external-researcher']}" } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "CONSENT_STATE", "stateChangeTime": "STATE_CHANGE_TIME", "revisionCreateTime": "REVISION_CREATE_TIME", "expireTime": "EXPIRE_TIME" }
Répertorier les autorisations dans un magasin d'autorisations
Les exemples suivants montrent comment répertorier les autorisations dans un datastore d'autorisations.
Pour répertorier les autorisations dans un magasin d'autorisations, utilisez la méthode projects.locations.datasets.consentStores.consents.list
.
curl
Pour répertorier les autorisations dans un magasin d'autorisations, envoyez une requête GET
et spécifiez les informations suivantes :
- Nom du magasin d'autorisations parent
- Filtre de recherche facultatif pour récupérer les autorisations en fonction de l'ID utilisateur, de l'état, de l'heure de création ou de l'artefact d'autorisation
- Un jeton d'accès
L'exemple suivant montre une requête GET
utilisant curl
.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents"
Si la requête aboutit, le serveur renvoie la réponse au format JSON :
{ "consents": [ { "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "CONSENT_STATE", "stateChangeTime": "STATE_CHANGE_TIME", "revisionCreateTime": "REVISION_CREATE_TIME", "expireTime": "EXPIRE_TIME" }, { ... } ] }
PowerShell
Pour répertorier les autorisations dans un magasin d'autorisations, envoyez une requête GET
et spécifiez les informations suivantes :
- Nom de l'ensemble de données parent
- Filtre de recherche facultatif pour récupérer les autorisations en fonction de l'ID utilisateur, de l'état, de l'heure de création ou de l'artefact d'autorisation
- Un jeton d'accès
L'exemple suivant montre une requête GET
utilisant Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Get ` -Headers $headers ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents" | Select-Object -Expand Content
Si la requête aboutit, le serveur renvoie la réponse au format JSON :
{ "consents": [ { "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "CONSENT_STATE", "stateChangeTime": "STATE_CHANGE_TIME", "revisionCreateTime": "REVISION_CREATE_TIME", "expireTime": "EXPIRE_TIME" }, { ... } ] }
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 consentements au fil du temps. Pour ce faire, modifiez l'état de l'autorisation. Chaque mise à jour et changement d'état génère une nouvelle révision du consentement. Pour accéder aux versions précédentes, ajoutez @{revision_id}
au nom de la 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
- Les champs à mettre à jour
- Un masque de mise à jour
- Un jeton d'accès
curl
L'exemple suivant montre une requête PATCH
utilisant curl
qui met à jour l'artefact d'autorisation :
curl -X PATCH \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/consent+json; charset=utf-8" \ --data "{ \"consentArtifact\": \"projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID\" }" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID?updateMask=consentArtifact"
Si la requête aboutit, le serveur affiche une réponse semblable à l'exemple suivant au format JSON :
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "ACTIVE", "stateChangeTime": "STATE_CHANGE_TIME", "revisionCreateTime": "REVISION_CREATE_TIME", "expireTime": "EXPIRE_TIME" }
PowerShell
L'exemple suivant présente une requête PATCH
utilisant Windows PowerShell, qui met à jour l'artefact d'autorisation :
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Patch ` -Headers $headers ` -ContentType: "application/consent+json; charset=utf-8" ` -Body "{ 'consentArtifact': 'projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID' }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID?updateMask=consentArtifact" | Select-Object -Expand Content
Si la requête aboutit, le serveur affiche une réponse semblable à l'exemple suivant au format JSON :
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "ACTIVE", "stateChangeTime": "STATE_CHANGE_TIME", "revisionCreateTime": "REVISION_CREATE_TIME", "expireTime": "EXPIRE_TIME" }
Activer les autorisations
Pour faire passer l'état du consentement de DRAFT
à ACTIVE
une fois que l'utilisateur a accepté
le consentement, utilisez les
projects.locations.datasets.consentStores.consents.activateConsent
. Une nouvelle révision est validée avec l'état ACTIVE
. Lorsque l'état
le consentement est ACTIVE
, il est inclus dans les demandes de détermination de l'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
curl
L'exemple suivant montre une requête POST
utilisant curl
:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/consent+json; charset=utf-8" \ --data "{ 'consent_artifact': 'projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/userConsentArtifacts/CONSENT_ARTIFACT_RESOURCE_ID' \ }" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID:activate"
Si la requête aboutit, le serveur affiche une réponse semblable à l'exemple suivant au format JSON :
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "ACTIVE", "stateChangeTime": "STATE_CHANGE_TIME", "expireTime": "EXPIRE_TIME" }
PowerShell
L'exemple suivant montre une requête POST
utilisant Windows PowerShell :
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/consent+json; charset=utf-8" ` -Body "{ 'consent_artifact': '/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/userConsentArtifacts/CONSENT_ARTIFACT_ID' }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID:activate" | Select-Object -Expand Content
Si la requête aboutit, le serveur affiche une réponse semblable à l'exemple suivant au format JSON :
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "ACTIVE", "stateChangeTime": "STATE_CHANGE_TIME", "expireTime": "EXPIRE_TIME" }
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
demande l'annulation d'un consentement précédemment accordé, utilisez le
projects.locations.datasets.consentStores.consents.revoke
. Une nouvelle révision est validée avec l'état REVOKED
. Consentement avec un état
sur REVOKED
ne sont pas inclus dans les demandes de détermination de l'accès. Vous pouvez créer un
artefact facultatif associé au consentement pour documenter pourquoi
votre consentement a été révoqué. Révoquer un consentement ne le supprime pas.
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
curl
L'exemple suivant montre une requête POST
utilisant curl
:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/consent+json; charset=utf-8" \ --data "{}" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID:revoke"
Si la requête aboutit, le serveur affiche une réponse semblable à l'exemple suivant au format JSON :
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "REVOKED", "stateChangeTime": "STATE_CHANGE_TIME", "expireTime": "EXPIRE_TIME" }
PowerShell
L'exemple suivant montre une requête POST
utilisant Windows PowerShell :
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/consent+json; charset=utf-8" ` -Body "{}" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID:revoke" | Select-Object -Expand Content
Si la requête aboutit, le serveur affiche une réponse semblable à l'exemple suivant au format JSON :
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "REVOKED", "stateChangeTime": "STATE_CHANGE_TIME", "expireTime": "EXPIRE_TIME" }