So schreiben Sie LDAP-Suchfilter
Plattformhinweis: Nur Server und Rechenzentrum – Dieser Artikel gilt nur für Atlassian-Produkte auf den Server- und Rechenzentrumsplattformen.
Zweck
In diesem Dokument wird beschrieben, wie Sie einen komplexeren Filter für die Attribute Benutzerobjektfilter und Gruppenobjektfilter in Ihrer LDAP-Konfiguration für Atlassian-Anwendungen erstellen.
Was ist ein Filter?
Filter können verwendet werden, um die Anzahl der Benutzer oder Gruppen einzuschränken, die auf eine Anwendung zugreifen dürfen. Im Wesentlichen begrenzt der Filter, aus welchem Teil des LDAP-Baums die Anwendung synchronisiert wird.
Ein Filter kann und sollte sowohl für die Benutzer- als auch für die Gruppenmitgliedschaft geschrieben werden. Dadurch wird sichergestellt, dass Sie Ihre Anwendung nicht mit Benutzern und Gruppen überfluten, die keinen Zugriff benötigen.
Lösung
Beim Erstellen eines Filters ist es am besten, ein gemeinsames Attribut der Gruppe von Benutzern auszuwählen, die den Zugriff auf die Anwendung zulassen möchten. Dies ist meistens das Attribut, das die Gruppenmitgliedschaft oder eine Objektklasse wie „Person“
Das Attribut, das verwendet wird, um die Mitgliedschaft in einer Gruppe zu kennzeichnen, ist nicht allen Varianten von LDAP gemeinsam. Beispiele für dieses Attribut können „groupMembership“ oder „Member“ sein
Wie finde ich mehr als ein Attribut?
Wenn meine Benutzer beispielsweise durch zwei objectClass-Attribute (eines gleich ‚person‘ und eines gleich ‚user‘) unterschieden werden, würde ich so übereinstimmen:
(&(objectClass=person)(objectClass=user))
Beachten Sie das ampersand symbol '&'
Symbol am Anfang. Übersetzt heißt das: Suche nach objectClass=person UND object=user.
Alternativ
(|(objectClass=person)(objectClass=user))
Übersetzt heißt das: Suche nach objectClass=person ODER object=user.
Die pipe symbol '|'
bezeichnet ‚ODER‘. Da dies kein spezielles XML-Zeichen ist, sollte es nicht maskiert werden müssen.
Platzhalter
(&(objectClass=user)(cn=*Marketing*))
Dies bedeutet: suchen Sie nach allen Einträgen mit objectClass =user UND cn, die das Wort ‚Marketing‘ enthalten.
Platzhalter werden nicht unterstützt, wenn sie in Filtern mit ! (oder NICHT) logische Operatoren. Siehe unten
Die LDAP-Dienste selbst unterstützen keine Platzhalter für memberOf
attribute
und andere Distinguished Name beim Einrichten von LDAPFilter.
Wie passe ich 3 Attribute an?
Fügen Sie einfach eine zusätzliche Klausel hinzu:
(&(objectClass=user)(objectClass=top)(objectClass=person))
Zusätzliche Klauseln können auch für mehr als drei Attribute hinzugefügt werden.
Passende Komponenten von Distinguished Names
Da Microsoft Active Directory keinen erweiterbaren Abgleich implementiert, funktionieren die folgenden Beispiele nicht damit.
Möglicherweise möchten Sie einen Teil eines DN abgleichen, z. B. wenn Sie in zwei Teilbäumen Ihres Servers nach Ihren Gruppen suchen müssen.
(&(objectClass=group)(|(ou:dn:=Chicago)(ou:dn:=Miami)))
findet Gruppen mit einer OU-Komponente ihres DN, die entweder „Chicago“ oder „Miami“ ist.
Verwenden von ’not‘
Um Entitäten auszuschließen, die einem Ausdruck entsprechen, verwenden Sie ‚!‘.
Also
(&(objectClass=group)(&(ou:dn:=Chicago)(!(ou:dn:=Wrigleyville))))
findet alle Chicago-Gruppen außer denen mit einer Wrigleyville OU-Komponente.
Beachten Sie die zusätzlichen Klammern: (!(<Ausdruck>))
Beachten Sie, dass bei Verwendung von „not“ (dh. ‚!‘ um Objekte auszuschließen) muss es als Entität dargestellt werden ‚!‘ in Ihrer XML-Datei, wenn Sie Confluence 3.4 oder niedriger verwenden.
Für Confluence 3.4 und unten, wenn Sie Ihren Suchfilter mit diesem Dokument erstellt haben, müssen Sie das kaufmännische Und-Zeichen und das Ausrufezeichen maskieren, bevor Sie es zu Ihrer XML-Datei hinzufügen. So zum Beispiel;
(&(objectClass=person)(!(objectClass=user)))
(&(objectClass=person)(!(objectClass=user)))
Beziehen Sie sich auf diese externe Dokumentation zu anderen XML-Zeichen, die Escape-Zeichen benötigen.wird
Beispielfilter
Diese Filter sind für Active Directory geschrieben. Um sie für etwas wie OpenLDAP zu verwenden, müssen die Attribute geändert werden.
Dadurch werden nur Benutzer in der Gruppe ‚CaptainPlanet‘ synchronisiert – dies sollte auf den Benutzerobjektfilter angewendet werden:
(&(objectCategory=Person)(sAMAccountName=*)(memberOf=cn=CaptainPlanet,ou=users,dc=company,dc=com))
Und dies wird nach Benutzern suchen, die Mitglied dieser Gruppe sind, entweder direkt oder über Verschachtelung:
(&(objectCategory=Person)(sAMAccountName=*)(memberOf:1.2.840.113556.1.4.1941:=cn=CaptainPlanet,ou=users,dc=company,dc=com))
Wichtig für Active Directory memberOf:1.2.840.113556.1.4.1941 wenn Sie verschachtelte Gruppen (ersetzen Sie nicht die numerische Zeichenfolge) in der CaptainPlanet-Gruppe finden möchten.
Dadurch wird nach Benutzern gesucht, die Mitglied einer oder aller 4 Gruppen sind (Feuer, Wind, Wasser, Herz)
(&(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)))
In diesem Dokument wird beschrieben, wie Sie einen ausgefeilteren Filter für die Attribute Benutzerobjektfilter und Gruppenobjektfilter in Ihrer LDAP-Konfiguration für Atlassian-Anwendungen.
Jira, Confluence, Bamboo, Bitbucket
Server
Leave a Reply