Jak psát LDAP hledání filtry
Platforma Upozornění: Server a Datové Centrum Pouze – Tento článek se vztahuje pouze na Atlassian produktů na serveru a datových center platformy.
Účel
Tento dokument popisuje, jak jít o budování sofistikovanější filtr pro Objekt Uživatele, Filtru a Skupiny Objekt Filtru atributů v LDAP konfigurace pro Atlassian aplikací.
co je filtr
filtry lze použít k omezení počtu uživatelů nebo skupin, kterým je povolen přístup k aplikaci. Filtr v podstatě omezuje, z jaké části stromu LDAP se aplikace synchronizuje.
filtr může a měl by být napsán jak pro uživatele, tak pro členství ve skupině. Tím je zajištěno, že svou aplikaci nezaplavujete uživateli a skupinami, které nepotřebují přístup.
Řešení
Při konstrukci filtru je nejlepší vybrat společný atribut sada uživatelům chcete umožnit přístup k žádosti. Toto je nejčastěji atribut, který označuje členství ve skupině nebo objektclass jako“osoba“
atribut používaný k označení členství ve skupině není společný pro všechny příchutě LDAP. Příklady tohoto atributu mohou být „groupMembership “ nebo“Member“
jak porovnám více než jeden atribut?
Pokud se například moji uživatelé vyznačují tím, že mají dva atributy objectClass (jeden se rovná „osobě“ a druhý „uživateli“), takto bych to odpovídal:
(&(objectClass=person)(objectClass=user))
Všimněte si na začátku symbolu ampersand symbol '&'
. Přeloženo to znamená: hledat objectClass=osoba a objekt=uživatel.
alternativně
(|(objectClass=person)(objectClass=user))
přeloženo to znamená: hledat objectClass=osoba nebo objekt=uživatel.
pipe symbol '|'
označuje ‚nebo‘. Protože se nejedná o speciální znak XML, neměl by být nutný únik.
zástupné znaky
(&(objectClass=user)(cn=*Marketing*))
to znamená: vyhledejte všechny položky, které mají objectClass=user a cn, které obsahují slovo ‚Marketing‘.
zástupné znaky nejsou podporovány při použití ve filtrech pomocí ! (nebo ne) logické operátory. Viz níže
LDAP služby samy o sobě nepodporuje zástupné znaky pro memberOf
attribute
a další Rozlišující Název při zakládání LDAPFilter.
jak porovnám 3 atributy?
stačí přidat další klauzuli:
(&(objectClass=user)(objectClass=top)(objectClass=person))
Další klauzule lze přidat i pro více než tři atributy.
odpovídající komponenty rozlišených jmen
protože Microsoft Active Directory neimplementuje extensible matching, následující příklady s ním nebudou fungovat.
možná budete chtít porovnat část DN, například když potřebujete hledat své skupiny ve dvou podtromech vašeho serveru.
(&(objectClass=group)(|(ou:dn:=Chicago)(ou:dn:=Miami)))
najde skupiny s ou složkou jejich DN, která je buď ‚Chicago‘ nebo ‚Miami‘.
použití ‚not‘
Chcete-li vyloučit entity, které odpovídají výrazu, použijte ‚!‘.
takže
(&(objectClass=group)(&(ou:dn:=Chicago)(!(ou:dn:=Wrigleyville))))
najde všechny skupiny kromě těch s komponentou Wrigleyville OU.
poznamenejte si další závorky: (!(<výraz>))
Všimněte si, že pokud používáte “ ne “ (tj. ‚!’Chcete-li vyloučit objekty) musí být reprezentován jako entita‘!’ve vašem XML souboru, pokud používáte Confluence 3.4 nebo nižší.
pro soutok 3.4 a níže, jakmile vytvoříte vyhledávací filtr pomocí tohoto dokumentu, musíte před přidáním do souboru XML uniknout symbolu ampersand a symbolu vykřičníku. Takže například,
(&(objectClass=person)(!(objectClass=user)))
(&(objectClass=person)(!(objectClass=user)))
Viz tento externí dokumentace na další znaky XML, které je třeba uniknout.
ukázkové filtry
tyto filtry jsou zapsány pro službu Active Directory. Aby bylo možné je použít pro něco, jako je OpenLDAP atributy budou muset být změněny.
To bude pouze synchronizaci uživatelů v CaptainPlanet skupiny – to by mělo být aplikován na Objekt Uživatele Filtru:
(&(objectCategory=Person)(sAMAccountName=*)(memberOf=cn=CaptainPlanet,ou=users,dc=company,dc=com))
A to bude hledat pro uživatele, které jsou členem této skupiny, a to buď přímo, nebo prostřednictvím hnízdění:
(&(objectCategory=Person)(sAMAccountName=*)(memberOf:1.2.840.113556.1.4.1941:=cn=CaptainPlanet,ou=users,dc=company,dc=com))
Důležité pro Active Directory, aby byly memberOf:1.2.840.113556.1.4.1941 pokud chcete najít vnořené skupiny (nenahrazují číselný řetězec) uvnitř CaptainPlanet skupiny.
To bude hledat pro uživatele, kteří jsou členy některé nebo všechny 4 skupiny (oheň, vítr,voda,srdce)
(&(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)))
Tento dokument popisuje, jak jít o budování sofistikovanější filtr pro Objekt Uživatele, Filtru a Skupiny Objekt Filtru atributů v LDAP konfigurace pro Atlassian aplikací.
Jira, Confluence, Bamboo, Bitbucket
Server
Leave a Reply