Configurar encabezados HTTP personalizados para registros de auditoría

En esta página se explica cómo completar las siguientes tareas:

  1. Configura encabezados HTTP personalizados en las solicitudes a la API Cloud Healthcare.
  2. Usa los registros de auditoría de Cloud para buscar solicitudes y sus encabezados HTTP personalizados correspondientes y hacer lo siguiente:

    • Ver quién ha enviado una solicitud y cuándo.
    • Simplifica la implementación y la depuración averiguando qué solicitud ha provocado un error concreto.

Para obtener más información sobre el uso de los registros de auditoría de Cloud en la API Cloud Healthcare, consulta Ver registros de auditoría de Cloud.

Métodos configurables

Puede configurar encabezados HTTP personalizados para los métodos de la API Cloud Healthcare en los siguientes recursos REST:

Configurar encabezados HTTP personalizados

Hay dos tipos de encabezados HTTP personalizados que puede especificar en las solicitudes de la API Cloud Healthcare y ver en los registros de auditoría. Puedes usar cada tipo de forma exclusiva o combinarlos.

  • Registro de IDs personalizados. Puedes especificar el encabezado HTTP personalizado X-Request-Id para asignar a cada solicitud su propio ID personalizado y, a continuación, buscar en los registros de auditoría una solicitud que contenga el ID. Para proporcionar un ID personalizado, especifica el encabezado HTTP personalizado con el siguiente formato:

    X-Request-Id: REQUEST_ID
    

    Especifique un valor único para REQUEST_ID en cada solicitud.

    La mayoría de los lenguajes de programación tienen una forma de generar IDs aleatorios que puedes usar para crear el ID de solicitud. Por ejemplo, el módulo Python uuid tiene una función uuid.uuid4() que puedes usar para generar IDs automáticamente para cada solicitud. La API Cloud Healthcare no genera IDs de solicitud.

  • Registro de metadatos. Puede incluir información de metadatos adicional en encabezados HTTP personalizados mediante el encabezado X-Goog-Healthcare-Audit-IDENTIFIER. La cabecera identifica de forma exclusiva el tipo de información de metadatos.

    Los metadatos se almacenan en el registro de auditoría de cada solicitud. Para proporcionar información de metadatos, especifica uno o varios encabezados HTTP personalizados con el siguiente formato:

    X-Goog-Healthcare-Audit-IDENTIFIER: VALUE
    

    Sustituye IDENTIFIER por un identificador legible por humanos. Sustituye VALUE por un valor de los metadatos. Puede especificar varios valores en una lista separada por comas con la siguiente sintaxis:

    X-Goog-Healthcare-Audit-IDENTIFIER: VALUE_1, VALUE_2, VALUE_n ...
    

    Por ejemplo:

    X-Goog-Healthcare-Audit-MyIdentifier: Value1, Value2, Value3
    

    También puede especificar varios encabezados HTTP personalizados con sus propios valores únicos:

    X-Goog-Healthcare-Audit-MyIdentifier1: Value1, Value2
    X-Goog-Healthcare-Audit-MyIdentifier2: Value3
    

Ver los registros de auditoría en Registros de auditoría de Cloud

Consulta Ver registros.

Ejemplo

En el siguiente ejemplo se muestra un caso en el que se especifican encabezados HTTP personalizados en una solicitud fhir.create.

Supongamos que estás llevando a cabo un estudio y tienes una aplicación móvil para pacientes llamada PatientApp. Los pacientes del estudio se dividen en dos cohortes: Cohort1 y Cohort2. Para identificar cada solicitud de Cohort1 con un ID único y el nombre de la aplicación móvil, especifique los siguientes encabezados HTTP personalizados en cada solicitud:

X-Request-Id: REQUEST_ID
X-Goog-Healthcare-Audit-AppName: PatientApp
X-Goog-Healthcare-Audit-CohortName: Cohort1

Los encabezados HTTP personalizados se muestran en el campo metadata del registro de auditoría de cada solicitud en Cloud Audit Logs.

En el siguiente ejemplo se muestra cómo usar curl para crear un recurso Patient en un almacén FHIR. La solicitud contiene los siguientes encabezados HTTP personalizados:

  • X-Request-Id: 123
  • X-Goog-Healthcare-Audit-AppName: PatientApp
  • X-Goog-Healthcare-Audit-CohortName: Cohort1

Antes de enviar la solicitud, sustituye lo siguiente:

  • PROJECT_ID: el ID de tu Google Cloud proyecto
  • LOCATION: la ubicación del conjunto de datos
  • DATASET_ID: el conjunto de datos superior del almacén FHIR
  • FHIR_STORE_ID: el ID del almacén FHIR
curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -H "X-Request-Id: 123" \
    -H "X-Goog-Healthcare-Audit-AppName: PatientApp" \
    -H "X-Goog-Healthcare-Audit-CohortName: Cohort1" \
    --data '{
      "name": [
        {
          "use": "official",
          "family": "Smith",
          "given": [
            "Darcy"
          ]
        }
      ],
      "gender": "female",
      "birthDate": "1970-01-01",
      "resourceType": "Patient"
    }' "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"

El resultado es el siguiente:

{
  "birthDate": "1970-01-01",
  "gender": "female",
  "id": "PATIENT_ID",
  "meta": {
    "lastUpdated": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ",
    "versionId": "VERSION_ID"
  },
  "name": [
    {
      "family": "Smith",
      "given": [
        "Darcy"
      ],
      "use": "official"
    }
  ],
  "resourceType": "Patient"
}

Si buscas la solicitud en los registros de auditoría de Cloud, el registro de auditoría tendrá un aspecto similar al siguiente:

{
  logName: "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_write"
  protoPayload: {
    @type: "type.googleapis.com/google.cloud.audit.AuditLog"
    metadata: {
      X-Request-Id: [123]
      X-Goog-Healthcare-Audit-AppName: ["PatientApp"]
      X-Goog-Healthcare-Audit-CohortName: ["Cohort1"]
    }
    ...
  }
   ...
}

Ver los encabezados HTTP de los registros de auditoría generados por la consola de Google Cloud

Puede examinar encabezados HTTP específicos en los registros de auditoría para identificar las solicitudes realizadas a través de aplicaciones de la API Cloud Healthcare en la consola de Google Cloud .

Por ejemplo, todas las solicitudes procedentes de las siguientes Google Cloud aplicaciones de consola X-Goog-Healthcare-Audit-First-Party-Application-Access se etiquetan automáticamente con el encabezado HTTP personalizado. El valor de este encabezado indica la aplicación de origen:

  • fhir-viewer: solicitudes procedentes del visualizador de FHIR.
  • data-browser: solicitudes procedentes del navegador de datos de la API de Cloud Healthcare.
  • dicom-studio: solicitudes procedentes de DICOM Studio de la API de Cloud Healthcare.

Puede usar este valor de encabezado para filtrar o analizar las solicitudes realizadas específicamente desde las aplicaciones de la consola al ver los registros de auditoría.Google Cloud