Delen via


Azure RBAC-rol 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 Azure Command-Line Interface (CLI) en REST API. Deze stap wordt 'roltoewijzing' of Op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC-rol) genoemd. Zie Azure RBAC-rol configureren voor meer informatie over de toepassingsrollen die zijn gedefinieerd voor Azure Health Data Services.

U kunt de CLI-scripts en REST API-scripts bekijken en downloaden vanuit Azure Health Data Services-voorbeelden.

Notitie

Als u de roltoewijzingsbewerking wilt uitvoeren, moet aan de gebruiker (of de clienttoepassing) RBAC-machtigingen worden verleend. 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 naam van de rol op tussen dubbele aanhalingstekens wanneer er spaties in staan. Zie Azure-roldefinities weergeven 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 de volgende waarden vereist.

  • Naam van toepassingsrol of GUID-id.
  • Service-principal-id voor de gebruiker of clienttoepassing.
  • Bereik voor de roltoewijzing, dat wil gezegd, het service-exemplaar van Azure Health Data Services. 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 de 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 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 rechtstreeks een Put-aanvraag verzenden naar de REST API van de roltoewijzing. 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 herzien als u zich in een andere omgeving bevindt.

Voor de API zijn de volgende waarden vereist:

  • Toewijzings-id, een GUID-waarde die de transactie uniek identificeert. U kunt hulpprogramma's zoals Visual Studio of de Visual Studio Code-extensie gebruiken om een GUID-waarde op te halen. U kunt ook online hulpprogramma's zoals UUID Generator gebruiken om het te krijgen.
  • 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>" om de roldefinitie-id's weer te geven.
  • Service-principal-id voor de gebruiker of de clienttoepassing.
  • Azure AD toegangstoken naar de https://management.azure.com/, niet naar 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 omvat 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 iets 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 weergeven

U kunt desgewenst een lijst met Azure Health Data Services-services of Azure API for FHIR ophalen. Houd er rekening mee dat 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

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

Volgende stappen

In dit artikel hebt u geleerd hoe u machtigingen kunt verlenen aan clienttoepassingen met behulp van Azure CLI en REST API. Zie voor informatie over het openen van Azure Health Data Services met behulp van de REST-clientextensie in Visual Studio Code

FHIR® is een gedeponeerd handelsmerk van HL7 en wordt gebruikt met de toestemming van HL7.