Delen via


Azure API for FHIR-toegangstoken valideren

Hoe Azure API for FHIR het toegangstoken valideert, is afhankelijk van de implementatie en configuratie. In dit artikel doorloopt u de validatiestappen, die handig kunnen zijn bij het oplossen van toegangsproblemen.

Valideren dat token geen problemen heeft met id-provider

De eerste stap bij de tokenvalidatie bestaat uit het controleren of het token is uitgegeven door de juiste id-provider en of het niet is gewijzigd. De FHIR-server wordt geconfigureerd voor het gebruik van een specifieke id-provider die bekend staat als de instantie Authority. De FHIR-server haalt informatie over de id-provider op van het /.well-known/openid-configuration eindpunt. Wanneer u Azure Active Directory (Azure AD) gebruikt, is de volledige URL:

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

waarbij <TENANT-ID> de specifieke Azure AD tenant is (een tenant-id of een domeinnaam).

Azure AD retourneert een document zoals dit naar de FHIR-server.

{
    "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"
}

De belangrijke eigenschappen voor de FHIR-server zijn jwks_uri, die de server vertelt waar de versleutelingssleutels moeten worden opgehaald die nodig zijn om de tokenhandtekening te valideren en issuer, waarmee de server wordt doorgegeven wat er in de claim van de verlener (iss) van tokens wordt uitgegeven door deze server. De FHIR-server kan dit gebruiken om te valideren dat deze een authentiek token ontvangt.

Claims van het token valideren

Zodra de server de authenticiteit van het token heeft geverifieerd, gaat de FHIR-server vervolgens controleren of de client de vereiste claims heeft om toegang te krijgen tot het token.

Wanneer u Azure API for FHIR gebruikt, valideert de server het volgende:

  1. Het token heeft het recht Audience (aud claim).
  2. De gebruiker of principal waarvoor het token is uitgegeven, heeft toegang tot het gegevensvlak van de FHIR-server. De oid claim van het token bevat een id-object-id, waarmee de gebruiker of principal uniek wordt geïdentificeerd.

We raden u aan de FHIR-service te configureren om Azure RBAC te gebruiken voor het beheren van roltoewijzingen van gegevensvlakken. U kunt echter ook lokale RBAC configureren als uw FHIR-service een externe of secundaire Azure AD-tenant gebruikt.

Wanneer u de OSS Microsoft FHIR-server voor Azure gebruikt, valideert de server het volgende:

  1. Het token heeft het recht Audience (aud claim).
  2. Het token heeft een rol in de roles claim, die toegang heeft tot de FHIR-server.

Raadpleeg details over het definiëren van rollen op de FHIR-server.

Een FHIR-server kan ook valideren dat een toegangstoken de bereiken heeft (in tokenclaim scp) voor toegang tot het deel van de FHIR-API waartoe een client toegang probeert te krijgen. Momenteel valideren Azure API for FHIR en de FHIR-server voor Azure geen tokenbereiken.

Volgende stappen

Nu u weet hoe u tokenvalidatie moet doorlopen, kunt u de zelfstudie voltooien om een JavaScript-toepassing te maken en FHIR-gegevens® (Fast Healthcare Interoperability Resources) te lezen.

FHIR® is een gedeponeerd handelsmerk van HL7 en wordt gebruikt met toestemming van HL7.