Felsöka villkor för Rolltilldelning i Azure

Allmänna problem

Symptom – Villkoret tillämpas inte

Orsak 1

Säkerhetsobjekt har en eller flera rolltilldelningar i samma eller högre omfång.

Lösning 1

Se till att säkerhetsobjekten inte har flera rolltilldelningar (med eller utan villkor) som ger åtkomst till samma dataåtgärd som leder till att villkor inte tillämpas. Information om utvärderingslogik finns i Hur Azure RBAC avgör om en användare har åtkomst till en resurs.

Orsak 2

Rolltilldelningen har flera åtgärder som beviljar en behörighet och villkoret riktar sig inte mot alla åtgärder. Du kan till exempel skapa en blob om du har någon av /blobs/write eller /blobs/add/action dataåtgärder. Om rolltilldelningen har båda dataåtgärderna och du endast riktar in dig på en av dem i ett villkor, ger rolltilldelningen behörighet att skapa blobar och kringgå villkoret.

Lösning 2

Om rolltilldelningen har flera åtgärder som beviljar en behörighet kontrollerar du att du riktar in dig på alla relevanta åtgärder.

Orsak 3

När du lägger till ett villkor i en rolltilldelning kan det ta upp till 5 minuter innan villkoret tillämpas. När du lägger till ett villkor meddelas resursprovidrar (till exempel Microsoft Storage) om uppdateringen. Resursprovidrar uppdaterar sina lokala cacheminnen omedelbart för att säkerställa att de har de senaste rolltilldelningarna. Den här processen slutförs på 1 eller 2 minuter, men kan ta upp till 5 minuter.

Lösning 3

Vänta i 5 minuter och testa villkoret igen.

Symptom – Villkoret är inte giltigt fel när du lägger till ett villkor

När du försöker lägga till en rolltilldelning med ett villkor får du ett fel som liknar:

The given role assignment condition is invalid.

Orsak 1

Egenskapen conditionVersion är inställd på "1.0".

Lösning 1

Ange conditionVersion egenskapen till "2.0".

Orsak 2

Villkoret är inte korrekt formaterat.

Lösning 2

Åtgärda eventuella problem med villkorsformat eller syntax . Du kan också lägga till villkoret med hjälp av det visuella redigeringsprogrammet i Azure-portalen.

Problem i det visuella redigeringsprogrammet

Symptom – Huvudnamn visas inte i attributkällan

När du försöker lägga till en rolltilldelning med ett villkor visas inte Principal i listan Attributkälla .

Screenshot showing Principal in Attribute source list when adding a condition.

I stället visas meddelandet:

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.

Orsak

Du uppfyller inte kraven. Om du vill använda huvudattribut måste du ha följande:

  • Microsoft Entra-behörigheter för den inloggade användaren att läsa minst en attributuppsättning
  • Anpassade säkerhetsattribut som definierats i Microsoft Entra-ID

Lösning

  1. Öppna anpassade säkerhetsattribut för Microsoft Entra ID>.

    Om du ser sidan Kom igång har du inte behörighet att läsa minst en attributuppsättning eller så har anpassade säkerhetsattribut inte definierats ännu.

    Screenshot that shows Custom security attributes Get started page.

  2. Om anpassade säkerhetsattribut har definierats tilldelar du någon av följande roller i klientomfånget eller attributuppsättningsomfånget. Mer information finns i Hantera åtkomst till anpassade säkerhetsattribut i Microsoft Entra-ID.

    Viktigt!

    Som standard har global administratör och andra administratörsroller inte behörighet att läsa, definiera eller tilldela anpassade säkerhetsattribut.

  3. Om anpassade säkerhetsattribut inte har definierats ännu tilldelar du rollen Attributdefinitionsadministratör i klientomfånget och lägger till anpassade säkerhetsattribut. Mer information finns i Lägga till eller inaktivera anpassade säkerhetsattribut i Microsoft Entra-ID.

    När du är klar bör du kunna läsa minst en attributuppsättning.

    Screenshot that shows the attribute sets the user can read.

    Huvudkontot bör nu visas i listan Attributkälla när du lägger till en rolltilldelning med ett villkor.

Symptom – Huvudkontot visas inte i attributkällan när pim används

När du försöker lägga till en rolltilldelning med ett villkor med hjälp av Microsoft Entra Privileged Identity Management (PIM) visas inte Principal i listan Attributkälla.

