Udostępnij przez


Udzielanie dostępu do usługi FHIR przy użyciu usługi Azure Active Directory B2C

Ważne

Od 1 maja 2025 r. usługa Azure AD B2C nie będzie już dostępna do zakupu dla nowych klientów. Dowiedz się więcej w naszych często zadawanych pytaniach.

Uwaga

W tym artykule opisano sposób korzystania z usługi Azure AD B2C, która nie jest już dostępna do zakupu dla nowych klientów. Zapoznaj się z artykułem Używanie identyfikatora zewnętrznego firmy Microsoft Entra w celu udzielenia dostępu do usługi FHIR, aby uzyskać informacje na temat korzystania z identyfikatora zewnętrznego Firmy Microsoft Entra jako dostawcy tożsamości dla usługi FHIR.

Usługa FHIR jest zabezpieczona przez Microsoft Entra ID. Ponadto organizacje opieki zdrowotnej mogą również korzystać z usługi Azure Active Directory B2C (Azure AD B2C ) z usługą FHIR® w usługach Azure Health Data Services w celu udzielenia dostępu do swoich aplikacji i użytkowników za pośrednictwem dostawców tożsamości innych firm.

Twórz instancję Azure AD B2C dla usługi FHIR

Tworzenie dzierżawy Azure AD B2C dla usługi FHIR umożliwia skonfigurowanie bezpiecznej infrastruktury do zarządzania tożsamościami użytkowników w aplikacjach opieki zdrowotnej.

Jeśli już utworzyłeś dzierżawcę Azure AD B2C, możesz przejść do sekcji "Wdrażanie usługi FHIR za pomocą usługi Azure AD B2C" (Deploy the FHIR service with Azure AD B2C).

Wdróż dzierżawę usługi Azure AD B2C przy użyciu szablonu ARM

Automatyczne wdrażanie szablonu ARM w subskrypcji Azure przy użyciu PowerShell lub Azure CLI. Aby uzyskać więcej informacji na temat składni, właściwości i użycia szablonu, zobacz Deploy an instance of Azure Active Directory B2C (Wdrażanie wystąpienia usługi Azure Active Directory B2C).

Uruchom kod w usłudze Azure Cloud Shell lub lokalnie w PowerShell w Visual Studio Code, aby wdrożyć usługę FHIR w dzierżawie Azure AD B2C.

  1. Użyj polecenia Connect-AzAccount , aby zalogować się na platformie Azure. Po zalogowaniu użyj polecenia Get-AzContext, aby zweryfikować subskrypcję i dzierżawę, której chcesz użyć. W razie potrzeby zmień subskrypcję i dzierżawę.

  2. Utwórz nową grupę zasobów (lub użyj istniejącej), pomijając krok "utwórz grupę zasobów" lub komentując wiersz rozpoczynający się od New-AzResourceGroup.

### variables
$tenantid="your tenant id"
$subscriptionid="your subscription id"
$resourcegroupname="your resource group name"
$b2cName="your b2c tenant name"

### login to azure
Connect-AzAccount -Tenant $tenantid -SubscriptionId $subscriptionid 

### create resource group
New-AzResourceGroup -Name $resourcegroupname -Location $region

### deploy the resource
New-AzResourceGroupDeployment -ResourceGroupName $resourcegroupname -TemplateUri https://raw.githubusercontent.com/Azure-Samples/azure-health-data-and-ai-samples/main/samples/fhir-aad-b2c/b2c-arm-template.json -b2cName $b2cNa

Dodaj testowego użytkownika B2C do dzierżawy usługi Azure AD B2C

Potrzebujesz testowego użytkownika B2C do powiązania z zasobem konkretnego pacjenta w usłudze FHIR, a także do sprawdzenia, czy przepływ uwierzytelniania działa zgodnie z oczekiwaniami.

  1. W witrynie Azure Portal przejdź do zasobu B2C. Wybierz Otwórz dzierżawę B2C.

    Zrzut ekranu przedstawiający zasób B2C.

  2. W okienku po lewej stronie wybierz pozycję Użytkownicy.

    Zrzut ekranu przedstawiający użytkownika domowego.

  3. Wybierz pozycję + Nowy użytkownik.

    Zrzut ekranu przedstawiający dodawanie nowego użytkownika.

