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.