Přiřazení rolí Azure pomocí rozhraní REST API

Řízení přístupu na základě role v Azure (Azure RBAC) je autorizační systém, který používáte ke správě přístupu k prostředkům Azure. Chcete-li udělit přístup, přiřaďte role uživatelům, skupinám, instančním objektům nebo spravovaným identitám v konkrétním rozsahu. Tento článek popisuje, jak přiřadit role pomocí rozhraní REST API.

Požadavky

Pokud chcete přiřazovat role Azure, musíte mít:

Musíte použít následující verze:

  • 2015-07-01 nebo novější pro přiřazení role Azure
  • 2018-09-01-preview nebo novější pro přiřazení role Azure k novému instančnímu objektu

Další informace najdete v tématu Verze rozhraní API azure RBAC REST API.

Přiřazení role Azure

Pokud chcete přiřadit roli, použijte přiřazení rolí – Vytvořte rozhraní REST API a zadejte objekt zabezpečení, definici role a obor. Pokud chcete volat toto rozhraní API, musíte mít přístup k Microsoft.Authorization/roleAssignments/write akci, jako je řízení přístupu na základě role Správa istrator.

  1. Pomocí definic rolí – Výpis rozhraní REST API nebo zobrazením předdefinovaných rolí získejte identifikátor definice role, kterou chcete přiřadit.

  2. Pomocí nástroje GUID vygenerujte jedinečný identifikátor, který se použije pro identifikátor přiřazení role. Identifikátor má formát: 00000000-0000-0000-0000-000000000000

  3. Začněte následujícím požadavkem a textem:

    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. V rámci identifikátoru URI nahraďte {scope} oborem pro přiřazení role.

    Obor Typ
    providers/Microsoft.Management/managementGroups/{groupId1} Skupina pro správu
    subscriptions/{subscriptionId1} Předplatné
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1 Skupina prostředků
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1/providers/microsoft.web/sites/mysite1 Prostředek

    V předchozím příkladu je microsoft.web poskytovatelem prostředků, který odkazuje na instanci služby App Service. Podobně můžete použít libovolné jiné poskytovatele prostředků a zadat rozsah. Další informace najdete v tématu Poskytovatelé prostředků Azure a typy a podporované operace poskytovatele prostředků Azure.

  5. Nahraďte {roleAssignmentId} identifikátorem GUID přiřazení role.

  6. V textu požadavku nahraďte {scope} stejným oborem jako v identifikátoru URI.

  7. Nahraďte {roleDefinitionId} identifikátorem definice role.

  8. Nahraďte {principalId} identifikátorem objektu uživatele, skupiny nebo instančního objektu, který bude přiřazen roli.

Následující požadavek a text přiřadí roli Čtenář zálohování uživateli v oboru předplatného:

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

Následuje příklad výstupu:

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

Nový instanční objekt

Pokud vytvoříte nový instanční objekt a okamžitě se pokusíte přiřadit roli k danému instančnímu objektu, přiřazení této role může v některých případech selhat. Pokud například vytvoříte novou spravovanou identitu a pak se pokusíte přiřadit roli k danému instančnímu objektu, přiřazení role může selhat. Důvodem tohoto selhání je pravděpodobně zpoždění replikace. Instanční objekt se vytvoří v jedné oblasti; Přiřazení role však může nastat v jiné oblasti, která ještě nereplikovala instanční objekt.

Pokud chcete tento scénář vyřešit, použijte přiřazení rolí – Vytvořte rozhraní REST API a nastavte principalType vlastnost na ServicePrincipal. Musíte také nastavit apiVersion hodnotu na 2018-09-01-preview hodnotu nebo novější. 2022-04-01 je první stabilní verze.

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

Další kroky