LDAP-zoekfilters schrijven
platform Opmerking: Alleen Server en datacenter – dit artikel is alleen van toepassing op Atlassian-producten op de server en datacenterplatforms.
doel
dit document schetst hoe u een geavanceerder filter kunt maken voor het Gebruikersobjectfilter en de attributen voor Groepsobjectfilters in uw LDAP-configuratie voor Atlassian-toepassingen.
Wat is een filter
Filters kunnen worden gebruikt om het aantal gebruikers of groepen die toegang hebben tot een toepassing te beperken. In essentie beperkt het filter welk deel van de LDAP-boom de toepassing synchroniseert.
een filter kan en moet geschreven worden voor zowel gebruikerslidmaatschap als groepslidmaatschap. Dit zorgt ervoor dat u uw applicatie niet overspoelt met gebruikers en groepen die geen toegang nodig hebben.
oplossing
bij het maken van een filter kunt u het beste een gemeenschappelijk attribuut kiezen van de set gebruikers die u toegang wilt geven tot de toepassing. Dit is meestal het attribuut dat groepslidmaatschap of een objectClass zoals “persoon”
het attribuut dat gebruikt wordt om het lidmaatschap van een groep aan te duiden is niet gebruikelijk voor alle smaken van LDAP. Voorbeelden van dit attribuut kunnen ” groupMembership “of”Member”
hoe kom ik overeen met meer dan één attribuut?
bijvoorbeeld, als mijn gebruikers worden onderscheiden door twee objectClass attributen te hebben (één gelijk aan ‘persoon’ en een andere aan ‘Gebruiker’), is dit hoe ik er voor zou overeenkomen:
(&(objectClass=person)(objectClass=user))
let op het ampersand symbol '&'
symbool aan het begin. Vertaald betekent dit: zoeken naar objectClass = persoon en object = Gebruiker.
alternatief,
(|(objectClass=person)(objectClass=user))
vertaald betekent: zoeken naar objectClass=persoon of object=Gebruiker.
de pipe symbol '|'
geeft ‘of’aan. Omdat dit geen speciaal XML-teken is, hoeft het niet te ontsnappen.
Wildcards
(&(objectClass=user)(cn=*Marketing*))
Dit betekent: zoek naar alle items die objectClass=user en cn hebben die het woord ‘Marketing’bevatten.
jokertekens worden niet ondersteund bij gebruik van filters ! (of niet) logische operators. Zie hieronder
de LDAP-services zelf ondersteunen geen jokertekens voor memberOf
attribute
en andere Distinguished Name bij het instellen van LDAPFilter.
hoe kom ik overeen met 3 attributen?
voeg gewoon een extra clausule toe:
(&(objectClass=user)(objectClass=top)(objectClass=person))
Extra clausules kunnen ook voor meer dan drie attributen worden toegevoegd.
overeenkomende componenten van Distinguished Names
omdat Microsoft Active Directory extensible matching niet implementeert, werken de volgende voorbeelden er niet mee.
u wilt mogelijk een deel van een DN matchen, bijvoorbeeld wanneer u uw groepen in twee sublijnen van uw server moet zoeken.
(&(objectClass=group)(|(ou:dn:=Chicago)(ou:dn:=Miami)))
zal groepen vinden met een OU-component van hun DN die ofwel ‘Chicago’ Of ‘Miami’is.
gebruik ‘not’
om entiteiten uit te sluiten die overeenkomen met een expressie, gebruik ‘!’.
So
(&(objectClass=group)(&(ou:dn:=Chicago)(!(ou:dn:=Wrigleyville))))
zal alle Chicago groepen vinden, behalve die met een Wrigleyville ou component.
Let op de extra haakjes: (!(<expressie>))
merk op dat bij gebruik van ‘not’ (dwz. ‘!’om objecten uit te sluiten) moet het worden weergegeven als de entiteit’!’in je XML bestand als je Confluence 3.4 of lager gebruikt.
voor samenvloeiing 3.4 en hieronder, zodra u uw zoekfilter met behulp van dit document hebt geconstrueerd, moet u ontsnappen aan de ampersand symbool en het uitroepteken symbool alvorens toe te voegen aan uw XML-bestand. Dus bijvoorbeeld;
(&(objectClass=person)(!(objectClass=user)))
(&(objectClass=person)(!(objectClass=user)))
refereer naar deze externe documentatie over andere XML-tekens die moeten worden ontsnapt.wordt
Monsterfilters
Deze filters worden geschreven voor Active Directory. Om ze te gebruiken voor iets als OpenLDAP moeten de attributen worden gewijzigd.
Dit zal alleen synchroniseren gebruikers in de ‘CaptainPlanet’ groep – dit moet worden toegepast op de Gebruiker, Object Filter:
(&(objectCategory=Person)(sAMAccountName=*)(memberOf=cn=CaptainPlanet,ou=users,dc=company,dc=com))
En dit zal zoeken voor gebruikers die lid zijn van deze groep, rechtstreeks of via nesten:
(&(objectCategory=Person)(sAMAccountName=*)(memberOf:1.2.840.113556.1.4.1941:=cn=CaptainPlanet,ou=users,dc=company,dc=com))
Belangrijk voor Active Directory te hebben memberOf:1.2.840.113556.1.4.1941 als u wilt te vinden geneste groepen (geen vervanging van de numerieke string) in CaptainPlanet groep.
dit document schetst hoe u een geavanceerder filter kunt construeren voor het Gebruikersobjectfilter en de eigenschappen van het Groepsobjectfilter in uw Objectfilter.LDAP-configuratie voor Atlassian-toepassingen.
Jira, Confluence, Bamboe, Bitbucket
Server
Leave a Reply