Reglas de pertenencia dinámica a grupos de Azure Active Directory

Puede crear reglas basadas en atributos para habilitar la pertenencia dinámica a un grupo en Azure Active Directory (Azure AD), parte de Microsoft Entra. La pertenencia dinámica a grupos agrega y quita automáticamente los miembros del grupo mediante reglas de pertenencia basadas en atributos de miembro. En este artículo se detallan las propiedades y la sintaxis para crear reglas de pertenencia dinámica para usuarios o dispositivos. Puede configurar una regla de pertenencia dinámica en grupos de seguridad o grupos de Microsoft 365.

Cuando cambian los atributos de un usuario o un dispositivo, el sistema evalúa todas las reglas de grupos dinámicos de un directorio para ver si el cambio desencadenaría adiciones o eliminaciones en el grupo. Si un usuario o un dispositivo cumple una regla de un grupo, se agrega a este como miembro. Si ya no cumple la regla, se quita del grupo. No se puede agregar o quitar un miembro de un grupo dinámico de forma manual.

  • Puede crear un grupo dinámico para dispositivos o usuarios, pero no se puede crear una regla que contenga tanto usuarios como dispositivos.
  • No se puede crear un grupo de dispositivos basado en los atributos de usuario del propietario del dispositivo. Las reglas de pertenencia de dispositivo solo pueden hacer referencia a atributos de dispositivos.

Nota:

Esta característica requiere una licencia de Azure AD Premium P1 o de Intune for Education para cada usuario único que sea miembro de uno o varios grupos dinámicos. Aunque no es necesario asignar licencias a los usuarios para que sean miembros de los grupos dinámicos, es preciso tener el número mínimo de licencias en la organización de Azure AD para abarcarlos a todos. Por ejemplo, si tiene un total de 1000 usuarios únicos en todos los grupos dinámicos de la organización, necesitará al menos 1000 licencias de Azure AD Premium P1 para cumplir el requisito de licencia. No es necesaria ninguna licencia para los dispositivos que son miembros de un grupo de dispositivos dinámico.

Generador de reglas en Azure Portal

Azure AD proporciona un generador de reglas para crear y actualizar las reglas importantes con mayor rapidez. El generador de reglas admite la construcción de hasta cinco expresiones. Facilita la creación de reglas con unas cuantas expresiones sencillas; no obstante, no se puede usar para reproducir todas las reglas. En caso de que no admita la regla que quiere crear, puede usar el cuadro de texto.

Estos son algunos ejemplos de reglas o sintaxis avanzadas para las que se recomienda construir mediante el cuadro de texto:

Nota:

Es posible que el generador de reglas no pueda mostrar algunas reglas construidas en el cuadro de texto. En este caso, podría aparecer un mensaje. El generador de reglas no cambia la sintaxis admitida, la validación ni el procesamiento de reglas de grupos dinámicos de ninguna manera.

Para obtener instrucciones paso a paso, consulte Creación o actualización de un grupo dinámico.

Adición de una regla de pertenencia a un grupo dinámico

Sintaxis de regla para una sola expresión

Una expresión única es la forma más sencilla de una regla de pertenencia y solo tiene los tres elementos mencionados anteriormente. Una regla con una expresión única tiene un aspecto similar al ejemplo siguiente: Property Operator Value, donde la sintaxis de la propiedad es el nombre de object.property.

El ejemplo siguiente muestra una regla de pertenencia creada correctamente con una expresión única:

user.department -eq "Sales"

Los paréntesis son opcionales para una expresión única. La longitud total del cuerpo de la regla de pertenencia no puede superar los 3072 caracteres.

Construcción del cuerpo de una regla de pertenencia

Una regla de pertenencia que rellena automáticamente un grupo con usuarios o dispositivos es una expresión binaria que genera un resultado true o false. Los tres elementos de una regla simple son:

  • Propiedad
  • Operator
  • Valor

El orden de los elementos de una expresión es importante para evitar errores de sintaxis.

Propiedades admitidas

Hay tres tipos de propiedades que se pueden usar para construir una regla de pertenencia.

  • Boolean
  • String
  • Colección de cadenas

Las siguientes son las propiedades de usuario que puede utilizar para crear una expresión única.

Propiedades de tipo booleano

