Az Azure Active Directory identitáskonfigurációja az Azure API for FHIR-hez
Ha egészségügyi adatokkal dolgozik, fontos gondoskodni arról, hogy az adatok biztonságosak legyenek, és jogosulatlan felhasználók vagy alkalmazások ne férhessenek hozzá. Az FHIR-kiszolgálók az OAuth 2.0-t használják az adatbiztonság biztosítására. Az Azure API for FHIR védelme az Azure Active Directoryval történik, amely példa egy OAuth 2.0-identitásszolgáltatóra. Ez a cikk áttekintést nyújt az FHIR-kiszolgáló engedélyezéséről, valamint az FHIR-kiszolgáló eléréséhez szükséges jogkivonat beszerzésének lépéseiről. Bár ezek a lépések minden FHIR-kiszolgálóra és identitásszolgáltatóra vonatkoznak, ebben a cikkben végigvezetjük az Azure API for FHIR-t FHIR-kiszolgálóként és az Azure Active Directoryt (Azure AD) identitásszolgáltatóként.
A hozzáférés-vezérlés áttekintése
Ahhoz, hogy egy ügyfélalkalmazás hozzáférjen az Azure API for FHIR-hez, be kell mutatnia egy hozzáférési jogkivonatot. A hozzáférési jogkivonat a tulajdonságok (jogcímek) aláírt , Base64 kódolású gyűjteménye, amely információkat közöl az ügyfél identitásáról, szerepköreiről és jogosultságairól.
A jogkivonatok beszerzésének számos módja van, de az FHIR-hez készült Azure API-t nem érdekli a jogkivonat beszerzése, amíg a megfelelő jogcímekkel rendelkező, megfelelően aláírt jogkivonatról van szó.
Például amikor engedélyezési kódfolyamatot használ, egy FHIR-kiszolgáló elérése az alábbi négy lépésen megy keresztül:
- Az ügyfél kérést küld a
/authorize
Azure AD végpontjának. Azure AD átirányítja az ügyfelet egy bejelentkezési oldalra, ahol a felhasználó a megfelelő hitelesítő adatokkal (például felhasználónév és jelszó vagy kétfaktoros hitelesítés) hitelesíti magát. Tekintse meg az engedélyezési kód beszerzésének részleteit. A sikeres hitelesítés után a rendszer egy engedélyezési kódot ad vissza az ügyfélnek. Azure AD csak az ügyfélalkalmazás-regisztrációban konfigurált regisztrált válasz URL-címre engedélyezi ezt az engedélyezési kódot. - Az ügyfélalkalmazás kicseréli a hozzáférési jogkivonat engedélyezési kódját a
/token
Azure AD végpontján. Jogkivonat kérésekor előfordulhat, hogy az ügyfélalkalmazásnak meg kell adnia egy titkos ügyfélkulcsot (az alkalmazások jelszavát). Lásd a hozzáférési jogkivonat beszerzésének részleteit. - Az ügyfél kérést intéz az Azure API for FHIR-hez, például
GET /Patient
az összes beteg kereséséhez. Amikor az ügyfél végrehajtja a kérést, a hozzáférési jogkivonatot egy HTTP-kérés fejlécében tartalmazza, ahol példáulAuthorization: Bearer eyJ0e...
eyJ0e...
a Base64 kódolású hozzáférési jogkivonatot jelöli. - Az Azure API for FHIR ellenőrzi, hogy a jogkivonat megfelelő jogcímeket tartalmaz-e (tulajdonságok a jogkivonatban). Ha minden kivételt tartalmaz, akkor az elvégzi a kérést, és visszaad egy FHIR-csomagot az eredményekkel együtt az ügyfélnek.
Fontos megjegyezni, hogy az Azure API for FHIR nem vesz részt a felhasználói hitelesítő adatok érvényesítésében, és nem adja ki a jogkivonatot. A hitelesítést és a jogkivonatok létrehozását Azure AD végzi. Az Azure API for FHIR egyszerűen ellenőrzi, hogy a jogkivonat megfelelően van-e aláírva (hiteles), és hogy rendelkezik-e megfelelő jogcímekkel.
Hozzáférési jogkivonat struktúrája
A Fast Healthcare Interoperability Resources (FHIR®) alkalmazások fejlesztése gyakran magában foglalja a hozzáférési problémák hibakeresését. Ha egy ügyfél nem fér hozzá az Azure API for FHIR-hez, érdemes megismerni a hozzáférési jogkivonat struktúráját, és hogy hogyan dekódolható a jogkivonat tartalmának (jogcímeinek) vizsgálatához.
Az FHIR-kiszolgálók általában egy JSON-webtokenre (JWT, néha "jot") számítanak. Három részből áll:
1. rész: Egy fejléc, amely a következőképpen nézhet ki:
{
"alg": "HS256",
"typ": "JWT"
}
2. rész: A hasznos adatok (a jogcímek), például:
{
"oid": "123",
"iss": "https://issuerurl",
"iat": 1422779638,
"roles": [
"admin"
]
}
3. rész: Egy aláírás, amelyet a fejléc Base64 kódolású tartalmának és hasznos adatainak összefűzésével és a fejlécben megadott algoritmus (alg
) alapján számítunk ki. A kiszolgáló képes lesz nyilvános kulcsokat beszerezni az identitásszolgáltatótól, és ellenőrizni, hogy a jogkivonatot egy adott identitásszolgáltató adta-e ki, és nem módosították-e.
A teljes jogkivonat a három szegmens Base64 kódolású (valójában Base64 URL-kódolású) verzióiból áll. A három szegmens összefűzve és egy .
ponttal (ponttal) elválasztva van.
Példa egy jogkivonatra a következő módon:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvaWQiOiIxMjMiLCAiaXNzIjoiaHR0cHM6Ly9pc3N1ZXJ1cmwiLCJpYXQiOjE0MjI3Nzk2MzgsInJvbGVzIjpbImFkbWluIl19.gzSraSYS8EXBxLN_oWnFSRgCzcmJmMjLiuyu5CSpyHI
A jogkivonat dekódolható és megvizsgálható olyan eszközökkel, mint a https://jwt.ms. A jogkivonat dekódolásának eredménye:
{
"alg": "HS256",
"typ": "JWT"
}.{
"oid": "123",
"iss": "https://issuerurl",
"iat": 1422779638,
"roles": [
"admin"
]
}.[Signature]
Hozzáférési jogkivonat beszerzése
Ahogy már említettük, a jogkivonatok többféleképpen is beszerezhetők Azure AD. Ezeket részletesen a Azure AD fejlesztői dokumentációban ismertetjük.
Használja az alábbi hitelesítési protokollok egyikét:
A jogkivonatok beszerzésének más változatai is vannak (például a folyamat miatt). Részletekért tekintse meg a Azure AD dokumentációját. Ha az Azure API for FHIR-t használja, néhány parancsikon használható hozzáférési jogkivonat beszerzésére (például hibakeresés céljából) az Azure CLI használatával.
Következő lépések
Ebben a dokumentumban megismert néhány alapvető fogalmat, amelyek az Azure API for FHIR-hez való hozzáférés Azure AD használatával történő biztonságossá tételével kapcsolatosak. További információ az Azure API for FHIR szolgáltatás üzembe helyezéséről:
Az FHIR® a HL7 bejegyzett védjegye, és a HL7 engedélyével használják.