Problemen met de configuratie van id-providers voor de FHIR-service oplossen
API-versie 2023-12-01 van de FHIR-service® in Azure Health Data Services ondersteunt twee id-providers naast Microsoft Entra-id. Als u bereiktoegang tot gebruikers wilt bieden, configureert u de twee id-providers door de smartIdentityProviders
sectie van het authenticationConfiguration
object in te vullen.
Foutberichten
Hier volgen de foutberichten die optreden als de SMART-id-providers van de FHIR-service mislukken, met aanbevolen acties die moeten worden ondernomen om het probleem op te lossen.
Fout | Oorzaak | Fix |
---|---|---|
Het maximum aantal SMART-id-providers is 2. | Het aantal geconfigureerde id-providers is meer dan twee. | Verlaag het aantal id-providers naar twee of minder. |
Een of meer instantiewaarden van de SMART-id-provider zijn null, leeg of ongeldig. | Het authority element van de id-provider-configuratie moet een volledig gekwalificeerde URL zijn. |
Zorg ervoor dat alle authority waarden volledig gekwalificeerde URL's zijn. |
Alle instanties van SMART-id-providers moeten uniek zijn. | De authority elementen van de twee id-provider-configuraties zijn identiek. |
Zorg ervoor dat alle authority waarden unieke, volledig gekwalificeerde URL's zijn. |
Het maximum aantal SMART-id-providertoepassingen is 2. | Het aantal id-providertoepassingen in een id-provider-configuratie is meer dan twee. | Verminder het aantal id-providertoepassingen tot één of twee per id-provider. |
Een of meer SMART-toepassingen zijn null. | Het applications element voor een of meer id-providers is null of bevat geen toepassingen. |
Zorg ervoor dat ten minste één toepassing is geconfigureerd voor alle id-provider-configuraties. |
Een of meer SMART-toepassingen allowedDataActions bevatten dubbele elementen. |
De allowedDataActions matrix in een of meer toepassingsconfiguraties bevat dubbele waarden. |
Verwijder dubbele waarden in de allowedDataActions matrices. |
Een of meer SMART-toepassing allowedDataActions waarden zijn ongeldig. |
De enige acceptabele waarde in de allowedDataActions matrix is Read . |
Verwijder eventuele niet-conforme waarden uit de allowedDataActions matrices. |
Een of meer SMART-toepassingswaarden allowedDataActions zijn null of leeg. |
De allowedDataActions matrix in een of meer toepassingsconfiguraties is null of leeg. |
De enige acceptabele waarde in de allowedDataActions matrix is Read . |
Een of meer SMART-toepassing audience waarden zijn null, leeg of ongeldig. |
De audience tekenreeks in een of meer toepassingsconfiguraties is null, leeg of onjuist. |
Zorg ervoor dat de audience tekenreeks niet null of leeg is en dat de waarde een tekenreekstype is. |
Alle client-id's van de SMART-id-providertoepassing moeten uniek zijn. | De clientId waarde in een of meer toepassingsconfiguraties is dezelfde waarde als een andere clientId waarde. |
Zorg ervoor dat alle clientId waarden uniek zijn (inclusief configuraties van id-providers). |
Een of meer client-id-waarden voor SMART-toepassingen zijn null, leeg of ongeldig. | De clientId tekenreeks in een of meer toepassingsconfiguraties is null, leeg of onjuist. |
Zorg ervoor dat de clientId tekenreeks niet null of leeg is en dat de waarde een tekenreekstype is. |
Een autorisatiefout met de Azure Health Data Services FHIR-API met behulp van id-provider van derden. | De FHIR SMART-gebruikersrol veroorzaakt dit probleem omdat er een verificatielaag wordt toegevoegd. | Zorg ervoor dat de FHIR SMART-gebruikersrol niet is toegewezen. |
FHIR API-aanvraagfouten
Wanneer u een token gebruikt dat is uitgegeven door een SMART-id-provider om aanvragen te doen bij de FHIR-service, kunnen er twee veelvoorkomende foutcodes optreden: 401 Unauthorized
of 403 Forbidden
. Als u wilt beginnen met het oplossen van problemen, controleert u de configuratie van het smartIdentityProviders
element, met name als de FHIR-service nieuw is.
Volg deze stappen om de juiste configuratie van het smartIdentityProviders
element te controleren.
Controleer of het
smartIdentityProviders
element juist is geconfigureerd.Controleer of de
authority
tekenreeks juist is. Zorg ervoor dat deauthority
tekenreeks de token-instantie is voor de id-provider die het toegangstoken heeft uitgegeven.Controleer of de
authority
tekenreeks een geldige tokeninstantie is. Maak een aanvraag voor de OpenID Connect-configuratie. Voeg/.well-known/openid-configuration
toe aan het einde van deaubrowser navigatesthority
tekenreeks en plak deze in uw browser. Als de waarde juist is, navigeert de browser naar deopenid-connect configuration
. Als dit niet gebeurt, is er een probleem met de tekenreeks.Voorbeeld:
https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
Controleer of de
clientId
tekenreeks juist is. Zorg ervoor dat declientId
tekenreeks overeenkomt met de client-id (of toepassings-id) van de resourcetoepassing die is gedefinieerd in de id-provider.Controleer of de aanvraagmethode GET is. Het enige ondersteunde aanvraagtype is
GET
, omdat deallowedDataActions
waarden alleen worden ondersteundRead
.Controleer de JSON Web Token (JWT)-claims. Als het toegangstoken beschikbaar is, decodeert u het met behulp van onlinehulpprogramma's zoals jwt.ms. Nadat het token is gedecodeerd, kunnen de claims worden gecontroleerd op juistheid.
Verifieer de iss (verlenerclaim). Zorg ervoor dat de
iss
claim exact overeenkomt met deissuer
waarde in de OpenId-configuratie van uw id-providers.Neem de
authority
waarde uit de configuratie van desmartIdentityProvider
id-provider, voeg deze toe aan/.well-known/openid-configuration
en plak deze in uw browser. Als de waarde juist is, navigeert de browser naar de OpenID Connect-configuratie.Voorbeeld:
https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
Controleer de azp of appid (geautoriseerde partij of appid-claim). De
azp
ofappid
claim moet exact overeenkomen met declientId
waarde die is opgegeven in de configuratie van desmartIdentityProvider
id-provider.Controleer de aud (doelgroepclaim). De
aud
claim moet exact overeenkomen met deaudience
waarde die is opgegeven in de configuratie van desmartIdentityProvider
id-provider.Controleer de scp (bereikclaim). De
scp
claim is vereist. Als deze ontbreekt, mislukt de aanvraag. De indeling van de scp-claim moet voldoen aan SMART on FHIR v1 Scopes. Belangrijk om te melden: de FHIR-service ondersteunt momenteel alleen leesbereiken. Een acceptabele variatie van SMART on FHIR v1 Scopes vervangt elke slash (/) door een punt (.) en sterretje (*) doorall
. Een acceptabele versie van het SMART on FHIR-bereikpatient/*.read
is bijvoorbeeldpatient.all.read
.
Notitie
Alleen read
bereiken worden ondersteund.
- Controleer de fhirUser of extension_fhirUser (FHIR-gebruikersclaim). De
fhirUser
ofextension_fhirUser
claim is vereist. Als deze ontbreekt, mislukt de aanvraag. Met deze claim wordt de gebruiker in de id-provider gekoppeld aan een gebruikersresource in de FHIR-service. De waarde moet de volledig gekwalificeerde URL van een resource in de FHIR-service zijn die het individu vertegenwoordigt aan wie het toegangstoken wordt uitgegeven. Het toegangstoken dat is uitgegeven aan een patiënt die is aangemeld, moet bijvoorbeeld eenfhirUser
ofextension_fhirUser
claim hebben met de volledig gekwalificeerde URL van een patiëntresource in de FHIR-service.
Schema voor het configureren van id-providers
Het smartIdentityProviders
element is een JSON-matrix die een of twee identity provider configurations
bevat. Een identity provider configuration
bestaat uit
Een
authority
tekenreekswaarde die de volledig gekwalificeerde URL van de tokeninstantie van id-providers moet zijn.Een
applications
matrix die id-providerresourceapplication configurations
bevat.
{
"properties": {
"authenticationConfiguration": {
"authority": "string",
"audience": "string",
"smartProxyEnabled": "bool",
"smartIdentityProviders": [
{
"authority": "string",
"applications": [
{
"clientId": "string",
"allowedDataActions": "array",
"audience": "string"
}
]
}
]
}
}
}
Het applications
element is een JSON-matrix die een of twee application configurations
bevat.
De application configuration
bestaan uit:
Een
clientId
tekenreekswaarde voor de client-id (ook wel toepassings-id genoemd) van de id-providerresourcetoepassing.Een
audience
tekenreeks die wordt gebruikt om deaud
claim in toegangstokens te valideren.Een matrix van
allowedDataActions
. DeallowedDataActions
matrix kan alleen de tekenreekswaardeRead
bevatten.
{
"authority": "string",
"applications": [
{
"clientId": "string",
"allowedDataActions": "array",
"audience": "string"
}
]
}
{
"clientId": "string",
"allowedDataActions": "array",
"audience": "string"
}
Volgende stappen
Azure Active Directory B2C gebruiken om toegang te verlenen tot de FHIR-service
Meerdere id-providers configureren
Notitie
FHIR® is een geregistreerd handelsmerk van HL7 en wordt gebruikt met de machtiging HL7.