Niestandardowy fhirUser atrybut użytkownika służy do łączenia użytkownika B2C z zasobem użytkownika w usłudze FHIR. W tym przykładzie w dzierżawie B2C jest tworzony użytkownik o nazwie Test Patient1 . W późniejszym kroku zasób pacjenta jest tworzony w usłudze FHIR. Użytkownik Test Patient1 jest połączony z zasobem pacjenta, ustawiając wartość atrybutu fhirUser na identyfikator zasobu pacjenta. Aby uzyskać więcej informacji na temat niestandardowych atrybutów użytkownika, zobacz Atrybuty niestandardowe przepływu użytkownika w usłudze Azure Active Directory B2C.

  1. Na stronie Azure AD B2C w okienku po lewej stronie wybierz pozycję Atrybuty użytkownika.

  2. Wybierz pozycję + Dodaj.

  3. W polu Nazwa wprowadź fhirUser (wrażliwe na wielkość liter).

  4. Z listy rozwijanej Typ danych wybierz pozycję Ciąg.

  5. Wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający atrybut B2C.

Tworzenie nowego przepływu użytkownika B2C

Przepływy użytkowników definiują sekwencję kroków, które użytkownicy muszą wykonać, aby się zalogować. W tym przykładzie przepływ użytkownika jest zdefiniowany w taki sposób, że po zalogowaniu się użytkownika podany token dostępu zawiera klauzulę fhirUser. Aby uzyskać więcej informacji, zobacz Tworzenie przepływów użytkownika i zasad niestandardowych w usłudze Azure Active Directory B2C.

  1. Na stronie Azure AD B2C w okienku po lewej stronie wybierz pozycję Przepływy użytkownika.

  2. Wybierz opcję + Nowy przepływ użytkownika.

    Zrzut ekranu przedstawiający przepływ użytkownika B2C.

  3. Nadaj przepływowi użytkownika nazwę unikatową dla dzierżawy B2C. Nazwa nie musi być globalnie unikatowa. W tym przykładzie nazwa przepływu użytkownika jest USER_FLOW_1. Zanotuj nazwę.

  4. Upewnij się, że logowanie e-mail jest włączone dla kont lokalnych, aby użytkownik testowy mógł się zalogować i uzyskać token dostępu dla usługi FHIR.

    Zrzut ekranu przedstawiający konfigurację przepływu użytkownika B2C.

  5. Na stronie Tworzenie przepływu użytkownika przewiń do sekcji 5. Roszczenia aplikacji, a następnie wybierz pozycję Pokaż więcej..., aby zobaczyć listę wszystkich dostępnych roszczeń.

  6. Wybierz oświadczenie fhirUser.

  7. Wybierz pozycję OK.

  8. Wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający konfigurację przepływu użytkownika B2C z oświadczeniem użytkownika FHIR.

Tworzenie nowej aplikacji zasobów B2C

Aplikacja zasobów B2C obsługuje żądania uwierzytelniania z aplikacji opieki zdrowotnej do usługi Azure Active Directory B2C.

  1. Na stronie Azure AD B2C w okienku po lewej stronie wybierz pozycję Rejestracje aplikacji.

  2. Wybierz pozycję + Nowa rejestracja.

    Zrzut ekranu przedstawiający nową aplikację B2C.

  3. Wprowadź nazwę wyświetlaną. W tym przykładzie użyto usługi FHIR.

  4. Na liście Obsługiwane typy kont wybierz pozycję Konta w dowolnym dostawcy tożsamości lub katalogu organizacyjnym (na potrzeby uwierzytelniania użytkowników za pomocą przepływów użytkownika).

  5. Z listy rozwijanej Identyfikator URI przekierowania (zalecane) wybierz pozycję *Klient publiczny/natywny (mobilny i na komputery stacjonarne). Wypełnij wartość identyfikatorem URI wywołania zwrotnego. Ten adres URI wywołania zwrotnego służy do celów testowych.

  6. W sekcji Uprawnienia wybierz pozycję Udziel zgody administratora na uprawnienia openid i offline_access.

  7. Wybierz pozycję Zarejestruj. Poczekaj na ukończenie rejestracji aplikacji. Przeglądarka automatycznie przechodzi do strony Przegląd aplikacji.

    Zrzut ekranu przedstawiający rejestrowanie aplikacji B2C.

