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 begränsad åtkomst till användare konfigurerar du de två identitetsleverantörerna genom att fylla i smartIdentityProviders-avsnittet i authenticationConfiguration-objektet.

Felmeddelanden

Här är de felmeddelanden som uppstår om FHIR-tjänstens SMART-identitetsleverantörer misslyckas och 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, tomma eller ogiltiga. Matrisen allowedDataActions i en eller flera programkonfigurationer är null, tom eller felaktigt formaterad. 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.

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.

  1. Kontrollera att elementet smartIdentityProviders är korrekt konfigurerad.

  2. Kontrollera att strängen authority är korrekt. Kontrollera att strängen authority är tokenutfärdarna för identitetsleverantören som utfärdade åtkomsttoken.

  3. 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ängen aubrowser navigatesthority och klistra sedan in den i webbläsaren. Om värdet är korrekt navigerar webbläsaren till openid-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
    
    
  4. Kontrollera att strängen clientId är korrekt. Kontrollera att strängen clientId matchar klient-ID:t (eller program-ID:t) för resursprogrammet som definierats i identitetsprovidern.

  5. Kontrollera att begärandemetoden är GET. Den enda typ av begäran som stöds är GET, eftersom allowedDataActions-värdena endast stöder Read.

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

    Screenshot showing jwt web token claims.

  7. Kontrollera iss (utfärdaranspråk). Kontrollera att anspråket iss exakt matchar issuer-värdet i dina identitetsleverantörers OpenId Configuration.

    Ta authority-värdet från smartIdentityProvider 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
    
  8. Verifiera azp eller appid (behörig part eller appid-anspråk). Anspråket azp eller appid måste exakt matcha det clientId-värde som anges i smartIdentityProvider identitetsleverantörens konfiguration.

  9. Verifiera aud (målgruppsanspråk). Anspråket aud måste exakt matcha det audience-värde som anges i smartIdentityProvider identitetsleverantörens konfiguration.

  10. 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 (*) med all. En godtagbar version av SMART på FHIR-omfånget patient/*.read är patient.all.read, till exempel .

Kommentar

Endast read omfång stöds.

  1. Verifiera fhirUser eller extension_fhirUser (FHIR-användaranspråk). Anspråket fhirUser eller extension_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 en extension_fhirUser eller fhirUser-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örsresursen application 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åket aud i åtkomsttoken.

  • En matris med allowedDataActions. Matrisen allowedDataActions kan bara innehålla strängvärdet Read.

{
  "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.