Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Ett Villkor för Azure-rolltilldelning är ytterligare en kontroll som du kan lägga till i rolltilldelningen för att ge mer detaljerad åtkomstkontroll. Du kan till exempel lägga till ett villkor som kräver att ett objekt har en specifik tagg för att läsa objektet. I den här artikeln beskrivs hur du lägger till, redigerar, listar eller tar bort villkor för dina rolltilldelningar med hjälp av REST-API:et.
Förutsättningar
Du måste använda följande versioner:
-
2020-03-01-previeweller senare -
2020-04-01-previeweller senare om du vill använda egenskapendescriptionför rolltilldelningar -
2022-04-01är den första stabila versionen
Mer information om kraven för att lägga till eller redigera rolltilldelningsvillkor finns i Villkorskrav.
Lägg till ett villkor
Om du vill lägga till ett rolltilldelningsvillkor använder du Rolltilldelningar – Skapa REST API. Rolltilldelningar – Skapa innehåller följande parametrar som rör villkor.
| Parameter | Typ | Beskrivning |
|---|---|---|
condition |
Sträng | Villkor under vilket användaren kan beviljas behörighet. |
conditionVersion |
Sträng | Version av villkorssyntaxen. Om condition anges utan conditionVersionanges versionen till standardvärdet 2.0. |
Använd följande begäran och brödtext:
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}",
"condition": "{condition}",
"conditionVersion": "2.0",
"description": "{description}"
}
}
I följande exempel visas hur du tilldelar rollen Storage Blob Data Reader med ett villkor. Villkoret kontrollerar om containernamnet är lika med "blobs-example-container".
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"principalId": "{principalId}",
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))",
"conditionVersion": "2.0",
"description": "Read access if container name equals blobs-example-container"
}
}
Följande visar ett exempel på utdata:
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"principalId": "{principalId}",
"principalType": "User",
"scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))",
"conditionVersion": "2.0",
"createdOn": "2022-07-20T06:20:44.0205560Z",
"updatedOn": "2022-07-20T06:20:44.2955371Z",
"createdBy": null,
"updatedBy": "{updatedById}",
"delegatedManagedIdentityResourceId": null,
"description": "Read access if container name equals blobs-example-container"
},
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
"type": "Microsoft.Authorization/roleAssignments",
"name": "{roleAssignmentId}"
}
Redigera ett villkor
Om du vill redigera ett befintligt rolltilldelningsvillkor använder du samma rolltilldelningar – Skapa REST API som du använde för att lägga till rolltilldelningsvillkoret. Följande visar ett exempel på JSON där condition och description uppdateras.
conditionEndast egenskaperna , conditionVersionoch description kan redigeras. Du måste ange de andra egenskaperna för att matcha den befintliga rolltilldelningen.
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}?api-version=2022-04-01
{
"properties": {
"roleDefinitionId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
"principalId": "{principalId}",
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container' OR @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container2'))",
"conditionVersion": "2.0",
"description": "Read access if container name equals blobs-example-container or blobs-example-container2"
}
}
Lista ett villkor
Om du vill visa en lista över ett rolltilldelningsvillkor använder du REST API för rolltilldelningar hämta eller lista. Mer information finns i Lista Azure-rolltilldelningar med hjälp av REST-API:et.
Ta bort ett villkor
Om du vill ta bort ett rolltilldelningsvillkor redigerar du rolltilldelningsvillkoret och anger både villkors- och villkorsversionen till antingen en tom sträng eller null.
Om du vill ta bort både rolltilldelningen och villkoret kan du också använda API:et Rolltilldelningar – Ta bort . Mer information finns i Ta bort Azure-rolltilldelningar.