Řešení potíží s konfigurací zprostředkovatele identity pro službu FHIR

Rozhraní API verze 2023-12-01 služby FHIR® ve službě Azure Health Data Services podporuje kromě ID Microsoft Entra dva zprostředkovatele identity. Pokud chcete poskytnout omezený přístup uživatelům, nakonfigurujete dva zprostředkovatele identity tak, že naplníte část smartIdentityProviders objektu authenticationConfiguration.

Chybové zprávy

Tady jsou chybové zprávy, ke kterým dochází v případě selhání zprostředkovatelů identity SMART služby FHIR a doporučených akcí k vyřešení problému.

Chyba Příčina Oprava
Maximální počet zprostředkovatelů identity SMART je 2. Počet nakonfigurovaných zprostředkovatelů identity je větší než dva. Snižte počet zprostředkovatelů identity na dva nebo méně.
Jedna nebo více hodnot autority zprostředkovatele identity SMART jsou null, prázdné nebo neplatné. Element authority konfigurace zprostředkovatele identity musí být plně kvalifikovaná adresa URL. Ujistěte se, že všechny hodnoty authority jsou plně kvalifikované adresy URL.
Všechny autority zprostředkovatele identity SMART musí být jedinečné. Elementy authority dvou konfigurací zprostředkovatele identity jsou identické. Ujistěte se, že všechny hodnoty authority jsou jedinečné, plně kvalifikované adresy URL.
Maximální počet aplikací zprostředkovatele identity SMART je 2. Počet aplikací zprostředkovatele identity v konfiguraci zprostředkovatele identity je větší než dva. Snižte počet aplikací zprostředkovatele identity na jeden nebo dva na zprostředkovatele identity.
Jedna nebo více aplikací SMART má hodnotu null. Element applications pro jednoho nebo více zprostředkovatelů identity má hodnotu null nebo neobsahuje žádné aplikace. Ujistěte se, že všechny konfigurace zprostředkovatele identity mají nakonfigurovanou aspoň jednu aplikaci.
Jedna nebo více aplikací SMART allowedDataActions obsahuje duplicitní elementy. Pole allowedDataActions v jedné nebo více konfiguracích aplikace obsahuje duplicitní hodnoty. Odeberte všechny duplicitní hodnoty v polích allowedDataActions.
Jedna nebo více hodnot aplikace SMART allowedDataActions je neplatná. Jedinou přijatelnou hodnotou v poli allowedDataActions je Read. Odeberte z polí allowedDataActions všechny nevyhovující hodnoty.
Jedna nebo více hodnot aplikace SMART allowedDataActions je null, prázdná nebo neplatná. Pole allowedDataActions v jedné nebo více konfiguracích aplikace je null, prázdné nebo chybné. Jedinou přijatelnou hodnotou v poli allowedDataActions je Read.
Jedna nebo více hodnot aplikace SMART audience je null, prázdná nebo neplatná. Řetězec audience v jedné nebo více konfiguracích aplikace je null, prázdný nebo chybný. audience Ujistěte se, že řetězec není null nebo prázdný a že hodnota je typ řetězce.
Všechna ID klienta aplikace zprostředkovatele identity SMART musí být jedinečná. Hodnota clientId v jedné nebo více konfiguracích aplikace je stejná jako jiná hodnota clientId. Ujistěte se, že všechny hodnoty clientId jsou jedinečné (včetně konfigurací zprostředkovatele identity).
Jedna nebo více hodnot ID klienta aplikace SMART je null, prázdná nebo neplatná. Řetězec clientId v jedné nebo více konfiguracích aplikace je null, prázdný nebo chybný. clientId Ujistěte se, že řetězec není null nebo prázdný a že hodnota je typ řetězce.

Chyby požadavků rozhraní API FHIR

Při použití tokenu vydaného poskytovatelem identity SMART k provádění požadavků na službu FHIR můžete narazit na dva běžné kódy chyb: 401 Unauthorized nebo 403 Forbidden. Pokud chcete začít řešit potíže, zkontrolujte konfiguraci elementu smartIdentityProviders, zejména pokud je služba FHIR nová.