Propiedades Valores permitidos Uso
accountEnabled true false user.accountEnabled -eq true
dirSyncEnabled true false user.dirSyncEnabled -eq true

Propiedades de tipo cadena

Propiedades Valores permitidos Uso
city Cualquier valor de cadena o null user.city -eq "value"
country Cualquier valor de cadena o null user.country -eq "value"
companyName Cualquier valor de cadena o null user.companyName -eq "value"
department Cualquier valor de cadena o null user.department -eq "value"
DisplayName Cualquier valor de cadena user.displayName -eq "value"
employeeId Cualquier valor de cadena user.employeeId -eq "value"
user.employeeId -ne null
facsimileTelephoneNumber Cualquier valor de cadena o null user.facsimileTelephoneNumber -eq "value"
givenName Cualquier valor de cadena o null user.givenName -eq "value"
jobTitle Cualquier valor de cadena o null user.jobTitle -eq "value"
mail Cualquier valor de cadena o null (dirección SMTP del usuario) user.mail -eq "value"
mailNickName Cualquier valor de cadena (alias de correo electrónico del usuario) user.mailNickName -eq "value"
memberOf Cualquier valor de cadena (identificador de objeto de grupo válido) user.memberof -any (group.objectId -in ['value'])
mobile Cualquier valor de cadena o null user.mobile -eq "value"
objectId GUID del objeto de usuario user.objectId -eq "11111111-1111-1111-1111-111111111111"
onPremisesDistinguishedName Cualquier valor de cadena o null user.onPremisesDistinguishedName -eq "value"
onPremisesSecurityIdentifier Identificador de seguridad local (SID) para los usuarios que se han sincronizado desde local a la nube. user.onPremisesSecurityIdentifier -eq "S-1-1-11-1111111111-1111111111-1111111111-1111111"
passwordPolicies None
DisableStrongPassword
DisablePasswordExpiration
DisablePasswordExpiration, DisableStrongPassword
user.passwordPolicies -eq "DisableStrongPassword"
physicalDeliveryOfficeName Cualquier valor de cadena o null user.physicalDeliveryOfficeName -eq "value"
postalCode Cualquier valor de cadena o null user.postalCode -eq "value"
preferredLanguage Código ISO 639-1 user.preferredLanguage -eq "en-US"
sipProxyAddress Cualquier valor de cadena o null user.sipProxyAddress -eq "value"
state Cualquier valor de cadena o null user.state -eq "value"
streetAddress Cualquier valor de cadena o null user.streetAddress -eq "value"
surname Cualquier valor de cadena o null user.surname -eq "value"
telephoneNumber Cualquier valor de cadena o null user.telephoneNumber -eq "value"
usageLocation Código de dos letras de país o región user.usageLocation -eq "US"
userPrincipalName Cualquier valor de cadena user.userPrincipalName -eq "alias@domain"
userType miembro invitado null user.userType -eq "Member"

Propiedades de colección de cadenas de tipo

Propiedades Valores permitidos Ejemplo
otherMails Cualquier valor de cadena user.otherMails -contains "alias@domain"
proxyAddresses SMTP: alias@domain smtp: alias@domain user.proxyAddresses -contains "SMTP: alias@domain"

Para más información sobre las propiedades que se usan para las reglas de dispositivos, consulte Reglas de dispositivos.

Operadores de expresión admitidos

En la tabla siguiente se enumeran todos los operadores admitidos y su sintaxis para una expresión única. Los operadores se pueden utilizar con o sin el prefijo de guion (-). El operador Contains realiza coincidencias de cadena parciales, pero no coincide con el elemento de una colección.

Operator Sintaxis
Not Equals -ne
Equals -eq
Not Starts With -notStartsWith
Empieza por -startsWith
Not Contains -notContains
Contains -contains
Not Match -notMatch
Match -match
En -in
No en el -notIn

Uso de los operadores -In y -notIn

Si quiere comparar el valor de un atributo de usuario con diversos valores, puede usar los operadores -in o -notIn. Utilice los símbolos entre corchetes "[" y "]" para comenzar y terminar la lista de valores.

