Regler för dynamiskt medlemskap för grupper i Azure Active Directory
I Azure Active Directory (Azure AD) kan du skapa komplexa attributbaserade regler för att aktivera dynamiska medlemskap för grupper. Dynamiskt gruppmedlemskap minskar det administrativa arbetet med att lägga till och ta bort användare. Den här artikeln beskriver egenskaper och syntax för att skapa regler för dynamiskt medlemskap för användare eller enheter. Du kan konfigurera en regel för dynamiskt medlemskap i säkerhetsgrupper eller Microsoft 365 grupper.
När attribut för en användare eller enhet ändras utvärderar systemet alla dynamiska gruppregler i en katalog för att se om ändringen skulle utlösa att någon grupp lägger till eller tar bort. Om en användare eller enhet uppfyller en regel för en grupp läggs de till som medlem i den gruppen. Om de inte längre uppfyller regeln tas de bort. Du kan inte lägga till eller ta bort en medlem i en dynamisk grupp manuellt.
- Du kan skapa en dynamisk grupp för enheter eller för användare, men du kan inte skapa en regel som innehåller både användare och enheter.
- Du kan inte skapa en enhetsgrupp baserat på enhetsägarens attribut. Regler för enhetsmedlemskap kan bara referera till enhetsattribut.
Anteckning
Den här funktionen kräver Azure AD Premium P1 licens eller Intune for Education för varje unik användare som är medlem i en eller flera dynamiska grupper. Du behöver inte tilldela licenser till användare för att de ska vara medlemmar i dynamiska grupper, men du måste ha det minsta antalet licenser i Azure AD-organisationen för att täcka alla sådana användare. Om du till exempel har totalt 1 000 unika användare i alla dynamiska grupper i din organisation behöver du minst 1 000 licenser för att Azure AD Premium P1 uppfylla licenskravet. Ingen licens krävs för enheter som är medlemmar i en dynamisk enhetsgrupp.
Regelbyggare i Azure Portal
Azure AD tillhandahåller en regelbyggare för att skapa och uppdatera viktiga regler snabbare. Regelbyggaren stöder konstruktion av upp till fem uttryck. Regelverktyget gör det enklare att skapa en regel med några enkla uttryck, men den kan inte användas för att återskapa varje regel. Om regelverktyget inte stöder den regel som du vill skapa kan du använda textrutan.
Här följer några exempel på avancerade regler eller syntax som vi rekommenderar att du skapar med hjälp av textrutan:
- Regel med fler än fem uttryck
- Regeln Direktrapporter
- Prioritet för inställningsoperatorn
- Regler med komplexa uttryck; till exempel
(user.proxyAddresses -any (_ -contains "contoso"))
Anteckning
Regelbyggaren kanske inte kan visa vissa regler som har konstruerats i textrutan. Du kan se ett meddelande när regelbyggaren inte kan visa regeln. Regelverktyget ändrar inte den syntax, validering eller bearbetning av dynamiska gruppregler som stöds på något sätt.
Fler stegvisa instruktioner finns i Skapa eller uppdatera en dynamisk grupp.