Screenshot showing Principal in Attribute source list when adding a condition using Privileged Identity Management.

Orsak

PIM stöder för närvarande inte användning av huvudattributet i ett rolltilldelningsvillkor.

Felmeddelanden i visualiseringsredigeraren

Symptom – Villkoret känns inte igen

När du har använt kodredigeraren växlar du till den visuella redigeraren och får ett meddelande som liknar följande:

The current expression cannot be recognized. Switch to the code editor to edit the expression or delete the expression and add a new one.

Orsak

Uppdateringar gjordes till villkoret att den visuella redigeraren inte kan parsa.

Lösning

Åtgärda eventuella problem med villkorsformat eller syntax . Du kan också ta bort villkoret och försöka igen.

Symptom – Attributet gäller inte fel för tidigare sparat villkor

När du öppnar ett tidigare sparat villkor i den visuella redigeraren får du följande meddelande:

Attribute does not apply for the selected actions. Select a different set of actions.

Orsak

I maj 2022 ändrades åtgärden Läs en blob från följande format:

!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})

Så här exkluderar du underåtgärden Blob.List :

!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})

Om du har skapat ett villkor med åtgärden Läs en blob före maj 2022 kan det här felmeddelandet visas i det visuella redigeraren.

Lösning

Öppna fönstret Välj en åtgärd och avmarkera åtgärden Läs en blob igen.

Symptom – Attributet gäller inte fel

När du väljer en eller flera åtgärder i det visuella redigeraren med ett befintligt uttryck får du följande meddelande och det tidigare markerade attributet tas bort:

Attribute does not apply for the selected actions. Select a different set of actions.

Orsak

Det tidigare markerade attributet gäller inte längre för de markerade åtgärderna.

Lösning 1

I avsnittet Lägg till åtgärd väljer du en åtgärd som gäller för det valda attributet. En lista över lagringsåtgärder som varje lagringsattribut stöder finns i Åtgärder och attribut för Tilldelningsvillkor för Azure-rolltilldelning för Azure Blob Storage och Åtgärder och attribut för Azure-rolltilldelningsvillkor för Azure-köer.

Lösning 2

I avsnittet Build expression (Skapa uttryck ) väljer du ett attribut som gäller för de markerade åtgärderna. En lista över lagringsattribut som varje lagringsåtgärd stöder finns i Åtgärder och attribut för Tilldelningsvillkor för Azure-rolltilldelning för Azure Blob Storage och Åtgärder och attribut för Azure-rolltilldelningsvillkor för Azure-köer.

Symptom – Attributet gäller inte i den här kontextvarningen

När du gör ändringar i kodredigeraren och sedan växlar till den visuella redigeraren får du följande meddelande och det tidigare valda attributet tas bort:

Attribute does not apply in this context. Use a different role assignment scope or remove the expression.

Orsak

Det angivna attributet är inte tillgängligt i det aktuella omfånget, till exempel att använda Version ID i ett lagringskonto med hierarkiskt namnområde aktiverat.

Lösning

Om du vill använda det angivna attributet skapar du rolltilldelningsvillkoret i ett annat omfång, till exempel resursgruppsomfång. Eller ta bort och återskapa uttrycket med hjälp av de markerade åtgärderna.

Symptom – Attributet identifieras inte

När du gör ändringar i kodredigeraren och sedan växlar till den visuella redigeraren får du följande meddelande och det tidigare valda attributet tas bort:

Attribute is not recognized. Select a valid attribute or remove the expression.

Orsak

Det angivna attributet identifieras inte, möjligen på grund av ett stavfel.

Lösning

Åtgärda stavfelet i kodredigeraren. Eller ta bort det befintliga uttrycket och använd det visuella redigeraren för att välja ett attribut.

Symptom – Attributvärdet är ogiltigt fel

När du gör ändringar i kodredigeraren och sedan växlar till den visuella redigeraren får du följande meddelande och det tidigare valda attributet tas bort:

Attribute value is invalid. Select another attribute or value.

Orsak

Höger sida av uttrycket innehåller ett attribut eller värde som inte är giltigt.

Lösning

Använd den visuella redigeraren för att välja ett attribut eller ange ett värde.

Symptom – Inga åtgärder har valts

När du tar bort alla åtgärder i den visuella redigeraren får du följande meddelande:

No actions selected. Select one or more actions to edit expressions.

Orsak

