Udostępnij za pośrednictwem


Konfiguracja tożsamości Microsoft Entra dla interfejsu API Azure dla 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.

Podczas pracy z danymi opieki zdrowotnej ważne jest, aby upewnić się, że dane są bezpieczne i nie mogą być dostępne przez nieautoryzowanych użytkowników lub aplikacji. Serwery FHIR używają protokołu OAuth 2.0 , aby zapewnić bezpieczeństwo tych danych. Interfejs API platformy Azure dla standardu FHIR jest zabezpieczony przy użyciu identyfikatora Entra firmy Microsoft, który jest przykładem dostawcy tożsamości OAuth 2.0. Ten artykuł zawiera omówienie autoryzacji serwera FHIR oraz kroki wymagane do uzyskania tokenu w celu uzyskania dostępu do serwera FHIR. Poniższe kroki dotyczą dowolnego serwera FHIR i dowolnego dostawcy tożsamości. Omówimy Azure API for FHIR jako serwer FHIR i Microsoft Entra ID jako dostawcę tożsamości w tym artykule.

Omówienie kontroli dostępu

Aby aplikacja kliencka mogła uzyskać dostęp do usługi Azure API for FHIR, musi przedstawić token dostępu. Token dostępu to podpisana, zakodowana w formacie Base64 kolekcja właściwości (oświadczeń), która przekazuje informacje o tożsamości, rolach i uprawnieniach klienta przyznanych klientowi.

Istnieje wiele sposobów uzyskiwania tokenu. Interfejs API platformy Azure dla standardu FHIR nie ma znaczenia, w jaki sposób token jest pozyskiwany, o ile jest to odpowiednio podpisany token z poprawnymi atrybutami.

Na przykład w przypadku korzystania z przepływu kodu autoryzacji uzyskiwanie dostępu do serwera FHIR odbywa się przez następujące cztery kroki:

Autoryzacja FHIR

  1. Klient wysyła żądanie do /authorize punktu końcowego Microsoft Entra ID. Identyfikator firmy Microsoft Entra przekierowuje klienta do strony logowania, na której użytkownik uwierzytelnia się przy użyciu odpowiednich poświadczeń (na przykład nazwy użytkownika i hasła lub uwierzytelniania dwuskładnikowego). Aby uzyskać szczegółowe informacje, zobacz uzyskiwanie kodu autoryzacji. Po pomyślnym uwierzytelnieniu kod autoryzacji jest zwracany do klienta. Microsoft Entra ID zezwoli tylko na przekazanie tego kodu autoryzacji do zarejestrowanego i skonfigurowanego adresu URL odpowiedzi w rejestracji aplikacji klienckiej.
  2. Aplikacja kliencka wymienia kod autoryzacji tokenu dostępu w /token punkcie końcowym identyfikatora Entra firmy Microsoft. W przypadku żądania tokenu aplikacja kliencka może wymagać podania wpisu tajnego klienta (hasła aplikacji). Zobacz szczegółowe informacje na temat uzyskiwania tokenu dostępu.
  3. Klient wysyła żądanie do usługi Azure API for FHIR, na przykład GET /Patient, aby wyszukać wszystkich pacjentów. Gdy klient wysyła żądanie, dołącza token dostępu w nagłówku żądania HTTP, na przykład Authorization: Bearer eyJ0e..., gdzie eyJ0e... reprezentuje token dostępu zakodowany w formacie Base64.
  4. Usługa Azure API for FHIR sprawdza, czy token zawiera odpowiednie twierdzenia (właściwości w tokenie). Jeśli wszystko się sprawdzi, kończy żądanie i zwraca klientowi pakiet FHIR z wynikami.

Należy pamiętać, że usługa Azure API for FHIR nie jest zaangażowana w weryfikowanie poświadczeń użytkownika i nie wystawia tokenu. Uwierzytelnianie i tworzenie tokenu odbywa się za pomocą identyfikatora Entra firmy Microsoft. Interfejs API platformy Azure dla standardu FHIR po prostu sprawdza, czy token jest podpisany poprawnie (jest autentyczny) i że ma odpowiednie oświadczenia.

Struktura tokenu dostępu

Tworzenie aplikacji Fast Healthcare Interoperability Resources (FHIR®) często obejmuje debugowanie problemów z dostępem. Jeśli klient nie ma dostępu do usługi Azure API for FHIR, warto zrozumieć strukturę tokenu dostępu i sposób jego dekodowania w celu sprawdzenia zawartości (oświadczeń) tokenu.

Serwery FHIR zwykle oczekują tokenu internetowego JSON (JWT, czasami wymawiane "jot"). Składa się z następujących trzech części.

Część 1. Nagłówek, który może wyglądać następująco:

    {
      "alg": "HS256",
      "typ": "JWT"
    }

Część 2: Sekcja danych (oświadczenia), na przykład:

    {
     "oid": "123",
     "iss": "https://issuerurl",
     "iat": 1422779638,
     "roles": [
        "admin"
      ]
    }

Część 3. Podpis, który jest obliczany przez łączenie zakodowanej zawartości nagłówka i ładunku base64 oraz obliczanie skrótu kryptograficznego na podstawie algorytmu (alg) określonego w nagłówku. Serwer może uzyskać klucze publiczne od dostawcy tożsamości i sprawdzić, czy ten token został wystawiony przez określonego dostawcę tożsamości i nie został naruszony.

Pełny token składa się z zakodowanych w adresie URL Base64 wersji tych trzech segmentów. Trzy segmenty są łączone i oddzielone elementem ..

Przykład tokenu jest następujący.

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvaWQiOiIxMjMiLCAiaXNzIjoiaHR0cHM6Ly9pc3N1ZXJ1cmwiLCJpYXQiOjE0MjI3Nzk2MzgsInJvbGVzIjpbImFkbWluIl19.gzSraSYS8EXBxLN_oWnFSRgCzcmJmMjLiuyu5CSpyHI

Token można dekodować i sprawdzać za pomocą narzędzi, takich jak https://jwt.ms. Wynikiem dekodowania tokenu jest:

{
  "alg": "HS256",
  "typ": "JWT"
}.{
  "oid": "123",
  "iss": "https://issuerurl",
  "iat": 1422779638,
  "roles": [
    "admin"
  ]
}.[Signature]

Uzyskiwanie tokenu dostępu

Jak wspomniano, istnieje kilka sposobów uzyskania tokenu z identyfikatora Entra firmy Microsoft, opisane szczegółowo w dokumentacji dewelopera firmy Microsoft Entra.

Użyj jednego z następujących protokołów uwierzytelniania.

Istnieją inne odmiany uzyskiwania tokenu (na przykład ze względu na przepływ). Aby uzyskać szczegółowe informacje, zapoznaj się z dokumentacją firmy Microsoft Entra . W przypadku korzystania z interfejsu API platformy Azure dla standardu FHIR istnieją skróty do uzyskiwania tokenu dostępu (na przykład do celów debugowania) przy użyciu interfejsu wiersza polecenia platformy Azure.

Następne kroki

W tym dokumencie przedstawiono niektóre podstawowe pojęcia związane z zabezpieczaniem dostępu do interfejsu API platformy Azure for FHIR przy użyciu identyfikatora Entra firmy Microsoft. Aby uzyskać informacje o sposobie wdrażania usługi Azure API for FHIR, zobacz

Uwaga

FHIR® jest zastrzeżonym znakiem towarowym HL7 i jest używany z uprawnieniem HL7.