En esta página se describe cómo configurar políticas y atributos de consentimiento.
La API Consent Management usa las políticas de consentimiento para representar el consentimiento que han dado los usuarios finales o que se ha obtenido mediante directrices de la organización. Las políticas de consentimiento son los elementos básicos de los recursos de consent
. Cada recurso consent
puede contener hasta 10 políticas de consentimiento. Una política de consentimiento se compone de atributos RESOURCE
que describen a qué se aplica la política y de atributos REQUEST
que definen una regla de autorización que determina en qué condiciones es válida la política. Para obtener más información sobre las políticas de consentimiento, consulta el artículo Representación de la política.
La API Consent Management usa atributos para definir la taxonomía de consentimiento y privacidad que puede entender un almacén de consentimiento. Los atributos se usan para describir los consentimientos que se almacenan y los datos que se gestionan. Las solicitudes de determinación de acceso también usan atributos para describir las solicitudes que se están haciendo.
Los recursos attributeDefinition
son los recursos de un almacén de consentimiento que determinan qué atributos de consentimiento puede procesar la API Consent Management. Un almacén de consentimientos puede contener hasta 200 recursos de definición de atributos. Cada definición de atributo tiene uno de los siguientes tipos de atributo:
- Un atributo
RESOURCE
es un atributo cuyo valor se determina en función de las propiedades de los datos o de la acción. Por ejemplo, si los datos están desidentificados o si se pueden identificar. Este tipo de atributo se usa para describir a qué se aplica una política de consentimiento, para describir los datos registrados conuser data mappings
y para acotar el ámbito de algunas solicitudes de determinación de acceso a clases específicas de recursos. - Un atributo
REQUEST
es un atributo cuyo valor se determina en función de la identidad o el propósito del solicitante. Por ejemplo, profesiones para las que se ha dado el consentimiento de uso, como investigadores o proveedores de atención sanitaria. Este tipo de atributo se usa para escribir la regla de autorización de una política de consentimiento y para especificar el uso propuesto en una solicitud de determinación de acceso.
Un recurso attributeDefinition
representa un solo atributo con hasta 500 valores de atributo. Los valores de los atributos representan los valores posibles que puede tener un atributo. Para ver un ejemplo, consulta Representación de la política.
Con el tiempo, se pueden añadir valores de atributos adicionales a una definición de atributo, pero no se pueden quitar. Se aplica la integridad referencial de las definiciones de atributos en relación con los recursos consent
. Esto significa que algunos campos de una definición de atributo no se pueden cambiar ni eliminar mientras la revisión más reciente de un recurso de consentimiento haga referencia a esa definición de atributo.
En el siguiente diagrama se muestra el proceso para crear atributos de consentimiento en un nuevo almacén de consentimientos:
Para crear todas las definiciones de atributos que requiera tu taxonomía de consentimiento y privacidad, repite el proceso que se muestra en Crear una definición de atributo RESOURCE
y Crear una definición de atributo REQUEST
.
Crear una definición de atributo RESOURCE
Para crear una definición de atributo RESOURCE
, usa el método projects.locations.datasets.consentStores.attributeDefinitions.create
. Envía una solicitud POST
y especifica la siguiente información en ella:
- Nombre del almacén de consentimientos superior.
- Nombre de la definición del atributo, que debe ser único en el almacén de consentimientos superior. El nombre puede ser cualquier letra (mayúscula o minúscula), número o guion bajo. No debe ser una palabra clave reservada en el lenguaje de expresión común (CEL).
- Categoría del atributo, en este caso
RESOURCE
- Los valores posibles que puede representar este atributo
- Un token de acceso
curl
En el siguiente ejemplo se muestra una solicitud POST
que usa curl
para crear un atributo RESOURCE
llamado data_identifiable
con los valores identifiable
y de-identified
:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/consent+json; charset=utf-8" \ --data "{ 'description': 'whether the data is identifiable', 'category': 'RESOURCE', 'allowed_values': [ 'identifiable', 'de-identified' ], }" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions?attribute_definition_id=data_identifiable"
Si la solicitud se realiza de forma correcta, el servidor devuelve una respuesta similar a la siguiente en formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/data_identifiable", "description": "whether the data is identifiable", "category": "RESOURCE", "allowedValues": [ "identifiable", "de-identified" ] }
PowerShell
En el siguiente ejemplo se muestra una solicitud POST
que utiliza Windows PowerShell para crear un atributo RESOURCE
llamado data_identifiable
con los valores identifiable
y de-identified
:
$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 "{ 'description': 'whether the data is identifiable', 'category': 'RESOURCE', 'allowed_values': [ 'identifiable', 'de-identified' ] }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions?attribute_definition_id=data_identifiable" | Select-Object -Expand Content
Si la solicitud se realiza de forma correcta, el servidor devuelve una respuesta similar a la siguiente en formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/data_identifiable", "description": "whether the data is identifiable", "category": "RESOURCE", "allowedValues": [ "identifiable", "de-identified" ] }
Python
Crear una definición de atributo REQUEST
Para crear una definición de atributo REQUEST
, usa el método projects.locations.datasets.consentStores.attributeDefinitions.create
. Envía una solicitud POST
y especifica la siguiente información en ella:
- Nombre del almacén de consentimientos superior.
- Nombre de la definición del atributo, que debe ser único en el almacén de consentimientos superior. El nombre puede ser cualquier cadena Unicode de entre 1 y 256 caracteres formada por números, letras, guiones bajos, guiones y puntos, pero no puede empezar por un número.
- La categoría del atributo, en este caso
REQUEST
. - Los valores posibles que puede representar este atributo.
- Conjunto opcional de valores predeterminados que se aplicarán a las políticas de consentimiento. Si asigna un valor a este campo, su tienda de consentimiento se configurará para asumir que las políticas de consentimiento incluyen este atributo y valor si no se especifica de otro modo en esa política. Este campo solo debe definirse si es necesario para tu caso práctico.
- Un token de acceso.
curl
En el siguiente ejemplo se muestra una solicitud POST
que usa curl
para crear un atributo REQUEST
llamado requester_identity
:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/consent+json; charset=utf-8" \ --data "{ 'description': 'what groups are consented for access', 'category': 'REQUEST', 'allowed_values': ['internal-researcher', 'external-researcher', 'clinical-admin'], }" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions?attribute_definition_id=requester_identity"
Si la solicitud se realiza de forma correcta, el servidor devuelve una respuesta similar a la siguiente en formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/requester_identity", "description": "what groups are consented for access", "category": "REQUEST", "allowedValues": [ "internal-researcher", "external-researcher", "clinical-admin" ] }
PowerShell
En el siguiente ejemplo se muestra una solicitud POST
que utiliza Windows PowerShell para crear un atributo REQUEST
llamado requester_identity
:
$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 "{ 'description': 'what groups are consented for access', 'category': 'REQUEST', 'allowed_values': ['internal-researcher', 'external-researcher', 'clinical-admin'] }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions?attribute_definition_id=requester_identity" | Select-Object -Expand Content
Si la solicitud se realiza de forma correcta, el servidor devuelve una respuesta similar a la siguiente en formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/requester_identity", "description": "what groups are consented for access", "category": "REQUEST", "allowedValues": [ "internal-researcher", "external-researcher", "clinical-admin" ] }
Python
Editar una definición de atributo
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DATASET_ID: el ID del conjunto de datos
- CONSENT_STORE_ID: el ID de la tienda de consentimiento
- ATTRIBUTE_DEFINITION_ID: ID de definición del atributo
- DESCRIPTION: descripción del atributo
Cuerpo JSON de la solicitud:
{ "description": "DESCRIPTION" }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
cat > request.json << 'EOF' { "description": "DESCRIPTION" } EOF
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/ATTRIBUTE_DEFINITION_ID?updateMask=description"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
.
Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:
@' { "description": "DESCRIPTION" } '@ | Out-File -FilePath request.json -Encoding utf8
A continuación, ejecuta el siguiente comando para enviar tu solicitud REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/ATTRIBUTE_DEFINITION_ID?updateMask=description" | Select-Object -Expand Content
Explorador de APIs
Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Pega el cuerpo de la solicitud en esta herramienta, rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Python
Obtener una definición de atributo
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DATASET_ID: el ID del conjunto de datos
- CONSENT_STORE_ID: el ID de la tienda de consentimiento
- ATTRIBUTE_DEFINITION_ID: ID de definición del atributo
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/ATTRIBUTE_DEFINITION_ID"
PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth 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/attributeDefinitions/ATTRIBUTE_DEFINITION_ID" | Select-Object -Expand Content
Explorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Python
Mostrar definiciones de atributos
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DATASET_ID: el ID del conjunto de datos
- CONSENT_STORE_ID: el ID de la tienda de consentimiento
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions"
PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth 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/attributeDefinitions" | Select-Object -Expand Content
Explorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente:
Python
Eliminar una definición de atributo
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID de tu Google Cloud proyecto
- LOCATION: la ubicación del conjunto de datos
- DATASET_ID: el ID del conjunto de datos
- CONSENT_STORE_ID: el ID de la tienda de consentimiento
- ATTRIBUTE_DEFINITION_ID: ID de definición del atributo
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el comando siguiente:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/ATTRIBUTE_DEFINITION_ID"
PowerShell
Ejecuta el comando siguiente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/ATTRIBUTE_DEFINITION_ID" | Select-Object -Expand Content
Explorador de APIs
Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.
Deberías recibir una respuesta JSON similar a la siguiente: