Conversión de un filtro LDAP a un filtro de conexión de SharePoint Server 2010

Al configurar la sincronización de perfiles entre un proveedor LDAP, como AD DS y SharePoint Server 2010, es posible que tenga un filtro LDAP que desee convertir a un filtro de conexión de SharePoint. Esta entrada de blog proporciona un ejemplo de cómo convertir un filtro LDAP a un filtro de conexión de SharePoint. Para obtener instrucciones sobre cómo entrar en el filtro de conexión mediante la interfaz de usuario de SharePoint, vea la sección de definición de filtros de exclusión para una conexión de sincronización en el tema sobre configuración de la sincronización de perfiles.


Los filtros LDAP definen los objetos de directorio que desea incluir. Los filtros de conexión de SharePoint definen los usuarios que desea excluir.


Veamos un filtro LDAP y cómo convertirlo a un filtro de conexión de SharePoint 2010. Este es el filtro de ejemplo que usaremos:

  • Base de búsqueda: DC=cts,DC=contoso,DC=com
  • Filtro de usuario: (&(objectCategory=Person)(!userAccountControl:1.2.840.113556.1.4.803:=2) (&(!extensionAttribute1=0)(extensionAttribute1=*)(sAMAccountName=*)(memberOf=CN=SharePoint Users,OU=Security,OU=Groups,DC=cts,DC=contoso,DC=com)))

Convirtamos el filtro LDAP a una composición de instrucciones lógicas simples para poder manipular las instrucciones más fácilmente:

  • A: objectCategory = Person
  • B: userAccountControl:1.2.840.113556.1.4.803:=2
  • C: extensionAttribute1=0
  • D: extentionAttribute1=*
  • E: sAMAccountName=*
  • F: memberOf= CN=SharePoint Users, OU=Security, OU=Groups, DC=cts, DC=contoso,DC=com


El filtro anterior quedaría así: A
¬B (¬C D E
F)
donde
representa AND, representa OR, y ¬ representa NOT.


En la tabla siguiente se muestra cómo interpretar el álgebra booleana.

Filtro LDAP original

A ¬B (¬C D E F)

Quitar los paréntesis

A ¬B ¬C D E F

Invertir el filtro para convertirlo en un filtro de exclusión

¬ (A ¬B ¬C D E F)

Simplificar, usando Ley de DeMorgan

¬A ¬¬B ¬¬C ¬D ¬E ¬F

Quitar los negativos dobles

¬A B C ¬D ¬E ¬F


Si reemplazamos A, B, C, D, E, F por las instrucciones iniciales, obtenemos:

(NOT (objectCategory = Person))
OR (userAccountControl:1.2.840.113556.1.4.803: = 2)
OR (extensionAttribute1 = 0)
OR (NOT (extensionAttribute1 = *))
OR (NOT (sAMAccountName = *))
OR (NOT (memberOf = CN=SharePoint Users,OU=Security,OU=Groups,DC=cts,DC=contoso,DC=com))


Si lo reinstauramos en el formato en que se puede entrar en la interfaz de usuario del filtro de conexión de SharePoint, obtenemos:

AND/OR

Atributo

Operador

Filtro

OR

objectCategory

no es igual a

Person

OR

userAccountControl

bit encendido es igual a

2

OR

extensionAttribute1

es igual a

0

OR

extensionAttribute1

no está presente

 

OR

sAMAccountName

no está presente

 

OR

member

no contiene

CN=SharePoint Users, OU=Security, OU=Groups, DC=cts, DC=contoso, DC=com


La primera cláusula del filtro, objectCategory, no es igual a Person, por lo que es innecesaria. SharePoint excluye automáticamente las entradas cuyo atributo objectCategory no es igual a Person cuando se crea un filtro de conexión para sincronizar usuarios. Cuando cree el filtro de conexión, use los valores de las cinco filas restantes de la tabla anterior para escribir los valores en la sección Filtro de exclusión para usuarios de la página Editar filtros de conexión.


Muchas gracias a Oleg Lysyk por la versión original de esta información.

 

Esta entrada de blog es una traducción. Puede encontrar el artículo original en Converting an LDAP filter to a SharePoint Server 2010 connection filter