Az Azure API for FHIR hozzáférési jogkivonatainak érvényesítése

Az, hogy az Azure API for FHIR hogyan ellenőrzi a hozzáférési jogkivonatot, az implementációtól és a konfigurációtól függ. Ebben a cikkben végigvezetjük az érvényesítési lépéseket, amelyek hasznosak lehetnek a hozzáférési problémák elhárításához.

Az érvényesítési jogkivonatnak nincsenek problémái az identitásszolgáltatóval

A jogkivonat érvényesítésének első lépése annak ellenőrzése, hogy a jogkivonatot a megfelelő identitásszolgáltató adta-e ki, és hogy nem módosították-e. Az FHIR-kiszolgáló úgy lesz konfigurálva, hogy a szolgáltató Authoritynéven ismert identitásszolgáltatót használja. Az FHIR-kiszolgáló lekéri az identitásszolgáltató adatait a /.well-known/openid-configuration végpontról. Az Azure Active Directory (Azure AD) használatakor a teljes URL-cím a következő:

GET https://login.microsoftonline.com/<TENANT-ID>/.well-known/openid-configuration

where <TENANT-ID> is the specific Azure AD tenant (bérlőazonosító vagy tartománynév).

Azure AD egy ehhez hasonló dokumentumot ad vissza az FHIR-kiszolgálónak.

{
    "authorization_endpoint": "https://login.microsoftonline.com/<TENANT-ID>/oauth2/authorize",
    "token_endpoint": "https://login.microsoftonline.com/<TENANT-ID>/oauth2/token",
    "token_endpoint_auth_methods_supported": [
        "client_secret_post",
        "private_key_jwt",
        "client_secret_basic"
    ],
    "jwks_uri": "https://login.microsoftonline.com/common/discovery/keys",
    "response_modes_supported": [
        "query",
        "fragment",
        "form_post"
    ],
    "subject_types_supported": [
        "pairwise"
    ],
    "id_token_signing_alg_values_supported": [
        "RS256"
    ],
    "http_logout_supported": true,
    "frontchannel_logout_supported": true,
    "end_session_endpoint": "https://login.microsoftonline.com/<TENANT-ID>/oauth2/logout",
    "response_types_supported": [
        "code",
        "id_token",
        "code id_token",
        "token id_token",
        "token"
    ],
    "scopes_supported": [
        "openid"
    ],
    "issuer": "https://sts.windows.net/<TENANT-ID>/",
    "claims_supported": [
        "sub",
        "iss",
        "cloud_instance_name",
        "cloud_instance_host_name",
        "cloud_graph_host_name",
        "msgraph_host",
        "aud",
        "exp",
        "iat",
        "auth_time",
        "acr",
        "amr",
        "nonce",
        "email",
        "given_name",
        "family_name",
        "nickname"
    ],
    "microsoft_multi_refresh_token": true,
    "check_session_iframe": "https://login.microsoftonline.com/<TENANT-ID>/oauth2/checksession",
    "userinfo_endpoint": "https://login.microsoftonline.com/<TENANT-ID>/openid/userinfo",
    "tenant_region_scope": "WW",
    "cloud_instance_name": "microsoftonline.com",
    "cloud_graph_host_name": "graph.windows.net",
    "msgraph_host": "graph.microsoft.com",
    "rbac_url": "https://pas.windows.net"
}

Az FHIR-kiszolgáló fontos tulajdonságai a következők jwks_uri: , amelyek közlik a kiszolgálóval, hogy hol kell lekérni a jogkivonat aláírásának érvényesítéséhez szükséges titkosítási kulcsokat, és issueramely közli a kiszolgálóval, hogy mi lesz a kiszolgáló által kibocsátott jogkivonatok kiállítói jogcímében (iss). Az FHIR-kiszolgáló ezzel ellenőrizheti, hogy hiteles jogkivonatot kap-e.

A jogkivonat jogcímeinek ellenőrzése

Miután a kiszolgáló ellenőrizte a jogkivonat hitelességét, az FHIR-kiszolgáló ezután ellenőrzi, hogy az ügyfél rendelkezik-e a jogkivonat eléréséhez szükséges jogcímekkel.

Ha az Azure API for FHIR-t használja, a kiszolgáló ellenőrzi a következőket:

  1. A jogkivonatnak joga Audience van (aud jogcím).
  2. Az a felhasználó vagy rendszerbiztonsági tag, aki számára a jogkivonat ki lett adva, hozzáférhet az FHIR-kiszolgáló adatsíkhoz. A oid jogkivonat jogcíme tartalmaz egy identitásobjektum-azonosítót, amely egyedileg azonosítja a felhasználót vagy az egyszerű felhasználót.

Javasoljuk, hogy az FHIR szolgáltatást úgy konfigurálja, hogy az Azure RBAC-t használja az adatsík szerepkör-hozzárendeléseinek kezeléséhez. A helyi RBAC-t azonban akkor is konfigurálhatja, ha az FHIR-szolgáltatás külső vagy másodlagos Azure AD bérlőt használ.

Ha az OSS Microsoft FHIR-kiszolgálót használja az Azure-hoz, a kiszolgáló ellenőrzi a következőket:

  1. A jogkivonatnak joga Audience van (aud jogcím).
  2. A jogkivonatnak van egy szerepköre a roles jogcímben, amely hozzáféréssel rendelkezik az FHIR-kiszolgálóhoz.

Tekintse meg a szerepkörök FHIR-kiszolgálón való meghatározásának részleteit.

Az FHIR-kiszolgálók azt is ellenőrizhetik, hogy a hozzáférési jogkivonat hatókörökkel rendelkezik-e (tokenjogcímben scp) az FHIR API azon részének eléréséhez, amelyhez az ügyfél próbál hozzáférni. Az Azure API for FHIR és az Azure FHIR-kiszolgálója jelenleg nem érvényesíti a tokenhatóköröket.

Következő lépések

Most, hogy már tudja, hogyan haladhat végig a jogkivonatok érvényesítésén, elvégezheti az oktatóanyagot egy JavaScript-alkalmazás létrehozásához és a Fast Healthcare Interoperability Resources (FHIR®) adatainak olvasásához.

Az FHIR® a HL7 bejegyzett védjegye, és a HL7 engedélyével használják.