Konfigurowanie uprawnień interfejsu API dla aplikacji

  1. Na stronie Rejestracji aplikacji w okienku po lewej stronie wybierz pozycję Manifest.

  2. Przewiń do momentu znalezienia oauth2PermissionScopes tablicy na Microsoft Graph App Manifest (New) karcie. Zastąp tablicę jedną lub kilkoma wartościami w pliku oauth2Permissions.json. Skopiuj całą tablicę lub poszczególne uprawnienia.

    Jeśli dodasz uprawnienie do listy, każdy użytkownik w tenancie B2C będzie mógł uzyskać token dostępu z uprawnieniem API. Jeśli poziom dostępu nie jest odpowiedni dla użytkownika w dzierżawie B2C, nie dodawaj go do tablicy, ponieważ nie ma możliwości ograniczenia uprawnień tylko do części użytkowników.

  3. Po wypełnieniu tablicy oauth2PermissionScopes wybierz pozycję Zapisz.

    Zrzut ekranu przedstawiający manifest aplikacji B2C.

Udostępnij web API i przypisz URI identyfikatora aplikacji

  1. Na stronie Rejestracje aplikacji w okienku po lewej stronie wybierz pozycję Udostępnij interfejs API.

  2. Wybierz opcję Dodaj.

  3. Domyślnie pole Identyfikator URI identyfikatora aplikacji jest wypełniane identyfikatorem aplikacji (klienta). W razie potrzeby zmień wartość. W tym przykładzie wartość jest fhir.

  4. Wybierz pozycję Zapisz.

    Zrzut ekranu przedstawiający interfejs API aplikacji B2C.

  5. Na stronie Rejestracje aplikacji w okienku po lewej stronie wybierz Uprawnienia API.

  6. Wybierz pozycję + Dodaj uprawnienie.

    Zrzut ekranu przedstawiający uprawnienia interfejsu API B2C.

  7. W okienku Żądanie uprawnień API wybierz pozycję API używane przez moją organizację.

  8. Wybierz aplikację zasobów z listy.

    Zrzut ekranu przedstawiający uprawnienia interfejsu API B2C z używanymi interfejsami API.

  9. W okienku Żądania uprawnień API w sekcji Pacjent wybierz co najmniej jedno uprawnienie. W tym przykładzie wybrano uprawnienie patient.all.read, co oznacza, że użytkownik, który żąda tokenu dostępu z zakresem patient.all.read, ma uprawnienia do odczytu (patient.all.read) dla wszystkich zasobów FHIR (pacjent.all.odczyt) w przedziale Pacjenta (patient.all.odczyt). Aby uzyskać więcej informacji, zobacz Przedział Pacjenta.

  10. Wybierz pozycję Dodaj uprawnienia.

    Zrzut ekranu przedstawiający uprawnienia interfejsu API B2C z dodanymi uprawnieniami.

  11. Na stronie Uprawnienia interfejsu API w sekcji Skonfigurowane uprawnienia wybierz pozycję Udziel zgody administratora.

    Zrzut ekranu przedstawiający uprawnienia interfejsu API B2C w celu uzyskania zgody administratora.

Wdrażanie usługi FHIR przy użyciu usługi Azure Active Directory B2C jako dostawcy tożsamości

Wdrażanie usługi FHIR przy użyciu usługi Azure Active Directory B2C jako dostawcy tożsamości umożliwia usłudze FHIR uwierzytelnianie użytkowników na podstawie poświadczeń usługi Azure AD B2C, zapewniając, że tylko autoryzowani użytkownicy mogą uzyskiwać dostęp do poufnych informacji o pacjentach

Uzyskaj uprawnienia B2C i ID klienta

