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:

A következő verziókat kell használnia:

  • 2015-07-01 vagy később egy Azure-szerepkör hozzárendeléséhez
  • 2018-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.

  1. 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.

  2. 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

  3. 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}"
      }
    }
    
  4. 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.

  5. Cserélje le a(z) {roleAssignmentId} elemet a szerepkör-hozzárendelés GUID-azonosítójára.

  6. A kérelem törzsében cserélje le a(z) {scope} kifejezést az URI-ban megadott hatókörre.

  7. Cserélje le a(z) {roleDefinitionId} elemet a szerepkördefiníció azonosítóra.

  8. 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"
  }
}

Következő lépések