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.