Problemen met Azure-roltoewijzingsvoorwaarden oplossen
Algemene problemen
Symptoom - Voorwaarde wordt niet afgedwongen
Oorzaak 1
Beveiligingsprinciplen hebben een of meer roltoewijzingen in hetzelfde bereik of een hoger bereik.
Oplossing 1
Zorg ervoor dat de beveiligingsprinciplen niet meerdere roltoewijzingen (met of zonder voorwaarden) hebben die toegang verlenen tot dezelfde gegevensactie die leidt tot niet-afdwinging van voorwaarden. Zie Hoe Azure RBAC bepaalt of een gebruiker toegang heeft tot een resource voor meer informatie over de evaluatielogica.
Oorzaak 2
Uw roltoewijzing heeft meerdere acties die een machtiging verlenen en uw voorwaarde is niet gericht op alle acties. U kunt bijvoorbeeld een blob maken als u een of /blobs/add/action
meer gegevensacties hebt/blobs/write
. Als uw roltoewijzing zowel gegevensacties heeft als u zich op slechts één van deze acties richt in een voorwaarde, verleent de roltoewijzing de machtiging om blobs te maken en de voorwaarde te omzeilen.
Oplossing 2
Als uw roltoewijzing meerdere acties heeft die een machtiging verlenen, moet u ervoor zorgen dat u alle relevante acties richt.
Oorzaak 3
Wanneer u een voorwaarde aan een roltoewijzing toevoegt, kan het tot vijf minuten duren voordat de voorwaarde wordt afgedwongen. Wanneer u een voorwaarde toevoegt, worden resourceproviders (zoals Microsoft Storage) op de hoogte gesteld van de update. Resourceproviders maken onmiddellijk updates voor hun lokale caches om ervoor te zorgen dat ze de meest recente roltoewijzingen hebben. Dit proces wordt binnen 1 of 2 minuten voltooid, maar kan maximaal 5 minuten duren.
Oplossing 3
Wacht vijf minuten en test de voorwaarde opnieuw.
Symptoom - Voorwaarde is ongeldige fout bij het toevoegen van een voorwaarde
Wanneer u een roltoewijzing met een voorwaarde probeert toe te voegen, krijgt u een foutmelding die vergelijkbaar is met:
The given role assignment condition is invalid.
Oorzaak 1
De conditionVersion
eigenschap is ingesteld op 1.0.
Oplossing 1
Stel conditionVersion
de eigenschap in op '2.0'.
Oorzaak 2
Uw voorwaarde is niet juist opgemaakt.
Oplossing 2
Los eventuele problemen met de indeling of syntaxis van een voorwaarde op. U kunt ook de voorwaarde toevoegen met behulp van de visual-editor in Azure Portal.
Problemen in de visuele editor
Symptoom - Voorwaarde-editor wordt weergegeven bij het bewerken van een voorwaarde
U hebt een voorwaarde gemaakt met behulp van een sjabloon die wordt beschreven in Toewijzingsbeheer van Azure-rollen delegeren aan anderen met voorwaarden. Wanneer u de voorwaarde probeert te bewerken, ziet u de editor voor geavanceerde voorwaarden.
Wanneer u de voorwaarde eerder hebt bewerkt, hebt u deze bewerkt met behulp van de voorwaardesjabloon.
Oorzaak
De voorwaarde komt niet overeen met het patroon voor de sjabloon.
Oplossing 1
Bewerk de voorwaarde zodat deze overeenkomt met een van de volgende sjabloonpatronen.
Template | Conditie |
---|---|
Rollen beperken | Voorbeeld: Rollen beperken |
Rollen en principal-typen beperken | Voorbeeld: Rollen en principal-typen beperken |
Rollen en principals beperken | Voorbeeld: Rollen en specifieke groepen beperken |
Alle behalve specifieke rollen toestaan | Voorbeeld: De meeste rollen toestaan, maar anderen niet toestaan rollen toe te wijzen |
Oplossing 2
Verwijder de voorwaarde en maak deze opnieuw met behulp van de stappen bij Toewijzingsbeheer van Azure-rollen delegeren aan anderen met voorwaarden.
Symptoom - Principal wordt niet weergegeven in kenmerkbron
Wanneer u een roltoewijzing met een voorwaarde probeert toe te voegen, wordt Principal niet weergegeven in de lijst met kenmerkbronnen .
In plaats daarvan ziet u het volgende bericht:
To use principal (user) attributes, you must have Microsoft Entra permissions (such as the [Attribute Assignment Administrator](../active-directory/roles/permissions-reference.md#attribute-assignment-administrator) role) and custom security attributes defined in Microsoft Entra ID.
Oorzaak
U voldoet niet aan de vereisten. Als u principal-kenmerken wilt gebruiken, moet u het volgende hebben:
- Microsoft Entra-machtigingen voor de aangemelde gebruiker om ten minste één kenmerkset te lezen
- Aangepaste beveiligingskenmerken die zijn gedefinieerd in Microsoft Entra-id
Oplossing
Open aangepaste beveiligingskenmerken van Microsoft Entra ID>.
Als u de pagina Aan de slag ziet, bent u niet gemachtigd om ten minste één kenmerkenet te lezen of aangepaste beveiligingskenmerken nog niet gedefinieerd.
Als aangepaste beveiligingskenmerken zijn gedefinieerd, wijst u een van de volgende rollen toe op tenantbereik of kenmerksetbereik. Zie Toegang tot aangepaste beveiligingskenmerken beheren in Microsoft Entra-id voor meer informatie.
- Kenmerkdefinitielezer
- Lezer van kenmerktoewijzing
- Kenmerkdefinitiebeheerder
- Kenmerktoewijzingsbeheerder
Belangrijk
Globale beheerder en andere beheerdersrollen hebben standaard geen machtigingen voor het lezen, definiëren en toewijzen van aangepaste beveiligingskenmerken.
Als aangepaste beveiligingskenmerken nog niet zijn gedefinieerd, wijst u de rol Kenmerkdefinitie Beheer istrator toe op tenantbereik en voegt u aangepaste beveiligingskenmerken toe. Zie Aangepaste beveiligingskenmerken toevoegen of deactiveren in Microsoft Entra ID voor meer informatie.
Wanneer u klaar bent, moet u ten minste één kenmerkset kunnen lezen.
Principal moet nu worden weergegeven in de lijst met kenmerkbronnen wanneer u een roltoewijzing met een voorwaarde toevoegt.
Symptoom - Principal wordt niet weergegeven in kenmerkbron bij het gebruik van PIM
Wanneer u probeert een roltoewijzing met een voorwaarde toe te voegen met behulp van Microsoft Entra Privileged Identity Management (PIM), wordt Principal niet weergegeven in de lijst met kenmerkbronnen.
Oorzaak
PIM biedt momenteel geen ondersteuning voor het gebruik van het principal-kenmerk in een voorwaarde voor roltoewijzing.
Foutberichten in visuele editor
Symptoom - Voorwaarde niet herkend
Nadat u de code-editor hebt gebruikt, schakelt u over naar de visual-editor en krijgt u een bericht dat er ongeveer als volgt uitziet:
The current expression cannot be recognized. Switch to the code editor to edit the expression or delete the expression and add a new one.
Oorzaak
Er zijn updates aangebracht in de voorwaarde dat de visual-editor niet kan worden geparseerd.
Oplossing
Los eventuele problemen met de indeling of syntaxis van een voorwaarde op. U kunt de voorwaarde ook verwijderen en het opnieuw proberen.
Symptoom - Kenmerk past geen fout toe voor eerder opgeslagen voorwaarde
Wanneer u een eerder opgeslagen voorwaarde opent in de visuele editor, wordt het volgende bericht weergegeven:
Attribute does not apply for the selected actions. Select a different set of actions.
Oorzaak
In mei 2022 is de actie Een blob lezen gewijzigd van de volgende indeling:
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})
De suboperation uitsluiten Blob.List
:
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})
Als u een voorwaarde hebt gemaakt met de actie Een blob lezen vóór mei 2022, ziet u mogelijk dit foutbericht in de visual-editor.
Oplossing
Open het deelvenster Een actie selecteren en selecteer de actie Een blob lezen opnieuw.
Symptoom - Kenmerk past geen fout toe
Wanneer u een of meer acties in de visual-editor selecteert met een bestaande expressie, krijgt u het volgende bericht en wordt het eerder geselecteerde kenmerk verwijderd:
Attribute does not apply for the selected actions. Select a different set of actions.
Oorzaak
Het eerder geselecteerde kenmerk is niet meer van toepassing op de geselecteerde acties.
Oplossing 1
Selecteer in de sectie Actie toevoegen een actie die van toepassing is op het geselecteerde kenmerk. Voor een lijst met opslagacties die door elk opslagkenmerk worden ondersteund, raadpleegt u Acties en kenmerken voor azure-roltoewijzingsvoorwaarden voor Azure Blob Storage en Acties en kenmerken voor voorwaarden voor Azure-roltoewijzingen voor Azure-wachtrijen.
Oplossing 2
Selecteer in de sectie Build-expressie een kenmerk dat van toepassing is op de geselecteerde acties. Voor een lijst met opslagkenmerken die door elke opslagactie worden ondersteund, raadpleegt u Acties en kenmerken voor azure-roltoewijzingsvoorwaarden voor Azure Blob Storage en Acties en kenmerken voor voorwaarden voor Azure-roltoewijzingen voor Azure-wachtrijen.
Symptoom - Kenmerk is niet van toepassing in deze contextwaarschuwing
Wanneer u wijzigingen aanbrengt in de code-editor en vervolgens overschakelt naar de visual-editor, krijgt u het volgende bericht en wordt het eerder geselecteerde kenmerk verwijderd:
Attribute does not apply in this context. Use a different role assignment scope or remove the expression.
Oorzaak
Het opgegeven kenmerk is niet beschikbaar in het huidige bereik, zoals het gebruik Version ID
in een opslagaccount waarvoor hiërarchische naamruimte is ingeschakeld.
Oplossing
Als u het momenteel opgegeven kenmerk wilt gebruiken, maakt u de voorwaarde voor roltoewijzing in een ander bereik, zoals het bereik van de resourcegroep. U kunt de expressie ook verwijderen en opnieuw maken met behulp van de geselecteerde acties.
Symptoom - Kenmerk wordt fout niet herkend
Wanneer u wijzigingen aanbrengt in de code-editor en vervolgens overschakelt naar de visual-editor, krijgt u het volgende bericht en wordt het eerder geselecteerde kenmerk verwijderd:
Attribute is not recognized. Select a valid attribute or remove the expression.
Oorzaak
Het opgegeven kenmerk wordt niet herkend, mogelijk vanwege een typefout.
Oplossing
Herstel de typfout in de code-editor. Of verwijder de bestaande expressie en gebruik de visual-editor om een kenmerk te selecteren.
Symptoom - Kenmerkwaarde is ongeldige fout
Wanneer u wijzigingen aanbrengt in de code-editor en vervolgens overschakelt naar de visual-editor, krijgt u het volgende bericht en wordt het eerder geselecteerde kenmerk verwijderd:
Attribute value is invalid. Select another attribute or value.
Oorzaak
De rechterkant van de expressie bevat een kenmerk of waarde die niet geldig is.
Oplossing
Gebruik de visuele editor om een kenmerk te selecteren of een waarde op te geven.
Symptoom: geen geselecteerde fout
Wanneer u alle acties in de visual-editor verwijdert, krijgt u het volgende bericht:
No actions selected. Select one or more actions to edit expressions.
Oorzaak
Er is een bestaande expressie, maar er zijn geen acties geselecteerd als doel.
Oplossing
Voeg in de sectie Actie toevoegen een of meer acties toe waarop de expressie moet zijn gericht.
Symptoom : er zijn geen beschikbare opties
Wanneer u een expressie probeert toe te voegen, krijgt u het volgende bericht:
No options available
Oorzaak
U hebt geselecteerd om meerdere acties te richten en er zijn geen kenmerken die van toepassing zijn op alle geselecteerde acties.
Oplossing
Selecteer in de sectie Actie toevoegen minder acties om het doel te bereiken. Als u de acties wilt richten die u hebt verwijderd, voegt u meerdere voorwaarden toe.
Symptoom - Roldefinitie-id's niet gevonden
Wanneer u een expressie probeert toe te voegen, krijgt u het volgende bericht:
Cannot find built-in or custom role definitions with IDs: <role IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.
Oorzaak
Een of meer roldefinitie-id's die u hebt geprobeerd toe te voegen voor het kenmerk Roldefinitie-id , zijn niet gevonden of hebben niet de juiste GUID-indeling: 00000000-0000-0000-0000-000000000000
.
Oplossing
Gebruik de voorwaardeeditor om de rol te selecteren. Als u onlangs de aangepaste rol hebt toegevoegd, vernieuwt u de pagina of meldt u zich af en meldt u zich opnieuw aan.
Symptoom - Principal-id's niet gevonden
Wanneer u een expressie probeert toe te voegen, krijgt u het volgende bericht:
Cannot find users, groups, or service principals in Azure Active Directory with principal IDs: <principal IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.
Oorzaak
Een of meer principal-id's die u hebt geprobeerd toe te voegen voor het kenmerk Principal ID , zijn niet gevonden of hebben niet de juiste GUID-indeling: 00000000-0000-0000-0000-000000000000
.
Oplossing
Gebruik de voorwaardeeditor om de principal te selecteren. Als u onlangs de principal hebt toegevoegd, vernieuwt u de pagina of meldt u zich af en meldt u zich opnieuw aan.
Foutberichten in Azure PowerShell
Symptoom: resourcekenmerk is ongeldige fout
Wanneer u probeert een roltoewijzing toe te voegen met een voorwaarde met behulp van Azure PowerShell, krijgt u een foutmelding die vergelijkbaar is met:
New-AzRoleAssignment : Resource attribute
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.
Oorzaak
Als uw voorwaarde een dollarteken ($) bevat, moet u het voorvoegsel voorzien van een backtick (').
Oplossing
Voeg vóór elk dollarteken een backtick (') toe. Hieronder ziet u een voorbeeld. Zie Over quotingsregels voor regels voor aanhalingstekens in PowerShell voor meer informatie over regels voor aanhalingstekens.
$condition = "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<`$key_case_sensitive`$>] StringEquals 'Cascade'))"
Symptoom: fout bij het kopiëren en plakken van een voorwaarde
Oorzaak
Als u PowerShell gebruikt en een voorwaarde uit een document kopieert, kan dit speciale tekens bevatten die de volgende fout veroorzaken. Sommige editors (zoals Microsoft Word) voegen besturingstekens toe bij het opmaken van tekst die niet wordt weergegeven.
The given role assignment condition is invalid.
Oplossing
Als u een voorwaarde hebt gekopieerd uit een rtf-editor en u zeker weet dat de voorwaarde juist is, verwijdert u alle spaties en retourneert en voegt u vervolgens de relevante spaties terug. U kunt ook een editor voor tekst zonder opmaak of een code-editor gebruiken, zoals Visual Studio Code.
Foutberichten in Azure CLI
Symptoom: resourcekenmerk is ongeldige fout
Wanneer u probeert een roltoewijzing toe te voegen met een voorwaarde met behulp van Azure CLI, krijgt u een foutmelding die vergelijkbaar is met:
Resource attribute Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.
Oorzaak
Als uw voorwaarde een dollarteken ($) bevat, moet u dit voorvoegsel met een backslash (\).
Oplossing
Voeg vóór elk dollarteken een backslash (\) toe. Hieronder ziet u een voorbeeld. Zie Dubbele aanhalingstekens voor meer informatie over regels voor aanhalingstekens in Bash.
condition="((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<\$key_case_sensitive\$>] StringEquals 'Cascade'))"
Symptoom : fout met niet-herkende argumenten
Wanneer u probeert een roltoewijzing toe te voegen met een voorwaarde met behulp van Azure CLI, krijgt u een foutmelding die vergelijkbaar is met:
az: error: unrecognized arguments: --description {description} --condition {condition} --condition-version 2.0
Oorzaak
U gebruikt waarschijnlijk een eerdere versie van Azure CLI die geen ondersteuning biedt voor parameters voor voorwaarde voor roltoewijzing.
Oplossing
Werk bij naar de nieuwste versie van Azure CLI (2.18 of hoger). Zie De Azure CLI installeren voor meer informatie.
Symptoom: fout bij het toewijzen van een voorwaardetekenreeks aan een variabele in Bash
Wanneer u een voorwaardetekenreeks probeert toe te wijzen aan een variabele in Bash, wordt het bash: !: event not found
bericht weergegeven.
Oorzaak
Als geschiedenisuitbreiding is ingeschakeld in Bash, ziet u mogelijk het bericht bash: !: event not found
vanwege het uitroepteken (!).
Oplossing
Schakel geschiedenisuitbreiding uit met de opdracht set +H
. Als u de geschiedenisuitbreiding opnieuw wilt inschakelen, gebruikt u set -H
.