Delen via


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.

  1. Gebruik Connect-AzAccount dit om u aan te melden bij Azure. Nadat u zich hebt aangemeld, gebruikt Get-AzContext u deze om het abonnement en de tenant te verifiëren die u wilt gebruiken. Wijzig indien nodig het abonnement en de tenant.

  2. Maak een nieuwe resourcegroep of gebruik een bestaande resourcegroep door de stap over te slaan of de regel te becommentariëren, te beginnen.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.

  1. Ga in Azure Portal naar de B2C-resource. Kies B2C-tenant openen.

    Schermopname van een B2C-resource.

  2. Kies Gebruikers in het linkerdeelvenster.

    Schermopname van de thuisgebruiker.

  3. Kies + Nieuwe gebruiker.

    Schermopname van het toevoegen van een nieuwe gebruiker.

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 en 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.

  1. Kies gebruikerskenmerken op de azure AD B2C-pagina in het linkerdeelvenster.

  2. Kies + Toevoegen.

  3. Voer in het veld Naam fhirUser (hoofdlettergevoelig) in.

  4. Selecteer Tekenreeks in de vervolgkeuzelijst Gegevenstype.

  5. Kies Maken.

    Schermopname van het B2C-kenmerk.

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, het opgegeven toegangstoken de fhirUser claim bevat. Zie Gebruikersstromen en aangepast beleid maken in Azure Active Directory B2C voor meer informatie.

  1. Kies Gebruikersstromen op de pagina Azure AD B2C in het linkerdeelvenster.

  2. Kies + Nieuwe gebruikersstroom.

    Schermopname van de B2C-gebruikersstroom.

  3. 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.

  4. 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.

    Schermopname van de configuratie van de B2C-gebruikersstroom.

  5. 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.

  6. Selecteer de claim fhirUser .

  7. Kies OK.

  8. Kies Maken.

    Schermopname van de configuratie van de B2C-gebruikersstroom met de FHIR-gebruikersclaim.

Een nieuwe B2C-resourcetoepassing maken

De B2C-resourcetoepassing verwerkt verificatieaanvragen van uw gezondheidszorgtoepassing naar Azure Active Directory B2C.

  1. Kies App-registraties op de pagina Azure AD B2C in het linkerdeelvenster.

  2. Kies + Nieuwe registratie.

    Schermopname van de nieuwe B2C-toepassing.

  3. Een weergavenaam invoeren. In dit voorbeeld wordt FHIR Service gebruikt.

  4. Kies in de lijst Ondersteunde accounttypen accounts in een id-provider of organisatiemap (voor het verifiëren van gebruikers met gebruikersstromen).

  5. 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. De callback-URI is bedoeld voor testdoeleinden.

  6. Selecteer in de sectie Machtigingen de optie Beheerderstoestemming verlenen voor openid- en offline_access machtigingen.

  7. Kies Registreren. Wacht totdat de registratie van de toepassing is voltooid. De browser navigeert automatisch naar de pagina Overzicht van de toepassing.

    Schermopname van B2C-toepassingsregister.

API-machtigingen voor de app configureren

  1. Kies Manifest op de pagina App-registraties in het linkerdeelvenster.

  2. 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 niet toe aan de matrix, omdat er geen manier is om machtigingen te beperken tot een subset van gebruikers.

  3. Nadat de oauth2Permissions-matrix is ingevuld, kiest u Opslaan.

    Schermopname van het B2C-toepassingsmanifest.

De web-API beschikbaar maken en een URI voor de toepassings-id toewijzen

  1. Kies een API beschikbaar maken op de pagina App-registraties in het linkerdeelvenster.

  2. Kies Toevoegen.

  3. 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.

  4. Kies Opslaan.

    Schermopname van de API van de B2C-toepassing.

  5. Kies API-machtigingen op de pagina App-registraties in het linkerdeelvenster.

  6. Kies + Een machtiging toevoegen.

    Schermopname van B2C API-machtiging.

  7. Selecteer api's die door mijn organisatie worden gebruikt in het deelvenster API-machtigingen aanvragen.

  8. Selecteer de resourcetoepassing in de lijst.

    Schermopname van B2C API-machtigingen met gebruikte API's.

  9. 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 bereik patient.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.

  10. Kies Machtigingen toevoegen.

    Schermopname van B2C API-machtigingen met toegevoegde machtigingen.

  11. Kies op de pagina API-machtigingen in de sectie Geconfigureerde machtigingen de optie Beheerderstoestemming verlenen.

    Schermopname van B2C API-machtigingen voor beheerderstoestemming.

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.

  1. 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
    
  2. 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
    
  3. Haal de client-id op van de overzichtspagina van de resourcetoepassing.

    Schermopname van de overzichtspagina van de B2C-toepassing.

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.

  1. Gebruik Connect-AzAccount dit om u aan te melden bij Azure. Gebruik Get-AzContext dit om het abonnement en de tenant te controleren die u wilt gebruiken. Wijzig indien nodig het abonnement en de tenant.

  2. Maak een nieuwe resourcegroep of gebruik een bestaande resourcegroep door de stap over te slaan of de regel te becommentariëren, te beginnen.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 GET FHIR-resource 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 is gekoppeld aan een FHIR-resource, bijvoorbeeld als patiënt of arts. Een gebruiker met de FhirDataWriter of FhirDataContributor rol in de Microsoft Entra-id waar de FHIR-service wordt gehost, moet deze stap uitvoeren.

  1. 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"
            ]
        }
    ]
}
  1. 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.

