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:
Microsoft.Authorization/roleAssignments/write
oprávnění, jako je řízení přístupu na základě role Správa istrator nebo uživatelský přístup Správa istrator
Musíte použít následující verze:
2015-07-01
nebo novější pro přiřazení role Azure2018-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.
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.
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
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}" } }
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.
Nahraďte {roleAssignmentId} identifikátorem GUID přiřazení role.
V textu požadavku nahraďte {scope} stejným oborem jako v identifikátoru URI.
Nahraďte {roleDefinitionId} identifikátorem definice role.
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"
}
}