Condividi tramite


Configurare i ruoli 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 autorizzazioni alle applicazioni client e agli utenti per accedere a Servizi dati di integrità di Azure usando l'interfaccia della 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. Per altre informazioni, vedere Configurare il ruolo Controllo degli accessi in base al ruolo di Azure.

Visualizzare e scaricare gli script dell'interfaccia della riga di comando e gli script dell'API REST da 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 sono presenti 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 questi valori:

  • 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 sottoscrizione, gruppo di risorse, nome dell'area di lavoro e 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 nel portale di Azure.

Assegnazione di ruolo dell'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 per l'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, è necessario rivedere le variabili.

L'API richiede questi valori:

  • 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 per 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 quali Collaboratore dati FHIR o Proprietario dati DICOM. Usare az role definition list --name "<role name>" per elencare gli ID di definizione del ruolo.
  • ID entità servizio per l'utente o l'applicazione client.
  • Token di accesso di Microsoft Entra a https://management.azure.com/, non a Servizi dati di integrità di Azure. È possibile ottenere il token di accesso usando uno strumento esistente o 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 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. La versione dell'API si basa su Servizi dati di integrità di Azure, non sulla versione per l'API REST per l'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

Accesso tramite client REST

Nota

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

DICOM® è il marchio registrato della National Electrical Manufacturers Association per le sue pubblicazioni Standard relative alle comunicazioni digitali delle informazioni mediche.