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:

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.

Lägga till medlemskapsregel för 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 &quot;Sales&quot;

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.