Sdílet prostřednictvím


Konfigurace rolí Azure RBAC pomocí Azure CLI a rozhraní REST API

V tomto článku se dozvíte, jak udělit oprávnění klientským aplikacím a uživatelům pro přístup ke službě Azure Health Data Services pomocí rozhraní příkazového řádku Azure (CLI) a rozhraní REST API. Tento krok se označuje jako přiřazení role nebo řízení přístupu na základě role v Azure (RBAC). Další informace najdete v tématu Konfigurace role Azure RBAC.

Zobrazte a stáhněte skripty rozhraní příkazového řádku a skripty ROZHRANÍ REST API z ukázek služby Azure Health Data Services.

Poznámka:

Aby bylo možné provést operaci přiřazení role, musí být uživateli (nebo klientské aplikaci) udělena oprávnění RBAC. Požádejte o pomoc správce předplatného Azure.

Přiřazení rolí pomocí rozhraní příkazového řádku

Role aplikací můžete vypsat pomocí názvů rolí nebo IDENTIFIKÁTORů GUID. Pokud jsou v nich mezery, zahrňte název role do dvojitých uvozovek. Další informace najdete v tématu Výpis definic rolí Azure.

az role definition list --name "FHIR Data Contributor"
az role definition list --name 5a1fc7df-4bf1-4951-a576-89034ee01acd
az role definition list --name "DICOM Data Owner"
az role definition list --name 58a3b984-7adf-4c20-983a-32417c86fbc8

Přiřazení role Azure Health Data Services

Přiřazení rolí pro službu Azure Health Data Services vyžadují tyto hodnoty:

  • Název role aplikace nebo ID GUID.
  • ID instančního objektu pro uživatele nebo klientskou aplikaci.
  • Rozsah přiřazení role, tj. instance služby Azure Health Data Services. Zahrnuje předplatné, skupinu prostředků, název pracovního prostoru a název služby FHIR nebo DICOM. Pro obor můžete použít absolutní nebo relativní adresu URL. Všimněte si, že na začátek relativní adresy URL se nepřidá "/".
#Azure Health Data Services role assignment
fhirrole="FHIR Data Contributor"
dicomrole="DICOM Data Owner"
clientid=xxx
subscriptionid=xxx
resourcegroupname=xxx
workspacename=xxx
fhirservicename=xxx
dicomservicename=xxx
fhirrolescope="subscriptions/$subscriptionid/resourceGroups/$resourcegroupname/providers/Microsoft.HealthcareApis/workspaces/$workspacename/fhirservices/$fhirservicename"
dicomrolescope="subscriptions/$subscriptionid/resourceGroups/$resourcegroupname/providers/Microsoft.HealthcareApis/workspaces/$workspacename/dicomservices/$dicomservicename"

#find client app service principal id
spid=$(az ad sp show --id $clientid --query objectId --output tsv)

#assign the specified role
az role assignment create --assignee-object-id $spid --assignee-principal-type ServicePrincipal --role "$fhirrole" --scope $fhirrolescope
az role assignment create --assignee-object-id $spid --assignee-principal-type ServicePrincipal --role "$dicomrole" --scope $dicomrolescope

Stav přiřazení role můžete ověřit z odpovědi příkazového řádku nebo na webu Azure Portal.

Přiřazení role Azure API for FHIR

Přiřazení rolí pro rozhraní Azure API for FHIR fungují podobně. Rozdíl je v tom, že obor obsahuje pouze službu FHIR a název pracovního prostoru není povinný.

#azure api for fhir role assignment
fhirrole="FHIR Data Contributor"
clientid=xxx
subscriptionid=xxx
resourcegroupname=xxx
fhirservicename=xxx
fhirrolescope="subscriptions/$subscriptionid/resourceGroups/$resourcegroupname/providers/Microsoft.HealthcareApis/services/$fhirservicename"

#find client app service principal id
spid=$(az ad sp show --id $clientid --query objectId --output tsv)

#assign the specified role
az role assignment create --assignee-object-id $spid --assignee-principal-type ServicePrincipal --role "$fhirrole" --scope $fhirrolescope

Přiřazení rolí pomocí rozhraní REST API

Alternativně můžete přímo odeslat požadavek Put do rozhraní REST API přiřazení role. Další informace najdete v tématu Přiřazení rolí Azure pomocí rozhraní REST API.

Poznámka:

Skripty rozhraní REST API v tomto článku jsou založené na rozšíření klienta REST. Pokud jste v jiném prostředí, musíte proměnné upravit.

