Delen via


Azure RBAC-rollen configureren met behulp van Azure CLI en REST API

In dit artikel leert u hoe u machtigingen kunt verlenen aan clienttoepassingen en gebruikers voor toegang tot Azure Health Data Services met behulp van de Azure CLI (Opdrachtregelinterface) en REST API. Deze stap wordt ook wel roltoewijzing of op rollen gebaseerd toegangsbeheer (RBAC) van Azure genoemd. Zie Azure RBAC-rol configureren voor meer informatie.

Bekijk en download de CLI-scripts en REST API-scripts uit Voorbeelden van Azure Health Data Services.

Notitie

Als u de roltoewijzingsbewerking wilt uitvoeren, moet de gebruiker (of de clienttoepassing) worden verleend met RBAC-machtigingen. Neem contact op met uw Azure-abonnementsbeheerders voor hulp.

Roltoewijzingen met CLI

U kunt toepassingsrollen weergeven met behulp van rolnamen of GUID-id's. Neem de rolnaam op tussen dubbele aanhalingstekens wanneer er spaties in staan. Zie Lijst met Azure-roldefinities voor meer informatie.

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

Azure Health Data Services-roltoewijzing

Voor de roltoewijzingen voor Azure Health Data Services zijn deze waarden vereist:

  • Naam van toepassingsrol of GUID-id.
  • Service-principal-id voor de gebruiker of clienttoepassing.
  • Bereik voor de roltoewijzing, dat wil gezegd het Azure Health Data Services-service-exemplaar. Het omvat abonnement, resourcegroep, werkruimtenaam en FHIR- of DICOM-servicenaam. U kunt de absolute of relatieve URL voor het bereik gebruiken. Houd er rekening mee dat '/' niet wordt toegevoegd aan het begin van de relatieve URL.
#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

U kunt de status van de roltoewijzing controleren vanuit het opdrachtregelantwoord of in Azure Portal.

Azure API for FHIR-roltoewijzing

Roltoewijzingen voor Azure API for FHIR werken op dezelfde manier. Het verschil is dat het bereik alleen de FHIR-service bevat en dat de naam van de werkruimte niet is vereist.

#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

Roltoewijzingen met REST API

U kunt ook een Put-aanvraag rechtstreeks naar de REST API voor roltoewijzing verzenden. Zie Azure-rollen toewijzen met behulp van de REST API voor meer informatie.

Notitie

De REST API-scripts in dit artikel zijn gebaseerd op de REST-clientextensie . U moet de variabelen aanpassen als u zich in een andere omgeving bevindt.

Voor de API zijn deze waarden vereist:

  • Toewijzings-id, een GUID-waarde die de transactie uniek identificeert. U kunt hulpprogramma's zoals Visual Studio of Visual Studio Code-extensie gebruiken om een GUID-waarde op te halen. U kunt ook online hulpprogramma's zoals UUID Generator gebruiken om deze te verkrijgen.
  • API-versie die wordt ondersteund door de API.
  • Bereik voor Azure Health Data Services waaraan u toegangsmachtigingen verleent. Het bevat de abonnements-id, de naam van de resourcegroep en de naam van het FHIR- of DICOM-service-exemplaar.
  • Roldefinitie-id voor rollen zoals FHIR-gegevensbijdrager of DICOM-gegevenseigenaar. Gebruik az role definition list --name "<role name>" dit om de roldefinitie-id's weer te geven.
  • Service-principal-id voor de gebruiker of de clienttoepassing.
  • Microsoft Entra-toegangstoken voor het https://management.azure.com/, niet Azure Health Data Services. U kunt het toegangstoken ophalen met behulp van een bestaand hulpprogramma of met behulp van de Azure CLI-opdracht, az account get-access-token --resource "https://management.azure.com/"
  • Voor Azure Health Data Services bevat het bereik de naam van de werkruimte en de naam van het FHIR-/DICOM-service-exemplaar.
### 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}}"
  }
}

Voor Azure API for FHIR wordt het bereik anders gedefinieerd, omdat het alleen de FHIR-service ondersteunt en er geen werkruimtenaam is vereist.

### 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}}"
  }
}

Service-exemplaren van Azure Health Data Services vermelden

U kunt desgewenst een lijst met Azure Health Data Services-services of Azure API for FHIR ophalen. De API-versie is gebaseerd op Azure Health Data Services, niet op de versie voor de REST API voor roltoewijzing.

Geef voor Azure Health Data Services de abonnements-id, resourcegroepnaam, werkruimtenaam, FHIR- of DICOM-services en de API-versie op.

### 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

Geef voor Azure API for FHIR de abonnements-id en de API-versie op.

### 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

Nadat u de juiste machtigingen hebt verleend aan de clienttoepassing, hebt u toegang tot Azure Health Data Services in uw toepassingen.

Volgende stappen

Toegang met rest-client

Notitie

FHIR® is een geregistreerd handelsmerk van HL7 en wordt gebruikt met de machtiging HL7.

DICOM® is het gedeponeerde handelsmerk van de National Electrical Manufacturers Association voor haar standaardenpublicaties met betrekking tot digitale communicatie van medische informatie.