Pokud chcete ověřit správnou konfiguraci elementu smartIdentityProviders, postupujte podle těchto kroků.

  1. Ověřte, že je správně nakonfigurovaný element smartIdentityProviders.

  2. Ověřte správnost řetězce authority. Ujistěte se, že je řetězec authority autoritou tokenu pro zprostředkovatele identity, který přístupový token vydal.

  3. Ověřte, že je řetězec authority platnou autoritou tokenu. Vytvořte požadavek na konfiguraci openid-connect. Připojte /.well-known/openid-configuration na konec řetězce aubrowser navigatesthority a vložte ho do prohlížeče. Pokud je hodnota správná, prohlížeč přejde na openid-connect configuration. Pokud tomu tak není, je problém s řetězcem.

    Příklad:

    https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
    
    
  4. Ověřte správnost řetězce clientId. Ujistěte se, že řetězec clientId odpovídá ID klienta (nebo ID aplikace) aplikace prostředku definované ve zprostředkovateli identity.

  5. Ověřte, že metoda požadavku je GET. Jediným podporovaným typem požadavku je GET, protože hodnoty allowedDataActions podporují pouze Read.

  6. Ověřte deklarace identity webového tokenu JSON (JWT). Pokud je přístupový token dostupný, dekódujte ho pomocí online nástrojů, jako je jwt.ms. Po dekódování tokenu je možné zkontrolovat správnost deklarací identity.

    Screenshot showing jwt web token claims.

  7. Ověřte iss (deklaraci identity vystavitele). Ujistěte se, že deklarace identity iss přesně odpovídá hodnotě issuer ve vaší konfiguraci zprostředkovatelů identity OpenId.

    Vezměte hodnotu authority z smartIdentityProvider konfigurace zprostředkovatele identity, připojte k ní /.well-known/openid-configuration a vložte ji do prohlížeče. Pokud je hodnota správná, prohlížeč přejde na konfiguraci openid-connect.

    Příklad:

    https://<YOUR_IDENTITY_PROVIDER_AUTHORITY>/authority/v2.0/.well-known/openid-configuration
    
  8. Ověřte azp nebo appid (deklarace identity autorizované strany nebo appidu). Deklarace identity azp nebo appid musí přesně odpovídat hodnotě clientId zadané v konfiguraci zprostředkovatele identity smartIdentityProvider.

  9. Ověřte aud (deklaraci identity cílové skupiny). Deklarace identity aud musí přesně odpovídat hodnotě audience zadané v konfiguraci zprostředkovatele identity smartIdentityProvider.

  10. Ověřte scp (deklaraci identity oboru). Deklarace identity scp je povinná. Pokud chybí, požadavek selže. Formát deklarace identity scp musí odpovídat oborům SMART on FHIR v1. Je důležité si uvědomit, že služba FHIR v současné době podporuje pouze obory čtení. Přijatelná varianta oborů SMART on FHIR v1 nahrazuje všechna lomítka (/) tečkou (.) a hvězdičku (*) znakem all. Například přijatelná verze oboru SMART on FHIR patient/*.read je patient.all.read.

Poznámka:

Podporují se jenom read obory.

  1. Ověřte fhirUser nebo extension_fhirUser (deklarace identity uživatele FHIR). Deklarace identityfhirUser nebo extension_fhirUser je povinná. Pokud chybí, požadavek selže. Tato deklarace identity propojuje uživatele ve zprostředkovateli identity s prostředkem uživatele ve službě FHIR. Hodnota musí být plně kvalifikovaná adresa URL prostředku ve službě FHIR, která představuje jednotlivce, kterému je přístupový token vystaven. Například přístupový token vystavený pacientovi, který se přihlásil, by měl mít deklaraci identity fhirUser nebo extension_fhirUser, která má plně kvalifikovanou adresu URL prostředku pacienta ve službě FHIR.

Schéma konfigurace zprostředkovatelů identity

Element smartIdentityProviders je pole JSON, které obsahuje jednu nebo dvě identity provider configurations. identity provider configuration tvoří:

  • Hodnota řetězcce authority, která musí být plně kvalifikovanou adresou URL autority tokenu zprostředkovatelů identity.

  • Pole applications obsahující prostředek zprostředkovatele identity application configurations.

{
  "properties": {
    "authenticationConfiguration": {
      "authority": "string",
      "audience": "string",
      "smartProxyEnabled": "bool",
      "smartIdentityProviders": [
        {
          "authority": "string",
          "applications": [
            {
              "clientId": "string",
              "allowedDataActions": "array",
              "audience": "string"
            }
          ]
        }
      ]
    }
  }
}

Element applications je pole JSON, které obsahuje jednu nebo dvě application configurations.

application configuration tvoří:

  • Hodnota řetězce clientId pro ID klienta (označovaná také jako ID aplikace) aplikace prostředku zprostředkovatele identity.

  • Řetězec audience použitý k ověření deklarace identity aud v přístupových tokenech.

  • Pole allowedDataActions. Pole allowedDataActions může obsahovat pouze hodnotu řetězce Read.

{
  "authority": "string",
  "applications": [
    {
      "clientId": "string",
      "allowedDataActions": "array",
      "audience": "string"
    }
  ]
}
{
  "clientId": "string",
  "allowedDataActions": "array",
  "audience": "string"
}

Další kroky

Použití Azure Active Directory B2C k udělení přístupu ke službě FHIR

Konfigurace několika zprostředkovatelů identity

Poznámka:

FHIR® je registrovaná ochranná známka HL7 a používá se s povolením HL7.