Använd Azure Active Directory B2C för att bevilja åtkomst till FHIR-tjänsten
Sjukvårdsorganisationer kan använda Azure Active Directory B2C (Azure AD B2C) med FHIR-tjänsten® i Azure Health Data Services för att ge åtkomst till sina program och användare.
Skapa en Azure AD B2C-klientorganisation för FHIR-tjänsten
När du skapar en Azure AD B2C-klient för FHIR-tjänsten konfigureras en säker infrastruktur för hantering av användaridentiteter i dina sjukvårdsprogram.
Om du redan har skapat en Azure AD B2C-klient kan du gå vidare till Distribuera FHIR-tjänsten med Azure AD B2C.
Distribuera en Azure AD B2C-klientorganisation med hjälp av en ARM-mall
Använd PowerShell eller Azure CLI för att distribuera ARM-mallen programmatiskt till en Azure-prenumeration. Mer information om syntax, egenskaper och användning av mallen finns i Distribuera en instans av Azure Active Directory B2C.
Kör koden i Azure Cloud Shell eller i PowerShell lokalt i Visual Studio Code för att distribuera FHIR-tjänsten till Azure AD B2C-klientorganisationen.
Använd
Connect-AzAccount
för att logga in på Azure. När du har loggat in använderGet-AzContext
du för att verifiera den prenumeration och klientorganisation som du vill använda. Ändra prenumerationen och klientorganisationen om det behövs.Skapa en ny resursgrupp (eller använd en befintlig) genom att hoppa över steget "skapa resursgrupp" eller kommentera ut raden från och med
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
Lägga till en B2C-testanvändare i Azure AD B2C-klientorganisationen
Du behöver en B2C-testanvändare för att associera med en specifik patientresurs i FHIR-tjänsten och för att verifiera att autentiseringsflödet fungerar som förväntat.
I Azure Portal går du till B2C-resursen. Välj Öppna B2C-klientorganisation.
Välj Användare i den vänstra rutan.
Välj + Ny användare.
Länka en B2C-användare med det anpassade användarattributet fhirUser
Det fhirUser
anpassade användarattributet används för att länka en B2C-användare med en användarresurs i FHIR-tjänsten. I det här exemplet skapas en användare med namnet Test Patient1 i B2C-klientorganisationen. I ett senare steg skapas en patientresurs i FHIR-tjänsten. Testpatient1-användaren är länkad till patientresursen genom att ange fhirUser
attributvärdet till patientens resursidentifierare. Mer information om anpassade användarattribut finns i Anpassade attribut för användarflöden i Azure Active Directory B2C.
På sidan Azure AD B2C i den vänstra rutan väljer du Användarattribut.
Välj + Lägg till.
I fältet Namn anger du fhirUser (skiftlägeskänslig).
I listrutan Datatyp väljer du Sträng.
Välj Skapa.
Skapa ett nytt B2C-användarflöde
Användarflöden definierar sekvensen med steg som användare måste följa för att logga in. I det här exemplet definieras ett användarflöde så att när en användare loggar in och den angivna åtkomsttoken innehåller anspråket fhirUser
. Mer information finns i Skapa användarflöden och anpassade principer i Azure Active Directory B2C.
På sidan Azure AD B2C i den vänstra rutan väljer du Användarflöden.
Välj + Nytt användarflöde.
Ge användarflödet ett namn som är unikt för B2C-klientorganisationen. Namnet behöver inte vara globalt unikt. I det här exemplet är namnet på användarflödet USER_FLOW_1. Anteckna namnet.
Kontrollera att E-postinloggning är aktiverat för lokala konton så att testanvändaren kan logga in och hämta en åtkomsttoken för FHIR-tjänsten.
På sidan Skapa ett användarflöde rullar du till avsnitt 5. Programanspråk och välj sedan Visa mer... för att visa en lista över alla tillgängliga anspråk.
Välj anspråket fhirUser .
Välj OK.
Välj Skapa.
Skapa ett nytt B2C-resursprogram
B2C-resursprogrammet hanterar autentiseringsbegäranden från ditt sjukvårdsprogram till Azure Active Directory B2C.
På sidan Azure AD B2C i den vänstra rutan väljer du Appregistreringar.
Välj + Ny registrering.
Ange ett visningsnamn. I det här exemplet används FHIR-tjänsten.
I listan Kontotyper som stöds väljer du Konton i en identitetsprovider eller organisationskatalog (för att autentisera användare med användarflöden).
I listrutan Omdirigerings-URI (rekommenderas) väljer du *Offentlig klient/intern (mobil och skrivbord). Fyll i värdet med Återanrops-URIhttps://oauth.pstmn.io/v1/callback:n för Postman . Den här återanrops-URI:n är avsedd för testning.
I avsnittet Behörigheter väljer du Bevilja administratörsmedgivande till openid- och offline_access behörigheter.
Välj Registrera. Vänta tills programregistreringen har slutförts. Webbläsaren navigerar automatiskt till programöversiktssidan.
Konfigurera API-behörigheter för appen
På sidan Appregistreringar i den vänstra rutan väljer du Manifest.
Rulla tills du hittar matrisen
oauth2Permissions
. Ersätt matrisen med ett eller flera värden i oauth2Permissions.json-filen. Kopiera hela matrisen eller enskilda behörigheter.Om du lägger till en behörighet i listan kan alla användare i B2C-klienten hämta en åtkomsttoken med API-behörigheten. Om en åtkomstnivå inte är lämplig för en användare i B2C-klientorganisationen lägger du inte till den i matrisen eftersom det inte finns något sätt att begränsa behörigheter till en delmängd användare.
När matrisen oauth2Permissions har fyllts i väljer du Spara.
Exponera webb-API:et och tilldela en program-ID-URI
På sidan Appregistreringar i den vänstra rutan väljer du Exponera ett API.
Välj Lägg till.
Som standard fylls fältet Program-ID-URI i med program-ID:t (klient). Ändra värdet om du vill. I det här exemplet är värdet fhir.
Välj Spara.
På sidan Appregistreringar i den vänstra rutan väljer du API-behörigheter.
Välj + Lägg till en behörighet.
I fönstret Api-behörigheter för begäran väljer du API:er som min organisation använder.
Välj resursprogrammet i listan.
I fönstret Api-behörigheter för begäran i avsnittet Patient väljer du minst en behörighet. I det här exemplet är behörigheten
patient.all.read
markerad, vilket innebär att en användare som begär en åtkomsttoken med omfångetpatient.all.read
har läsbehörighet (patient.all.läs) för alla FHIR-resurser (patient.all.read) i patientutrymmet (patient.all.read) Mer information finns i Patientutrymme.Välj Lägg till behörigheter.
På sidan API-behörigheter i avsnittet Konfigurerade behörigheter väljer du Bevilja administratörsmedgivande.
Distribuera FHIR-tjänsten med Azure Active Directory B2C som identitetsprovider
Genom att distribuera FHIR-tjänsten med Azure Active Directory B2C som identitetsprovider kan FHIR-tjänsten autentisera användare baserat på deras Azure AD B2C-autentiseringsuppgifter, vilket säkerställer att endast behöriga användare kan komma åt känslig patientinformation
Hämta B2C-utfärdaren och klient-ID:t
Använd parametrarna utfärdare och klient-ID (eller program-ID) för att konfigurera FHIR-tjänsten att använda en Azure AD B2C-klientorganisation som identitetsprovider.
Skapa utfärdarsträngen med hjälp av namnet på B2C-klientorganisationen och namnet på användarflödet.
https://<YOUR_B2C_TENANT_NAME>.b2clogin.com/<YOUR_B2C_TENANT_NAME>.onmicrosoft.com/<YOUR_USER_FLOW_NAME>/v2.0
Testa utfärdarsträngen genom att göra en begäran till
.well-known/openid-configuration
slutpunkten. Ange strängen i en webbläsare för att bekräfta att den navigerar till OpenId Configuration JSON-filen. Om OpenId Configuration JSON inte kan läsas in kontrollerar du att B2C-klientorganisationens namn och användarnamn är korrekta.https://<YOUR_B2C_TENANT_NAME>.b2clogin.com/<YOUR_B2C_TENANT_NAME>.onmicrosoft.com/<YOUR_USER_FLOW_NAME>/v2.0/.well-known/openid-configuration
Hämta klient-ID:t från översiktssidan för resursprogrammet.
Distribuera FHIR-tjänsten med hjälp av en ARM-mall
Använd en ARM-mall för att förenkla distributionen av FHIR-tjänsten. Använd PowerShell eller Azure CLI för att distribuera ARM-mallen till en Azure-prenumeration.
Kör koden i Azure Cloud Shell eller i PowerShell lokalt i Visual Studio Code för att distribuera FHIR-tjänsten till Azure AD B2C-klientorganisationen.
Använd
Connect-AzAccount
för att logga in på Azure. AnvändGet-AzContext
för att verifiera den prenumeration och klientorganisation som du vill använda. Ändra prenumerationen och klientorganisationen om det behövs.Skapa en ny resursgrupp (eller använd en befintlig) genom att hoppa över steget "skapa resursgrupp" eller kommentera ut raden från och med
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
Verifiera att Azure AD B2C-användare kan komma åt FHIR-resurser
Valideringsprocessen omfattar att skapa en patientresurs i FHIR-tjänsten, länka patientresursen till Azure AD B2C-användaren och konfigurera Postman för att hämta en åtkomsttoken för B2C-användare. När valideringsprocessen är klar kan du hämta patientresursen med hjälp av B2C-testanvändaren.
Kör Postman för att hämta en åtkomsttoken
Kör Postman-programmet lokalt eller i en webbläsare. Anvisningar för att få rätt åtkomst till FHIR-tjänsten finns i Åtkomst till FHIR-tjänsten med Postman.
När du följer stegen i avsnittet Hämta FHIR-resursen returnerar begäran ett tomt svar eftersom FHIR-tjänsten är ny och inte har några patientresurser.
Skapa en patientresurs i FHIR-tjänsten
Det är viktigt att observera att användare i B2C-klienten inte kan läsa några resurser förrän användaren (till exempel en patient eller utövare) är länkad till en FHIR-resurs. En användare med FhirDataWriter
rollen eller FhirDataContributor
i Microsoft Entra-ID:t där FHIR-tjänsten är klient måste utföra det här steget.
- Skapa en patient med en specifik identifierare genom att ändra metoden till
PUT
och köra en begäran till{{fhirurl}}/Patient/1
med den här brödtexten:
{
"resourceType": "Patient",
"id": "1",
"name": [
{
"family": "Patient1",
"given": [
"Test"
]
}
]
}
- Kontrollera att patienten har skapats genom att ändra tillbaka metoden till
GET
och verifiera att en begäran om att{{fhirurl}}/Patient
returnera den nyligen skapade patienten.
Länka patientresursen till Azure AD B2C-användaren
Skapa en explicit länk mellan testanvändaren i B2C-klientorganisationen och resursen i FHIR-tjänsten. Skapa länken med hjälp av tilläggsattribut i Microsoft Graph. Mer information finns i Definiera anpassade attribut i Azure Active Directory B2C.
Gå till B2C-klientorganisationen. Välj Appregistreringar i den vänstra rutan.
Välj Alla program.
Välj programmet med prefixet b2c-extensions-app.
Observera värdet för program-ID (klient).
Gå tillbaka till startsidan för B2C-klientorganisationen och välj Användare i den vänstra rutan.
Välj Test patient1.
Observera objekt-ID-värdet.
Öppna Microsoft Graph Explorer. Logga in med en användare som tilldelats rollen Global administratör för B2C-klientorganisationen. (Det är en bra idé att skapa en ny administratörsanvändare i B2C-klientorganisationen för att hantera användare i klientorganisationen.)
Välj avataren för användaren och välj sedan Medgivande till behörigheter.
Rulla till Användare. Samtycke till User.ReadWrite.All. Med den här behörigheten kan du uppdatera Test Patient1-användaren med anspråksvärdet
fhirUser
.När medgivandeprocessen har slutförts uppdaterar du användaren. Du behöver program-ID:t b2c-extensions-app (klient) och användarens objekt-ID.
Ändra metoden till
PATCH
.Ändra URL:en till https://graph.microsoft.com/v1.0/users/{USER_OBJECT_ID}.
Skapa brödtexten
PATCH
. EnPATCH
brödtext är ett enda nyckel/värde-par, där nyckelformatet ärextension_{B2C_EXTENSION_APP_ID_NO_HYPHENS}_fhirUser
och värdet är det fullständigt kvalificerade FHIR-resurs-ID:t för patientenhttps://{YOUR_FHIR_SERVICE}.azurehealthcareapis.com/Patient/1"
.
Mer information finns i Hantera tilläggsattribut via Microsoft Graph.
När begäran har formaterats väljer du Kör fråga. Vänta på ett lyckat svar som bekräftar att användaren i B2C-klienten är länkad till patientresursen i FHIR-tjänsten.
Konfigurera Postman för att hämta en åtkomsttoken för B2C-användare
Hämta en åtkomsttoken för att testa autentiseringsflödet.
Starta Postman-programmet och skapa sedan en ny Tom samling. I det här exemplet heter samlingen FHIR Patient.
Välj fliken Auktorisering i samlingsöversikten.
I listrutan Typ väljer du OAuth 2.0.
Rulla till avsnittet Konfigurera ny token och ange följande värden.
Återanrops-URL. Det här värdet konfigureras när B2C-resursprogrammet skapas.
https://oauth.pstmn.io/v1/callback
Autentiserings-URL. Det här värdet kan skapas med namnet på B2C-klientorganisationen och namnet på användarflödet.
https://{YOUR_B2C_TENANT_NAME}.b2clogin.com/{YOUR_B2C_TENANT_NAME}.onmicrosoft.com/{YOUR_USER_FLOW_NAME}/oauth2/v2.0/authorize
Url för åtkomsttoken. Det här värdet kan skapas med namnet på B2C-klientorganisationen och namnet på användarflödet.
https://{YOUR_B2C_TENANT_NAME}.b2clogin.com/{YOUR_B2C_TENANT_NAME}.onmicrosoft.com/{YOUR_USER_FLOW_NAME}/oauth2/v2.0/token
Klient-ID. Det här värdet är program-ID:t (klient) för B2C-resursprogrammet.
{YOUR_APPLICATION_ID}
Omfång. Det här värdet definieras i B2C-resursprogrammet i avsnittet Exponera ett API . Det beviljade omfånget är
patient.all.read
. Omfångsbegäran måste vara en fullständigt kvalificerad URL, till exempelhttps://testb2c.onmicrosoft.com/fhir/patient.all.read
.
Kopiera det fullständigt kvalificerade omfånget från avsnittet Exponera ett API i B2C-resursprogrammet.
{YOUR_APPLICATION_ID_URI}/patient.all.read
Hämta patientresursen med B2C-användaren
Kontrollera att Azure AD B2C-användare kan komma åt FHIR-resurser.
När auktoriseringskonfigurationen i Postman har konfigurerats för att starta B2C-användarflödet väljer du Hämta ny åtkomsttoken för att hämta en åtkomsttoken.
Använd autentiseringsuppgifterna för testpatienten för att logga in.
Välj Använd token för att använda åtkomsttoken för alla begäranden i samlingen.
Skapa en ny begäran om att söka efter patientresurser i FHIR-tjänsten. Välj ellipsknappen (...) bredvid namnet på samlingen och välj sedan Lägg till begäran.
Ange metoden till
GET
, ange den fullständigt kvalificerade FHIR-tjänst-URL:en och lägg sedan till sökvägen/Patient
.Välj Skicka.
Kontrollera att svaret innehåller den enda patientresursen.
Nästa steg
Konfigurera flera identitetsprovidrar
Felsök konfiguration av identitetsprovider
Kommentar
FHIR® är ett registrerat varumärke som tillhör HL7 och används med tillstånd av HL7.