U moet een expliciete koppeling maken 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.

  1. Ga naar de B2C-tenant. Kies App-registraties in het linkerdeelvenster.

  2. Selecteer Alle toepassingen.

  3. Selecteer de toepassing met het voorvoegsel b2c-extensions-app.

    Schermopname van de lijst met B2C-apps.

  4. Noteer de waarde van de toepassings-id (client).

    Schermopname van de app B2C-extensies.

  5. Ga terug naar de startpagina van de B2C-tenant en selecteer gebruikers in het linkerdeelvenster.

    Schermopname van de B2C-thuisgebruiker.

  6. Selecteer Test patiënt1.

    Schermopname van de B2C-gebruikerslijst.

  7. Noteer de waarde van de object-id .

    Schermopname met B2C-gebruikers-id.

  8. Open Microsoft Graph Explorer. Meld u aan met een gebruiker die is toegewezen aan de rol Global Beheer istrator 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.)

    Schermopname van Graph-aanmelding.

  9. Selecteer de avatar voor de gebruiker en kies vervolgens Toestemming voor machtigingen.

    Schermopname van Graph-toestemming voor testgebruiker.

  10. Schuif naar Gebruiker. Toestemming voor User.ReadWrite.All. Met deze machtiging kunt u de test patiënt1-gebruiker bijwerken met de fhirUser claimwaarde.

    Schermopname van Graph-toestemming voor fhirUser-claim.

  11. 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. Een PATCH hoofdtekst is één sleutel-waardepaar, waarbij de sleutelindeling is extension_{B2C_EXTENSION_APP_ID_NO_HYPHENS}_fhirUser en de waarde de volledig gekwalificeerde FHIR-resource-id is voor de patiënt https://{YOUR_FHIR_SERVICE}.azurehealthcareapis.com/Patient/1".

    Zie Extensiekenmerken beheren via Microsoft Graph voor meer informatie.

  12. 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.

    Schermopname van graph-patch.

Postman configureren voor het verkrijgen van een toegangstoken voor B2C-gebruikers

Haal een toegangstoken op om de verificatiestroom te testen.

  1. Start de Postman-toepassing en maak vervolgens een nieuwe lege verzameling. In dit voorbeeld heet de verzameling FHIR Patient.

    Schermopname van de nieuwe Postman-verzameling.

  2. Selecteer het tabblad Autorisatie in het overzicht van de verzameling.

  3. Selecteer OAuth 2.0 in de vervolgkeuzelijst Type.

    Schermopname van Postman-verificatie.

  4. Schuif naar de sectie Nieuw token configureren en voer deze 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 bijvoorbeeld https://testb2c.onmicrosoft.com/fhir/patient.all.readeen volledig gekwalificeerde URL zijn.

  5. Kopieer het volledig gekwalificeerde bereik uit de sectie Een API beschikbaar maken van de B2C-resourcetoepassing.

    {YOUR_APPLICATION_ID_URI}/patient.all.read
    

    Schermopname van Postman-URL's.

De patiëntresource ophalen met behulp van de B2C-gebruiker

Controleer of Azure AD B2C-gebruikers toegang hebben tot FHIR-resources.

  1. Wanneer de autorisatieconfiguratie in Postman is ingesteld om de B2C-gebruikersstroom te starten, kiest u Nieuw toegangstoken ophalen om een toegangstoken op te halen.

    Schermopname van postman get access token.

  2. Gebruik de referenties van de test patiënt om u aan te melden.

    Schermopname van het Get-token van Postman.

  3. Kies Token gebruiken om het toegangstoken te gebruiken voor aanvragen in de verzameling.

    Schermopname van het Gebruikstoken van Postman.

  4. 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.

    Schermopname van postman-aanvraag toegevoegd.

  5. Stel de methode in op GET, voer de volledig gekwalificeerde FHIR-service-URL in en voeg vervolgens het pad /Patienttoe.

  6. Kies Verzenden.

  7. Controleer of het antwoord de resource voor één patiënt bevat.

    Schermopname van het antwoord van de Postman-aanvraag.

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.