Konfigurace identity Azure Active Directory pro Azure API for FHIR
Když pracujete se zdravotnickými daty, je důležité zajistit, aby data byla zabezpečená a nemohli k ní přistupovat neoprávnění uživatelé nebo aplikace. Servery FHIR používají K zajištění tohoto zabezpečení dat OAuth 2.0 . Azure API for FHIR je zabezpečené pomocí Azure Active Directory, což je příklad zprostředkovatele identity OAuth 2.0. Tento článek obsahuje přehled autorizace serveru FHIR a kroky potřebné k získání tokenu pro přístup k serveru FHIR. I když tyto kroky platí pro všechny servery FHIR a všechny zprostředkovatele identity, v tomto článku vás provedeme rozhraním Azure API for FHIR jako serverem FHIR a Službou Azure Active Directory (Azure AD) jako naším zprostředkovatelem identity.
Přehled řízení přístupu
Aby klientská aplikace mohla přistupovat k rozhraní Azure API for FHIR, musí předložit přístupový token. Přístupový token je podepsaná kolekce vlastností (deklarací identity) s kódováním Base64 , která předává informace o identitě a rolích klienta a oprávněních udělených klientovi.
Existuje mnoho způsobů, jak token získat, ale rozhraní Azure API for FHIR je jedno, jak se token získá, pokud se jedná o vhodně podepsaný token se správnými deklaracemi identity.
Například při použití toku autorizačního kódu prochází přístup k serveru FHIR následujícími čtyřmi kroky:
- Klient odešle požadavek koncovému
/authorize
bodu Azure AD. Azure AD přesměruje klienta na přihlašovací stránku, kde se uživatel ověří pomocí příslušných přihlašovacích údajů (například uživatelského jména a hesla nebo dvojúrovňového ověřování). Projděte si podrobnosti o získání autorizačního kódu. Po úspěšném ověření se klientovi vrátí autorizační kód . Azure AD povolí vrácení tohoto autorizačního kódu pouze na registrovanou adresu URL odpovědi nakonfigurovanou v registraci klientské aplikace. - Klientská aplikace vymění autorizační kód za přístupový token v koncovém
/token
bodu Azure AD. Když požádáte o token, klientská aplikace možná bude muset zadat tajný klíč klienta (heslo aplikace). Projděte si podrobnosti o získání přístupového tokenu. - Klient odešle do azure API for FHIR požadavek, například
GET /Patient
, aby prohledali všechny pacienty. Když klient odešle požadavek, zahrne přístupový token do hlavičky požadavku HTTP, napříkladAuthorization: Bearer eyJ0e...
, kdeeyJ0e...
představuje přístupový token kódovaný jako Base64. - Rozhraní Azure API for FHIR ověří, že token obsahuje příslušné deklarace identity (vlastnosti v tokenu). Pokud se vše ověří, požadavek se dokončí a klientovi se vrátí sada FHIR s výsledky.
Je důležité si uvědomit, že rozhraní Azure API for FHIR není součástí ověřování přihlašovacích údajů uživatele a nevydává token. Ověřování a vytvoření tokenu provádí Azure AD. Rozhraní Azure API for FHIR jednoduše ověří, že je token správně podepsaný (je autentický) a že má příslušné deklarace identity.
Struktura přístupového tokenu
Vývoj aplikací FHIR® (Fast Healthcare Interoperability Resources) často zahrnuje ladění problémů s přístupem. Pokud je klientovi odepřen přístup k rozhraní Azure API for FHIR, je užitečné porozumět struktuře přístupového tokenu a způsobu jeho dekódování za účelem kontroly obsahu (deklarací identity) tokenu.
Servery FHIR obvykle očekávají json webový token (JWT, někdy vyslovuje "jot"). Skládá se ze tří částí:
Část 1: Hlavička, která by mohla vypadat takto:
{
"alg": "HS256",
"typ": "JWT"
}
Část 2: Datová část (deklarace identity), například:
{
"oid": "123",
"iss": "https://issuerurl",
"iat": 1422779638,
"roles": [
"admin"
]
}
Část 3: Podpis, který se vypočítá zřetězením zakódovaného obsahu hlavičky a datové části v kódování Base64 a výpočtem jejich kryptografické hodnoty hash na základě algoritmu (alg
) zadaného v hlavičce. Server bude moct získat veřejné klíče od zprostředkovatele identity a ověřit, že tento token vydal konkrétní zprostředkovatel identity a že s ním nebylo manipulováno.
Úplný token se skládá z verzí těchto tří segmentů s kódováním Base64 (ve skutečnosti s kódováním Url Base64). Tři segmenty jsou zřetězeny a odděleny tečkou ()..
Příklad tokenu je zobrazený takto:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvaWQiOiIxMjMiLCAiaXNzIjoiaHR0cHM6Ly9pc3N1ZXJ1cmwiLCJpYXQiOjE0MjI3Nzk2MzgsInJvbGVzIjpbImFkbWluIl19.gzSraSYS8EXBxLN_oWnFSRgCzcmJmMjLiuyu5CSpyHI
Token lze dekódovat a zkontrolovat pomocí nástrojů, jako https://jwt.msje . Výsledkem dekódování tokenu je:
{
"alg": "HS256",
"typ": "JWT"
}.{
"oid": "123",
"iss": "https://issuerurl",
"iat": 1422779638,
"roles": [
"admin"
]
}.[Signature]
Získání přístupového tokenu
Jak už bylo zmíněno, existuje několik způsobů, jak získat token z Azure AD. Podrobně jsou popsány v dokumentaci Azure AD pro vývojáře.
Použijte některý z následujících ověřovacích protokolů:
Existují i další varianty (například kvůli toku) pro získání tokenu. Podrobnosti najdete v dokumentaci k Azure AD. Při použití rozhraní Azure API for FHIR existuje několik zástupců pro získání přístupového tokenu (například pro účely ladění) pomocí Azure CLI.
Další kroky
V tomto dokumentu jste se seznámili se základními koncepty zabezpečení přístupu k rozhraní Azure API for FHIR pomocí Azure AD. Informace o nasazení služby Azure API for FHIR najdete v tématu
FHIR® je registrovaná ochranná známka HL7 a používá se s povolením HL7.