Compartir vía


Solución de problemas de configuración del proveedor de identidades para el servicio FHIR

La versión de API 2023-12-01 del servicio FHIR® en Azure Health Data Services admite dos proveedores de identidades además de Microsoft Entra ID. Para proporcionar acceso con ámbito a los usuarios, configure los dos proveedores de identidades rellenando la sección smartIdentityProviders del objeto authenticationConfiguration.

Mensajes de error

Estos son los mensajes de error que se producen si aparece un error en los proveedores de identidades SMART del servicio FHIR con las acciones recomendadas que se deben realizar para resolver el problema.

Error Causa Fix
El número máximo de proveedores de identidades SMART es 2. El número de proveedores de identidades configurados es superior a dos. Reduzca el número de proveedores de identidades a dos o menos.
Uno o varios valores de entidad del proveedor de identidades SMART son nulos, están vacíos o no son válidos. El elemento authority de la configuración del proveedor de identidades debe ser una dirección URL completa. Asegúrese de que todos los valores authority son direcciones URL completas.
Todas las entidades del proveedor de identidades SMART deben ser únicas. Los elementos authority de las dos configuraciones del proveedor de identidades son idénticos. Asegúrese de que todos los valores authority son direcciones URL únicas y completas.
El número máximo de aplicaciones del proveedor de identidades SMART es 2. El número de aplicaciones del proveedor de identidades en una configuración del proveedor de identidades es superior a dos. Reduzca el número de aplicaciones del proveedor de identidades a uno o dos por proveedor de identidades.
Una o varias aplicaciones SMART son nulas. El elemento applications para uno o varios proveedores de identidades es nulo o no contiene ninguna aplicación. Asegúrese de que todas las configuraciones del proveedor de identidades tengan al menos una aplicación configurada.
Una o varias aplicaciones SMART allowedDataActions contienen elementos duplicados. La matriz allowedDataActions de una o varias configuraciones de aplicación contiene valores duplicados. Quite los valores duplicados de las matrices de allowedDataActions.
Uno o varios valores allowedDataActions de las aplicaciones SMART no son válidos. El único valor aceptable en la matriz de allowedDataActions es Read. Quite los valores no compatibles de las matrices de allowedDataActions.
Uno o varios valores de aplicación SMARTallowedDataActions son null o están vacíos. La matriz allowedDataActions de una o varias configuraciones de aplicación es nula o está vacía. El único valor aceptable en la matriz de allowedDataActions es Read.
Uno o varios valores audience de las aplicaciones SMART son nulos, están vacíos o no son válidos. La cadena audience de una o varias configuraciones de aplicación es nula, está vacía o tiene un formato incorrecto. Asegúrese de que la cadena audience no sea nula ni esté vacía y que el valor sea un tipo de cadena.
Todos los identificadores de cliente de aplicación del proveedor de identidades SMART deben ser únicos. El valor clientId en una o varias configuraciones de aplicación es el mismo valor que otro valor de clientId. Asegúrese de que todos los valores clientId son únicos (incluido en las configuraciones del proveedor de identidades).
Uno o varios valores de identificador de cliente de las aplicaciones SMART son nulos, están vacíos o no son válidos. La cadena clientId de una o varias configuraciones de aplicación es nula, está vacía o tiene un formato incorrecto. Asegúrese de que la cadena clientId no sea nula ni esté vacía y que el valor sea un tipo de cadena.
Error de autorización con la API de FHIR de Azure Health Data Services mediante el proveedor de identidades de terceros. El rol de usuario SMART de FHIR provocará este problema, ya que agrega una capa de autenticación. Asegúrese de que no se haya asignado el rol de usuario SMART de FHIR.

Errores de solicitud de API de FHIR

Cuando se usa un token emitido por un proveedor de identidades SMART para realizar solicitudes al servicio FHIR, es posible que encuentre dos códigos de error comunes: 401 Unauthorized o 403 Forbidden. Para empezar a solucionar problemas, compruebe la configuración del elemento smartIdentityProviders, especialmente si el servicio FHIR es nuevo.

