Felsök konfiguration av identitetsleverantör för FHIR-tjänsten
API-version 2023-12-01 av FHIR-tjänsten® i Azure Health Data Services stöder två identitetsprovidrar utöver Microsoft Entra-ID. Om du vill ge användare begränsad åtkomst konfigurerar du de två identitetsprovidrar genom att fylla i smartIdentityProviders
avsnittet i authenticationConfiguration
objektet.
Felmeddelanden
Här är de felmeddelanden som uppstår om FHIR-tjänstens SMART-identitetsprovidrar misslyckas, med rekommenderade åtgärder att vidta för att lösa problemet.
Fel | Orsak | Åtgärda |
---|---|---|
Det maximala antalet SMART-identitetsleverantörer är 2. | Antalet konfigurerade identitetsleverantörer är fler än två. | Minska antalet identitetsleverantörer till två eller mindre. |
En eller flera utfärdarvärden för SMART-identitetsleverantören är null, tomma eller ogiltiga. | Elementet authority i identitetsleverantörens konfiguration måste vara en fullständigt kvalificerad URL. |
Kontrollera att alla authority -värden är fullständigt kvalificerade URL:er. |
Alla SMART-identitetsleverantörutfärdare måste vara unika. | Elementen authority i de två identitetsleverantörernas konfigurationer är identiska. |
Kontrollera att alla authority -värden är unika, fullständigt kvalificerade URL:er. |
Det maximala antalet program för SMART-identitetsleverantörer är 2. | Antalet identitetsleverantörsprogram i en identitetsleverantörs konfiguration är fler än två. | Minska antalet identitetsleverantörsprogram till en eller två per identitetsleverantör. |
Ett eller flera SMART-program är null. | Elementet applications för en eller flera identitetsleverantör är null eller innehåller inga program. |
Kontrollera att alla konfigurationer för identitetsleverantören har minst ett program konfigurerat. |
Ett eller flera SMART-program allowedDataActions innehåller duplicerade element. |
Matrisen allowedDataActions i en eller flera programkonfigurationer innehåller duplicerade värden. |
Ta bort eventuella dubblettvärden i matriserna allowedDataActions . |
Ett eller flera SMART-programvärden allowedDataActions är ogiltiga. |
Det enda acceptabla värdet i matrisen allowedDataActions är Read . |
Ta bort eventuella icke-konforma värden från matriserna allowedDataActions . |
Ett eller flera SMART-programvärden allowedDataActions är null eller tomma. |
Matrisen allowedDataActions i en eller flera programkonfigurationer är null eller tom. |
Det enda acceptabla värdet i matrisen allowedDataActions är Read . |
Ett eller flera SMART-programvärden audience är null, tomma eller ogiltiga. |
Strängen audience i en eller flera programkonfigurationer är null, tom eller felaktigt formaterad. |
Kontrollera att strängen audience inte är null eller tom och att värdet är en strängtyp. |
Alla SMART-identitetsleverantörs programklient-ID:er måste vara unika. | Värdet clientId i en eller flera programkonfigurationer är samma värde som ett annat clientId -värde. |
Se till att alla clientId -värden är unika (inklusive mellan identitetsleverantörskonfigurationer). |
Ett eller flera SMART-programklient-ID-värden är null, tomma eller ogiltiga. | Strängen clientId i en eller flera programkonfigurationer är null, tom eller felaktigt formaterad. |
Kontrollera att strängen clientId inte är null eller tom och att värdet är en strängtyp. |
Ett auktoriseringsfel med Azure Health Data Services FHIR-API:et med hjälp av en tredjepartsidentitetsprovider. | FHIR SMART-användarrollen orsakar det här problemet eftersom det lägger till ett autentiseringslager. | Kontrollera att FHIR SMART-användarrollen inte har tilldelats. |
FHIR API-begärandefel
När du använder en token som utfärdats av en SMART-identitetsprovider för att göra begäranden till FHIR-tjänsten kan det uppstå två vanliga felkoder: 401 Unauthorized
eller 403 Forbidden
. Om du vill börja felsöka kontrollerar du konfigurationen av elementet smartIdentityProviders
, särskilt om FHIR-tjänsten är ny.
Följ de här stegen för att kontrollera att elementet smartIdentityProviders
har rätt konfiguration.
Kontrollera att elementet
smartIdentityProviders
är korrekt konfigurerad.Kontrollera att strängen
authority
är korrekt. Kontrollera att strängenauthority
är tokenutfärdarna för identitetsleverantören som utfärdade åtkomsttoken.Kontrollera att strängen
authority
är en giltig tokenutfärdare. Gör en begäran om openid-connect-konfigurationen. Lägg till/.well-known/openid-configuration
i slutet av strängenaubrowser navigatesthority
och klistra sedan in den i webbläsaren. Om värdet är korrekt navigerar webbläsaren tillopenid-connect configuration
. Om den inte gör det är det ett problem med strängen.Exempel:
https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
Kontrollera att strängen
clientId
är korrekt. Kontrollera att strängenclientId
matchar klient-ID:t (eller program-ID:t) för resursprogrammet som definierats i identitetsprovidern.Kontrollera att begärandemetoden är GET. Den enda typ av begäran som stöds är
GET
, eftersomallowedDataActions
värdena endast stöderRead
.Verifiera JSON-webbtokens (JWT) anspråk. Om åtkomsttoken är tillgänglig avkodar du den med hjälp av onlineverktyg som jwt.ms. När token har avkodats kan anspråken kontrolleras för korrekthet.
Kontrollera iss (utfärdaranspråk). Kontrollera att anspråket
iss
exakt matcharissuer
-värdet i dina identitetsleverantörers OpenId Configuration.Ta
authority
-värdet frånsmartIdentityProvider
identitetsleverantörens konfiguration, lägg till/.well-known/openid-configuration
på slutet och klistra sedan in det i webbläsaren. Om värdet är korrekt navigerar webbläsaren till openid-connect-konfigurationen.Exempel:
https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
Verifiera azp eller appid (behörig part eller appid-anspråk). Anspråket
azp
ellerappid
måste exakt matcha detclientId
-värde som anges ismartIdentityProvider
identitetsleverantörens konfiguration.Verifiera aud (målgruppsanspråk). Anspråket
aud
måste exakt matcha detaudience
-värde som anges ismartIdentityProvider
identitetsleverantörens konfiguration.Verifiera scp (omfångsanspråk). Anspråket
scp
krävs. Om den saknas misslyckas begäran. Formatet för scp-anspråket måste överensstämma med SMART på FHIR v1-omfång. Observera att FHIR-tjänsten för närvarande endast stöder läsomfattningar. En acceptabel variant av SMART på FHIR v1-omfång ersätter alla snedstreck (/) med en punkt (.) och asterisk (*) medall
. En godtagbar version av SMART på FHIR-omfångetpatient/*.read
ärpatient.all.read
, till exempel .
Kommentar
Endast read
omfång stöds.
- Verifiera fhirUser eller extension_fhirUser (FHIR-användaranspråk). Anspråket
fhirUser
ellerextension_fhirUser
krävs. Om den saknas misslyckas begäran. Det här anspråket länkar användaren i identitetsleverantören till en användarresurs i FHIR-tjänsten. Värdet måste vara den fullständigt kvalificerade URL:en för en resurs i FHIR-tjänsten som representerar den person som åtkomsttoken utfärdas till. Åtkomsttoken som utfärdas till en patient som loggat in bör till exempel ha enextension_fhirUser
ellerfhirUser
-anspråk som har den fullständigt kvalificerade URL:en för en patientresurs i FHIR-tjänsten.
Schema för att konfigurera identitetsleverantörer
Elementet smartIdentityProviders
är en JSON-matris som innehåller en eller två identity provider configurations
. En identity provider configuration
består av
Ett
authority
strängvärde som måste vara den fullständigt kvalificerade URL:en för identitetsleverantörens tokenutfärdare.En
applications
matris som innehåller identitetsleverantörsresursenapplication configurations
.
{
"properties": {
"authenticationConfiguration": {
"authority": "string",
"audience": "string",
"smartProxyEnabled": "bool",
"smartIdentityProviders": [
{
"authority": "string",
"applications": [
{
"clientId": "string",
"allowedDataActions": "array",
"audience": "string"
}
]
}
]
}
}
}
Elementet applications
är en JSON-matris som innehåller en eller två application configurations
.
application configuration
består av:
Ett
clientId
strängvärde för klient-ID :t (även kallat program-ID) för identitetsleverantörens resursprogram.En
audience
sträng som används för att verifiera anspråketaud
i åtkomsttoken.En matris med
allowedDataActions
. MatrisenallowedDataActions
kan bara innehålla strängvärdetRead
.
{
"authority": "string",
"applications": [
{
"clientId": "string",
"allowedDataActions": "array",
"audience": "string"
}
]
}
{
"clientId": "string",
"allowedDataActions": "array",
"audience": "string"
}
Nästa steg
Använda Azure Active Directory B2C för att bevilja åtkomst till FHIR-tjänsten
Konfigurera flera identitetsprovidrar
Kommentar
FHIR® är ett registrerat varumärke som tillhör HL7 och används med tillstånd av HL7.