Použití Azure Active Directory B2C pro udělení přístupu ke službě FHIR
Zdravotnické organizace můžou používat Azure Active Directory B2C (Azure AD B2C) se službou FHIR® ve službě Azure Health Data Services k udělení přístupu k aplikacím a uživatelům.
Vytvoření tenanta Azure AD B2C pro službu FHIR
Vytvoření tenanta Azure AD B2C pro službu FHIR nastaví zabezpečenou infrastrukturu pro správu identit uživatelů ve vašich zdravotnických aplikacích.
Pokud jste už vytvořili tenanta Azure AD B2C, můžete přeskočit k nasazení služby FHIR pomocí Azure AD B2C.
Nasazení tenanta Azure AD B2C pomocí šablony ARM
K programovému nasazení šablony ARM do předplatného Azure použijte PowerShell nebo Azure CLI. Další informace o syntaxi, vlastnostech a použití šablony najdete v tématu Nasazení instance Azure Active Directory B2C.
Spusťte kód v Azure Cloud Shellu nebo v PowerShellu místně v editoru Visual Studio Code a nasaďte službu FHIR do tenanta Azure AD B2C.
Slouží
Connect-AzAccount
k přihlášení k Azure. Po přihlášení použijteGet-AzContext
k ověření předplatného a tenanta, kterého chcete použít. V případě potřeby změňte předplatné a tenanta.Vytvořte novou skupinu prostředků (nebo použijte existující) tak, že přeskočíte krok "vytvořit skupinu prostředků" nebo zakomentujte řádek začínající na
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
Přidání testovacího uživatele B2C do tenanta Azure AD B2C
Potřebujete testovacího uživatele B2C pro přidružení ke konkrétnímu prostředku pacienta ve službě FHIR a ověření, že tok ověřování funguje podle očekávání.
Na webu Azure Portal přejděte k prostředku B2C. Zvolte Otevřít tenanta B2C.
V levém podokně zvolte Uživatelé.
Zvolte + Nový uživatel.
Propojení uživatele B2C s vlastním atributem fhirUser
uživatele
Vlastní fhirUser
atribut uživatele slouží k propojení uživatele B2C s uživatelským prostředkem ve službě FHIR. V tomto příkladu se v tenantovi B2C vytvoří uživatel s názvem Test Patient1 . V pozdějším kroku se ve službě FHIR vytvoří prostředek pacienta . Uživatel Test Patient1 je propojený s prostředkem pacienta nastavením fhirUser
hodnoty atributu na identifikátor prostředku pacienta. Další informace o vlastních atributech uživatele najdete v tématu Vlastní atributy toku uživatele v Azure Active Directory B2C.
Na stránce Azure AD B2C v levém podokně zvolte Atributy uživatele.
Zvolte + Přidat.
Do pole Název zadejte fhirUser (rozlišují se malá a velká písmena).
V rozevíracím seznamu Datový typ vyberte Řetězec.
Zvolte Vytvořit.
Vytvoření nového toku uživatele B2C
Toky uživatelů definují posloupnost kroků, které musí uživatelé dodržovat, aby se mohli přihlásit. V tomto příkladu je tok uživatele definovaný tak, aby když se uživatel přihlásí a zadaný přístupový token zahrnoval fhirUser
deklaraci identity. Další informace najdete v tématu Vytváření toků uživatelů a vlastních zásad v Azure Active Directory B2C.
Na stránce Azure AD B2C v levém podokně zvolte Toky uživatele.
Zvolte + Nový tok uživatele.
Dejte toku uživatele jedinečný název tenanta B2C. Název nemusí být globálně jedinečný. V tomto příkladu je název toku uživatele USER_FLOW_1. Poznamenejte si název.
Ujistěte se , že je pro místní účty povolené přihlášení k e-mailu, aby se testovací uživatel mohl přihlásit a získat přístupový token pro službu FHIR.
Na stránce Vytvořit tok uživatele přejděte k části 5. Deklarace identity aplikací a pak vyberte Zobrazit další... zobrazíte seznam všech dostupných deklarací identity.
Vyberte deklaraci identity fhirUser.
Vyberte OK.
Zvolte Vytvořit.
Vytvoření nové aplikace prostředků B2C
Aplikace prostředků B2C zpracovává žádosti o ověření z vaší zdravotnické aplikace do Azure Active Directory B2C.
Na stránce Azure AD B2C v levém podokně zvolte Registrace aplikací.
Zvolte + Nová registrace.
Zadejte zobrazovaný název. V tomto příkladu se používá služba FHIR.
V seznamu Podporované typy účtů zvolte Účty v libovolném zprostředkovateli identity nebo organizačním adresáři (pro ověřování uživatelů s toky uživatelů).
V rozevíracím seznamu Identifikátor URI přesměrování (doporučeno) vyberte *Veřejný klient/nativní (mobilní &desktop). Naplňte hodnotu identifikátorem URI zpětného volání Postman .https://oauth.pstmn.io/v1/callback Tento identifikátor URI zpětného volání slouží k testování.
V části Oprávnění vyberte Udělení souhlasu správce s openid a offline_access oprávnění.
Zvolte Zaregistrovat. Počkejte na dokončení registrace aplikace. Prohlížeč automaticky přejde na stránku Přehled aplikace.
Konfigurace oprávnění rozhraní API pro aplikaci
Na stránce Registrace aplikací v levém podokně zvolte Manifest.
Posuňte se, dokud pole nenajdete
oauth2Permissions
. Nahraďte matici jednou nebo více hodnotami v souboru oauth2Permissions.json . Zkopírujte celé pole nebo jednotlivá oprávnění.Pokud do seznamu přidáte oprávnění, může každý uživatel v tenantovi B2C získat přístupový token s oprávněním rozhraní API. Pokud úroveň přístupu není vhodná pro uživatele v rámci tenanta B2C, nepřidávejte ji do pole, protože neexistuje způsob, jak omezit oprávnění na podmnožinu uživatelů.
Po naplnění pole oauth2Permissions zvolte Uložit.
Zveřejnění webového rozhraní API a přiřazení identifikátoru URI ID aplikace
Na stránce Registrace aplikací v levém podokně zvolte Zveřejnit rozhraní API.
Zvolte položku Přidat.
Ve výchozím nastavení je pole identifikátoru URI ID aplikace vyplněno ID aplikace (klienta). V případě potřeby změňte hodnotu. V tomto příkladu je hodnota fhir.
Vyberte Uložit.
Na stránce Registrace aplikací v levém podokně zvolte oprávnění rozhraní API.
Zvolte + Přidat oprávnění.
V podokně Oprávnění rozhraní API žádosti vyberte rozhraní API, která moje organizace používá.
Ze seznamu vyberte aplikaci prostředků.
V podokně Oprávnění rozhraní API žádosti v části Pacient vyberte aspoň jedno oprávnění. V tomto příkladu je vybráno oprávnění
patient.all.read
, což znamená, že uživatel, který požaduje přístupový token s oborempatient.all.read
, má oprávnění ke čtení (patient.all).read) pro všechny prostředky FHIR (pacient.all.read) v oddílu Pacient (patient.all.read) Další informace naleznete v části Oddělení pacienta.Zvolte Přidat oprávnění.
Na stránce Oprávnění rozhraní API v části Nakonfigurovaná oprávnění zvolte Udělení souhlasu správce.
Nasazení služby FHIR pomocí Azure Active Directory B2C jako zprostředkovatele identity
Nasazení služby FHIR se službou Azure Active Directory B2C jako zprostředkovatel identity umožňuje službě FHIR ověřovat uživatele na základě přihlašovacích údajů Azure AD B2C a zajistit tak, aby k citlivým informacím o pacientech měli přístup jenom autorizovaní uživatelé.
Získání autority B2C a ID klienta
Pomocí parametrů autority a ID klienta (nebo ID aplikace) nakonfigurujte službu FHIR tak, aby používala tenanta Azure AD B2C jako zprostředkovatele identity.
Vytvořte řetězec autority pomocí názvu tenanta B2C a názvu toku uživatele.
https://<YOUR_B2C_TENANT_NAME>.b2clogin.com/<YOUR_B2C_TENANT_NAME>.onmicrosoft.com/<YOUR_USER_FLOW_NAME>/v2.0
Otestujte řetězec autority tak, že do koncového
.well-known/openid-configuration
bodu vytvoříte požadavek. Zadejte řetězec do prohlížeče a potvrďte, že přejde do souboru JSON konfigurace OpenId. Pokud se json konfigurace OpenId nepodaří načíst, ujistěte se, že je správný název tenanta B2C a název toku uživatele.https://<YOUR_B2C_TENANT_NAME>.b2clogin.com/<YOUR_B2C_TENANT_NAME>.onmicrosoft.com/<YOUR_USER_FLOW_NAME>/v2.0/.well-known/openid-configuration
Načtěte ID klienta ze stránky přehledu aplikace prostředků.
Nasazení služby FHIR pomocí šablony ARM
Použití šablony ARM ke zjednodušení nasazení služby FHIR. K nasazení šablony ARM do předplatného Azure použijte PowerShell nebo Azure CLI.
Spusťte kód v Azure Cloud Shellu nebo v PowerShellu místně v editoru Visual Studio Code a nasaďte službu FHIR do tenanta Azure AD B2C.
Slouží
Connect-AzAccount
k přihlášení k Azure. SloužíGet-AzContext
k ověření předplatného a tenanta, kterého chcete použít. V případě potřeby změňte předplatné a tenanta.Vytvořte novou skupinu prostředků (nebo použijte existující) tak, že přeskočíte krok "vytvořit skupinu prostředků" nebo zakomentujte řádek začínající na
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
Ověření, že uživatelé Azure AD B2C mají přístup k prostředkům FHIR
Proces ověření zahrnuje vytvoření prostředku pacienta ve službě FHIR, propojení prostředku pacienta s uživatelem Azure AD B2C a konfiguraci Nástroje Postman pro získání přístupového tokenu pro uživatele B2C. Po dokončení procesu ověření můžete načíst prostředek pacienta pomocí testovacího uživatele B2C.
Spuštění nástroje Postman pro získání přístupového tokenu
Spusťte aplikaci Postman místně nebo ve webovém prohlížeči. Postup získání správného přístupu ke službě FHIR najdete v tématu Přístup ke službě FHIR pomocí nástroje Postman.
Když budete postupovat podle kroků v části Získání prostředku FHIR, požadavek vrátí prázdnou odpověď, protože služba FHIR je nová a nemá žádné prostředky pacientů.
Vytvoření prostředku pacienta ve službě FHIR
Je důležité si uvědomit, že uživatelé v tenantovi B2C nemůžou číst žádné prostředky, dokud uživatel (například pacient nebo odborník) není propojený s prostředkem FHIR. Tento krok musí provést uživatel s FhirDataWriter
id nebo FhirDataContributor
rolí v ID Microsoft Entra, kde je služba FHIR tenantována.
- Vytvořte pacienta s konkrétním identifikátorem tak, že změníte metodu na
PUT
požadavek a spustíte ho{{fhirurl}}/Patient/1
s tímto textem:
{
"resourceType": "Patient",
"id": "1",
"name": [
{
"family": "Patient1",
"given": [
"Test"
]
}
]
}
- Ověřte, že je pacient vytvořen, změnou metody zpět
GET
a ověřením, že žádost o{{fhirurl}}/Patient
vrácení nově vytvořeného pacienta.
Propojení prostředku pacienta s uživatelem Azure AD B2C
Vytvořte explicitní propojení mezi testovacím uživatelem v tenantovi B2C a prostředkem ve službě FHIR. Vytvořte odkaz pomocí atributů rozšíření v Microsoft Graphu. Další informace najdete v tématu Definování vlastních atributů v Azure Active Directory B2C.
Přejděte do tenanta B2C. V levém podokně zvolte Registrace aplikací.
Vyberte Všechny aplikace.
Vyberte aplikaci s předponou b2c-extensions-app.
Poznamenejte si hodnotu ID aplikace (klienta).
Přejděte zpět na domovskou stránku tenanta B2C a v levém podokně vyberte Uživatelé.
Vyberte Test Patient1.
Poznamenejte si hodnotu ID objektu.
Otevřete Microsoft Graph Explorer. Přihlaste se pomocí uživatele přiřazeného k roli globálního správce tenanta B2C. (Pro správu uživatelů v tenantovi B2C je vhodné vytvořit nového uživatele správce.)
Vyberte avatar uživatele a pak zvolte Souhlas s oprávněními.
Přejděte na uživatele. Souhlas s user.ReadWrite.All Toto oprávnění umožňuje aktualizovat uživatele Test Patient1 hodnotou
fhirUser
deklarace identity.Po dokončení procesu souhlasu aktualizujte uživatele. Potřebujete ID aplikace b2c-extensions-app (klient) a ID objektu uživatele.
Změňte metodu na
PATCH
.Změňte adresu URL na https://graph.microsoft.com/v1.0/users/{USER_OBJECT_ID}.
PATCH
Vytvořte tělo. TěloPATCH
je jeden pár klíč-hodnota, kde je formátextension_{B2C_EXTENSION_APP_ID_NO_HYPHENS}_fhirUser
klíče a hodnota je plně kvalifikované ID prostředku FHIR pro pacientahttps://{YOUR_FHIR_SERVICE}.azurehealthcareapis.com/Patient/1"
.
Další informace najdete v tématu Správa atributů rozšíření prostřednictvím Microsoft Graphu.
Po naformátování požadavku zvolte Spustit dotaz. Počkejte na úspěšnou odpověď, která potvrdí, že je uživatel v tenantovi B2C propojený s prostředkem pacienta ve službě FHIR.
Konfigurace nástroje Postman pro získání přístupového tokenu pro uživatele B2C
Získejte přístupový token pro otestování toku ověřování.
Spusťte aplikaci Postman a pak vytvořte novou prázdnou kolekci. V tomto příkladu má kolekce název FHIR Patient.
V přehledu kolekce vyberte kartu Autorizace.
V rozevíracím seznamu Typ vyberte OAuth 2.0.
Přejděte do části Konfigurovat nový token a zadejte následující hodnoty.
Adresa URL zpětného volání. Tato hodnota je nakonfigurována při vytvoření aplikace prostředků B2C.
https://oauth.pstmn.io/v1/callback
Ověřovací adresa URL Tuto hodnotu lze vytvořit pomocí názvu tenanta B2C a názvu toku uživatele.
https://{YOUR_B2C_TENANT_NAME}.b2clogin.com/{YOUR_B2C_TENANT_NAME}.onmicrosoft.com/{YOUR_USER_FLOW_NAME}/oauth2/v2.0/authorize
Adresa URL přístupového tokenu Tuto hodnotu lze vytvořit pomocí názvu tenanta B2C a názvu toku uživatele.
https://{YOUR_B2C_TENANT_NAME}.b2clogin.com/{YOUR_B2C_TENANT_NAME}.onmicrosoft.com/{YOUR_USER_FLOW_NAME}/oauth2/v2.0/token
ID klienta. Tato hodnota je ID aplikace (klienta) aplikace prostředků B2C.
{YOUR_APPLICATION_ID}
Rozsah. Tato hodnota je definována v aplikaci prostředků B2C v části Vystavení rozhraní API . Oprávnění udělené oborem je
patient.all.read
. Požadavek oboru musí být plně kvalifikovanou adresou URL,https://testb2c.onmicrosoft.com/fhir/patient.all.read
například .
Zkopírujte plně kvalifikovaný obor z části Zveřejnit rozhraní API aplikace prostředků B2C.
{YOUR_APPLICATION_ID_URI}/patient.all.read
Načtení prostředku pacienta pomocí uživatele B2C
Ověřte, že uživatelé Azure AD B2C mají přístup k prostředkům FHIR.
Pokud je v Nástroji Postman nastavena konfigurace autorizace pro spuštění toku uživatele B2C, zvolte Získat nový přístupový token a získejte přístupový token.
Přihlaste se pomocí přihlašovacích údajů testovacího pacienta .
Pokud chcete použít přístupový token pro všechny požadavky v kolekci, zvolte Použít token .
Vytvořte novou žádost o vyhledání prostředků pacientů ve službě FHIR. Vyberte tlačítko se třemi tečkou (...) vedle názvu kolekce a pak zvolte Přidat požadavek.
Nastavte metodu na
GET
, zadejte plně kvalifikovanou adresu URL služby FHIR a pak přidejte cestu/Patient
.Zvolte Odeslat.
Ověřte, že odpověď obsahuje jeden prostředek pacienta.
Další kroky
Konfigurace více zprostředkovatelů identity
Řešení potíží s konfigurací zprostředkovatele identity
Poznámka:
FHIR® je registrovaná ochranná známka HL7 a používá se s povolením HL7.