In questa pagina viene descritto come determinare l'accesso utilizzando il metodo l'API Consent Management.
Le applicazioni possono richiedere la determinazione degli accessi dall'API Consent Management per uno specifico elemento di dati, per tutti gli elementi dei dati associati a un utente oppure per interi datastore. In ogni caso, l'API Consent Management effettua un accesso una valutazione valutando le seguenti informazioni in base alle informazioni contenuti nella richiesta di accesso:
- Il consenso dell'utente, ad esempio i valori degli attributi
REQUEST
- Le mappature dei dati utente, ad esempio i valori degli attributi
RESOURCE
.
Per impostazione predefinita, le determinazioni degli accessi valutano solo i consensi di ACTIVE
. DRAFT
i consensi possono essere inclusi in una determinazione dell'accesso specificandoli in un
richiesta di determinazione dell'accesso.
Le richieste di determinazione dell'accesso ignorano sempre i consensi scaduti, revocati o rifiutato.
Determinare l'accesso al consenso per specifici elementi di dati
Puoi richiedere una determinazione dell'accesso per uno specifico elemento di dati utilizzando il metodo
projects.locations.datasets.consentStores.checkDataAccess
. Questo metodo restituisce un messaggio che indica se il valore UserDataMapping
specificato ha un consenso valido per l'utilizzo proposto.
Per richiedere una determinazione dell'accesso per un elemento di dati specifico, effettua una richiesta POST
e specifica le seguenti informazioni:
- Il nome dell'archivio di consensi padre.
- Un ID risorsa dati, ovvero una descrizione dell'elemento dati, ad esempio il percorso REST di una risorsa.
- Un insieme di coppie chiave-valore che rappresentano il richiedente in termini di
pertinenti di
REQUEST
e i relativi valori. Ad esempio:requesterIdentity == external-researcher
. - Un flag facoltativo che indica se è necessario determinare se o meno l'esecuzione di determinate procedure di accesso
da restituire. Se questo flag viene impostato su
FULL
, il metodo restituisce risultati per ogni consenso valutato. Se questo flag è impostato suBASIC
o non è definito, il flag restituisce solo se l'accesso ai dati specificati è consentito dal consensi valutati. Questa funzionalità facoltativa viene utilizzata quando la tua applicazione deve esaminare come è stata effettuata una determinazione del consenso. - Un elenco facoltativo di
ACTIVE
oDRAFT
consente di indicare il metodo da prendere in considerazione. Se non viene specificato alcun consenso, il metodo valuta tutti i consensiACTIVE
. Questo funzionalità facoltativa può essere utilizzata per verificare il comportamento di consensi nuovi o specifici. - Un token di accesso
curl
L'esempio seguente mostra una richiesta POST
utilizzando curl
:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/consent+json; charset=utf-8" \ --data "{ 'dataId' : 'DATA_ID', 'requestAttributes': { 'requesterIdentity': 'external-researcher'}, 'consentList':{ 'consents':[ 'projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_NAME' ] }, 'responseView': 'DETAILED_ACCESS_LEVEL' }" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID:checkDataAccess"
Se la richiesta riesce, il server restituisce una risposta simile alla
seguente esempio in formato JSON o un corpo della risposta vuoto se non sono disponibili dati utente
corrisponde all'accesso ai dati specificato. La risposta di esempio utilizza FULL
come responseView
.
{ "consentDetails": { "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID": { "evaluationResult": "EVALUATION_RESULT" } } }
EVALUATION_RESULT
è uno di NOT_APPLICABLE
,
NO_MATCHING_POLICY
, NO_SATISFIED_POLICY
o HAS_SATISFIED_POLICY
.
PowerShell
L'esempio seguente mostra una richiesta POST
mediante 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 "{ 'dataId' : 'DATA_ID', 'requestAttributes': { 'requesterIdentity': 'external-researcher' }, 'consentList': { 'consents':[ 'projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID' ] }, 'responseView': 'DETAILED_ACCESS_LEVEL' }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID:checkDataAccess" | Select-Object -Expand Content
Se la richiesta riesce, il server restituisce una risposta simile alla
seguente esempio in formato JSON o un corpo della risposta vuoto se non sono disponibili dati utente
corrisponde all'accesso ai dati specificato. La risposta di esempio utilizza FULL
come responseView
.
{ "consentDetails": { "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID": { "evaluationResult": "EVALUATION_RESULT" } } }
EVALUATION_RESULT
è uno di NOT_APPLICABLE
,
NO_MATCHING_POLICY
, NO_SATISFIED_POLICY
o HAS_SATISFIED_POLICY
.
Effettuare una determinazione dell'accesso per tutti i consensi di un utente
Puoi richiedere una determinazione dell'accesso per tutti gli elementi dei dati associati a un
l'utente utilizzando
projects.locations.datasets.consentStores.evaluateUserConsents
. Questo metodo restituisce tutti gli elementi di dati associati a un utente specifico
che hanno un consenso valido per l'utilizzo proposto.
Per richiedere una determinazione dell'accesso per tutti gli elementi dei dati associati a un
utente, effettua una richiesta POST
e specifica nella richiesta le seguenti informazioni:
- Il nome dello Store per il consenso principale.
- Un ID utente che definisce gli elementi di dati e i consensi da valutare.
- Un insieme facoltativo di coppie chiave/valore che definiscono gli attributi
RESOURCE
di gli elementi dei dati da valutare. Ad esempio,dataIdentifiable == de-identified
. Se non definisci un insieme di attributiRESOURCE
, vengono valutati gli elementi dei dati. - Un insieme di coppie chiave-valore che definiscono gli attributi
REQUEST
pertinenti e i relativi valori. Ad esempio,requesterIdentity == external-researcher
. - Un flag facoltativo che indica se è necessario determinare se o meno l'esecuzione di determinate procedure di accesso
da restituire. Se questo flag viene impostato su
FULL
, il metodo restituisce risultati per ogni consenso valutato. Se questo flag è impostato suBASIC
o non è definito, il flag restituisce solo se l'accesso ai dati specificati è consentito dal consensi valutati. Questa funzionalità facoltativa viene utilizzata quando la tua applicazione deve esaminare come è stata effettuata una determinazione del consenso. - Un elenco facoltativo di
ACTIVE
oDRAFT
consente di indicare il metodo da prendere in considerazione. Se non viene specificato alcun consenso, il metodo valuta tutti i consensiACTIVE
. Questo funzionalità facoltativa può essere utilizzata per verificare il comportamento di consensi nuovi o specifici. - Un token di accesso
curl
L'esempio seguente mostra una richiesta POST
utilizzando curl
:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/consent+json; charset=utf-8" \ --data "{ 'userId' : 'USER_ID', 'consentList':{ 'consents':[ 'projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID' ] }, 'resourceAttributes': { 'dataIdentifiable': 'de-identified' }, 'requestAttributes': { 'requesterIdentity': 'external-researcher' }, 'responseView': 'DETAILED_ACCESS_LEVEL' }" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID:evaluateUserConsents"
Se la richiesta riesce, il server restituisce una risposta simile al seguente esempio in formato JSON o un corpo della risposta vuoto se nessun dato utente corrisponde all'accesso ai dati specificato. La risposta di esempio utilizza FULL
come
responseView
.
{ "results": [ { "dataId": "DATA_ID", "consentDetails": { "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID": { "evaluationResult": "EVALUATION_RESULT" } } } ] }
PowerShell
L'esempio seguente mostra una richiesta POST
mediante 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 "{ 'userId' : 'USER_ID', 'consentList':{ 'consents':[ 'projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_NAME' ] }, 'resourceAttributes': { 'dataIdentifiable': 'de-identified'}, 'requestAttributes': { 'requesterIdentity': 'external-researcher'}, 'responseView': 'DETAILED_ACCESS_LEVEL' }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID:evaluateUserConsents" | Select-Object -Expand Content
Se la richiesta riesce, il server restituisce una risposta simile al seguente esempio in formato JSON o un corpo della risposta vuoto se nessun dato utente corrisponde all'accesso ai dati specificato. La risposta di esempio utilizza FULL
come
responseView
.
{ "results": [ { "dataId": "DATA_ID", "consentDetails": { "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID": { "evaluationResult": "EVALUATION_RESULT" } } } ] }
Determinazione degli accessi per gli archivi di consensi
Puoi richiedere una determinazione dell'accesso per un intero archivio dei consensi utilizzando il metodo
projects.locations.datasets.consentStores.queryAccessibleData
. Questo metodo restituisce tutti gli elementi di dati all'interno di un archivio di consensi che hanno un consenso valido.
Per richiedere una determinazione dell'accesso in un intero archivio di consensi, effettua una
POST
e specifica le seguenti informazioni nella richiesta:
- Il nome dell'archivio di consensi padre
- Un insieme di coppie chiave/valore che definiscono gli attributi
REQUEST
pertinenti e sui loro valori. Ad esempio,requesterIdentity == external-researcher
. - Un insieme facoltativo di coppie chiave/valore che definiscono gli attributi
RESOURCE
di gli elementi dei dati da valutare. Ad esempio,dataIdentifiable == de-identified
. Se non definisci un insieme di attributiRESOURCE
, gli elementi dei dati vengono valutati - Una destinazione Cloud Storage in cui viene salvato l'elenco dei risultati. La
L'account di servizio dell'API Cloud Healthcare deve avere
roles/storage.objectAdmin
ruolo IAM in questa destinazione. Per ulteriori informazioni, consulta Autorizzazioni Cloud Storage per i negozi di consenso. - Un token di accesso
curl
L'esempio seguente mostra una richiesta POST
utilizzando curl
:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/consent+json; charset=utf-8" \ --data "{ 'gcsDestination': { 'uriPrefix': 'gs://BUCKET/DIRECTORY' }, 'resourceAttributes': { 'dataIdentifiable': 'de-identified' }, 'requestAttributes': { 'requesterIdentity': 'external-researcher' } }" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID:queryAccessibleData"
Se la richiesta riesce, il server restituisce una risposta simile alla seguente esempio in formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
La risposta contiene il nome di un'operazione. Per monitorare lo stato dell'operazione,
puoi utilizzare
Metodo dell'operazione get
:
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/operations/OPERATION_ID"
Se la richiesta riesce, il server restituisce una risposta con lo stato dell'operazione in formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1beta1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1beta1.consent.consentService.queryAccessibleData", "createTime": "CREATE_TIME", "endTime": "END_TIME" "logsUrl": "LOGS_URL", "counter": { "success": "SUCCESS_COUNT" } }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Al termine dell'operazione a lunga esecuzione, i risultati vengono visualizzati in un file di testo nella cartella specificata. Per informazioni sulle operazioni a lunga esecuzione, consulta Gestione delle operazioni a lunga esecuzione.
PowerShell
L'esempio seguente mostra una richiesta POST
mediante 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 "{ 'gcsDestination': { 'uriPrefix': 'gs://BUCKET/DIRECTORY' }, 'resourceAttributes': { 'dataIdentifiable': 'de-identified' }, 'requestAttributes': { 'requesterIdentity': 'external-researcher' } }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID:queryAccessibleData" | Select-Object -Expand Content
Se la richiesta riesce, il server restituisce una risposta simile alla seguente esempio in formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
La risposta contiene il nome di un'operazione. Per monitorare lo stato dell'operazione,
puoi utilizzare il
metodo Operation get
:
$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/operations/OPERATION_ID" | Select-Object -Expand Content
Se la richiesta riesce, il server restituisce una risposta con lo stato dell'operazione in formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1beta1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1beta1.consent.consentService.queryAccessibleData", "createTime": "CREATE_TIME", "endTime": "END_TIME" "logsUrl": "LOGS_URL", "counter": { "success": "SUCCESS_COUNT" } }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Al termine dell'operazione a lunga esecuzione, i risultati vengono visualizzati in un file di testo nella cartella specificata. Per informazioni sulle operazioni a lunga esecuzione, consulta Gestione delle operazioni a lunga esecuzione.
Logging di richieste e risposte di determinazione dell'accesso
Quando gli audit log di accesso ai dati sono abilitati, le richieste dei log dell'API Consent Management effettuate utilizzando i metodi checkDataAccess
, evaluateUserConsents
e queryAccessibleData
. Questi log registrano le informazioni contenute nella richiesta, ad esempio l'attributo UserDataMapping
target o gli attributi RESOURCE
o REQUEST
specificati. I log conterranno anche la risposta dell'API, che include il risultato della determinazione dell'accesso all'API Consent Management. Ogni log include l'identità dello strumento Google Cloud che effettua la richiesta.
Per ulteriori informazioni sull'abilitazione degli audit log di accesso ai dati, consulta Configurazione degli audit log di accesso ai dati. Per ulteriori informazioni sull'audit logging nell'API Cloud Healthcare, consulta Visualizzazione degli audit log di Cloud.