hur man skriver LDAP – sökfilter
Plattformsmeddelande: endast Server och datacenter-den här artikeln gäller endast Atlassian-produkter på server-och datacenterplattformarna.
syfte
i det här dokumentet beskrivs hur du konstruerar ett mer sofistikerat filter för Användarobjektfiltret och gruppobjektfilterattributen i din LDAP-konfiguration för Atlassian-applikationer.
Vad är ett filter
filter kan användas för att begränsa antalet användare eller grupper som får komma åt ett program. I huvudsak begränsar filtret vilken del av LDAP-trädet applikationen synkroniserar från.
ett filter kan och bör skrivas för både användar-och gruppmedlemskap. Detta säkerställer att du inte översvämmer din applikation med användare och grupper som inte behöver åtkomst.
lösning
När du konstruerar ett filter är det bäst att välja ett gemensamt attribut för den uppsättning användare du vill tillåta åtkomst till programmet. Detta är oftast attributet som betecknar gruppmedlemskap eller ett objektklass som ”Person”
attributet som används för att beteckna medlemskap i en grupp är inte vanligt för alla smaker av LDAP. Exempel på detta attribut kan vara ”groupMembership”eller” Member ”
hur matchar jag mer än ett attribut?
till exempel, om mina användare kännetecknas av att ha två objectClass attribut (en lika med ’person’ och en annan till ’användare’), så här skulle jag matcha för det:
(&(objectClass=person)(objectClass=user))
Lägg märke tillampersand symbol '&'
symbolen i början. Översatt betyder detta: sök efter objectClass=person och objekt=användare.
alternativt
(|(objectClass=person)(objectClass=user))
översatt detta betyder: Sök efter objectClass=person eller objekt=användare.
pipe symbol '|'
betecknar ’eller’. Eftersom detta inte är ett speciellt XML-tecken, borde det inte behöva fly.
jokertecken
(&(objectClass=user)(cn=*Marketing*))
detta betyder: Sök efter alla poster som har objectClass=användare och cn som innehåller ordet ’marknadsföring’.
jokertecken stöds inte när de används i filter Med ! (eller inte) logiska operatörer. Se nedan
LDAP-tjänsterna själva stöder inte jokertecken för memberOf
attribute
och annat framstående namn när du ställer in LDAPFilter.
Hur matchar jag 3 attribut?
lägg bara till en extra klausul:
(&(objectClass=user)(objectClass=top)(objectClass=person))
extra klausuler kan läggas till för mer än tre attribut också.
matchande komponenter av framstående namn
eftersom Microsoft Active Directory inte implementerar utbyggbar matchning fungerar inte följande exempel med den.
Du kanske vill matcha en del av en DN, till exempel när du behöver leta efter dina grupper i två underträd på din server.
(&(objectClass=group)(|(ou:dn:=Chicago)(ou:dn:=Miami)))
hittar grupper med en OU-komponent i deras DN som antingen är ”Chicago” eller ”Miami”.
använda ’not’
för att utesluta enheter som matchar ett uttryck, använd ’!’.
Så
(&(objectClass=group)(&(ou:dn:=Chicago)(!(ou:dn:=Wrigleyville))))
hittar alla Chicago-grupper utom de med en Wrigleyville OU-komponent.
notera de extra parenteserna: (!(<expression>))
Observera att om du använder ”inte” (dvs. ’!’för att utesluta objekt) måste det representeras som entitet ’!’i din XML-fil om du använder Confluence 3.4 eller senare.
för sammanflöde 3.4 och nedan, när du har konstruerat ditt sökfilter med det här dokumentet, måste du undkomma Ampersand-symbolen och utropstecknet innan du lägger till din XML-fil. Så till exempel;
(&(objectClass=person)(!(objectClass=user)))
(&(objectClass=person)(!(objectClass=user)))
se den här externa dokumentationen om andra XML-tecken som behöver fly.blir
Provfilter
dessa filter är skrivna för Active Directory. För att kunna använda dem för något som OpenLDAP måste attributen ändras.
detta synkroniserar endast användare i gruppen ’CaptainPlanet’ – detta bör tillämpas på Användarobjektfiltret:
(&(objectCategory=Person)(sAMAccountName=*)(memberOf=cn=CaptainPlanet,ou=users,dc=company,dc=com))
och detta söker efter användare som är medlemmar i denna grupp, antingen direkt eller via nesting:
(&(objectCategory=Person)(sAMAccountName=*)(memberOf:1.2.840.113556.1.4.1941:=cn=CaptainPlanet,ou=users,dc=company,dc=com))
viktigt för Active Directory att ha memberof:1.2.840.113556.1.4.1941 om du vill hitta kapslade grupper (ersätt inte den numeriska strängen) inuti captainplanet Group.
detta kommer att söka efter användare som är medlem i någon eller alla 4 grupper (eld, vind,vatten,hjärta)
(&(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)))
detta dokument beskriver hur man ska gå om att konstruera ett mer sofistikerat filter för Användarobjektfiltret och Gruppobjektfiltret attribut i din LDAP-konfiguration för Atlassian-applikationer.
Jira, sammanflöde, bambu, Bitbucket
Server
Leave a Reply