Como escrever filtros de pesquisa LDAP
Plataforma Aviso: Servidor e Data Center Único – Este artigo se aplica somente a produtos Atlassian no servidor e data center plataformas.
objectivo
este documento descreve como construir um filtro mais sofisticado para os atributos do filtro de objectos do utilizador e do filtro de objectos de grupo na sua configuração LDAP para as aplicações Atlassianas.os filtros
o que é um filtro
podem ser utilizados para restringir o número de utilizadores ou grupos autorizados a aceder a uma aplicação. Em essência, o filtro limita a que parte da árvore LDAP a aplicação sincroniza.
um filtro pode e deve ser escrito tanto para o utilizador como para o grupo. Isso garante que você não está inundando sua aplicação com usuários e grupos que não precisam de acesso.
solução
ao construir um filtro, é melhor escolher um atributo comum do conjunto de utilizadores que deseja permitir o acesso à aplicação. Este é mais frequentemente o atributo que denota membros de grupo ou uma classe de objetos como “pessoa”
o atributo usado para denotar a adesão em um grupo não é comum a todos os sabores de LDAP. Exemplos deste atributo podem ser “groupMembership ” ou”Member”
Como posso corresponder a mais de um atributo?
por exemplo, se os meus utilizadores forem distinguidos por terem dois atributos de classe de objectos (um igual a “pessoa” e outro a “Utilizador”), é assim que eu o faria.:
(&(objectClass=person)(objectClass=user))
Aviso ampersand symbol '&'
símbolo no início. Translated this means: search for objectClass=person AND object=user.
alternativamente,
(|(objectClass=person)(objectClass=user))
traduzido isto significa: procura por objectClass=pessoa ou objecto=utilizador.
o pipe symbol '|'
denota ‘ou’. Como este não é um personagem XML especial, não deve precisar de escapar.
Wildcards
(&(objectClass=user)(cn=*Marketing*))
: procurar por todos os itens que têm objectClass=utilizador e cn que contém a palavra ‘Marketing’.
os caracteres especiais não são suportados quando usados em filtros usando ! (ou não) operadores lógicos. Ver abaixo
os próprios serviços LDAP não suportam caracteres especiais para memberOf
attribute
e outro nome distinto ao configurar o LDAPFilter.
como igualo 3 Atributos?
apenas adicione uma cláusula adicional:
(&(objectClass=user)(objectClass=top)(objectClass=person))
podem ser acrescentadas cláusulas adicionais para mais de três atributos.
componentes correspondentes de nomes distintos
Como o Microsoft Active Directory não implementa a correspondência extensível, os seguintes exemplos não irão funcionar com ele.
você pode querer corresponder a parte de um DN, por exemplo, quando você precisa procurar por seus grupos em duas sub-rubricas do seu servidor.
(&(objectClass=group)(|(ou:dn:=Chicago)(ou:dn:=Miami)))
irá encontrar grupos com um componente OU do seu DN que seja ‘Chicago’ ou ‘Miami’.
usando ‘ not ‘
para excluir entidades que correspondam a uma expressão, use’!’.
So
(&(objectClass=group)(&(ou:dn:=Chicago)(!(ou:dn:=Wrigleyville))))
vai encontrar todos os grupos de Chicago, exceto aqueles com um componente ou Wrigleyville.
Note os parêntesis extra: (!(<expression >))
Note que se usar ‘not’ (ie. ‘!”para excluir objetos) deve ser representado como a entidade”!’no seu ficheiro XML se estiver a utilizar a confluência 3.4 ou abaixo.
para a confluência 3.4 e abaixo, depois de ter construído o seu filtro de pesquisa com este documento, deverá escapar ao símbolo ampersand e ao símbolo de ponto de exclamação antes de adicionar ao seu ficheiro XML. Assim, por exemplo;
(&(objectClass=person)(!(objectClass=user)))
(&(objectClass=person)(!(objectClass=user)))
refere-se a esta documentação externa sobre outros caracteres XML que necessitam de escapar.torna-se
Filtros de recolha de amostras
estes filtros são escritos para pasta activa. A fim de usá-los para algo como OpenLDAP os atributos terão de ser alterados.
Isso só vai sincronizar usuários no ‘CaptainPlanet’ grupo – esta deve ser aplicada para o Objeto de Usuário do Filtro:
(&(objectCategory=Person)(sAMAccountName=*)(memberOf=cn=CaptainPlanet,ou=users,dc=company,dc=com))
E este irá pesquisar os usuários que são membros desse grupo, diretamente ou através de aninhamento:
(&(objectCategory=Person)(sAMAccountName=*)(memberOf:1.2.840.113556.1.4.1941:=cn=CaptainPlanet,ou=users,dc=company,dc=com))
Importante para o Active Directory para ter memberOf:1.2.840.113556.1.4.1941 se você quiser encontrar grupos aninhados (não substituir a seqüência numérica) dentro CaptainPlanet grupo.
Isto irá pesquisar os usuários que são membros de qualquer ou todos os 4 grupos (fogo, vento,água,coração)
(&(objectCategory=Person)(sAMAccountName=*)(|(memberOf=cn=fire,ou=users,dc=company,dc=com)(memberOf=cn=wind,ou=users,dc=company,dc=com)(memberOf=cn=water,ou=users,dc=company,dc=com)(memberOf=cn=heart,ou=users,dc=company,dc=com)))
Este documento descreve como ir sobre a construção de um mais sofisticado filtro para o Objeto de Usuário do Filtro e do Objeto de Grupo de Filtro atributos de configuração de LDAP para Atlassian aplicações.
Jira, Confluence, Bambu, Bitbucket
Servidor
Leave a Reply