Walidacja tokenu dostępu przy użyciu usługi Azure API for FHIR
Ważne
Usługa Azure API for FHIR zostanie wycofana 30 września 2026 r. Postępuj zgodnie ze strategiami migracji, aby przejść do usługi Azure Health Data Services FHIR® do tej daty. Ze względu na wycofanie usługi Azure API for FHIR nowe wdrożenia klientów nie będą dozwolone od 1 kwietnia 2025 r. Azure Health Data Services FHIR to rozwinięta wersja usługi Azure API for FHIR, która umożliwia klientom zarządzanie usługami FHIR, DICOM i MedTech z możliwością integracji z innymi usługami platformy Azure.
Sposób sprawdzania poprawności tokenu dostępu przez interfejs API platformy Azure dla standardu FHIR® zależy od implementacji i konfiguracji. W tym artykule przedstawiono kroki weryfikacji, które mogą być przydatne podczas rozwiązywania problemów z dostępem.
Upewnij się, że token nie ma problemów z dostawcą tożsamości
Pierwszym krokiem weryfikacji tokenu jest sprawdzenie, czy token został wystawiony przez odpowiedniego dostawcę tożsamości i czy nie został zmodyfikowany. Serwer FHIR jest skonfigurowany do używania określonego dostawcy tożsamości znanego jako autorytet Authority
. Serwer FHIR pobiera informacje o dostawcy tożsamości z punktu końcowego /.well-known/openid-configuration
. W przypadku korzystania z identyfikatora Entra firmy Microsoft pełny adres URL to:
GET https://login.microsoftonline.com/<TENANT-ID>/.well-known/openid-configuration
gdzie <TENANT-ID>
jest konkretnym dzierżawcą Microsoft Entra (identyfikatorem dzierżawy lub nazwą domeny).
Identyfikator Entra firmy Microsoft zwraca dokument podobny do poniższego do serwera FHIR.
{
"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"
}
Ważne właściwości serwera FHIR to jwks_uri
, który informuje serwer, gdzie pobrać klucze szyfrowania potrzebne do zweryfikowania podpisu tokenu, oraz issuer
, który informuje serwer, co będzie w oświadczeniu wystawcy (iss
) tokenów wystawionych przez ten serwer. Serwer FHIR może tego użyć, aby zweryfikować, że otrzymuje autentyczny token.
Sprawdź twierdzenia tokenu
Gdy serwer sprawdzi autentyczność tokenu, serwer FHIR przejdzie do weryfikacji, czy klient ma wymagane oświadczenia dostępu do tokenu.
W przypadku korzystania z usługi Azure API for FHIR serwer weryfikuje następujące elementy:
- Token ma odpowiednie
Audience
( oświadczenieaud
). - Użytkownik lub główna tożsamość, dla której wystawiono token, może uzyskać dostęp do warstwy danych serwera FHIR. Oświadczenie
oid
tokenu zawiera identyfikator obiektu tożsamości, który jednoznacznie identyfikuje użytkownika lub podmiot.
Zalecamy, aby usługa FHIR była skonfigurowana do używania RBAC platformy Azure do zarządzania przypisaniami ról na płaszczyźnie danych. Można jednak również skonfigurować lokalny RBAC, jeśli usługa FHIR korzysta z zewnętrznej lub dodatkowej dzierżawy Microsoft Entra.
W przypadku korzystania z serwera open source Microsoft FHIR dla platformy Azure, serwer weryfikuje:
- Token ma odpowiednie
Audience
(roszczenieaud
). - Token ma rolę w oświadczeniu
roles
, któremu zezwolono na dostęp do serwera FHIR.
Aby uzyskać szczegółowe informacje na temat sposobu definiowania ról na serwerze FHIR.
Serwer FHIR może również sprawdzić, czy token dostępu ma zakresy (w atrybutach tokenu scp
) umożliwiające dostęp do części interfejsu API FHIR, którą klient próbuje uzyskać. Obecnie usługa Azure API for FHIR i serwer FHIR dla platformy Azure nie weryfikują zakresów tokenów.
Następne kroki
Teraz, gdy wiesz, jak zweryfikować tokeny, możesz ukończyć samouczek, aby utworzyć aplikację JavaScript i przeczytać dane fast healthcare Interoperability Resources (FHIR®).
Uwaga
FHIR® jest zastrzeżonym znakiem towarowym HL7 i jest używany z uprawnieniem HL7.