<a name="rule-syntax-for-a-single-expression">Regelsyntax för ett enda uttryck
Ett enda uttryck är den enklaste formen av en medlemskapsregel och har bara de tre delar som nämns ovan. En regel med ett enda uttryck ser ut ungefär så här: , där Property Operator Value syntaxen för egenskapen är namnet på object.property.
Följande är ett exempel på en korrekt konstruerad medlemskapsregel med ett enda uttryck:
user.department -eq "Sales"
Parenteser är valfria för ett enda uttryck. Den totala längden på brödtexten i medlemskapsregeln får inte överskrida 3 072 tecken.
Skapa brödtexten i en medlemskapsregel
En medlemskapsregel som automatiskt fyller en grupp med användare eller enheter är ett binärt uttryck som resulterar i ett sant eller falskt resultat. De tre delarna i en enkel regel är:
- Egenskap
- Operator
- Värde
Ordningen på delarna i ett uttryck är viktig för att undvika syntaxfel.
Egenskaper som stöds
Det finns tre typer av egenskaper som kan användas för att skapa en medlemskapsregel.
- Boolesk
- Sträng
- Strängsamling
Följande är de användaregenskaper som du kan använda för att skapa ett enda uttryck.
Egenskaper av typen boolesk
| Egenskaper | Tillåtna värden | Användning |
|---|---|---|
| accountEnabled | true false | user.accountEnabled -eq true |
| dirSyncEnabled | true false | user.dirSyncEnabled -eq true |
Egenskaper för typsträng
| Egenskaper | Tillåtna värden | Användning |
|---|---|---|
| city | Alla strängvärden eller nullvärden | (user.city -eq "value") |
| land | Alla strängvärden eller nullvärden | (user.country -eq "value") |
| companyName | Alla strängvärden eller nullvärden | (user.companyName -eq "value") |
| avdelning | Alla strängvärden eller nullvärden | (user.department -eq "value") |
| displayName | Val annat strängvärde | (user.displayName -eq "value") |
| Employeeid | Val annat strängvärde | (user.employeeId -eq "value") (user.employeeId -ne null) |
| facsimileTelephoneNumber | Alla strängvärden eller nullvärden | (user.facsimileTelephoneNumber -eq "value") |
| förnamn | Alla strängvärden eller nullvärden | (user.givenName -eq "value") |
| jobTitle | Alla strängvärden eller nullvärden | (user.jobTitle -eq "value") |
| e-post | Alla strängvärden eller null (SMTP-adress för användaren) | (user.mail -eq "value") |
| smeknamn för e-post | Alla strängvärden (användarens e-postalias) | (user.mailNickName -eq "value") |
| mobil | Alla strängvärden eller nullvärden | (user.mobile -eq "value") |
| objectId | GUID för användarobjektet | (user.objectId -eq "11111111-1111-1111-1111-1111111111111") |
| onPremisesSecurityIdentifier | Lokal säkerhetsidentifierare (SID) för användare som synkroniserades från den lokala platsen till molnet. | (user.onPremisesSecurityIdentifier -eq "S-1-1-11-1111111111-11111111111-11111111-1111111") |
| passwordPolicies | Ingen DisableStrongPassword DisablePasswordExpiration DisablePasswordExpiration, DisableStrongPassword | (user.passwordPolicies -eq "DisableStrongPassword") |
| physicalDeliveryOfficeName | Alla strängvärden eller nullvärden | (user.physicalDeliveryOfficeName -eq "value") |
| postalCode | Alla strängvärden eller nullvärden | (user.postalCode -eq "value") |
| preferredLanguage | ISO 639-1-kod | (user.preferredLanguage -eq "en-US") |
| sipProxyAddress | Alla strängvärden eller nullvärden | (user.sipProxyAddress -eq "value") |
| state | Alla strängvärden eller nullvärden | (user.state -eq "value") |
| streetAddress | Alla strängvärden eller nullvärden | (user.streetAddress -eq "value") |
| surname | Alla strängvärden eller nullvärden | (user.surname -eq "value") |
| telephoneNumber | Alla strängvärden eller nullvärden | (user.telephoneNumber -eq "value") |
| usageLocation | Lands-/regionskod med två bokstäver | (user.usageLocation -eq "US") |
| userPrincipalName | Val annat strängvärde | (user.userPrincipalName -eq " alias@domain ") |
| userType | null för medlemsgäst | (user.userType -eq "Medlem") |
Egenskaper för typsträngssamling
| Egenskaper | Tillåtna värden | Användning |
|---|---|---|
| otherMails | Val annat strängvärde | (user.otherMails -contains " alias@domain ") |
| proxyAddresses | SMTP: alias@domain smtp: alias@domain | (user.proxyAddresses -contains "SMTP: alias@domain ") |
De egenskaper som används för enhetsregler finns i Regler för enheter.
Uttrycksoperatorer som stöds
I följande tabell visas alla operatorer som stöds och deras syntax för ett enda uttryck. Operatorer kan användas med eller utan bindestrecksprefixet (-). Operatorn Contains gör partiella strängmatchning men inte objekt i en samling matchar.
| Operator | Syntax |
|---|---|
| Inte lika med | -ne |
| Lika med | -eq |
| Börjar inte med | -notStartsWith |
| Börjar med | -startsWith |
| Innehåller inte | -notContains |
| Innehåller | -contains |
| Matchar inte | -notMatch |
| Matchning | -match |
| I | -in |
| Inte i | -notIn |
Använda operatorerna -in och -notIn
Om du vill jämföra värdet för ett användarattribut med ett antal olika värden kan du använda operatorerna -in eller -notIn. Använd hakparenteserna "[" och "]" för att börja och avsluta listan med värden.
I följande exempel utvärderas uttrycket till true om värdet för user.department är lika med något av värdena i listan:
user.department -in ["50001","50002","50003","50005","50006","50007","50008","50016","50020","50024","50038","50039","51100"]
Använda operatorn -match
Operatorn -match används för matchning av reguljära uttryck. Exempel:
user.displayName -match "Da.*"
Da, Dav, David utvärderas till sant, aDa utvärderas till falskt.
user.displayName -match ".*vid"
David utvärderar till true, Da utvärderas till false.
Värden som stöds
Värdena som används i ett uttryck kan bestå av flera typer, inklusive:
- Strängar
- Booleskt – sant, falskt
- Tal
- Matriser – talmatris, strängmatris
När du anger ett värde i ett uttryck är det viktigt att använda rätt syntax för att undvika fel. Här är några syntaxtips:
- Dubbla citattecken är valfria såvida inte värdet är en sträng.
- Sträng- och regex-åtgärder är inte fallkänsliga.
- När ett strängvärde innehåller dubbla citattecken ska båda citattarna vara rymna med hjälp av tecknet , till exempel ` user.department -eq "Sales" är rätt syntax när ` ` "Sales" är värdet. Enkla citattecken bör inte användas med två enkla citattecken i stället för ett varje gång.
- Du kan också utföra Null-kontroller med null som ett värde, till exempel
user.department -eq null.
Användning av Null-värden
Om du vill ange ett null-värde i en regel kan du använda null-värdet.
- Använd -eq eller -ne när du jämför null-värdet i ett uttryck.
- Använd bara citattecken runt ordet null om du vill att det ska tolkas som ett strängvärde för literaler.
- Operatorn -not kan inte användas som jämförelseoperator för null. Om du använder den får du ett felmeddelande om du använder null eller $null.
Rätt sätt att referera till null-värdet är följande:
user.mail –ne null
Regler med flera uttryck
En regel för gruppmedlemskap kan bestå av fler än ett enda uttryck som är kopplat till operatorerna -and, -or och -not logical. Logiska operatorer kan också användas i kombination.
Följande är exempel på korrekt konstruerade medlemskapsregler med flera uttryck:
(user.department -eq "Sales") -or (user.department -eq "Marketing")
(user.department -eq "Sales") -and -not (user.jobTitle -contains "SDE")
Prioritet för operator
Alla operatorer visas nedan i prioritetsordning från högsta till lägsta. Operatorer på samma rad har samma prioritet:
-eq -ne -startsWith -notStartsWith -contains -notContains -match –notMatch -in -notIn
-not
-and
-or
-any -all
Följande är ett exempel på operator företräde där två uttryck utvärderas för användaren:
user.department –eq "Marketing" –and user.country –eq "US"
Parenteser behövs bara när prioriteten inte uppfyller dina krav. Om du till exempel vill att avdelningen ska utvärderas först visar följande hur parenteser kan användas för att fastställa ordning:
user.country –eq "US" –and (user.department –eq "Marketing" –or user.department –eq "Sales")
Regler med komplexa uttryck
En medlemskapsregel kan bestå av komplexa uttryck där egenskaper, operatorer och värden har mer komplexa former. Uttryck betraktas som komplexa när något av följande stämmer:
- Egenskapen består av en samling värden. mer specifikt egenskaper med flera värden
- Uttrycken använder operatorerna -any och -all
- Värdet för uttrycket kan vara ett eller flera uttryck
Egenskaper för flera värden
Egenskaper för flera värden är samlingar av objekt av samma typ. De kan användas för att skapa medlemskapsregler med hjälp av de logiska operatorerna -any och -all.
| Egenskaper | Värden | Användning |
|---|---|---|
| assignedPlans | Varje objekt i samlingen visar följande strängegenskaper: capabilityStatus, service, servicePlanId | user.assignedPlans -any (assignedPlan.servicePlanId -eq "efb87545-963c-4e0d-99df-69c6916d9eb0" -and assignedPlan.capabilityStatus -eq "Enabled") |
| proxyAddresses | SMTP: alias@domain smtp: alias@domain | (user.proxyAddresses -any ( _ -contains "contoso")) |
Använda operatorerna -any och -all
Du kan använda operatorerna -any och -all för att tillämpa ett villkor på ett eller alla objekt i samlingen.
- -any (uppfyllt när minst ett objekt i samlingen matchar villkoret)
- -all (uppfyllt när alla objekt i samlingen matchar villkoret)
Exempel 1
assignedPlans är en egenskap med flera värden som visar en lista över alla tjänstplaner som tilldelats användaren. Följande uttryck väljer användare som har Exchange Online (alternativ 2) serviceplan (som ett GUID-värde) som också är i tillståndet Aktiverad:
user.assignedPlans -any (assignedPlan.servicePlanId -eq "efb87545-963c-4e0d-99df-69c6916d9eb0" -and assignedPlan.capabilityStatus -eq "Enabled")
En regel som den här kan användas för att gruppera alla användare som en funktion Microsoft 365 (eller annan Microsoft Online Service) har aktiverats för. Du kan sedan tillämpa med en uppsättning principer för gruppen.
Exempel 2
Följande uttryck väljer alla användare som har en tjänstplan som är associerad med Intune-tjänsten (identifieras med tjänstnamnet "SCO"):
user.assignedPlans -any (assignedPlan.service -eq "SCO" -and assignedPlan.capabilityStatus -eq "Enabled")
Exempel 3
Följande uttryck väljer alla användare som inte har någon asignerad tjänstplan:
user.assignedPlans -all (assignedPlan.servicePlanId -eq "")
Använda syntaxen för understreck ( _ )
Syntaxen för understreck ( ) matchar förekomster av ett visst värde i en av egenskaperna för samling med flera värden för att lägga till användare eller enheter _ i en dynamisk grupp. Det används med operatorerna -any eller -all.
Här är ett exempel på hur du använder understrecket ( ) i en regel för att lägga till medlemmar baserat på _ user.proxyAddress (det fungerar på samma sätt för user.otherMails). Den här regeln lägger till alla användare med proxyadress som innehåller "contoso" i gruppen.
(user.proxyAddresses -any (_ -contains "contoso"))
Andra egenskaper och vanliga regler
Skapa en regel för direktrapporter
Du kan skapa en grupp som innehåller alla direkta rapporter för en chef. När chefens direkta rapporter ändras i framtiden justeras gruppens medlemskap automatiskt.
Regeln för direktrapporter skapas med följande syntax:
Direct Reports for "{objectID_of_manager}"
Här är ett exempel på en giltig regel där "62e19b97-8b3d-4d4a-a106-4ce66896a863" är objectID för hanteraren:
Direct Reports for "62e19b97-8b3d-4d4a-a106-4ce66896a863"
Följande tips kan hjälpa dig att använda regeln korrekt.
- Chefs-ID är objekt-ID:t för hanteraren. Du hittar den i chefens profil.
- För att regeln ska fungera kontrollerar du att egenskapen Manager har angetts korrekt för användare i din organisation. Du kan kontrollera det aktuella värdet i användarens profil.
- Den här regeln stöder endast chefens direkta rapporter. Med andra ord kan du inte skapa en grupp med chefens direkta rapporter och deras rapporter.
- Den här regeln kan inte kombineras med andra medlemskapsregler.
Skapa en regel för "Alla användare"
Du kan skapa en grupp som innehåller alla användare i en organisation med hjälp av en medlemskapsregel. När användare läggs till eller tas bort från organisationen i framtiden justeras gruppens medlemskap automatiskt.
Regeln "Alla användare" konstrueras med ett enda uttryck med operatorn -ne och null-värdet. Den här regeln lägger till B2B-gästanvändare samt medlemsanvändare i gruppen.
user.objectId -ne null
Om du vill att din grupp ska undanta gästanvändare och endast inkludera medlemmar i din organisation kan du använda följande syntax:
(user.objectId -ne null) -and (user.userType -eq "Member")
Skapa en regel för "Alla enheter"
Du kan skapa en grupp som innehåller alla enheter i en organisation med hjälp av en medlemskapsregel. När enheter läggs till eller tas bort från organisationen i framtiden justeras gruppens medlemskap automatiskt.
Regeln "Alla enheter" konstrueras med ett enda uttryck med operatorn -ne och null-värdet:
device.objectId -ne null
Tilläggsegenskaper och anpassade tilläggsegenskaper
Tilläggsattribut och anpassade tilläggsegenskaper stöds som strängegenskaper i regler för dynamiskt medlemskap. Tilläggsattribut synkroniseras från lokal Windows Server AD och har formatet "ExtensionAttributeX", där X är lika med 1–15. Här är ett exempel på en regel som använder ett tilläggsattribut som en egenskap:
(user.extensionAttribute15 -eq "Marketing")
Anpassade tilläggsegenskaper synkroniseras från lokala platser Windows Server AD från ett anslutet SaaS-program och har formatet user.extension_[GUID]_[Attribute] , där:
- [GUID] är den unika identifieraren i Azure AD för programmet som skapade egenskapen i Azure AD
- [Attribut] är namnet på egenskapen när den skapades
Ett exempel på en regel som använder en anpassad tilläggsegenskap är:
user.extension_c272a57b722d4eb29bfe327874ae79cb_OfficeNumber -eq "123"
Du hittar det anpassade egenskapsnamnet i katalogen genom att fråga en användares egenskap med hjälp Graph Explorer och söka efter egenskapsnamnet. Nu kan du också välja länken Hämta anpassade tilläggsegenskaper i det dynamiska verktyget för användargruppsregel för att ange ett unikt app-ID och få en fullständig lista över anpassade tilläggsegenskaper som ska användas när du skapar en regel för dynamiskt medlemskap. Den här listan kan också uppdateras för att hämta eventuella nya anpassade tilläggsegenskaper för appen.
Mer information finns i Använda attributen i dynamiska grupper i artikeln Azure AD Anslut sync: Directory extensions.
Regler för enheter
Du kan också skapa en regel som väljer enhetsobjekt för medlemskap i en grupp. Du kan inte ha både användare och enheter som gruppmedlemmar.
Anteckning
Attributet organizationalUnit visas inte längre och bör inte användas. Den här strängen anges av Intune i vissa fall men känns inte igen av Azure AD, så inga enheter läggs till i grupper baserat på det här attributet.
Anteckning
systemlabels är ett skrivskyddat attribut som inte kan anges med Intune.
För Windows 10 är rätt format för attributet deviceOSVersion följande: (device.deviceOSVersion -eq "10.0.17763"). Formateringen kan verifieras med Get-MsolDevice PowerShell-cmdleten.
Följande enhetsattribut kan användas.
| Enhetsattribut | Värden | Exempel |
|---|---|---|
| accountEnabled | true false | (device.accountEnabled -eq true) |
| displayName | val annat strängvärde | (device.displayName -eq "Rob iPhone") |
| deviceOSType | val annat strängvärde | (device.deviceOSType -eq "iPad") -eller (device.deviceOSType -eq "iPhone") (device.deviceOSType -contains "AndroidEnterprise") (device.deviceOSType -eq "AndroidForWork") (device.deviceOSType -eq "Windows") |
| deviceOSVersion | val annat strängvärde | (device.deviceOSVersion -eq "9.1") (device.deviceOSVersion -eq "10.0.17763.0") |
| deviceCategory | ett giltigt enhetskategorinamn | (device.deviceCategory -eq "BYOD") |
| deviceManufacturer | val annat strängvärde | (device.deviceManufacturer -eq "Samsung") |
| deviceModel | val annat strängvärde | (device.deviceModel -eq "iPad Air") |
| deviceOwnership | Personal, Company, Unknown | (device.deviceOwnership -eq "Company") |
| enrollmentProfileName | Apples namn på enhetsregistreringsprofil, namn på företagsägd enhetsregistreringsprofil för Android Enterprise eller Windows Autopilot-profilnamn | (device.enrollmentProfileName -eq "DEP iPhones") |
| isRooted | true false | (device.isRooted -eq true) |
| managementType | MDM (för mobila enheter) | (device.managementType -eq "MDM") |
| deviceId | ett giltigt Azure AD-enhets-ID | (device.deviceId -eq "d4fe7726-5966-431c-b3b8-cddc8fdb717d") |
| objectId | ett giltigt Azure AD-objekt-ID | (device.objectId -eq "76ad43c9-32c5-45e8-a272-7b58b58f596d") |
| devicePhysicalIds | alla strängvärden som används av Autopilot, till exempel alla Autopilot-enheter, OrderID eller PurchaseOrderID | (device.devicePhysicalIDs -any _ -contains "[ZTDId]") (device.devicePhysicalIds -any _ -eq "[OrderID]:179887111881") (device.devicePhysicalIds -any _ -eq "[PurchaseOrderId]:76222342342") |
| systemLabels | alla strängar som matchar Intune-enhetsegenskapen för taggning av Moderna arbetsplats-enheter | (device.systemLabels -contains "M365Managed") |
Anteckning
För deviceOwnership när du skapar dynamiska grupper för enheter måste du ange värdet som "Företag". I Intune representeras enhetsägarskapet i stället som Företag. Mer information finns i OwnerTypes.
Nästa steg
De här artiklarna innehåller ytterligare information om grupper i Azure Active Directory.