Rozhraní API vyžaduje tyto hodnoty:

  • ID přiřazení, což je hodnota GUID, která jednoznačně identifikuje transakci. K získání hodnoty GUID můžete použít nástroje, jako je visual Studio nebo rozšíření Visual Studio Code. Můžete také použít online nástroje, jako je UUID Generator k získání.
  • Verze rozhraní API podporovaná rozhraním API
  • Rozsah služeb Azure Health Data Services, ke kterým udělujete přístupová oprávnění. Zahrnuje ID předplatného, název skupiny prostředků a název instance služby FHIR nebo DICOM.
  • ID definice role pro role, jako je přispěvatel dat FHIR nebo vlastník dat DICOM. Slouží az role definition list --name "<role name>" k výpisu ID definic rolí.
  • ID instančního objektu pro uživatele nebo klientskou aplikaci
  • Přístupový token Microsoft Entra k datové službě Azure Health, nikoli ke službě https://management.azure.com/Azure Health. Přístupový token můžete získat pomocí existujícího nástroje nebo pomocí příkazu Azure CLI. az account get-access-token --resource "https://management.azure.com/"
  • Pro službu Azure Health Data Services rozsah zahrnuje název pracovního prostoru a název instance služby FHIR/DICOM.
### Create a role assignment - Azure Health Data Services (DICOM)
@roleassignmentid=xxx
@roleapiversion=2021-04-01
@roledefinitionid=58a3b984-7adf-4c20-983a-32417c86fbc8
dicomservicename-xxx
@scope=/subscriptions/{{subscriptionid}}/resourceGroups/{{resourcegroupname}}/providers/Microsoft.HealthcareApis/workspaces/{{workspacename}}/dicomservices/{{dicomservicename}}
#get service principal id
@spid=xxx
#get access token
@token=xxx

PUT https://management.azure.com/{{scope}}/providers/Microsoft.Authorization/roleAssignments/{{roleassignmentid}}?api-version={{roleapiversion}}
Authorization: Bearer {{token}}
Content-Type: application/json
Accept: application/json

{
  "properties": {
    "roleDefinitionId": "/subscriptions/{{subscriptionid}}/providers/Microsoft.Authorization/roleDefinitions/{{roledefinitionid}}",
    "principalId": "{{spid}}"
  }
}

Pro rozhraní Azure API for FHIR se obor definuje jinak, protože podporuje pouze službu FHIR a nevyžaduje se žádný název pracovního prostoru.

### Create a role assignment - Azure API for FHIR
@roleassignmentid=xxx
@roleapiversion=2021-04-01
@roledefinitionid=5a1fc7df-4bf1-4951-a576-89034ee01acd
fhirservicename-xxx
@scope=/subscriptions/{{subscriptionid}}/resourceGroups/{{resourcegroupname}}/providers/Microsoft.HealthcareApis/services/{{fhirservicename}}
#get service principal id
@spid=xxx
#get access token
@token=xxx

PUT https://management.azure.com/{{scope}}/providers/Microsoft.Authorization/roleAssignments/{{roleassignmentid}}?api-version={{roleapiversion}}
Authorization: Bearer {{token}}
Content-Type: application/json
Accept: application/json

{
  "properties": {
    "roleDefinitionId": "/subscriptions/{{subscriptionid}}/providers/Microsoft.Authorization/roleDefinitions/{{roledefinitionid}}",
    "principalId": "{{spid}}"
  }
}

Výpis instancí služby Azure Health Data Services

Volitelně můžete získat seznam služeb Azure Health Data Services nebo azure API for FHIR. Verze rozhraní API je založená na službě Azure Health Data Services, nikoli na verzi rozhraní REST API přiřazení role.

V případě služeb Azure Health Data Services zadejte ID předplatného, název skupiny prostředků, název pracovního prostoru, služby FHIR nebo DICOM a verzi rozhraní API.

### Get Azure Health Data Services DICOM services
@apiversion=2021-06-01
@subscriptionid=xxx
@resourcegroupname=xxx
@workspacename=xxx

GET  https://management.azure.com/subscriptions/{{subscriptionid}}/resourceGroups/{{resourcegroupname}}/providers/Microsoft.HealthcareApis/workspaces/{{workspacename}}/dicomservices?api-version={{apiversion}}
Authorization: Bearer {{token}}
Content-Type: application/json
Accept: application/json

Pro Azure API for FHIR zadejte ID předplatného a verzi rozhraní API.

### Get a list of Azure API for FHIR services
@apiversion=2021-06-01
@subscriptionid=xxx

GET  https://management.azure.com/subscriptions/{{subscriptionid}}/providers/Microsoft.HealthcareApis/services?api-version={{apiversion}}
Authorization: Bearer {{token}}
Content-Type: application/json
Accept: application/json

Jakmile klientské aplikaci udělíte správná oprávnění, můžete ve svých aplikacích přistupovat ke službě Azure Health Data Services.

Další kroky

Přístup pomocí klienta REST

Poznámka:

FHIR® je registrovaná ochranná známka HL7 a používá se s povolením HL7.

DICOM® je registrovaná ochranná známka asociace National Electrical Manufacturers Association pro publikace standardů týkající se digitální komunikace s lékařskými informacemi.