Użyj parametrów authority i identyfikatora klienta (lub identyfikatora aplikacji), aby skonfigurować usługę FHIR do używania dzierżawcy Azure AD B2C jako dostawcy tożsamości.

  1. Utwórz ciąg autoryzacji przy użyciu nazwy dzierżawy B2C i nazwy przepływu użytkownika.

    https://<YOUR_B2C_TENANT_NAME>.b2clogin.com/<YOUR_B2C_TENANT_NAME>.onmicrosoft.com/<YOUR_USER_FLOW_NAME>/v2.0
    
  2. Przetestuj ciąg autoryzacyjny, wysyłając żądanie do punktu końcowego .well-known/openid-configuration. Wprowadź ciąg w przeglądarce, aby potwierdzić przejście do pliku JSON konfiguracji OpenId. Jeśli nie uda się załadować pliku JSON konfiguracji OpenId, upewnij się, że nazwa dzierżawy B2C i nazwa przepływu użytkownika są poprawne.

    https://<YOUR_B2C_TENANT_NAME>.b2clogin.com/<YOUR_B2C_TENANT_NAME>.onmicrosoft.com/<YOUR_USER_FLOW_NAME>/v2.0/.well-known/openid-configuration
    
  3. Pobierz identyfikator klienta ze strony przeglądowej aplikacji zasobów.

    Zrzut ekranu przedstawiający stronę przeglądu aplikacji B2C.

Wdrażanie usługi FHIR przy użyciu szablonu usługi ARM

Użyj szablonu usługi ARM, aby uprościć wdrażanie usługi FHIR. Użyj programu PowerShell lub interfejsu wiersza polecenia platformy Azure, aby wdrożyć szablon usługi ARM w subskrypcji platformy Azure.

Uruchom kod w usłudze Azure Cloud Shell lub lokalnie w PowerShell w Visual Studio Code, aby wdrożyć usługę FHIR w dzierżawie Azure AD B2C.

  1. Użyj polecenia Connect-AzAccount , aby zalogować się na platformie Azure. Użyj polecenia Get-AzContext, aby zweryfikować subskrypcję i tenant, którego chcesz użyć. W razie potrzeby zmień subskrypcję i dzierżawę.

  2. Utwórz nową grupę zasobów (lub użyj istniejącej), pomijając krok "utwórz grupę zasobów" lub komentując wiersz rozpoczynający się od New-AzResourceGroup.

### variables
$tenantid="your tenant id"
$subscriptionid="your subscription id"
$resourcegroupname="your resource group name"
$region="your desired region"
$workspacename="your workspace name"
$fhirServiceName="your fhir service name"
$smartAuthorityUrl="your authority (from previous step)"
$smartClientId="your client id (from previous step)"

### login to azure
Connect-AzAccount 
#Connect-AzAccount SubscriptionId $subscriptionid
Set-AzContext -Subscription $subscriptionid
Connect-AzAccount -Tenant $tenantid -SubscriptionId $subscriptionid
#Get-AzContext 

### create resource group
New-AzResourceGroup -Name $resourcegroupname -Location $region

### deploy the resource
New-AzResourceGroupDeployment -ResourceGroupName $resourcegroupname -TemplateUri https://raw.githubusercontent.com/Azure-Samples/azure-health-data-and-ai-samples/main/samples/fhir-aad-b2c/fhir-service-arm-template.json -tenantid $tenantid -region $region -workspaceName $workspacename -fhirServiceName $fhirservicename -smartAuthorityUrl $smartAuthorityUrl -smartClientId $smartClientId

Sprawdzanie, czy użytkownicy usługi Azure AD B2C mogą uzyskiwać dostęp do zasobów FHIR

Proces weryfikacji obejmuje utworzenie zasobu pacjenta w usłudze FHIR, połączenie zasobu pacjenta z użytkownikiem usługi Azure AD B2C i skonfigurowanie klienta REST w celu uzyskania tokenu dostępu dla użytkowników B2C. Po zakończeniu procesu weryfikacji można pobrać dane pacjenta, korzystając z konta testowego B2C.

Uzyskiwanie tokenu dostępu przy użyciu klienta REST

Aby uzyskać odpowiedni dostęp do usługi FHIR, zobacz Access the FHIR service using REST Client (Uzyskiwanie dostępu do usługi FHIR przy użyciu klienta REST).

