Convertendo um filtro LDAP em um filtro de conexão do SharePoint Server 2010
Convertendo um filtro LDAP em um filtro de conexão do SharePoint Server 2010
Ao configurar a sincronização de perfis entre um provedor LDAP, como o AD DS e o SharePoint Server 2010, você talvez tenha um filtro LDAP existente que queira converter em um filtro de conexão do SharePoint. Esta postagem fornece um exemplo de conversão de um filtro LDAP em um filtro de conexão do SharePoint. Para obter instruções sobre como inserir o filtro de conexão usando a interface do usuário do SharePoint, consulte a seção "Definir filtros de exclusão para uma conexão de sincronização", no tópico Configurar a sincronização de perfil.
Filtros LDAP definem os objetos de diretório que você deseja incluir. Filtros de conexão do SharePoint definem os usuários que você deseja excluir.
Usando um filtro LDAP, vejamos como podemos convertê-lo em um filtro de conexão do SharePoint 2010. Este é o filtro de exemplo que iremos usar:
- Pesquisa de base: DC=cts,DC=contoso,DC=com
- Filtro do usuário: (&(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)))
Vamos converter o filtro LDAP em uma composição de declarações lógicas simples, para que possamos manipular essas declarações de forma mais simples:
- 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
O filtro acima seria parecido com este: A ∧ ¬B ∧ (¬C ∧ D ∧ E ∧ F)
onde ∧ representa AND, ∨ representa OR e ¬ representa NOT.
A tabela a seguir mostra como trabalhar com a álgebra booliana.
Filtro LDAP original |
A ∧ ¬B ∧ (¬C ∧ D ∧ E ∧ F) |
Remover parênteses |
A ∧ ¬B ∧ ¬C ∧ D ∧ E ∧ F |
Inverter o filtro, para torná-lo um filtro de exclusão |
¬ (A ∧ ¬B ∧ ¬C ∧ D ∧ E ∧ F) |
Simplificar, usando a lei de DeMorgan |
¬A ∨ ¬¬B ∨ ¬¬C ∨ ¬D ∨ ¬E ∨ ¬F |
Remover negativos duplos |
¬A ∨ B ∨ C ∨ ¬D ∨ ¬E ∨ ¬F |
Se substituirmos A, B, C, D, E, F pelas declarações com as quais começamos, teremos o seguinte:
(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))
Reformulando isso no formato que você possa inserir na interface de usuário do filtro de conexão do SharePoint, teremos o seguinte:
AND/OR |
Atributo |
Operador |
Filtro |
OR |
objectCategory |
does not equal |
Person |
OR |
userAccountControl |
bit on equals |
2 |
OR |
extensionAttribute1 |
equals |
0 |
OR |
extensionAttribute1 |
is not present |
|
OR |
sAMAccountName |
is not present |
|
OR |
member |
does not contain |
CN=SharePoint Users, OU=Security, OU=Groups, DC=cts, DC=contoso, DC=com |
A primeira cláusula do filtro, objectCategory does not equal Person, é desnecessária. O SharePoint exclui automaticamente as entradas em que objectCategory não é igual a (operador does not equal) Person quando você cria um filtro de conexão para sincronizar usuários. Ao criar o filtro de conexão, use os valores das cinco linhas restantes da tabela anterior para inserir valores na seção Filtros de Exclusão para Usuários, da página Editar Filtros de Conexão.
Meus agradecimentos a Oleg Lysyk pela versão original destas informações.
Esta é uma postagem de blog traduzida. Consulte o artigo original Converting an LDAP filter to a SharePoint Server 2010 connection filter