Verwenden von Azure Active Directory B2C zum Gewähren des Zugriffs auf den FHIR-Dienst
Organisationen im Gesundheitswesen können Azure Active Directory B2C (Azure AD B2C) mit dem FHIR®-Dienst in Azure Health Data Services verwenden, um Zugriff auf ihre Anwendungen und Benutzer*innen zu gewähren.
Erstellen eines Azure AD B2C-Mandanten für den FHIR-Dienst
Das Erstellen eines Azure AD B2C-Mandanten für den FHIR-Dienst richtet eine sichere Infrastruktur für die Verwaltung von Benutzeridentitäten in Ihren Gesundheitsanwendungen ein.
Wenn Sie bereits einen Azure AD B2C-Mandanten erstellt haben, können Sie fortfahren mit FHIR-Dienst mit Azure AD B2C bereitstellen.
Bereitstellen eines Azure AD B2C-Mandanten mithilfe einer ARM-Vorlage
Verwenden Sie PowerShell oder Azure CLI, um die ARM-Vorlage programmgesteuert in einem Azure-Abonnement bereitzustellen. Weitere Informationen zu Syntax, Eigenschaften und Verwendung der Vorlage finden Sie unter Bereitstellen einer Instanz von Azure Active Directory B2C.
Führen Sie den Code in Azure Cloud Shell oder in PowerShell lokal in Visual Studio Code aus, um den FHIR-Dienst im Azure AD B2C-Mandanten bereitzustellen.
Verwenden Sie
Connect-AzAccount
, um sich bei Azure anzumelden. Verwenden Sie nach der AnmeldungGet-AzContext
, um das Abonnement und den Mandanten zu überprüfen, die Sie verwenden möchten. Ändern Sie das Abonnement und den Mandanten bei Bedarf.Erstellen Sie eine neue Ressourcengruppe (oder verwenden Sie eine vorhandene, indem Sie den Schritt „Ressourcengruppe erstellen“ überspringen oder die Zeile beginnend mit
New-AzResourceGroup
auskommentieren).
### 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
Hinzufügen von B2C-Testbenutzer*innen zum Azure AD B2C-Mandanten
Sie benötigen B2C-Testbenutzer*innen, um eine bestimmte Patientenressource im FHIR-Dienst zuzuordnen und zu überprüfen, ob der Authentifizierungsflow wie erwartet funktioniert.
Wechseln Sie im Azure-Portal zur B2C-Ressource. Wählen Sie B2C-Mandant öffnen aus.
Wählen Sie im linken Bereich Benutzer*innen aus.
Wählen Sie + Neue Benutzer*innen aus.
Verknüpfen von B2C-Benutzer*innen mit dem benutzerdefinierten fhirUser
-Benutzerattribut
Das benutzerdefinierte fhirUser
-Benutzerattribut wird verwendet, um B2C-Benutzer*innen mit einer Benutzerressource im FHIR-Dienst zu verknüpfen. In diesem Beispiel wird ein Benutzer mit dem Namen Testpatient1 im B2C-Mandanten erstellt. In einem späteren Schritt wird eine Patientenressource im FHIR-Dienst erstellt. Der/die Testpatient1-Benutzer*in wird mit der Patientenressource verknüpft, indem der fhirUser
-Attributwert auf den Patientenressourcenbezeichner festgelegt wird. Weitere Informationen zu benutzerdefinierten Benutzerattributen finden Sie unter Benutzerflow für benutzerdefinierte Attribute in Azure Active Directory B2C.
Wählen Sie auf der Seite Azure AD B2C im linken Bereich Benutzerattribute aus.
Wählen Sie + Hinzufügen aus.
Geben Sie im Feld Name den Wert fhirUser ein (Groß-/Kleinschreibung beachten).
Wählen Sie in der Dropdownliste Datentyp die Option Zeichenfolge aus.
Wählen Sie Erstellen.
Erstellen eines neuen B2C-Benutzerflows
Benutzerflows definieren die Abfolge der Schritte, die Benutzer*innen ausführen müssen, um sich anzumelden. In diesem Beispiel wird ein Benutzerflow so definiert, dass bei der Anmeldung von Benutzern das bereitgestellte Zugriffstoken den fhirUser
-Anspruch enthält. Weitere Informationen finden Sie unter Erstellen von Benutzerflows und benutzerdefinierten Richtlinien in Azure Active Directory B2C.
Wählen Sie auf der Seite Azure AD B2C im linken Bereich Benutzerflows aus.
Wählen Sie +Neuer Benutzerflowaus.
Weisen Sie dem Benutzerflow einen für den B2C-Mandanten eindeutigen Namen zu. Der Name muss nicht global eindeutig sein. In diesem Beispiel ist der Name des Benutzerflows USER_FLOW_1. Notieren Sie sich den Namen.
Stellen Sie sicher, dass die E-Mail-Anmeldung für lokale Konten aktiviert ist, damit sich Testbenutzer*innen anmelden und ein Zugriffstoken für den FHIR-Dienst abrufen kann.
Scrollen Sie auf der Seite Benutzerflow erstellen zum Abschnitt 5. Anwendungsansprüche, und wählen Sie dann Mehr anzeigen... aus, um eine Liste aller verfügbaren Ansprüche anzuzeigen.
Wählen Sie den Anspruch fhirUser aus.
Klicken Sie auf OK.
Wählen Sie Erstellen.
Erstellen einer neuen B2C-Ressourcenanwendung
Die B2C-Ressourcenanwendung verarbeitet Authentifizierungsanforderungen Ihrer Gesundheitsanwendung an Azure Active Directory B2C.
Wählen Sie auf der Seite Azure AD B2C im linken Bereich App-Registrierungen aus.
Wählen Sie + Neue Registrierung aus.
Geben Sie einen Anzeigenamen ein. In diesem Beispiel wird der FHIR-Dienst verwendet.
Wählen Sie in der Liste Unterstützte Kontotypen die Option Konten in einem beliebigen Identitätsanbieter oder Organisationsverzeichnis (zum Authentifizieren von Benutzer*innen mit Benutzerflows) aus.
Wählen Sie in der Dropdownliste Umleitungs-URI (empfohlen) die Option *Öffentlicher Client/nativ (Mobile und Desktop) aus. Füllen Sie den Wert mit dem Postman-Rückruf-URI https://oauth.pstmn.io/v1/callback auf. Dieser Rückruf-URI dient zu Testzwecken.
Wählen Sie im Abschnitt Berechtigungen die Option Administratoreinwilligung für openid- und offline_access-Berechtigungen erteilen aus.
Klicken Sie auf Registrieren. Warten Sie, bis die Anwendungsregistrierung abgeschlossen ist. Der Browser navigiert automatisch zur Seite Übersicht.
Konfigurieren von API-Berechtigungen für die App
Wählen Sie auf der Seite „App-Registrierungen im linken Bereich Manifest aus.
Scrollen Sie, bis Sie das
oauth2Permissions
-Array finden. Ersetzen Sie das Array durch einen oder mehrere Werte in der Datei oauth2Permissions.json. Kopieren Sie das gesamte Array oder einzelne Berechtigungen.Wenn Sie der Liste eine Berechtigung hinzufügen, können alle Benutzer*innen im B2C-Mandanten ein Zugriffstoken mit der API-Berechtigung abrufen. Wenn eine Zugriffsebene für einen Benutzer innerhalb des B2C-Mandanten nicht geeignet ist, fügen Sie sie nicht dem Array hinzu, da es keine Möglichkeit gibt, Berechtigungen auf eine Teilmenge von Benutzern zu beschränken.
Nachdem das oauth2Permissions-Array aufgefüllt wurde, wählen Sie Speichern aus.
Verfügbarmachen der Web-API und Zuweisen eines Anwendungs-ID-URI
Wählen Sie auf der Seite „App-Registrierungen im linken Bereich die Option API verfügbar machen aus.
Wählen Sie Hinzufügen aus.
Standardmäßig wird das Feld Anwendungs-ID-URI mit der Anwendungs-ID (Client-ID) aufgefüllt. Ändern Sie den Wert bei Bedarf. In diesem Beispiel ist der Wert fhir.
Wählen Sie Speichern.
Wählen Sie auf der Seite „App-Registrierungen im linken Bereich API-Berechtigungen aus.
Wählen Sie + Berechtigung hinzufügen aus.
Wählen Sie im Bereich API-Berechtigungen anfordern die Option Von meiner Organisation verwendete APIs aus.
Wählen Sie die Ressourcenanwendung aus der Liste aus.
Wählen Sie im Bereich API-Berechtigungen anfordern im Abschnitt Patient*in mindestens eine Berechtigung aus. In diesem Beispiel wird die Berechtigung
patient.all.read
ausgewählt, was bedeutet, dass Benutzer*innen, die ein Zugriffstoken mit dem Bereichpatient.all.read
anfordern, über Leseberechtigungen (patient.all.read) für alle FHIR-Ressourcen (patient.all.read) im Patientendepot (patient.all.read) verfügen. Weitere Informationen finden Sie unter Patientendepot.Wählen Sie Berechtigungen hinzufügen aus.
Wählen Sie auf der Seite API-Berechtigungen im Abschnitt Konfigurierte Berechtigungen die Option Administratoreinwilligung erteilen aus.
Bereitstellen des FHIR-Diensts mit Azure Active Directory B2C als Identitätsanbieter
Durch die Bereitstellung des FHIR-Diensts mit Azure Active Directory B2C als Identitätsanbieter kann der FHIR-Dienst Benutzer*innen basierend auf ihren Azure AD B2C-Anmeldeinformationen authentifizieren und sicherstellen, dass nur autorisierte Benutzer*innen auf vertrauliche Patienteninformationen zugreifen können
Abrufen der B2C-Autorität und Client-ID
Verwenden Sie die Parameter für Autorität und Client-ID (oder Anwendungs-ID ), um den FHIR-Dienst für die Verwendung eines Azure AD B2C-Mandanten als Identitätsanbieter zu konfigurieren.
Erstellen Sie die Autoritätszeichenfolge mithilfe des Namens des B2C-Mandanten und des Namens des Benutzerflows.
https://<YOUR_B2C_TENANT_NAME>.b2clogin.com/<YOUR_B2C_TENANT_NAME>.onmicrosoft.com/<YOUR_USER_FLOW_NAME>/v2.0
Testen Sie die Autoritätszeichenfolge, indem Sie eine Anforderung an den
.well-known/openid-configuration
-Endpunkt senden. Geben Sie die Zeichenfolge in einen Browser ein, um zu bestätigen, dass er zur JSON-Datei der OpenId-Konfiguration navigiert. Wenn der JSON-Code der OpenId-Konfiguration nicht geladen werden kann, stellen Sie sicher, dass der B2C-Mandantenname und der Benutzerflowname korrekt sind.https://<YOUR_B2C_TENANT_NAME>.b2clogin.com/<YOUR_B2C_TENANT_NAME>.onmicrosoft.com/<YOUR_USER_FLOW_NAME>/v2.0/.well-known/openid-configuration
Rufen Sie die Client-ID aus der Übersicht der Ressourcenanwendung ab.
Bereitstellen des FHIR-Diensts mithilfe einer ARM-Vorlage
Verwenden Sie eine ARM-Vorlage, um die Bereitstellung des FHIR-Diensts zu vereinfachen. Verwenden Sie PowerShell oder Azure CLI, um die ARM-Vorlage in einem Azure-Abonnement bereitzustellen.
Führen Sie den Code in Azure Cloud Shell oder in PowerShell lokal in Visual Studio Code aus, um den FHIR-Dienst im Azure AD B2C-Mandanten bereitzustellen.
Verwenden Sie
Connect-AzAccount
, um sich bei Azure anzumelden. Verwenden SieGet-AzContext
, um das Abonnement und den Mandanten zu überprüfen, die Sie verwenden wollen. Ändern Sie das Abonnement und den Mandanten bei Bedarf.Erstellen Sie eine neue Ressourcengruppe (oder verwenden Sie eine vorhandene, indem Sie den Schritt „Ressourcengruppe erstellen“ überspringen oder die Zeile beginnend mit
New-AzResourceGroup
auskommentieren).
### 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
Überprüfen, ob Azure AD B2C-Benutzer*innen auf FHIR-Ressourcen zugreifen können
Der Validierungsprozess umfasst das Erstellen einer Patientenressource im FHIR-Dienst, das Verknüpfen der Patientenressource mit dem/der Azure AD B2C-Benutzer*in und das Konfigurieren von Postman zum Abrufen eines Zugriffstokens für B2C-Benutzer*innen. Nach Abschluss des Überprüfungsprozesses können Sie die Patientenressource mithilfe von B2C-Testbenutzer*innen abrufen.
Ausführen von Postman zum Abrufen eines Zugriffstokens
Führen Sie die Postman-Anwendung lokal oder in einem Webbrowser aus. Schritte zum Erhalt des richtigen Zugriffs auf den FHIR-Dienst finden Sie unter Zugriff auf den FHIR-Dienst mittels Postman.
Wenn Sie die Schritte im Abschnitt Abrufen der FHIR-Ressource ausführen, gibt die Anforderung eine leere Antwort zurück, da der FHIR-Dienst neu ist und keine Patientenressourcen enthält.
Erstellen einer Patientenressource im FHIR-Dienst
Es ist wichtig zu beachten, dass Benutzer im B2C-Mandanten keine Ressourcen lesen können, bis der Benutzer (z. B. ein Patient oder ein Arzt) mit einer FHIR-Ressource verknüpft ist. Benutzer*innen mit der Rolle FhirDataWriter
oder FhirDataContributor
in Microsoft Entra ID, wo der FHIR-Dienst als Mandant vorhanden ist, müssen diesen Schritt ausführen.
- Erstellen Sie Patient*innen mit einem bestimmten Bezeichner, indem Sie die Methode auf
PUT
ändern und eine Anforderung an{{fhirurl}}/Patient/1
mit diesem Textkörper ausführen:
{
"resourceType": "Patient",
"id": "1",
"name": [
{
"family": "Patient1",
"given": [
"Test"
]
}
]
}
- Überprüfen Sie, ob die Patient*innen erstellt wurden, indem Sie die Methode wieder nach
GET
ändern und überprüfen, ob eine Anforderung an{{fhirurl}}/Patient
die neu erstellten Patient*innen zurückgibt.
Verknüpfen der Patientenressource mit Azure AD B2C-Benutzer*innen
Erstellen Sie eine explizite Verknüpfung zwischen dem Testbenutzer im B2C-Mandanten und der Ressource im FHIR-Dienst. Erstellen Sie den Link mithilfe von Erweiterungsattributen in Microsoft Graph. Weitere Informationen finden Sie unter Definieren benutzerdefinierter Attribute in Azure Active Directory B2C.
Wechseln Sie zum B2C-Mandanten. Wählen Sie im linken Bereich App-Registrierungen aus.
Wählen Sie Alle Anwendungen aus.
Wählen Sie die Anwendung mit dem Präfix b2c-extensions-app aus.
Notieren Sie sich den Wert von Anwendungs-ID (Client-ID).
Navigieren Sie zurück zur Homepage des B2C-Mandanten, und wählen Sie im linken Bereich Benutzer*innen aus.
Wählen Sie Testpatient1 aus.
Notieren Sie sich den Objekt-ID-Wert.
Öffnen Sie den Microsoft Graph-Tester. Melden Sie sich mit Benutzer*innen an, welche die Rolle „Globaler Administrator“ für den B2C-Mandanten zugewiesen haben. (Es ist ratsam, neue Administratorbenutzer*innen im B2C-Mandanten zu erstellen, um Benutzer*innen im Mandanten zu verwalten.)
Wählen Sie den Avatar für den/die Benutzer*in aus, und wählen Sie dann Berechtigungen zustimmen aus.
Scrollen Sie zu Benutzer*in. Einwilligung zu User.ReadWrite.All. Mit dieser Berechtigung können Sie Testpatient1-Benutzer*innen mit dem
fhirUser
-Anspruchswert aktualisieren.Aktualisieren Sie Benutzer*innen nach Abschluss des Zustimmungsprozesses. Sie benötigen die b2c-extensions-app-Anwendungs-ID (Client-ID) und die Benutzerobjekt-ID.
Ändern Sie die Methode in
PATCH
.Ändern Sie die URL in https://graph.microsoft.com/v1.0/users/{USER_OBJECT_ID}.
Erstellen Sie den
PATCH
-Textkörper. EinPATCH
-Textkörper ist ein einzelnes Schlüssel/Wert-Paar, wobei das Schlüsselformatextension_{B2C_EXTENSION_APP_ID_NO_HYPHENS}_fhirUser
und der Wert die vollqualifizierte FHIR-Ressourcen-ID für Patient*innenhttps://{YOUR_FHIR_SERVICE}.azurehealthcareapis.com/Patient/1"
ist.
Weitere Informationen finden Sie unter Verwalten von Erweiterungsattributen über Microsoft Graph.
Nachdem die Anforderung formatiert wurde, wählen Sie Abfrage ausführen aus. Warten Sie auf eine erfolgreiche Antwort, die bestätigt, dass Benutzer*innen im B2C-Mandanten mit der Patientenressource im FHIR-Dienst verknüpft sind.
Konfigurieren von Postman zum Abrufen eines Zugriffstokens für B2C-Benutzer*innen
Rufen Sie ein Zugriffstoken zum Testen des Authentifizierungsflows ab.
Starten Sie die Postman-Anwendung, und erstellen Sie dann eine neue leere Sammlung. In diesem Beispiel heißt die Sammlung FHIR-Patient*in.
Wählen Sie in der Sammlungsübersicht die Registerkarte Autorisierung aus.
Wählen Sie in der Dropdownliste Typ die Option OAuth 2.0 aus.
Scrollen Sie zum Abschnitt Neues Token konfigurieren, und geben Sie die folgenden Werte ein.
Rückruf-URL. Dieser Wert wird konfiguriert, wenn die B2C-Ressourcenanwendung erstellt wird.
https://oauth.pstmn.io/v1/callback
Authentifizierungs-URL. Dieser Wert kann mithilfe des Namens des B2C-Mandanten und dem Namen des Benutzerflows erstellt werden.
https://{YOUR_B2C_TENANT_NAME}.b2clogin.com/{YOUR_B2C_TENANT_NAME}.onmicrosoft.com/{YOUR_USER_FLOW_NAME}/oauth2/v2.0/authorize
Zugriffstoken-URL. Dieser Wert kann mithilfe des Namens des B2C-Mandanten und dem Namen des Benutzerflows erstellt werden.
https://{YOUR_B2C_TENANT_NAME}.b2clogin.com/{YOUR_B2C_TENANT_NAME}.onmicrosoft.com/{YOUR_USER_FLOW_NAME}/oauth2/v2.0/token
Client-ID. Dieser Wert ist die Anwendungs-ID (Client-ID) der B2C-Ressourcenanwendung.
{YOUR_APPLICATION_ID}
Umfang. Dieser Wert wird in der B2C-Ressourcenanwendung im Abschnitt API verfügbar machen definiert. Die gewährte Bereichsberechtigung ist
patient.all.read
. Die Bereichsanforderung muss eine vollqualifizierte URL sein, z. B.https://testb2c.onmicrosoft.com/fhir/patient.all.read
.
Kopieren Sie den vollqualifizierten Bereich aus dem Abschnitt API verfügbar machen der B2C-Ressourcenanwendung.
{YOUR_APPLICATION_ID_URI}/patient.all.read
Abrufen der Patientenressource mithilfe von B2C-Benutzer*innen
Stellen Sie sicher, dass Azure AD B2C-Benutzer*innen auf FHIR-Ressourcen zugreifen können.
Wenn die Autorisierungskonfiguration in Postman so eingerichtet ist, dass der B2C-Benutzerflow gestartet wird, wählen Sie Neues Zugriffstoken abrufen aus, um ein Zugriffstoken abzurufen.
Verwenden Sie die Testpatient-Anmeldeinformationen, um sich anzumelden.
Wählen Sie Token verwenden aus, um das Zugriffstoken für alle Anforderungen in der Sammlung zu verwenden.
Erstellen Sie eine neue Anforderung zum Suchen nach Patientenressourcen im FHIR-Dienst. Wählen Sie die Schaltfläche mit den Auslassungspunkten (...) neben dem Namen der Sammlung aus, und wählen Sie dann Anforderung hinzufügen aus.
Legen Sie die Methode auf
GET
fest, geben Sie die vollqualifizierte FHIR-Dienst-URL ein, und fügen Sie dann den Pfad/Patient
hinzu.Wählen Sie Senden aus.
Stellen Sie sicher, dass die Antwort die einzelne Patientenressource enthält.
Nächste Schritte
Konfigurieren mehrerer Identitätsanbieter
Problembehandlung der Identitätsanbieterkonfiguration
Hinweis
FHIR® ist eine eingetragene Marke von HL7 und wird mit Genehmigung von HL7 verwendet.