Gdy wykonasz kroki opisane w sekcji Pobieranie danych pacjenta FHIR, żądanie zwraca pustą odpowiedź, ponieważ usługa FHIR jest nowa i nie ma żadnych zasobów pacjentów.

Tworzenie zasobu pacjenta w usłudze FHIR

Należy pamiętać, że użytkownicy w tenancie B2C nie mogą odczytać żadnych zasobów, dopóki użytkownik (taki jak pacjent lub lekarz) nie będzie połączony z zasobem FHIR. Użytkownik posiadający rolę FhirDataWriter lub FhirDataContributor w usłudze Microsoft Entra ID, gdzie jest hostowana usługa FHIR, musi wykonać ten krok.

  1. Utwórz pacjenta z określonym identyfikatorem, zmieniając metodę na PUT i wykonując żądanie na {{fhirurl}}/Patient/1 przy użyciu tej treści:
{
    "resourceType": "Patient",
    "id": "1",
    "name": [
        {
            "family": "Patient1",
            "given": [
                "Test"
            ]
        }
    ]
}
  1. Sprawdź, czy pacjent jest tworzony, zmieniając metodę z powrotem na GET i sprawdzając, czy żądanie {{fhirurl}}/Patient zwraca nowo utworzonego pacjenta.

Utwórz jawne łącze między użytkownikiem testowym w dzierżawie B2C a zasobem w usłudze FHIR. Utwórz link przy użyciu atrybutów rozszerzenia w programie Microsoft Graph. Aby uzyskać więcej informacji, zobacz Definiowanie atrybutów niestandardowych w usłudze Azure Active Directory B2C.

  1. Przejdź do tenant B2C. W okienku po lewej stronie wybierz pozycję Rejestracje aplikacji.

  2. Wybierz pozycję Wszystkie aplikacje.

  3. Wybierz aplikację z prefiksem b2c-extensions-app.

    Zrzut ekranu przedstawiający listę aplikacji B2C.

  4. Zanotuj wartość identyfikatora aplikacji (klienta).

    Zrzut ekranu przedstawiający aplikację rozszerzeń B2C.

  5. Przejdź z powrotem do strony głównej dzierżawy B2C, w okienku po lewej stronie wybierz pozycję Użytkownicy.

    Zrzut ekranu przedstawiający użytkownika głównego B2C.

  6. Wybierz Test Patient1.

    Zrzut ekranu przedstawiający listę użytkowników B2C.

  7. Zanotuj wartość Identyfikatora obiektu.

    Zrzut ekranu przedstawiający identyfikator użytkownika B2C.

  8. Otwórz Eksploratora programu Microsoft Graph. Zaloguj się przy użyciu użytkownika przypisanego do roli administratora globalnego dla dzierżawy B2C. (Dobrym pomysłem jest utworzenie nowego użytkownika administratora w dzierżawie B2C w celu zarządzania użytkownikami w dzierżawie).

    Zrzut ekranu przedstawiający logowanie do programu Graph.

  9. Wybierz awatar użytkownika, a następnie wybierz pozycję Zgoda na uprawnienia.

    Zrzut ekranu przedstawiający zgodę programu Graph dla użytkownika testowego.

  10. Przewiń do pozycji Użytkownik. Zgoda na User.ReadWrite.All. To uprawnienie umożliwia zaktualizowanie użytkownika Test Patient1 przy użyciu wartości fhirUser wartości roszczenia.

    Zrzut ekranu przedstawiający zgodę programu Graph dla oświadczenia fhirUser.

  11. Po zakończeniu procesu wyrażania zgody zaktualizuj użytkownika. Potrzebujesz identyfikatora aplikacji b2c-extensions-app (klienta) oraz identyfikatora obiektu użytkownika.

    • Zmień metodę na PATCH.

    • Zmień adres URL na https://graph.microsoft.com/v1.0/users/{USER_OBJECT_ID}.

    • PATCH Utwórz treść. PATCH Treść składa się z jednej pary klucz-wartość, gdzie format klucza to extension_{B2C_EXTENSION_APP_ID_NO_HYPHENS}_fhirUser, a wartość to w pełni kwalifikowany identyfikator zasobu FHIR dla pacjenta https://{YOUR_FHIR_SERVICE}.azurehealthcareapis.com/Patient/1".

    Aby uzyskać więcej informacji, zobacz Zarządzanie atrybutami rozszerzenia za pomocą programu Microsoft Graph.

  12. Po sformatowaniu żądania wybierz pozycję Uruchom zapytanie. Poczekaj na pomyślną odpowiedź, która potwierdza, że użytkownik w dzierżawcy B2C jest połączony z zasobem pacjenta w usłudze FHIR.

    Zrzut ekranu przedstawiający poprawkę programu Graph.