En el ejemplo siguiente, la expresión se evalúa como true si el valor de user.department es igual a cualquiera de los valores de la lista:

   user.department -in ["50001","50002","50003","50005","50006","50007","50008","50016","50020","50024","50038","50039","51100"]

Uso del operador -match

El operador -coinciden se utiliza para que coincida con cualquier expresión regular. Ejemplos:

user.displayName -match "Da.*"   

Da, Dav, David se evalúan como "true", aDa se evalúa como "false".

user.displayName -match ".*vid"

David se evalúa como "true", Da se evalúa como "false".

Valores admitidos

Los valores utilizados en una expresión pueden ser de varios tipos, incluidos:

  • Cadenas
  • Valor booleano: true, false
  • Números
  • Matrices: matriz numérica, matriz de cadenas

Al especificar un valor dentro de una expresión es importante utilizar la sintaxis correcta para evitar errores. Algunas sugerencias de sintaxis son:

  • Las comillas dobles son opcionales a menos que el valor sea una cadena.
  • Las operaciones de cadena y regex no distinguen mayúsculas de minúsculas.
  • Cuando un valor de cadena contiene comillas dobles, se debe utilizar ` como carácter de escape de ambas. Por ejemplo, user.department -eq `"Sales`" es la sintaxis correcta cuando "Sales" es el valor. Hay que agregar dos comillas simples cada vez, en lugar de una, como carácter de escape a las comillas simples.
  • También puede realizar comprobaciones null, usando null como valor, por ejemplo, user.department -eq null.

Uso de valores nulos

Para especificar un valor nulo en una regla, puede usar el valor null.

  • Use -eq o -ne al comparar el valor null de una expresión.
  • Use comillas alrededor de la palabra null solo si desea que se interprete como un valor de cadena literal.
  • El operador -not no se puede usar como operador comparativo con valores null. Si lo hace, recibirá un error tanto si usa null como si usa $null.

La manera correcta de hacer referencia al valor null es como sigue:

   user.mail –ne null

Reglas con varias expresiones

Una regla de pertenencia a grupos puede constar de más de una expresión única conectadas por los operadores lógicos -and, -or y -not. Los operadores lógicos también se pueden usar en combinación.

Los siguientes son ejemplos de reglas de pertenencia construidas correctamente con varias expresiones:

(user.department -eq "Sales") -or (user.department -eq "Marketing")
(user.department -eq "Sales") -and -not (user.jobTitle -contains "SDE")

Precedencia de operadores

Todos los operadores se enumeran a continuación, en orden de prioridad de mayor a menor. Los operadores en la misma línea tienen la misma prioridad:

-eq -ne -startsWith -notStartsWith -contains -notContains -match –notMatch -in -notIn
-not
-and
-or
-any -all

El ejemplo siguiente muestra la prioridad de operador cuando se evalúan dos expresiones para el usuario:

   user.department –eq "Marketing" –and user.country –eq "US"

Los paréntesis son necesarios solo si la precedencia no cumple sus requisitos. Por ejemplo, si desea que el departamento se evalúe primero, el ejemplo siguiente muestra cómo se deben usar los paréntesis para determinar el orden:

   user.country –eq "US" –and (user.department –eq "Marketing" –or user.department –eq "Sales")

Reglas con expresiones complejas

Una regla de pertenencia puede constar de expresiones complejas donde las propiedades, los operadores y los valores pueden adoptar formas más complejas. Las expresiones se consideran complejas cuando se cumple alguna de las siguientes condiciones:

  • La propiedad consta de una colección de valores, especialmente las propiedades con varios valores
  • Las expresiones usan los operadores -any y -all
  • El valor de la expresión puede incluir por sí mismo una o varias expresiones

Propiedades de varios valores

Las propiedades de varios valores son colecciones de objetos del mismo tipo. Se pueden usar para crear reglas de pertenencia mediante los operadores lógicos -any y -all.

Propiedades Valores Uso
assignedPlans Cada objeto de la colección expone las siguientes propiedades de cadena: 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"))

Uso de los operadores -any y -all

Puede usar los operadores -any y -all para aplicar una condición a uno o todos los elementos de la colección, respectivamente.

  • -any (se satisface cuando al menos un elemento de la colección coincide con la condición)
  • -all (se satisface cuando todos los elementos de la colección coinciden con la condición)

Ejemplo 1