Siga estos pasos para comprobar la configuración correcta del elemento smartIdentityProviders.

  1. Compruebe que el elemento smartIdentityProviders se ha configurado correctamente.

  2. Compruebe que la cadena authority es correcta. Asegúrese de que la cadena authority es la entidad de token del proveedor de identidades que emitió el token de acceso.

  3. Compruebe que la cadena authority es una entidad de token válida. Realice una solicitud para la configuración openid-connect. Anexe /.well-known/openid-configuration al final de la cadena aubrowser navigatesthority y péguelo en el explorador. Si el valor es correcto, el explorador navega a openid-connect configuration. Si no es así, hay un problema con la cadena.

    Ejemplo:

    https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
    
    
  4. Compruebe que la cadena clientId es correcta. Asegúrese de que la cadena clientId coincide con el identificador de cliente (o identificador de aplicación) de la aplicación de recursos definida en el proveedor de identidades.

  5. Compruebe que el método de solicitud es GET. El único tipo de solicitud admitido es GET, porque los valores de allowedDataActions solo admiten Read.

  6. Compruebe las notificaciones de JSON Web Token (JWT). Si el token de acceso está disponible, descodifíquelo mediante herramientas en línea como jwt.ms. Después de descodificar el token, las notificaciones se pueden inspeccionar para comprobar si son correctas.

    Captura de pantalla que muestra las notificaciones del token web jwt.

  7. Compruebe el valor iss (notificación del emisor). Asegúrese de que la notificación iss coincide exactamente con el valor issuer en la configuración de OpenId de los proveedores de identidades.

    Tome el valor authority de la configuración del proveedor de identidades de smartIdentityProvider, anéxelo a /.well-known/openid-configuration y péguelo en el explorador. Si el valor es correcto, el explorador navega a la configuración openid-connect.

    Ejemplo:

    https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
    
  8. Verifique el azp o appid (parte autorizada o reclamo de appid). La notificación azp o appid debe coincidir exactamente con el valor clientId proporcionado en la configuración del proveedor de identidades de smartIdentityProvider.

  9. Compruebe el valor aud (notificación de audiencia). La notificación aud debe coincidir exactamente con el valor audience proporcionado en la configuración del proveedor de identidades de smartIdentityProvider.

  10. Compruebe el valor scp (notificación de ámbito). Se requiere la notificación scp. Si falta, se produce un error en la solicitud. El formato de la notificación scp debe ajustarse a los ámbitos de SMART on FHIR, versión 1. Es importante tener en cuenta que el servicio FHIR solo admite actualmente ámbitos de lectura. Una variación aceptable de los ámbitos de SMART on FHIR, versión 1, reemplaza cualquier barra diagonal (/) por un punto (.) y el asterisco (*) por all. Por ejemplo, una versión aceptable del ámbito de SMART on FHIR patient/*.read es patient.all.read.

Nota:

Solo se admiten los ámbitos read.

  1. Compruebe el valor fhirUser o extension_fhirUser (notificación de usuario de FHIR). Se requiere la notificación fhirUser o extension_fhirUser. Si falta, se produce un error en la solicitud. Esta notificación vincula al usuario del proveedor de identidades con un recurso de usuario en el servicio FHIR. El valor debe ser la dirección URL completa de un recurso en el servicio FHIR que representa a la persona a la que se emite el token de acceso. Por ejemplo, el token de acceso emitido a un paciente que inició sesión debe tener una notificación fhirUser o extension_fhirUser que tenga la dirección URL completa de un recurso de paciente en el servicio FHIR.

Esquema para configurar proveedores de identidades

El elemento smartIdentityProviders es una matriz JSON que contiene uno o dos objetos identity provider configurations. Un identity provider configuration consta de

  • Valor de cadena authority que debe ser la dirección URL completa de la entidad de token de proveedores de identidades.

  • Una matriz applications que contiene el recurso de proveedor de identidades application configurations.

{
  "properties": {
    "authenticationConfiguration": {
      "authority": "string",
      "audience": "string",
      "smartProxyEnabled": "bool",
      "smartIdentityProviders": [
        {
          "authority": "string",
          "applications": [
            {
              "clientId": "string",
              "allowedDataActions": "array",
              "audience": "string"
            }
          ]
        }
      ]
    }
  }
}

El elemento applications es una matriz JSON que contiene uno o dos objetos application configurations.

application configuration consta de:

  • Un valor de cadena clientId para el identificador de cliente (también conocido como identificador de aplicación) de la aplicación de recursos del proveedor de identidades.

  • Una cadena audience usada para validar la notificación aud en tokens de acceso.

  • Matriz de allowedDataActions. La matriz allowedDataActions solo puede contener el valor de cadena Read.

{
  "authority": "string",
  "applications": [
    {
      "clientId": "string",
      "allowedDataActions": "array",
      "audience": "string"
    }
  ]
}
{
  "clientId": "string",
  "allowedDataActions": "array",
  "audience": "string"
}

Pasos siguientes

Uso de Azure Active Directory B2C para conceder acceso al servicio FHIR

Configuración de varios proveedores de identidades

Nota:

FHIR® es una marca registrada de HL7 y se usa con su permiso.