Delen via


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 aan gebruikers wilt bieden, configureert u de twee id-providers door de sectie smartIdentityProviders van het object authenticationConfiguration in te vullen.

Foutberichten

Hier volgen de foutberichten die optreden als de SMART-id-providers van de FHIR-service mislukken en aanbevolen acties 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-toepassing allowedDataActions waarden zijn null, leeg of ongeldig. De allowedDataActions matrix in een of meer toepassingsconfiguraties is null, leeg of onjuist. 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.

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.

  1. Controleer of het smartIdentityProviders element juist is geconfigureerd.

  2. Controleer of de authority tekenreeks juist is. Zorg ervoor dat de authority tekenreeks de token-instantie is voor de id-provider die het toegangstoken heeft uitgegeven.

  3. 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 de aubrowser navigatesthority tekenreeks en plak deze in uw browser. Als de waarde juist is, navigeert de browser naar de openid-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
    
    
  4. Controleer of de clientId tekenreeks juist is. Zorg ervoor dat de clientId tekenreeks overeenkomt met de client-id (of toepassings-id) van de resourcetoepassing die is gedefinieerd in de id-provider.

  5. Controleer of de aanvraagmethode GET is. Het enige ondersteunde aanvraagtype is GET, omdat de allowedDataActions waarden alleen ondersteuning bieden voor Read.

  6. 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.

    Screenshot showing jwt web token claims.

  7. Verifieer de iss (verlenerclaim). Zorg ervoor dat de iss claim exact overeenkomt met de issuer waarde in de OpenId-configuratie van uw id-providers.

    Neem de authority waarde uit de configuratie van de smartIdentityProvider 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
    
  8. Controleer de azp of appid (geautoriseerde partij of appid-claim). De azp of appid claim moet exact overeenkomen met de clientId waarde die is opgegeven in de configuratie van de smartIdentityProvider id-provider.

  9. Controleer de aud (doelgroepclaim). De aud claim moet exact overeenkomen met de audience waarde die is opgegeven in de configuratie van de smartIdentityProvider id-provider.

  10. 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 (*) door all. Een acceptabele versie van het SMART on FHIR-bereik patient/*.read is bijvoorbeeld patient.all.read.

Notitie

Alleen read bereiken worden ondersteund.

  1. Controleer de fhirUser of extension_fhirUser (FHIR-gebruikersclaim). De fhirUser of extension_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 een fhirUser of extension_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-providerresource application 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 de aud claim in toegangstokens te valideren.

  • Een matrix van allowedDataActions. De allowedDataActions matrix kan alleen de tekenreekswaarde Read 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.