Sdílet prostřednictvím


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.

  1. Slouží Connect-AzAccount k přihlášení k Azure. Po přihlášení použijte 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.

  2. 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í.

  1. Na webu Azure Portal přejděte k prostředku B2C. Zvolte Otevřít tenanta B2C.

    Snímek obrazovky znázorňující prostředek B2C

  2. V levém podokně zvolte Uživatelé.

    Snímek obrazovky zobrazujícího domácího uživatele

  3. Zvolte + Nový uživatel.

    Snímek obrazovky znázorňující přidání nového 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.

  1. Na stránce Azure AD B2C v levém podokně zvolte Atributy uživatele.

  2. Zvolte + Přidat.

  3. Do pole Název zadejte fhirUser (rozlišují se malá a velká písmena).

  4. V rozevíracím seznamu Datový typ vyberte Řetězec.

  5. Zvolte Vytvořit.

    Snímek obrazovky s atributem B2C

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.

  1. Na stránce Azure AD B2C v levém podokně zvolte Toky uživatele.

  2. Zvolte + Nový tok uživatele.

    Snímek obrazovky znázorňující tok uživatele B2C

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

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

    Snímek obrazovky znázorňující konfiguraci toku uživatele B2C

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

  6. Vyberte deklaraci identity fhirUser.

  7. Vyberte OK.

  8. Zvolte Vytvořit.

    Snímek obrazovky znázorňující konfiguraci toku uživatele B2C s deklarací identity uživatele FHIR

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.

  1. Na stránce Azure AD B2C v levém podokně zvolte Registrace aplikací.

  2. Zvolte + Nová registrace.

    Snímek obrazovky znázorňující novou aplikaci B2C

  3. Zadejte zobrazovaný název. V tomto příkladu se používá služba FHIR.

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

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

  6. V části Oprávnění vyberte Udělení souhlasu správce s openid a offline_access oprávnění.

  7. Zvolte Zaregistrovat. Počkejte na dokončení registrace aplikace. Prohlížeč automaticky přejde na stránku Přehled aplikace.

    Snímek obrazovky zobrazující registraci aplikace B2C

Konfigurace oprávnění rozhraní API pro aplikaci

  1. Na stránce Registrace aplikací v levém podokně zvolte Manifest.

  2. 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ů.

  3. Po naplnění pole oauth2Permissions zvolte Uložit.

    Snímek obrazovky znázorňující manifest aplikace B2C

Zveřejnění webového rozhraní API a přiřazení identifikátoru URI ID aplikace

  1. Na stránce Registrace aplikací v levém podokně zvolte Zveřejnit rozhraní API.

  2. Zvolte položku Přidat.

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

  4. Vyberte Uložit.

    Snímek obrazovky zobrazující rozhraní API aplikace B2C

  5. Na stránce Registrace aplikací v levém podokně zvolte oprávnění rozhraní API.

  6. Zvolte + Přidat oprávnění.

    Snímek obrazovky s oprávněním rozhraní API B2C

  7. V podokně Oprávnění rozhraní API žádosti vyberte rozhraní API, která moje organizace používá.

  8. Ze seznamu vyberte aplikaci prostředků.

    Snímek obrazovky zobrazující oprávnění rozhraní API B2C s použitými rozhraními API

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

  10. Zvolte Přidat oprávnění.

    Snímek obrazovky znázorňující oprávnění rozhraní API B2C s přidanými oprávněními

  11. Na stránce Oprávnění rozhraní API v části Nakonfigurovaná oprávnění zvolte Udělení souhlasu správce.

    Snímek obrazovky zobrazující oprávnění rozhraní API B2C pro souhlas 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.

  1. 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
    
  2. 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
    
  3. Načtěte ID klienta ze stránky přehledu aplikace prostředků.

    Snímek obrazovky se stránkou přehledu aplikace B2C

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.

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

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

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

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.

  1. Přejděte do tenanta B2C. V levém podokně zvolte Registrace aplikací.

  2. Vyberte Všechny aplikace.

  3. Vyberte aplikaci s předponou b2c-extensions-app.

    Snímek obrazovky se seznamem aplikací B2C

  4. Poznamenejte si hodnotu ID aplikace (klienta).

    Snímek obrazovky zobrazující aplikaci rozšíření B2C

  5. Přejděte zpět na domovskou stránku tenanta B2C a v levém podokně vyberte Uživatelé.

    Snímek obrazovky znázorňujícího domácího uživatele B2C

  6. Vyberte Test Patient1.

    Snímek obrazovky se seznamem uživatelů B2C

  7. Poznamenejte si hodnotu ID objektu.

    Snímek obrazovky s ID uživatele B2C

  8. 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.)

    Snímek obrazovky znázorňující přihlášení k Graphu

  9. Vyberte avatar uživatele a pak zvolte Souhlas s oprávněními.

    Snímek obrazovky zobrazující souhlas graphu pro testovacího uživatele

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

    Snímek obrazovky znázorňující souhlas Graphu pro deklaraci identity fhirUser

  11. 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ělo PATCH je jeden pár klíč-hodnota, kde je formát extension_{B2C_EXTENSION_APP_ID_NO_HYPHENS}_fhirUser klíče a hodnota je plně kvalifikované ID prostředku FHIR pro pacienta https://{YOUR_FHIR_SERVICE}.azurehealthcareapis.com/Patient/1".

    Další informace najdete v tématu Správa atributů rozšíření prostřednictvím Microsoft Graphu.

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

    Snímek obrazovky znázorňující opravu grafu

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

  1. Spusťte aplikaci Postman a pak vytvořte novou prázdnou kolekci. V tomto příkladu má kolekce název FHIR Patient.

    Snímek obrazovky znázorňující novou kolekci Postman

  2. V přehledu kolekce vyberte kartu Autorizace.

  3. V rozevíracím seznamu Typ vyberte OAuth 2.0.

    Snímek obrazovky zobrazující ověřování Postman

  4. 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.readnapříklad .

  5. Zkopírujte plně kvalifikovaný obor z části Zveřejnit rozhraní API aplikace prostředků B2C.

    {YOUR_APPLICATION_ID_URI}/patient.all.read
    

    Snímek obrazovky zobrazující adresy URL postmanu

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.

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

    Snímek obrazovky znázorňující získání přístupového tokenu Postman

  2. Přihlaste se pomocí přihlašovacích údajů testovacího pacienta .

    Snímek obrazovky znázorňující token Get Postman

  3. Pokud chcete použít přístupový token pro všechny požadavky v kolekci, zvolte Použít token .

    Snímek obrazovky znázorňující token use Postman

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

    Snímek obrazovky s přidanou žádostí Postman

  5. Nastavte metodu na GET, zadejte plně kvalifikovanou adresu URL služby FHIR a pak přidejte cestu /Patient.

  6. Zvolte Odeslat.

  7. Ověřte, že odpověď obsahuje jeden prostředek pacienta.

    Snímek obrazovky zobrazující odpověď požadavku Postman

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.