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
.
Compruebe que el elemento
smartIdentityProviders
se ha configurado correctamente.Compruebe que la cadena
authority
es correcta. Asegúrese de que la cadenaauthority
es la entidad de token del proveedor de identidades que emitió el token de acceso.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 cadenaaubrowser navigatesthority
y péguelo en el explorador. Si el valor es correcto, el explorador navega aopenid-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
Compruebe que la cadena
clientId
es correcta. Asegúrese de que la cadenaclientId
coincide con el identificador de cliente (o identificador de aplicación) de la aplicación de recursos definida en el proveedor de identidades.Compruebe que el método de solicitud es GET. El único tipo de solicitud admitido es
GET
, porque los valores deallowedDataActions
solo admitenRead
.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.
Compruebe el valor iss (notificación del emisor). Asegúrese de que la notificación
iss
coincide exactamente con el valorissuer
en la configuración de OpenId de los proveedores de identidades.Tome el valor
authority
de la configuración del proveedor de identidades desmartIdentityProvider
, 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
Verifique el azp o appid (parte autorizada o reclamo de appid). La notificación
azp
oappid
debe coincidir exactamente con el valorclientId
proporcionado en la configuración del proveedor de identidades desmartIdentityProvider
.Compruebe el valor aud (notificación de audiencia). La notificación
aud
debe coincidir exactamente con el valoraudience
proporcionado en la configuración del proveedor de identidades desmartIdentityProvider
.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 (*) porall
. Por ejemplo, una versión aceptable del ámbito de SMART on FHIRpatient/*.read
espatient.all.read
.
Nota:
Solo se admiten los ámbitos read
.
- Compruebe el valor fhirUser o extension_fhirUser (notificación de usuario de FHIR). Se requiere la notificación
fhirUser
oextension_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ónfhirUser
oextension_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 identidadesapplication 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ónaud
en tokens de acceso.Matriz de
allowedDataActions
. La matrizallowedDataActions
solo puede contener el valor de cadenaRead
.
{
"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.