Condividi tramite


Configurare il ruolo controllo degli accessi in base al ruolo di Azure usando l'interfaccia della riga di comando di Azure e l'API REST

Questo articolo illustra come concedere le autorizzazioni alle applicazioni client (e agli utenti) per accedere a Servizi dati di integrità di Azure usando l'interfaccia della Command-Line riga di comando di Azure e l'API REST. Questo passaggio viene definito "assegnazione di ruolo" o controllo degli accessi in base al ruolo di Azure (ruolo Controllo degli accessi in base al ruolo di Azure). Per altre informazioni sui ruoli applicazione definiti per Servizi dati di integrità di Azure, vedere Configurare il ruolo controllo degli accessi in base al ruolo di Azure.

È possibile visualizzare e scaricare gli script dell'interfaccia della riga di comando e gli script dell'API REST dagli esempi di Servizi dati di Integrità di Azure.

Nota

Per eseguire l'operazione di assegnazione di ruolo, l'utente (o l'applicazione client) deve essere concesso con autorizzazioni di controllo degli accessi in base al ruolo. Per assistenza, contattare gli amministratori delle sottoscrizioni di Azure.

Assegnazioni di ruolo con l'interfaccia della riga di comando

È possibile elencare i ruoli applicazione usando nomi di ruolo o ID GUID. Includere il nome del ruolo tra virgolette doppie quando vi sono spazi. Per altre informazioni, vedere Elencare le definizioni dei ruoli di 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

Assegnazione di ruolo di Servizi dati di Integrità di Azure

Le assegnazioni di ruolo per Servizi dati di integrità di Azure richiedono i valori seguenti.

  • Nome del ruolo applicazione o ID GUID.
  • ID entità servizio per l'utente o l'applicazione client.
  • Ambito per l'assegnazione di ruolo, ovvero l'istanza del servizio Servizi dati di integrità di Azure. Include la sottoscrizione, il gruppo di risorse, il nome dell'area di lavoro e il nome del servizio FHIR o DICOM. È possibile usare l'URL assoluto o relativo per l'ambito. Si noti che "/" non viene aggiunto all'inizio dell'URL relativo.
#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

È possibile verificare lo stato dell'assegnazione di ruolo dalla risposta della riga di comando o nella portale di Azure.

Assegnazione di ruolo api di Azure per FHIR

Le assegnazioni di ruolo per l'API di Azure per FHIR funzionano in modo analogo. La differenza è che l'ambito contiene solo il servizio FHIR e il nome dell'area di lavoro non è obbligatorio.

#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

Assegnazioni di ruolo con l'API REST

In alternativa, è possibile inviare direttamente una richiesta Put all'API REST di assegnazione di ruolo. Per altre informazioni, vedere Assegnare ruoli di Azure usando l'API REST.

Nota

Gli script dell'API REST in questo articolo si basano sull'estensione client REST . Se ci si trova in un ambiente diverso, sarà necessario rivedere le variabili.

L'API richiede i valori seguenti:

  • ID assegnazione, ovvero un valore GUID che identifica in modo univoco la transazione. È possibile usare strumenti come Visual Studio o l'estensione di Visual Studio Code per ottenere un valore GUID. Inoltre, è possibile usare strumenti online come UUID Generator per ottenerlo.
  • Versione dell'API supportata dall'API.
  • Ambito di Servizi dati di integrità di Azure a cui si concedono le autorizzazioni di accesso. Include l'ID sottoscrizione, il nome del gruppo di risorse e il nome dell'istanza del servizio FHIR o DICOM.
  • ID definizione ruolo per ruoli come "Collaboratore dati FHIR" o "Proprietario dati DICOM". Usare az role definition list --name "<role name>" per elencare gli ID definizione del ruolo.
  • ID entità servizio per l'utente o l'applicazione client.
  • Token di accesso di Azure AD a , non a https://management.azure.com/Servizi dati di Integrità di Azure. È possibile ottenere il token di accesso usando uno strumento esistente o usando il comando dell'interfaccia della riga di comando di Azure. az account get-access-token --resource "https://management.azure.com/"
  • Per Servizi dati di integrità di Azure, l'ambito include il nome dell'area di lavoro e il nome dell'istanza del servizio 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}}"
  }
}

Per l'API di Azure per FHIR, l'ambito viene definito in modo leggermente diverso perché supporta solo il servizio FHIR e non è necessario alcun nome dell'area di lavoro.

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

Elencare le istanze del servizio di Servizi dati di Integrità di Azure

Facoltativamente, è possibile ottenere un elenco dei servizi di Servizi dati di integrità di Azure o dell'API di Azure per FHIR. Si noti che la versione dell'API è basata su Servizi dati di integrità di Azure, non sulla versione per l'API REST di assegnazione di ruolo.

Per Servizi dati di integrità di Azure, specificare l'ID sottoscrizione, il nome del gruppo di risorse, il nome dell'area di lavoro, i servizi FHIR o DICOM e la versione dell'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

Per L'API di Azure per FHIR, specificare l'ID sottoscrizione e la versione dell'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

Dopo aver concesso le autorizzazioni appropriate all'applicazione client, è possibile accedere a Servizi dati di integrità di Azure nelle applicazioni.

Passaggi successivi

In questo articolo si è appreso come concedere autorizzazioni alle applicazioni client usando l'interfaccia della riga di comando di Azure e l'API REST. Per informazioni su come accedere a Servizi dati di integrità di Azure usando l'estensione client REST in Visual Studio Code, vedere

FHIR® è un marchio registrato di HL7 e viene usato con l'autorizzazione di HL7.