Azure-szerepkörök hozzárendelése a REST API használatával
Az Azure-beli szerepköralapú hozzáférés-vezérlés (Azure RBAC) az Azure-erőforrásokhoz való hozzáférés kezeléséhez használt engedélyezési rendszer. A hozzáférés biztosításához adott hatókör mellett szerepköröket rendelhet a felhasználókhoz, csoportokhoz, szolgáltatásnevekhez vagy felügyelt identitásokhoz. Ez a cikk bemutatja, hogyan rendelhet hozzá szerepköröket a REST API használatával.
Előfeltételek
Azure-szerepkörök hozzárendeléséhez a következővel kell rendelkeznie:
Microsoft.Authorization/roleAssignments/write
engedélyek, például szerepköralapú hozzáférés-vezérlési Rendszergazda istrator vagy felhasználói hozzáférés-Rendszergazda istrator
A következő verziókat kell használnia:
2015-07-01
vagy később egy Azure-szerepkör hozzárendeléséhez2018-09-01-preview
vagy újabb azure-szerepkör hozzárendelése egy új szolgáltatásnévhez
További információkért tekintse meg az Azure RBAC REST API-k API-verzióit.
Azure-szerepkör hozzárendelése
Szerepkör hozzárendeléséhez használja a szerepkör-hozzárendeléseket – HOZZon létre REST API-t, és adja meg a biztonsági tagot, a szerepkördefiníciót és a hatókört. Az API meghívásához hozzáféréssel kell rendelkeznie a művelethez, például szerepköralapú Microsoft.Authorization/roleAssignments/write
hozzáférés-vezérlési Rendszergazda istratorhoz.
A szerepkördefiníciók használata – A REST API listázása vagy a beépített szerepkörök megtekintése a hozzárendelni kívánt szerepkördefiníció azonosítójának lekéréséhez.
A GUID-eszközzel egyedi azonosítót hozhat létre, amelyet a szerepkör-hozzárendelés azonosítóhoz használunk. Az azonosító formátuma:
00000000-0000-0000-0000-000000000000
Kezdje a következő kéréssel és törzstel:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{ "properties": { "roleDefinitionId": "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}", "principalId": "{principalId}" } }
Az URI-on belül cserélje le a(z) {scope} kifejezést a szerepkör-hozzárendelés hatókörére.
Hatókör Típus providers/Microsoft.Management/managementGroups/{groupId1}
Felügyeleti csoport subscriptions/{subscriptionId1}
Előfizetés subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1
Erőforráscsoport subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1/providers/microsoft.web/sites/mysite1
Erőforrás Az előző példában a microsoft.web egy erőforrás-szolgáltató, amely egy App Service-példányra hivatkozik. Hasonlóképpen bármely más erőforrás-szolgáltatót is használhat, és megadhatja a hatókört. További információkért tekintse meg az Azure-erőforrás-szolgáltatókat és -típusokat , valamint a támogatott Azure-erőforrás-szolgáltatói műveleteket.
Cserélje le a(z) {roleAssignmentId} elemet a szerepkör-hozzárendelés GUID-azonosítójára.
A kérelem törzsében cserélje le a(z) {scope} kifejezést az URI-ban megadott hatókörre.
Cserélje le a(z) {roleDefinitionId} elemet a szerepkördefiníció azonosítóra.
Cserélje le a(z) {principalId} elemet a szerepkörhöz hozzárendelni kívánt felhasználó, csoport vagy szolgáltatásnév objektumazonosítójára.
A következő kérés és törzs hozzárendeli a Biztonsági mentési olvasó szerepkört egy felhasználóhoz az előfizetés hatókörében:
PUT https://management.azure.com/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId1}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/a795c7a0-d4a2-40c1-ae25-d81f01202912",
"principalId": "{objectId1}"
}
}
Az alábbiakban egy példa látható a kimenetre:
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/a795c7a0-d4a2-40c1-ae25-d81f01202912",
"principalId": "{objectId1}",
"principalType": "User",
"scope": "/subscriptions/{subscriptionId1}",
"condition": null,
"conditionVersion": null,
"createdOn": "2022-05-06T23:55:23.7679147Z",
"updatedOn": "2022-05-06T23:55:23.7679147Z",
"createdBy": null,
"updatedBy": "{updatedByObjectId1}",
"delegatedManagedIdentityResourceId": null,
"description": null
},
"id": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId1}",
"type": "Microsoft.Authorization/roleAssignments",
"name": "{roleAssignmentId1}"
}
Új szolgáltatásnév
Ha létrehoz egy új szolgáltatásnevet, és azonnal megpróbál szerepkört hozzárendelni az adott szolgáltatásnévhez, a szerepkör-hozzárendelés bizonyos esetekben meghiúsulhat. Ha például létrehoz egy új felügyelt identitást, majd megpróbál szerepkört hozzárendelni az adott szolgáltatásnévhez, a szerepkör-hozzárendelés sikertelen lehet. Ennek a hibának az oka valószínűleg a replikáció késleltetése. A szolgáltatásnév egy régióban jön létre; Azonban előfordulhat, hogy a szerepkör-hozzárendelés egy másik régióban történik, amely még nem replikálta a szolgáltatásnevet.
A forgatókönyv megoldásához használja a szerepkör-hozzárendeléseket – REST API létrehozása és a principalType
tulajdonság beállítása a következőre ServicePrincipal
: . A következőt vagy újabbat 2018-09-01-preview
is be kell állítaniaapiVersion
. 2022-04-01
az első stabil verzió.
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}",
"principalId": "{principalId}",
"principalType": "ServicePrincipal"
}
}