assignedPlans es una propiedad de varios valores que muestra todos los planes de servicio asignados al usuario. En la expresión siguiente se seleccionarán los usuarios que tienen el plan de servicio (como valor de GUID) Exchange Online (Plan 2) que también está en estado Habilitado:

user.assignedPlans -any (assignedPlan.servicePlanId -eq "efb87545-963c-4e0d-99df-69c6916d9eb0" -and assignedPlan.capabilityStatus -eq "Enabled")

Una regla como esta se puede usar para agrupar todos los usuarios en los que la funcionalidad de Microsoft 365 u otro servicio en línea de Microsoft está habilitada. A continuación, podría solicitar la admisión en el grupo con un conjunto de directivas.

Ejemplo 2

En la expresión siguiente se seleccionan todos los usuarios que tengan algún plan de servicio asociado con el servicio de Intune (identificado por el nombre de servicio "SCO"):

user.assignedPlans -any (assignedPlan.service -eq "SCO" -and assignedPlan.capabilityStatus -eq "Enabled")

Ejemplo 3

La expresión siguiente selecciona todos los usuarios que no tienen ningún plan de servicio asignado:

user.assignedPlans -all (assignedPlan.servicePlanId -eq "")

Con la sintaxis de guión bajo (_)

La sintaxis de guión bajo (_) coincide con las apariciones de un valor específico en una de las propiedades de la colección de cadenas multivalor para agregar usuarios o dispositivos a un grupo dinámico. Se usa con los operadores -any y -all.

Este es un ejemplo de uso del guión bajo (_) en una regla para agregar miembros basados en user.proxyAddress (funciona de la misma forma para user.otherMails). Esta regla agrega cualquier usuario con la dirección de proxy que contiene "contoso" al grupo.

(user.proxyAddresses -any (_ -contains "contoso"))

Otras propiedades y reglas habituales

Creación de una regla de "subordinados directos"

Puede crear un grupo con todos los subordinados directos de un administrador. Cuando los subordinados directos de un administrador cambien en el futuro, la pertenencia del grupo se ajustará automáticamente.

La regla de subordinados directos se construye mediante la sintaxis siguiente:

Direct Reports for "{objectID_of_manager}"

El siguiente es un ejemplo de una regla válida, donde "62e19b97-8b3d-4d4a-a106-4ce66896a863" es el identificador de objeto del administrador:

Direct Reports for "62e19b97-8b3d-4d4a-a106-4ce66896a863"

Las siguientes sugerencias pueden ayudarle a usar correctamente la regla.

  • El identificador del administrador es el identificador de objeto del administrador. Se puede encontrar en el perfil del administrador.
  • Para que la regla funcione, asegúrese de que la propiedad de administrador esté establecida correctamente para los usuarios de la organización. Puede comprobar el valor actual en el perfil de usuario.
  • Esta regla admite solo subordinados directos del administrador. En otras palabras, no se puede crear un grupo con los subordinados directos del administrador y con los subordinados de estos.
  • Esta regla no se puede combinar con ninguna otra regla de pertenencia.

Creación de una regla de "todos los usuarios"

Puede crear un grupo que contenga todos los usuarios de una organización mediante una regla de pertenencia. Cuando se agreguen o eliminen usuarios de la organización en el futuro, la pertenencia al grupo se ajustará automáticamente.

La regla de "Todos los usuarios" se construye con una expresión única con el operador -ne y el valor null. Esta regla agrega usuarios invitados B2B y usuarios miembro al grupo.

user.objectId -ne null

Si quiere que el grupo excluya los usuarios invitados e incluya solo los miembros de la organización, puede usar la siguiente sintaxis:

(user.objectId -ne null) -and (user.userType -eq "Member")

Creación de una regla de "Todos los dispositivos"

Puede crear un grupo que contenga todos los dispositivos de una organización mediante una regla de pertenencia. Cuando se agreguen o eliminen dispositivos de la organización en el futuro, la pertenencia al grupo se ajustará automáticamente.

La regla de "Todos los dispositivos" se construye con una expresión única con el operador -ne y el valor null:

device.objectId -ne null

Propiedades de extensión y propiedades de extensión personalizadas

