Voorwaarden voor Azure-roltoewijzing toevoegen of bewerken met behulp van de REST API

Een voorwaarde voor azure-roltoewijzing is een extra controle dat u desgewenst aan uw roltoewijzing kunt toevoegen om nauwkeuriger toegangsbeheer te bieden. U kunt bijvoorbeeld een voorwaarde toevoegen waarvoor een object een specifieke tag moet hebben om het object te lezen. In dit artikel wordt beschreven hoe u voorwaarden voor uw roltoewijzingen toevoegt, bewerkt, weergeeft of verwijdert met behulp van de REST API.

Vereisten

U moet de volgende versies gebruiken:

  • 2020-03-01-preview of hoger
  • 2020-04-01-preview of hoger als u de description eigenschap wilt gebruiken voor roltoewijzingen
  • 2022-04-01 is de eerste stabiele versie

Zie Voorwaarden voor meer informatie over de vereisten voor het toevoegen of bewerken van voorwaarden voor roltoewijzing.

Een voorwaarde toevoegen

Als u een voorwaarde voor roltoewijzing wilt toevoegen, gebruikt u de roltoewijzingen - REST API maken . Roltoewijzingen : Maken bevat de volgende parameters met betrekking tot voorwaarden.

Parameter Type Omschrijving
condition String Voorwaarde waaronder de gebruiker toestemming kan krijgen.
conditionVersion String Versie van de voorwaardesyntaxis. Als condition deze niet is opgegeven conditionVersion, wordt de versie ingesteld op de standaardwaarde 2.0.

Gebruik de volgende aanvraag en hoofdtekst:

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

In het volgende voorbeeld ziet u hoe u de rol Opslagblobgegevenslezer met een voorwaarde toewijst. De voorwaarde controleert of de containernaam gelijk is aan '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"
    }
}

Hieronder ziet u een voorbeeld van de uitvoer:

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

Een voorwaarde bewerken

Als u een bestaande voorwaarde voor roltoewijzing wilt bewerken, gebruikt u dezelfde roltoewijzingen: MAAK REST API zoals u hebt gebruikt om de voorwaarde voor roltoewijzing toe te voegen. Hieronder ziet u een voorbeeld van een JSON waar condition en description worden bijgewerkt. Alleen de condition, conditionVersionen description eigenschappen kunnen worden bewerkt. U moet de andere eigenschappen opgeven die overeenkomen met de bestaande roltoewijzing.

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

Een voorwaarde weergeven

Als u een voorwaarde voor roltoewijzing wilt weergeven, gebruikt u de REST API voor roltoewijzingen ophalen of vermelden. Zie Azure-roltoewijzingen weergeven met behulp van de REST API voor meer informatie.

Een voorwaarde verwijderen

Als u een voorwaarde voor roltoewijzing wilt verwijderen, bewerkt u de voorwaardetoewijzingsvoorwaarde en stelt u zowel de voorwaarde als de voorwaardeversie in op een lege tekenreeks of null.

Als u zowel de roltoewijzing als de voorwaarde wilt verwijderen, kunt u ook de Roltoewijzingen - Api verwijderen gebruiken. Zie Azure-roltoewijzingen verwijderen voor meer informatie.

Volgende stappen