Share via


Azure RBAC-szerepkör konfigurálása az Azure CLI és a REST API használatával

Ebből a cikkből megtudhatja, hogyan adhat engedélyeket ügyfélalkalmazások (és felhasználók) számára az Azure Health Data Services eléréséhez az Azure Command-Line Interface (CLI) és a REST API használatával. Ezt a lépést " szerepkör-hozzárendelésnek" vagy Azure-beli szerepköralapú hozzáférés-vezérlésnek (Azure RBAC-szerepkörnek) nevezzük. Az Azure Health Data Serviceshez definiált alkalmazás-szerepkörök további megismeréséhez tekintse meg az Azure RBAC-szerepkör konfigurálását ismertető cikket.

A CLI-szkripteket és a REST API-szkripteket az Azure Health Data Services-mintákból tekintheti meg és töltheti le.

Megjegyzés

A szerepkör-hozzárendelési művelet végrehajtásához a felhasználónak (vagy az ügyfélalkalmazásnak) RBAC-engedélyekkel kell rendelkeznie. Segítségért forduljon az Azure-előfizetés rendszergazdáihoz.

Szerepkör-hozzárendelések a parancssori felülettel

Az alkalmazásszerepköröket szerepkörnevek vagy GUID azonosítók használatával listázhatja. Ha szóközök vannak benne, a szerepkör nevét idézőjelek közé kell foglalni. További információ: Azure-beli szerepkör-definíciók listázása.

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 szerepkör-hozzárendelés

Az Azure Health Data Services szerepkör-hozzárendeléseihez a következő értékek szükségesek.

  • Alkalmazásszerepkör neve vagy GUID azonosítója.
  • A felhasználó vagy az ügyfélalkalmazás egyszerű szolgáltatásazonosítója.
  • A szerepkör-hozzárendelés hatóköre, azaz az Azure Health Data Services szolgáltatáspéldánya. Ide tartozik az előfizetés, az erőforráscsoport, a munkaterület neve, valamint az FHIR vagy a DICOM szolgáltatás neve. A hatókörhöz használhatja az abszolút vagy relatív URL-címet. Vegye figyelembe, hogy a relatív URL-cím elején a "/" nincs hozzáadva.
#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

A szerepkör-hozzárendelés állapotát a parancssori válaszban vagy a Azure Portal ellenőrizheti.

Azure API for FHIR szerepkör-hozzárendelés

Az Azure API for FHIR szerepkör-hozzárendelései hasonlóan működnek. A különbség az, hogy a hatókör csak az FHIR szolgáltatást tartalmazza, és a munkaterület neve nem szükséges.

#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

Szerepkör-hozzárendelések a REST API-val

Másik lehetőségként közvetlenül is küldhet Put kérést a szerepkör-hozzárendelés REST API-jának. További információ: Azure-szerepkörök hozzárendelése a REST API használatával.

Megjegyzés

A cikkben szereplő REST API-szkriptek a REST-ügyfél bővítményén alapulnak. Ha más környezetben van, át kell vizsgálnia a változókat.

Az API-nak a következő értékekre van szüksége:

  • Hozzárendelés-azonosító, amely a tranzakciót egyedileg azonosító GUID-érték. A GUID-érték lekéréséhez használhat olyan eszközöket, mint a Visual Studio vagy a Visual Studio Code-bővítmény. Emellett az olyan online eszközökkel is beszerezheti, mint az UUID Generator .
  • Az API által támogatott API-verzió.
  • Azon Azure Health Data Services hatóköre, amelyhez hozzáférési engedélyeket ad meg. Tartalmazza az előfizetés azonosítóját, az erőforráscsoport nevét és az FHIR- vagy DICOM-szolgáltatáspéldány nevét.
  • Szerepkör-definíció azonosítója olyan szerepkörökhöz, mint az "FHIR-adatszolgáltató" vagy a "DICOM-adattulajdonos". A használatával az role definition list --name "<role name>" listázhatja a szerepkördefiníció-azonosítókat.
  • A felhasználó vagy az ügyfélalkalmazás egyszerű szolgáltatásazonosítója.
  • Azure AD hozzáférési jogkivonatot a -hez, nem pedig az https://management.azure.com/Azure Health Data Serviceshez. A hozzáférési jogkivonatot lekérheti egy meglévő eszközzel vagy az Azure CLI-paranccsal. az account get-access-token --resource "https://management.azure.com/"
  • Az Azure Health Data Services hatóköre magában foglalja a munkaterület nevét és az FHIR/DICOM-szolgáltatáspéldány nevét.
### 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}}"
  }
}

Az Azure API for FHIR esetében a hatókör kissé eltérően van definiálva, mivel csak az FHIR szolgáltatást támogatja, és nincs szükség munkaterületnévre.

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

Az Azure Health Data Services szolgáltatáspéldányainak listázása

Igény szerint lekérheti az Azure Health Data Services-szolgáltatások vagy az Azure API for FHIR listáját. Vegye figyelembe, hogy az API-verzió az Azure Health Data Servicesen alapul, nem a REST API szerepkör-hozzárendelés verzióján.

Az Azure Health Data Services esetében adja meg az előfizetés azonosítóját, az erőforráscsoport nevét, a munkaterület nevét, az FHIR- vagy DICOM-szolgáltatásokat, valamint az API-verziót.

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

Az Azure API for FHIR esetében adja meg az előfizetés azonosítóját és az API-verziót.

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

Most, hogy megfelelő engedélyeket adott az ügyfélalkalmazásnak, elérheti az Azure Health Data Servicest az alkalmazásaiban.

Következő lépések

Ebből a cikkből megtudhatja, hogyan adhat engedélyeket ügyfélalkalmazásokhoz az Azure CLI és a REST API használatával. Az Azure Health Data Services a Visual Studio Code REST-ügyfélbővítményével való elérésével kapcsolatos információkért lásd:

Az FHIR® a HL7 bejegyzett védjegye, és a HL7 engedélyével használják.