Las reglas de pertenencia dinámica admiten los atributos de extensión y las propiedades de extensión personalizadas como propiedades de cadena. Los atributos de extensión se pueden sincronizar desde una instancia de Windows Server Active Directory local o actualizar mediante Microsoft Graph y tienen el formato "ExtensionAttributeX", donde X es igual a un número del 1 al 15. Las propiedades de extensión de varios valores no se admiten en las reglas de pertenencia dinámica. Este es un ejemplo de una regla que utiliza un atributo de extensión como propiedad:

(user.extensionAttribute15 -eq "Marketing")

Las propiedades de extensión personalizadas se pueden sincronizar desde una instancia de Windows Server Active Directory local o desde una aplicación SaaS conectada, o se pueden crear con Microsoft Graph, y presentan el formato user.extension_[GUID]_[Attribute], donde:

  • [GUID] es la versión eliminada del identificador único de Azure AD para la aplicación que creó la propiedad. Solo contiene caracteres de 0 a 9 y de la A a la Z.
  • [Attribute] es el nombre de la propiedad tal y como se creó

Un ejemplo de una regla que utiliza una propiedad de extensión personalizada es:

user.extension_c272a57b722d4eb29bfe327874ae79cb_OfficeNumber -eq "123"

Las propiedades de extensión personalizadas también se denominan propiedades de directorio o de la extensión de Azure AD.

El nombre de la propiedad personalizada se puede encontrar en el directorio mediante la consulta de una propiedad de usuario a través del explorador de Graph y la búsqueda del nombre en cuestión. También, ahora puede seleccionar el vínculo Get custom extension properties (Obtener propiedades de extensión personalizadas) en el generador de reglas dinámicas de grupos de usuarios para escribir un identificador de aplicación único y recibir la lista completa de propiedades de extensión personalizadas para usar al crear una regla de pertenencia dinámica. Esta lista también se puede actualizar esta lista para obtener nuevas propiedades de extensión personalizada para la aplicación. Los atributos de extensión y las propiedades de extensión personalizadas deben ser de aplicaciones del inquilino.

Para más información, consulte Uso de los atributos en grupos dinámicos en el artículo Sincronización de Azure AD Connect: extensiones de directorio.

Reglas de dispositivos

También puede crear una regla que selecciona objetos de dispositivo para la pertenencia de un grupo. No puede tener usuarios y dispositivos como miembros del grupo a la vez.

Nota:

El atributo organizationalUnit ya no aparece y no debe usarse. Intune establece esta cadena en casos concretos, pero Azure AD no la reconoce, por lo que no se agregan dispositivos a grupos basados este atributo.

Nota:

systemlabels es un atributo de solo lectura que no se puede establecer con Intune.

En Windows 10, el formato correcto del atributo deviceOSVersion es el siguiente: (device.deviceOSVersion -startsWith "10.0.1"). El formato se puede validar con el cmdlet Get-MgDevice de PowerShell.

Get-MgDevice -Search "displayName:YourMachineNameHere" -ConsistencyLevel eventual | Select-Object -ExpandProperty 'OperatingSystemVersion'

Pueden utilizarse los siguientes atributos del dispositivo.

