Risolvere i problemi di configurazione del provider di identità per il servizio FHIR
La versione API 2023-12-01 del servizio FHIR® in Servizi per i dati sanitari di Azure supporta due provider di identità oltre a Microsoft Entra ID. Per fornire un accesso con ambito agli utenti, configurare i due provider di identità popolando la sezione smartIdentityProviders
dell'oggetto authenticationConfiguration
.
Messaggi di errore
Seguono i messaggi di errore che vengono visualizzati se i provider di identità SMART del servizio FHIR non vanno a buon fine, con azioni consigliate da intraprendere per risolvere il problema.
Error | Causa | Fix |
---|---|---|
Il numero massimo di provider di identità SMART è 2. | Il numero di provider di identità configurati è maggiore di due. | Ridurre il numero di provider di identità a due o meno. |
Uno o più valori dell'autorità del provider di identità SMART sono null, vuoti o non validi. | L'elemento authority della configurazione del provider di identità deve essere un URL completo. |
Assicurarsi che tutti i valori authority siano URL completi. |
Tutte le autorità del provider di identità SMART devono essere univoche. | Gli elementi authority delle due configurazioni del provider di identità sono identici. |
Assicurarsi che tutti i valori authority siano URL univoci e completi. |
Il numero massimo di applicazioni del provider di identità SMART è 2. | Il numero di applicazioni del provider di identità in una configurazione del provider di identità è superiore a due. | Ridurre il numero di applicazioni del provider di identità a uno o due per ogni provider di identità. |
Una o più applicazioni SMART sono Null. | L'elemento applications per uno o più provider di identità è Null o non contiene applicazioni. |
Verificare che tutte le configurazioni del provider di identità abbiano almeno un'applicazione configurata. |
Una o più applicazioni allowedDataActions SMART contengono elementi duplicati. |
La matrice allowedDataActions in una o più configurazioni dell'applicazione contiene valori duplicati. |
Rimuovere tutti i valori duplicati nelle matrici allowedDataActions . |
Uno o più valori dell'applicazione allowedDataActions SMART non sono validi. |
L'unico valore accettabile nella matrice allowedDataActions è Read . |
Rimuovere tutti i valori non conformi dalle matrici allowedDataActions . |
Uno o più valori dell'applicazione SMARTallowedDataActions sono Null o vuoti. |
La matrice allowedDataActions in una o più configurazioni di applicazioni è Null o vuota. |
L'unico valore accettabile nella matrice allowedDataActions è Read . |
Uno o più valori dell'applicazione audience SMART sono null, vuoti o non validi. |
La stringa audience in una o più configurazioni dell'applicazione è null, vuota o non valida. |
Verificare che la stringa audience non sia null o vuota e che il valore sia un tipo stringa. |
Tutti gli ID client dell'applicazione del provider di identità SMART devono essere univoci. | Il valore clientId in una o più configurazioni dell'applicazione è lo stesso valore di un altro valore clientId . |
Assicurarsi che tutti i valori clientId siano univoci (incluse le configurazioni dei provider di identità). |
Uno o più valori id client applicazione SMART sono null, vuoti o non validi. | La stringa clientId in una o più configurazioni dell'applicazione è null, vuota o non valida. |
Verificare che la stringa clientId non sia null o vuota e che il valore sia un tipo stringa. |
Errore di autorizzazione con l'API FHIR di Servizi dati di Integrità di Azure usando un provider di identità di terze parti. | Il ruolo utente SMART FHIR causerà questo problema man mano che aggiunge un livello di autenticazione. | Assicurarsi che il ruolo utente FHIR SMART non sia assegnato. |
Errori di richiesta dell'API FHIR
Quando si usa un token rilasciato da un provider di identità SMART per effettuare richieste al servizio FHIR, è possibile che si verifichino due codici di errore comuni: 401 Unauthorized
o 403 Forbidden
. Per avviare la risoluzione dei problemi, controllare la configurazione dell'elemento smartIdentityProviders
, soprattutto se il servizio FHIR è nuovo.
Seguire questa procedura per verificare la configurazione corretta dell'elemento smartIdentityProviders
.
Verificare che l'elemento
smartIdentityProviders
sia configurato correttamente.Verificare che la stringa
authority
sia corretta. Assicurarsi che la stringaauthority
sia l'autorità di token per il provider di identità che ha emesso il token di accesso.Verificare che la stringa
authority
sia un'autorità di token valida. Effettuare una richiesta per la configurazione openid-connect. Aggiungere/.well-known/openid-configuration
alla fine della stringaaubrowser navigatesthority
e incollarlo nel browser. Se il valore è corretto, il browser passa aopenid-connect configuration
. In caso contrario, si è verificato un problema con la stringa.Esempio:
https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
Verificare che la stringa
clientId
sia corretta. Verificare che la stringaclientId
corrisponda all'ID client (o all'applicazione ID) dell'applicazione di risorsa definita nel provider di identità.Verificare che il metodo di richiesta sia GET. L'unico tipo di richiesta supportato è
GET
, perché i valoriallowedDataActions
supportano soloRead
.Verificare le attestazioni del token Web JSON (JWT). Se il token di accesso è disponibile, decodificarlo usando strumenti online come jwt.ms. Dopo la decodifica del token, le attestazioni possono essere esaminate per verificare la correttezza.
Verificare l’iss (issuer claim). Assicurarsi che l'attestazione
iss
corrisponda esattamente al valoreissuer
nella configurazione OpenId dei provider di identità.Prendere il valore
authority
dalla configurazione del provider di identitàsmartIdentityProvider
, aggiungerlo con/.well-known/openid-configuration
e incollarlo nel browser. Se il valore è corretto, il browser passa alla configurazione openid-connect.Esempio:
https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
Verificare azp o appid (parte autorizzata o attestazione appid). L'attestazione
azp
oappid
deve corrispondere esattamente al valoreclientId
specificato nella configurazione del provider di identitàsmartIdentityProvider
.Verificare l'aud (audience claim). L'attestazione
aud
deve corrispondere esattamente al valoreaudience
specificato nella configurazione del provider di identitàsmartIdentityProvider
.Verify the scp (scope claim). L’attestazione
scp
è obbligatoria. Se manca, la richiesta ha esito negativo. Il formato dell'attestazione scp deve essere conforme agli ambiti SMART on FHIR v1. È importante notare che il servizio FHIR attualmente supporta solo gli ambiti di lettura. Una variante accettabile di SMART on FHIR v1 Scopes sostituisce qualsiasi barra (/) con un punto (.) e un asterisco (*) conall
. Ad esempio, una versione accettabile dell'ambitopatient/*.read
SMART on FHIR èpatient.all.read
.
Nota
Sono supportati solo read
ambiti
- Verificare fhirUser o extension_fhirUser (attestazione utente FHIR).Verify the fhirUser or extension_fhirUser (FHIR user claim). L'attestazione
fhirUser
oextension_fhirUser
è obbligatoria. Se manca, la richiesta ha esito negativo. Questa attestazione collega l'utente nel provider di identità con una risorsa utente nel servizio FHIR. Il valore deve essere l'URL completo di una risorsa nel servizio FHIR che rappresenta il singolo a cui viene rilasciato il token di accesso. Ad esempio, il token di accesso rilasciato a un paziente che ha eseguito l'accesso deve avere un'attestazionefhirUser
oextension_fhirUser
che ha l'URL completo di una risorsa paziente nel servizio FHIR.
Schema per la configurazione dei provider di identità
L'elemento smartIdentityProviders
è una matrice JSON che contiene uno o due identity provider configurations
. identity provider configuration
consiste di
Un valore stringa
authority
che deve essere l'URL completo dell'autorità di token dei provider di identità.Una matrice
applications
che contiene la risorsa del provider di identitàapplication configurations
.
{
"properties": {
"authenticationConfiguration": {
"authority": "string",
"audience": "string",
"smartProxyEnabled": "bool",
"smartIdentityProviders": [
{
"authority": "string",
"applications": [
{
"clientId": "string",
"allowedDataActions": "array",
"audience": "string"
}
]
}
]
}
}
}
L'elemento applications
è una matrice JSON che contiene uno o due application configurations
.
La application configuration
è costituita dagli elementi seguenti:
Un valore stringa
clientId
per l'ID client (noto anche come ID applicazione) dell'applicazione delle risorse del provider di identità.Una stringa
audience
usata per convalidare l'attestazioneaud
nei token di accesso.Matrice di oggetti
allowedDataActions
. La matriceallowedDataActions
può contenere solo il valore stringaRead
.
{
"authority": "string",
"applications": [
{
"clientId": "string",
"allowedDataActions": "array",
"audience": "string"
}
]
}
{
"clientId": "string",
"allowedDataActions": "array",
"audience": "string"
}
Passaggi successivi
Usare Azure Active Directory B2C per concedere l'accesso al servizio FHIR
Configurare i provider di identità
Nota
FHIR® è un marchio registrato di HL7 ed è usato con l'autorizzazione di HL7.