Det finns ett befintligt uttryck, men inga åtgärder har valts som mål.

Lösning

I avsnittet Lägg till åtgärd lägger du till en eller flera åtgärder som uttrycket ska rikta in sig på.

Symptom – Inga tillgängliga alternativ fel

När du försöker lägga till ett uttryck får du följande meddelande:

No options available

Orsak

Du valde att rikta in dig på flera åtgärder och det finns inga attribut som gäller för alla markerade åtgärder.

Lösning

I avsnittet Lägg till åtgärd väljer du färre åtgärder att rikta in sig på. Lägg till flera villkor för att rikta in dig på de åtgärder som du har tagit bort.

Symptom – Rolldefinitions-ID:t hittades inte

När du försöker lägga till ett uttryck får du följande meddelande:

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.

Orsak

Ett eller flera rolldefinitions-ID:t som du försökte lägga till för attributet Rolldefinitions-ID hittades inte eller har inte rätt GUID-format: 00000000-0000-0000-0000-000000000000.

Lösning

Använd villkorsredigeraren för att välja rollen. Om du nyligen har lagt till den anpassade rollen uppdaterar du sidan eller loggar ut och loggar in igen.

Symptom – huvud-ID:t hittades inte

När du försöker lägga till ett uttryck får du följande meddelande:

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.

Orsak

Ett eller flera huvud-ID:t som du försökte lägga till för attributet Principal ID hittades inte eller har inte rätt GUID-format: 00000000-0000-0000-0000-000000000000.

Lösning

Använd villkorsredigeraren för att välja huvudkontot. Om du nyligen har lagt till huvudkontot uppdaterar du sidan eller loggar ut och loggar in igen.

Felmeddelanden i Azure PowerShell

Symptom – Resursattributet är inte giltigt fel

När du försöker lägga till en rolltilldelning med ett villkor med Hjälp av Azure PowerShell får du ett fel som liknar:

New-AzRoleAssignment : Resource attribute
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

Orsak

Om ditt villkor innehåller ett dollartecken ($) måste du prefixa det med en backtick (').

Lösning

Lägg till en backtick (') före varje dollartecken. Följande visar ett exempel. Mer information om regler för citattecken i PowerShell finns i Om citatregler.

$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'))"

Symptom – Fel vid kopiering och klistra in ett villkor

Orsak

Om du använder PowerShell och kopierar ett villkor från ett dokument kan det innehålla specialtecken som orsakar följande fel. Vissa redigerare (till exempel Microsoft Word) lägger till kontrolltecken när du formaterar text som inte visas.

The given role assignment condition is invalid.

Lösning

Om du kopierade ett villkor från en RTF-redigerare och du är säker på att villkoret är korrekt tar du bort alla blanksteg och returnerar och lägger sedan till relevanta blanksteg. Du kan också använda en oformaterad textredigerare eller en kodredigerare, till exempel Visual Studio Code.

Felmeddelanden i Azure CLI

Symptom – Resursattributet är inte giltigt fel

När du försöker lägga till en rolltilldelning med ett villkor med hjälp av Azure CLI får du ett fel som liknar:

Resource attribute Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

Orsak

Om ditt villkor innehåller ett dollartecken ($) måste du prefixa det med ett omvänt snedstreck (\).

Lösning

Lägg till ett omvänt snedstreck (\) före varje dollartecken. Följande visar ett exempel. Mer information om regler för citattecken i Bash finns i Dubbla citattecken.

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'))"

Symptom – Fel med okända argument

När du försöker lägga till en rolltilldelning med ett villkor med hjälp av Azure CLI får du ett fel som liknar:

az: error: unrecognized arguments: --description {description} --condition {condition} --condition-version 2.0

Orsak

Du använder förmodligen en tidigare version av Azure CLI som inte stöder parametrar för rolltilldelningsvillkor.

Lösning

Uppdatera till den senaste versionen av Azure CLI (2.18 eller senare). Mer information finns i Installera Azure CLI.

Symptom – Fel vid tilldelning av en villkorssträng till en variabel i Bash

När du försöker tilldela en villkorssträng till en variabel i Bash får du meddelandet bash: !: event not found .

Orsak

Om historikexpansionen är aktiverad i Bash kan meddelandet bash: !: event not found visas på grund av utropstecken (!).

Lösning

Inaktivera historikexpansion med kommandot set +H. Om du vill återaktivera historikexpansion använder du set -H.

Nästa steg