Atributo de dispositivo Valores Ejemplo
accountEnabled true false device.accountEnabled -eq true
deviceCategory un nombre de la categoría de dispositivo válido device.deviceCategory -eq "BYOD"
deviceId un id. de dispositivo de Azure AD válido device.deviceId -eq "d4fe7726-5966-431c-b3b8-cddc8fdb717d"
deviceManagementAppId un identificador de aplicación MDM válido en Azure AD device.deviceManagementAppId -eq "0000000a-0000-0000-c000-000000000000" para Microsoft Intune administrados o "54b943f8-d761-4f8d-951e-9cea1846db5a" para dispositivos administrados junto con System Center Configuration Manager
deviceManufacturer Cualquier valor de cadena device.deviceManufacturer -eq "Samsung"
deviceModel Cualquier valor de cadena device.deviceModel -eq "iPad Air"
DisplayName Cualquier valor de cadena device.displayName -eq "Rob iPhone"
deviceOSType Cualquier valor de cadena (device.deviceOSType -eq "iPad") -or (device.deviceOSType -eq "iPhone")
device.deviceOSType -contains "AndroidEnterprise"
device.deviceOSType -eq "AndroidForWork"
device.deviceOSType -eq "Windows"
deviceOSVersion Cualquier valor de cadena device.deviceOSVersion -eq "9.1"
device.deviceOSVersion -startsWith "10.0.1"
deviceOwnership Personal, empresa, desconocido device.deviceOwnership -eq "Company"
devicePhysicalIds cualquier valor de cadena usado por Autopilot, como todos los dispositivos AutoPilot, OrderID o PurchaseOrderID device.devicePhysicalIDs -any _ -contains "[ZTDId]"
(device.devicePhysicalIds -any _ -eq "[OrderID]:179887111881"
(device.devicePhysicalIds -any _ -eq "[PurchaseOrderId]:76222342342"
deviceTrustType AzureAD, ServerAD, Workplace device.deviceTrustType -eq "AzureAD"
enrollmentProfileName Nombre de perfil de inscripción de dispositivo de Apple, nombre de perfil de inscripción de dispositivo dedicado de Android Enterprise o nombre de perfil de Windows Autopilot device.enrollmentProfileName -eq "DEP iPhones"
extensionAttribute1 Cualquier valor de cadena device.extensionAttribute1 -eq "some string value"
extensionAttribute2 Cualquier valor de cadena device.extensionAttribute2 -eq "some string value"
extensionAttribute3 Cualquier valor de cadena device.extensionAttribute3 -eq "some string value"
extensionAttribute4 Cualquier valor de cadena device.extensionAttribute4 -eq "some string value"
extensionAttribute5 Cualquier valor de cadena device.extensionAttribute5 -eq "some string value"
extensionAttribute6 Cualquier valor de cadena device.extensionAttribute6 -eq "some string value"
extensionAttribute7 Cualquier valor de cadena device.extensionAttribute7 -eq "some string value"
extensionAttribute8 Cualquier valor de cadena device.extensionAttribute8 -eq "some string value"
extensionAttribute9 Cualquier valor de cadena device.extensionAttribute9 -eq "some string value"
extensionAttribute10 Cualquier valor de cadena device.extensionAttribute10 -eq "some string value"
extensionAttribute11 Cualquier valor de cadena device.extensionAttribute11 -eq "some string value"
extensionAttribute12 Cualquier valor de cadena device.extensionAttribute12 -eq "some string value"
extensionAttribute13 Cualquier valor de cadena device.extensionAttribute13 -eq "some string value"
extensionAttribute14 Cualquier valor de cadena device.extensionAttribute14 -eq "some string value"
extensionAttribute15 Cualquier valor de cadena device.extensionAttribute15 -eq "some string value"
isRooted true false device.isRooted -eq true
managementType MDM (para dispositivos móviles) device.managementType -eq "MDM"
memberOf Cualquier valor de cadena (identificador de objeto de grupo válido) device.memberof -any (group.objectId -in ['value'])
objectId un id. de objeto de Azure AD válido device.objectId -eq "76ad43c9-32c5-45e8-a272-7b58b58f596d"
profileType un tipo de perfil válido en Azure AD device.profileType -eq "RegisteredDevice"
systemLabels cualquier cadena que coincida con la propiedad de dispositivo de Intune para etiquetar dispositivos del área de trabajo moderno device.systemLabels -contains "M365Managed"

Nota:

Cuando se usa deviceOwnership para crear grupos dinámicos para los dispositivos, debe establecer una valor igual a "Empresa". En Intune, la propiedad del dispositivo se representa como Corporativa. Para obtener más información, consulte OwnerTypes para ver más detalles. Al usar deviceTrustType para crear grupos dinámicos para dispositivos, debe establecer el valor igual a "AzureAD" para representar dispositivos unidos a Azure AD, "ServerAD" para representar dispositivos unidos a Azure AD híbrido o "Workplace" para representar dispositivos registrados en Azure AD. Al usar extensionAttribute1-15 para crear grupos dinámicos para dispositivos, debe establecer el valor de extensionAttribute1-15 en el dispositivo. Más información sobre cómo escribir extensionAttributes en un objeto de dispositivo de Azure AD

Pasos siguientes

En estos artículos se proporciona información adicional sobre los grupos en Azure Active Directory.