Ř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, nakonfigurujte dva zprostředkovatele identity naplněním smartIdentityProviders
části objektu authenticationConfiguration
.
Chybové zprávy
Tady jsou chybové zprávy, ke kterým dochází v případě selhání zprostředkovatelů inteligentních identit služby FHIR s doporučenými akcemi 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 allowedDataActions SMART jsou null nebo prázdné. |
Pole allowedDataActions v jedné nebo více konfiguracích aplikace je null nebo prázdné. |
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. |
Selhání autorizace s rozhraním FHIR API služby Azure Health Data Services pomocí zprostředkovatele identity třetí strany | Role uživatele FHIR SMART způsobí tento problém, protože přidává vrstvu ověřování. | Ujistěte se, že není přiřazena role uživatele FHIR SMART. |
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ů.
Ověřte, že je správně nakonfigurovaný element
smartIdentityProviders
.Ověřte správnost řetězce
authority
. Ujistěte se, že je řetězecauthority
autoritou tokenu pro zprostředkovatele identity, který přístupový token vydal.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ězceaubrowser navigatesthority
a vložte ho do prohlížeče. Pokud je hodnota správná, prohlížeč přejde naopenid-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
Ověřte správnost řetězce
clientId
. Ujistěte se, že řetězecclientId
odpovídá ID klienta (nebo ID aplikace) aplikace prostředku definované ve zprostředkovateli identity.Ověřte, že metoda požadavku je GET. Jediným podporovaným typem požadavku je
GET
, protožeallowedDataActions
hodnoty podporujíRead
pouze .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.
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
zsmartIdentityProvider
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
Ověřte azp nebo appid (deklarace identity autorizované strany nebo appidu). Deklarace identity
azp
neboappid
musí přesně odpovídat hodnotěclientId
zadané v konfiguraci zprostředkovatele identitysmartIdentityProvider
.Ověřte aud (deklaraci identity cílové skupiny). Deklarace identity
aud
musí přesně odpovídat hodnotěaudience
zadané v konfiguraci zprostředkovatele identitysmartIdentityProvider
.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 (*) znakemall
. Například přijatelná verze oboru SMART on FHIRpatient/*.read
jepatient.all.read
.
Poznámka:
Podporují se jenom read
obory.
- Ověřte fhirUser nebo extension_fhirUser (deklarace identity uživatele FHIR). Deklarace identity
fhirUser
neboextension_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 identityfhirUser
neboextension_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
. Skládá identity provider configuration
se z
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 identityapplication 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 identityaud
v přístupových tokenech.Pole
allowedDataActions
. PoleallowedDataActions
může obsahovat pouze hodnotu řetězceRead
.
{
"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 více zprostředkovatelů identity
Poznámka:
FHIR® je registrovaná ochranná známka HL7 a používá se s povolením HL7.