Gebruik Azure Active Directory B2C om toegang te verlenen tot de FHIR-service
Zorgorganisaties kunnen Azure Active Directory B2C (Azure AD B2C) gebruiken met de FHIR-service® in Azure Health Data Services om toegang te verlenen tot hun toepassingen en gebruikers.
Een Azure AD B2C-tenant maken voor de FHIR-service
Het maken van een Azure AD B2C-tenant voor de FHIR-service stelt een veilige infrastructuur in voor het beheren van gebruikersidentiteiten in uw gezondheidszorgtoepassingen.
Als u al een Azure AD B2C-tenant hebt gemaakt, kunt u doorgaan met het implementeren van de FHIR-service met Azure AD B2C.
Een Azure AD B2C-tenant implementeren met behulp van een ARM-sjabloon
Gebruik PowerShell of Azure CLI om de ARM-sjabloon programmatisch te implementeren in een Azure-abonnement. Zie Een exemplaar van Azure Active Directory B2C implementeren voor meer informatie over syntaxis, eigenschappen en het gebruik van de sjabloon.
Voer de code uit in Azure Cloud Shell of lokaal in PowerShell in Visual Studio Code om de FHIR-service te implementeren in de Azure AD B2C-tenant.
Gebruik
Connect-AzAccount
dit om u aan te melden bij Azure. Nadat u zich hebt aangemeld, gebruiktGet-AzContext
u deze om het abonnement en de tenant te verifiëren die u wilt gebruiken. Wijzig indien nodig het abonnement en de tenant.Maak een nieuwe resourcegroep (of gebruik een bestaande resourcegroep) door de stap 'resourcegroep maken' over te slaan of door een opmerking uit te voeren bij de regel die begint met
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
Een B2C-testgebruiker toevoegen aan de Azure AD B2C-tenant
U hebt een B2C-testgebruiker nodig om te koppelen aan een specifieke patiëntresource in de FHIR-service en om te controleren of de verificatiestroom werkt zoals verwacht.
Ga in Azure Portal naar de B2C-resource. Kies B2C-tenant openen.
Kies Gebruikers in het linkerdeelvenster.
Kies + Nieuwe gebruiker.
Een B2C-gebruiker koppelen aan het fhirUser
aangepaste gebruikerskenmerk
Het fhirUser
aangepaste gebruikerskenmerk wordt gebruikt om een B2C-gebruiker te koppelen aan een gebruikersresource in de FHIR-service. In dit voorbeeld wordt een gebruiker met de naam Test Patient1 gemaakt in de B2C-tenant. In een latere stap wordt een patiëntresource gemaakt in de FHIR-service. De gebruiker Test Patient1 is gekoppeld aan de patiëntresource door de fhirUser
kenmerkwaarde in te stellen op de resource-id van de patiënt. Zie Aangepaste kenmerken van gebruikersstromen in Azure Active Directory B2C voor meer informatie over aangepaste gebruikerskenmerken.
Kies gebruikerskenmerken op de azure AD B2C-pagina in het linkerdeelvenster.
Kies + Toevoegen.
Voer in het veld Naam fhirUser (hoofdlettergevoelig) in.
Selecteer Tekenreeks in de vervolgkeuzelijst Gegevenstype.
Kies Maken.
Een nieuwe B2C-gebruikersstroom maken
Gebruikersstromen definiëren de volgorde van de stappen die gebruikers moeten volgen om zich aan te melden. In dit voorbeeld wordt een gebruikersstroom gedefinieerd, zodat wanneer een gebruiker zich aanmeldt en het opgegeven toegangstoken de fhirUser
claim bevat. Zie Gebruikersstromen en aangepast beleid maken in Azure Active Directory B2C voor meer informatie.
Kies Gebruikersstromen op de pagina Azure AD B2C in het linkerdeelvenster.
Kies + Nieuwe gebruikersstroom.
Geef de gebruikersstroom een naam die uniek is voor de B2C-tenant. De naam hoeft niet wereldwijd uniek te zijn. In dit voorbeeld wordt de naam van de gebruikersstroom USER_FLOW_1. Noteer de naam.
Zorg ervoor dat e-mailaanmelding is ingeschakeld voor lokale accounts, zodat de testgebruiker zich kan aanmelden en een toegangstoken voor de FHIR-service kan verkrijgen.
Schuif op de pagina Een gebruikersstroom maken naar sectie 5. Toepassingsclaims en selecteer Meer weergeven... om een lijst met alle beschikbare claims weer te geven.
Selecteer de claim fhirUser .
Kies OK.
Kies Maken.
Een nieuwe B2C-resourcetoepassing maken
De B2C-resourcetoepassing verwerkt verificatieaanvragen van uw gezondheidszorgtoepassing naar Azure Active Directory B2C.
Kies App-registraties op de pagina Azure AD B2C in het linkerdeelvenster.
Kies + Nieuwe registratie.
Een weergavenaam invoeren. In dit voorbeeld wordt FHIR Service gebruikt.
Kies in de lijst Ondersteunde accounttypen accounts in een id-provider of organisatiemap (voor het verifiëren van gebruikers met gebruikersstromen).
Selecteer in de vervolgkeuzelijst Omleidings-URI (aanbevolen) *Openbare client/systeemeigen (mobiel en desktop) . Vul de waarde in met de callback-URI https://oauth.pstmn.io/v1/callbackvan Postman. Deze callback-URI is bedoeld voor testdoeleinden.
Selecteer in de sectie Machtigingen de optie Beheerderstoestemming verlenen voor openid- en offline_access machtigingen.
Kies Registreren. Wacht totdat de registratie van de toepassing is voltooid. De browser navigeert automatisch naar de pagina Overzicht van de toepassing.
API-machtigingen voor de app configureren
Kies Manifest op de pagina App-registraties in het linkerdeelvenster.
Schuif totdat u de
oauth2Permissions
matrix hebt gevonden. Vervang de matrix door een of meer waarden in het bestand oauth2Permissions.json . Kopieer de hele matrix of afzonderlijke machtigingen.Als u een machtiging aan de lijst toevoegt, kan elke gebruiker in de B2C-tenant een toegangstoken verkrijgen met de API-machtiging. Als een toegangsniveau niet geschikt is voor een gebruiker in de B2C-tenant, voegt u deze niet toe aan de matrix omdat er geen manier is om machtigingen te beperken tot een subset van gebruikers.
Nadat de oauth2Permissions-matrix is ingevuld, kiest u Opslaan.
De web-API beschikbaar maken en een URI voor de toepassings-id toewijzen
Kies een API beschikbaar maken op de pagina App-registraties in het linkerdeelvenster.
Kies Toevoegen.
Standaard wordt het veld URI van de toepassings-id gevuld met de toepassings-id (client). Wijzig indien gewenst de waarde. In dit voorbeeld is de waarde fhir.
Kies Opslaan.
Kies API-machtigingen op de pagina App-registraties in het linkerdeelvenster.
Kies + Een machtiging toevoegen.
Selecteer api's die door mijn organisatie worden gebruikt in het deelvenster API-machtigingen aanvragen.
Selecteer de resourcetoepassing in de lijst.
Selecteer ten minste één machtiging in het deelvenster Api-machtigingen aanvragen in de sectie Patiënt . In dit voorbeeld is de machtiging
patient.all.read
geselecteerd, wat betekent dat een gebruiker die een toegangstoken aanvraagt met het bereikpatient.all.read
leesbevoegdheden heeft (patient.all).lezen) voor alle FHIR-resources (patiënt).all.read) in het patiëntencompartiment (patient.all.read) Zie Patient compartiment voor meer informatie.Kies Machtigingen toevoegen.
Kies op de pagina API-machtigingen in de sectie Geconfigureerde machtigingen de optie Beheerderstoestemming verlenen.
De FHIR-service implementeren met Azure Active Directory B2C als id-provider
Door de FHIR-service te implementeren met Azure Active Directory B2C als id-provider, kan de FHIR-service gebruikers verifiëren op basis van hun Azure AD B2C-referenties, zodat alleen geautoriseerde gebruikers toegang hebben tot gevoelige patiëntgegevens
De B2C-instantie en client-id verkrijgen
Gebruik de parameters autoriteit en client-id (of toepassings-id) om de FHIR-service te configureren voor het gebruik van een Azure AD B2C-tenant als id-provider.
Maak de instantietekenreeks met behulp van de naam van de B2C-tenant en de naam van de gebruikersstroom.
https://<YOUR_B2C_TENANT_NAME>.b2clogin.com/<YOUR_B2C_TENANT_NAME>.onmicrosoft.com/<YOUR_USER_FLOW_NAME>/v2.0
Test de instantietekenreeks door een aanvraag naar het
.well-known/openid-configuration
eindpunt te verzenden. Voer de tekenreeks in een browser in om te bevestigen dat deze naar het JSON-bestand OpenId-configuratie navigeert. Als de JSON van de OpenId-configuratie niet kan worden geladen, controleert u of de B2C-tenantnaam en de naam van de gebruikersstroom juist zijn.https://<YOUR_B2C_TENANT_NAME>.b2clogin.com/<YOUR_B2C_TENANT_NAME>.onmicrosoft.com/<YOUR_USER_FLOW_NAME>/v2.0/.well-known/openid-configuration
Haal de client-id op van de overzichtspagina van de resourcetoepassing.
De FHIR-service implementeren met behulp van een ARM-sjabloon
Gebruik een ARM-sjabloon om het implementeren van de FHIR-service te vereenvoudigen. Gebruik PowerShell of Azure CLI om de ARM-sjabloon te implementeren in een Azure-abonnement.
Voer de code uit in Azure Cloud Shell of lokaal in PowerShell in Visual Studio Code om de FHIR-service te implementeren in de Azure AD B2C-tenant.
Gebruik
Connect-AzAccount
dit om u aan te melden bij Azure. GebruikGet-AzContext
dit om het abonnement en de tenant te controleren die u wilt gebruiken. Wijzig indien nodig het abonnement en de tenant.Maak een nieuwe resourcegroep (of gebruik een bestaande resourcegroep) door de stap 'resourcegroep maken' over te slaan of door een opmerking uit te voeren bij de regel die begint met
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
Controleer of Azure AD B2C-gebruikers toegang hebben tot FHIR-resources
Het validatieproces omvat het maken van een patiëntresource in de FHIR-service, het koppelen van de patiëntresource aan de Azure AD B2C-gebruiker en het configureren van Postman voor het ophalen van een toegangstoken voor B2C-gebruikers. Nadat het validatieproces is voltooid, kunt u de patiëntresource ophalen met behulp van de B2C-testgebruiker.
Postman uitvoeren om een toegangstoken op te halen
Voer de Postman-toepassing lokaal of in een webbrowser uit. Zie Access the FHIR service using Postman (Toegang tot de FHIR-service met Postman) voor stappen voor het verkrijgen van de juiste toegang tot de FHIR-service.
Wanneer u de stappen in de sectie FHIR-resource ophalen volgt, retourneert de aanvraag een leeg antwoord omdat de FHIR-service nieuw is en geen patiëntresources heeft.
Een patiëntresource maken in de FHIR-service
Het is belangrijk te weten dat gebruikers in de B2C-tenant geen resources kunnen lezen totdat de gebruiker (zoals een patiënt of arts) is gekoppeld aan een FHIR-resource. Een gebruiker met de FhirDataWriter
of FhirDataContributor
rol in de Microsoft Entra-id waar de FHIR-service wordt gehost, moet deze stap uitvoeren.
- Maak een patiënt met een specifieke id door de methode te
PUT
wijzigen in en een aanvraag uit te{{fhirurl}}/Patient/1
voeren naar met deze hoofdtekst:
{
"resourceType": "Patient",
"id": "1",
"name": [
{
"family": "Patient1",
"given": [
"Test"
]
}
]
}
- Controleer of de patiënt is gemaakt door de methode weer te
GET
wijzigen in en te controleren of een aanvraag om{{fhirurl}}/Patient
de zojuist gemaakte patiënt te retourneren.
De patiëntresource koppelen aan de Azure AD B2C-gebruiker
Maak een expliciete koppeling tussen de testgebruiker in de B2C-tenant en de resource in de FHIR-service. Maak de koppeling met behulp van extensiekenmerken in Microsoft Graph. Zie Aangepaste kenmerken definiëren in Azure Active Directory B2C voor meer informatie.
Ga naar de B2C-tenant. Kies App-registraties in het linkerdeelvenster.
Selecteer Alle toepassingen.
Selecteer de toepassing met het voorvoegsel b2c-extensions-app.
Noteer de waarde van de toepassings-id (client).
Ga terug naar de startpagina van de B2C-tenant en selecteer gebruikers in het linkerdeelvenster.
Selecteer Test patiënt1.
Noteer de waarde van de object-id .
Open Microsoft Graph Explorer. Meld u aan met een gebruiker die is toegewezen aan de rol Globale beheerder voor de B2C-tenant. (Het is een goed idee om een nieuwe beheerder te maken in de B2C-tenant om gebruikers in de tenant te beheren.)
Selecteer de avatar voor de gebruiker en kies vervolgens Toestemming voor machtigingen.
Schuif naar Gebruiker. Toestemming voor User.ReadWrite.All. Met deze machtiging kunt u de test patiënt1-gebruiker bijwerken met de
fhirUser
claimwaarde.Nadat het toestemmingsproces is voltooid, werkt u de gebruiker bij. U hebt de id van de b2c-extensions-app-toepassing (client) en de gebruikersobject-id nodig.
Wijzig de methode in
PATCH
.Wijzig de URL in https://graph.microsoft.com/v1.0/users/{USER_OBJECT_ID}.
Maak de
PATCH
hoofdtekst. EenPATCH
hoofdtekst is één sleutel-waardepaar, waarbij de sleutelindeling isextension_{B2C_EXTENSION_APP_ID_NO_HYPHENS}_fhirUser
en de waarde de volledig gekwalificeerde FHIR-resource-id is voor de patiënthttps://{YOUR_FHIR_SERVICE}.azurehealthcareapis.com/Patient/1"
.
Zie Extensiekenmerken beheren via Microsoft Graph voor meer informatie.
Nadat de aanvraag is opgemaakt, kiest u Query uitvoeren. Wacht op een geslaagd antwoord dat bevestigt dat de gebruiker in de B2C-tenant is gekoppeld aan de patiëntresource in de FHIR-service.
Postman configureren voor het verkrijgen van een toegangstoken voor B2C-gebruikers
Haal een toegangstoken op om de verificatiestroom te testen.
Start de Postman-toepassing en maak vervolgens een nieuwe lege verzameling. In dit voorbeeld heet de verzameling FHIR Patient.
Selecteer het tabblad Autorisatie in het overzicht van de verzameling.
Selecteer OAuth 2.0 in de vervolgkeuzelijst Type.
Schuif naar de sectie Nieuw token configureren en voer de volgende waarden in.
Callback-URL. Deze waarde wordt geconfigureerd wanneer de B2C-resourcetoepassing wordt gemaakt.
https://oauth.pstmn.io/v1/callback
Verificatie-URL. Deze waarde kan worden gemaakt met behulp van de naam van de B2C-tenant en de naam van de gebruikersstroom.
https://{YOUR_B2C_TENANT_NAME}.b2clogin.com/{YOUR_B2C_TENANT_NAME}.onmicrosoft.com/{YOUR_USER_FLOW_NAME}/oauth2/v2.0/authorize
Url van toegangstoken. Deze waarde kan worden gemaakt met behulp van de naam van de B2C-tenant en de naam van de gebruikersstroom.
https://{YOUR_B2C_TENANT_NAME}.b2clogin.com/{YOUR_B2C_TENANT_NAME}.onmicrosoft.com/{YOUR_USER_FLOW_NAME}/oauth2/v2.0/token
Client-id. Deze waarde is de toepassings-id (client) van de B2C-resourcetoepassing.
{YOUR_APPLICATION_ID}
Bereik. Deze waarde wordt gedefinieerd in de B2C-resourcetoepassing in de sectie Een API beschikbaar maken. Het bereik dat is verleend, is
patient.all.read
. De bereikaanvraag moet bijvoorbeeldhttps://testb2c.onmicrosoft.com/fhir/patient.all.read
een volledig gekwalificeerde URL zijn.
Kopieer het volledig gekwalificeerde bereik uit de sectie Een API beschikbaar maken van de B2C-resourcetoepassing.
{YOUR_APPLICATION_ID_URI}/patient.all.read
De patiëntresource ophalen met behulp van de B2C-gebruiker
Controleer of Azure AD B2C-gebruikers toegang hebben tot FHIR-resources.
Wanneer de autorisatieconfiguratie in Postman is ingesteld om de B2C-gebruikersstroom te starten, kiest u Nieuw toegangstoken ophalen om een toegangstoken op te halen.
Gebruik de referenties van de test patiënt om u aan te melden.
Kies Token gebruiken om het toegangstoken te gebruiken voor aanvragen in de verzameling.
Maak een nieuwe aanvraag om te zoeken naar patiëntbronnen in de FHIR-service. Selecteer de knop met het beletselteken (...) naast de naam van de verzameling en kies vervolgens Aanvraag toevoegen.
Stel de methode in op
GET
, voer de volledig gekwalificeerde FHIR-service-URL in en voeg vervolgens het pad/Patient
toe.Kies Verzenden.
Controleer of het antwoord de resource voor één patiënt bevat.
Volgende stappen
Meerdere id-providers configureren
Problemen met de configuratie van id-providers oplossen
Notitie
FHIR® is een geregistreerd handelsmerk van HL7 en wordt gebruikt met de machtiging HL7.