Konfiguracja uzyskiwania tokenu dostępu dla użytkowników B2C

Uzyskaj token dostępu w celu przetestowania przepływu uwierzytelniania.

Uwaga

Element grant_type z authorization_code służy do uzyskiwania tokenu dostępu. Dostępne są narzędzia online oferujące intuicyjne interfejsy do testowania i programowania interfejsów API.

  1. Uruchom aplikację do testowania interfejsu API.

  2. Wybierz kartę Autoryzacja w narzędziu.

  3. Z listy rozwijanej Typ wybierz pozycję OAuth 2.0.

  4. Wprowadź następujące wartości.

    • Adres URL wywołania zwrotnego. Ta wartość jest konfigurowana podczas tworzenia aplikacji zasobów B2C.

    • Adres URL uwierzytelniania. Tę wartość można utworzyć przy użyciu nazwy dzierżawy B2C i nazwy przepływu użytkownika.

      https://{YOUR_B2C_TENANT_NAME}.b2clogin.com/{YOUR_B2C_TENANT_NAME}.onmicrosoft.com/{YOUR_USER_FLOW_NAME}/oauth2/v2.0/authorize
      
    • Adres URL tokenu dostępu. Tę wartość można utworzyć przy użyciu nazwy dzierżawy B2C i nazwy przepływu użytkownika.

      https://{YOUR_B2C_TENANT_NAME}.b2clogin.com/{YOUR_B2C_TENANT_NAME}.onmicrosoft.com/{YOUR_USER_FLOW_NAME}/oauth2/v2.0/token
      
    • Identyfikator klienta. Ta wartość to identyfikator aplikacji (klienta) aplikacji zasobów B2C.

      {YOUR_APPLICATION_ID}
      
    • Zakres. Ta wartość jest definiowana w aplikacji zasobów B2C w sekcji Uwidacznianie interfejsu API . Zakres udzielonego pozwolenia to patient.all.read. Żądanie zakresu musi być w pełni kwalifikowanym adresem URL, na przykład https://testb2c.onmicrosoft.com/fhir/patient.all.read.

  5. Skopiuj w pełni kwalifikowany zakres z sekcji Uwidaczniaj interfejs API aplikacji zasobów B2C.

    {YOUR_APPLICATION_ID_URI}/patient.all.read
    

Pobierz zasób pacjenta za pomocą użytkownika B2C

Sprawdź, czy użytkownicy usługi Azure AD B2C mogą uzyskiwać dostęp do zasobów FHIR.

  1. Po skonfigurowaniu autoryzacji do uruchomienia przepływu użytkownika B2C wybierz Pobierz nowy token dostępu, aby uzyskać token dostępu.

  2. Zaloguj się przy użyciu danych logowania Testowego Pacjenta.

  3. Skopiuj token dostępu i użyj go podczas pobierania danych pacjenta

Wykonaj kroki opisane w sekcji Pobieranie danych pacjenta FHIR, aby pobrać zasób pacjenta.

  1. Ustaw metodę na GET, wprowadź w pełni kwalifikowany adres URL usługi FHIR, a następnie dodaj ścieżkę /Patient.

  2. Użyj pobranego tokenu w parametrze autoryzacji.

  3. Wybierz pozycję Wyślij żądanie.

  4. Sprawdź, czy odpowiedź zawiera zasób dotyczący jednego pacjenta.

Następne kroki

Konfigurowanie wielu dostawców tożsamości

Rozwiązywanie problemów z konfiguracją dostawcy tożsamości

Uwaga

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