In questa pagina viene descritto come registrare i dati utente con l'API Consent Management.
Gli elementi dei dati vengono registrati con l'API Consent Management e collegati a usando le mappature dei dati utente. I dati utente non vengono mai archiviati nel l'API Consent Management.
Le mappature dei dati utente, rappresentate come UserDataMappings
di Google Cloud, includono i seguenti elementi:
- Un ID utente che identifica l'utente. Questo ID corrisponde all'ID l'applicazione ha fornito l'API Consent Management durante la registrazione del consenso.
- Un ID dati che identifica i dati utente archiviati altrove, ad esempio su Google Cloud oppure on-premise. L'ID dati può essere un ID opaco, un URL o qualsiasi altro identificatore.
- Attributi di risorsa, che descrivono le caratteristiche dei dati utente utilizzando
valori degli attributi delle risorse configurati per l'archivio di consensi utilizzando l'attributo
le tue definizioni. Ad esempio, i dati potrebbero includere
attribute_definition_id
data_identifiable
con il valorede-identified
.
Il seguente diagramma mostra il flusso di dati per la creazione delle mappature dei dati utente:
Registrazione delle mappature dei dati utente
Per creare una mappatura dei dati utente, utilizza il metodo
projects.locations.datasets.consentStores.userDataMappings.create
. Fai una richiesta POST
e specifica le seguenti informazioni:
- Il nome dello Store per il consenso principale
- Un valore
userID
univoco e opaco che rappresenta l'utente con cui vengono visualizzati i dati è associato - Un identificatore per la risorsa di dati utente, ad esempio il percorso REST di un risorsa unica
- Un insieme di attributi
RESOURCE
che descrivono l'elemento dei dati - 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 "{ 'user_id': 'USER_ID', 'data_id' : 'DATA_ID', 'resource_attributes': [{ 'attribute_definition_id': 'data_identifiable', 'values': ['de-identified'] }] }" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/userDataMappings"
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/consentStores/CONSENT_STORE_ID/userDataMappings/USER_DATA_MAPPING_ID", "dataId": "DATA_ID", "userId": "USER_ID", "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ] }
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 "{ 'user_id': 'USER_ID', 'data_id' : 'DATA_ID', 'resource_attributes': [{ 'attribute_definition_id': 'data_identifiable', 'values': ['de-identified'] }] }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/userDataMappings" | 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/consentStores/CONSENT_STORE_ID/userDataMappings/USER_DATA_MAPPING_ID", "dataId": "DATA_ID", "userId": "USER_ID", "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ] }
Configurazione degli ID dati
Il campo data_id
della risorsa di mappatura dei dati utente contiene un
stringa specificata dal cliente che descrive i dati che la risorsa di mappatura dei dati utente
a cui fa riferimento. È consentita qualsiasi stringa, ad esempio un ID o URI opaco.
Gli ID dati possono essere granulari quanto richiesto dalla tua applicazione. Se
i dati che stai registrando possono essere descritti qui
a livello di tabella o bucket, definisci data_id
come percorso REST per la risorsa.
Se i dati che stai registrando richiedono una maggiore granularità,
potrebbe essere opportuno specificare righe o celle specifiche. Se la tua applicazione utilizza risorse concettuali, come azioni o classi di dati consentite, dovresti
definire data_id
con una convenzione che supporta questi casi d'uso.
Esempi di data_id
che descrive i dati archiviati in diversi servizi e su
i vari livelli di granularità includono, a titolo esemplificativo:
Oggetto Google Cloud Storage
'data_id' : 'gs://BUCKET_NAME/OBJECT_NAME'
Oggetto Amazon S3
'data_id' : 'https://BUCKET_NAME.s3.REGION.amazonaws.com/OBJECT_NAME'
Tabella BigQuery
'data_id' : 'bigquery/v2/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID'
Riga BigQuery (non esiste un percorso REST per una riga BigQuery, quindi è necessario un identificatore personale; di seguito è riportato un possibile approccio)
'data_id' : 'bigquery/v2/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID/myRows/ROW_ID'
Cella BigQuery (non esiste un percorso REST per una cella BigQuery, quindi è necessario un identificatore personale; uno dei possibili approcci è quello riportato di seguito)
'data_id' : 'bigquery/v2/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID/myRows/ROW_ID/myColumns/COLUMN_ID'
Risorsa FHIR
'data_id' : 'https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID'
Rappresentazione concettuale
'data_id' : 'wearables/fitness/step_count/daily_sum'