bem0815
Goto Top

LDAP Integration für Rocket.Chat, Problem mit User Search

Moin zusammen,

ich bin gerade dabei Rocket.Chat mit einem OpenLDAP Server zu verbinden.
Grundsätzlich klappt das auch, nur bekomme ich es nicht hin das ganze zu Filtern, so dass sich nur Mitglieder einer bestimmten Gruppe anmelden dürfen.

Sobald ich den Filter aktiviere kann sich gar kein User anmelden.
Egal ob er in der Gruppe ist oder nicht.

Synchronisiert werden die LDAP User aber problemlos mit Rocket.Chat
Leider ist die Doku von Rocket.Chat zu dem Punkt User Search (Group Validation) so gut wie nicht vorhanden und über Google auch nicht wirklich was zu finden.

Der Vollständigkeit halber hier meine vollständigen LDAP Einstellungen in Rocket.Chat:

**LDAP**
Enable: True
Login Fallback: True
Find user after login: True
Host: ldap.firma.de
Port: 636
Encryption: SSL/LDAPS
CA Cert:
Reject Unauthorized: True
Base DN: DC="ldap",DC="firma",DC="de"  

**Authentication**
Enable: True
User DN: cn=admin,dc=ldap,dc=firma,dc=de (wird später noch auf einen anderen User geändert)
Passwort: ***************

**Sync/Import**
Username Field: uid
Unique Identifier Field: uidNumber
Default Domain: firma.de
Merge Existing Users: true
Sync User Data: true
User Data Field Map: {"cn":"name", "mail":"email"}  
Sync User Avatar: true
Background Sync: true
Background Sync Interval: Every 24 hours
Background Sync Import New Users: true
Background Sync Update Existing Users: true


Zum Filtern wer sich einloggen darf gibt es dann noch "User Search" und "User Search (Group Validation)".
Da OpenLDAP kein "memberOf" versteht heißt es hier für OpenLDAP soll man statt der "User Search" die "User Search (Group Validation)" nutzen.

Hier die Einstellungen zu UserSearch in denen ich wohl einen Fehler habe:
In Klammern stehen zum Teil die Vorschläge von Rocket.Chat

Enable LDAP User Group Filter: true

Group ObjectClass: posixGroup
(Rocketchat schreibt hier: als Beispielwert: "E.g. OpenLDAP:groupOfUniqueNames", jedoch sagt mir hier mein LDAP Browser, dass die Objectclass "posixGroup" lautet.  

Group ID Attribute: cn
(E.g. *OpenLDAP:*cn)

Group Member Attribute: memberUid
(Auch hier eine Abweichung vom Rocket.Chat vorschlag für OpenLDAP: "E.g. *OpenLDAP:*uniqueMember", LDAP Browser sagt mir aber die Attribute heißen memberUid)  

Group Member Format: uid=#{username},ou=users,dc=ldap,dc=firma,dc=de
(E.g. *OpenLDAP:*uid=#{username},ou=users,o=Company,c=com)

Group name: rocketchat


Der Rocketchat Log gibt bei einem Anmeldeversuch folgenden Fehler aus:
I20190724-08:12:20.398(0) server.js:207 LDAPHandler ➔ error { NoSuchObjectError: No Such Object     at messageCallback (/app/bundle/programs/server/npm/node_modules/ldapjs/lib/client/client.js:1419:45)     at Parser.onMessage (/app/bundle/programs/server/npm/node_modules/ldapjs/lib/client/client.js:1089:14)     at emitOne (events.js:116:13)     at Parser.emit (events.js:211:7)     at Parser.write (/app/bundle/programs/server/npm/node_modules/ldapjs/lib/messages/parser.js:111:8)     at TLSSocket.onData (/app/bundle/programs/server/npm/node_modules/ldapjs/lib/client/client.js:1076:22)     at emitOne (events.js:116:13)     at TLSSocket.emit (events.js:211:7)     at addChunk (_stream_readable.js:263:12)     at readableAddChunk (_stream_readable.js:250:11)     at TLSSocket.Readable.push (_stream_readable.js:208:10)     at TLSWrap.onread (net.js:597:20) lde_message: 'No Such Object', lde_dn: null }   

Ich weiß nur leider nicht an welcher Stelle er hier ein Objekt nicht finden kann. Ob es die Gruppe ist oder der User.
Bzw. wo er Probleme mit dem Distinguished Name hat.

Content-Key: 476922

Url: https://administrator.de/contentid/476922

Printed on: April 24, 2024 at 20:04 o'clock

Member: Dani
Dani Jul 24, 2019 at 08:50:37 (UTC)
Goto Top
Moin,
folgenden Beitrag LDAP Group Member Format habe ich im Community Forum von Rocket gefunden. Ist meiner Meinung nach, das selbe Problem wie bei dir.


Gruß,
Dani
Member: Bem0815
Bem0815 Jul 24, 2019, updated at Jul 25, 2019 at 06:17:11 (UTC)
Goto Top
Zitat von @Dani:

Moin,
folgenden Beitrag LDAP Group Member Format habe ich im Community Forum von Rocket gefunden. Ist meiner Meinung nach, das selbe Problem wie bei dir.


Gruß,
Dani

Hi, danke für den Beitrag.

Ich denke da geht es aber um was anderes.
In dem Forenbeitrag geht es darum, dass der User mit cn={givenName} nach einer ungültigen Syntax gesucht hat, denn nachdem er den Sourcecode durchsucht hat ist er zu dem Schluss gekommen, dass nur eine Suche nach #{username} oder #{userdn} legitim ist und nicht nach {givenname}.

Das macht für mich soweit auch Sinn, da das nicht die LDAP Variablen sondern die Rocketchat Variablen sind.
In Rocketchat gibt es Name, Username und E-Mail.
Bei mir wird das aus dem LDAP wie folgt übernommen:

Name: Max Mustermann
Username: m.mustermann
E-Mail: m.mustermann@firma.de

Ich verwende bei mir in der Syntax aber bereits #{username}.

uid=#{username},ou=users,dc=ldap,dc=firma,dc=de

Sollte bedeuten er soll die uid m.mustermann in den LDAP finden und mit dem rocket.chat username m.mustermann abgleichen und nach dem LDAP User soll er hierbei in der OU Users suchen.
Member: Dani
Dani Jul 24, 2019 at 19:37:50 (UTC)
Goto Top
Moin,
Ich denke da geht es aber um was anderes.
Hmm, folgender Satz " Currently I’m stuck at the LDAP Group Member Format setting as it should look like the following:" klingt doch nach der Übersetzung nach deinem Problem. Es geht meiner Meinung nach darum, wie die zu prüfende Gruppe "formatiert" werden muss.


Gruß,
Dani
Member: Bem0815
Bem0815 Jul 25, 2019 at 06:28:19 (UTC)
Goto Top
Zitat von @Dani:

Moin,
Ich denke da geht es aber um was anderes.
Hmm, folgender Satz " Currently I’m stuck at the LDAP Group Member Format setting as it should look like the following:" klingt doch nach der Übersetzung nach deinem Problem. Es geht meiner Meinung nach darum, wie die zu prüfende Gruppe "formatiert" werden muss.


Gruß,
Dani

Das ist mir schon von Anfang an klar, dass es was am Format vom "LDAP Group Member Format" sein muss, sonst würde LDAP ja gar nicht funktionieren. Ich hab aber auch extra deshalb geschrieben eine Anmeldung funktioniert, nur nicht wenn ich den zusätzlichen "Group Member Format" Filter überhaupt einschalte.

Ohne diesen ist ein Anmelden möglich. Daher ist das auch vollkommen klar, dass ich den Fehler nicht woanders suchen muss.
Nur konkret die Einstellung die in deinem verlinkten Beitrag vorgeschlagen wird hatte ich schon von Anfang an so umgesetzt.

Das ist ungefähr so also würde ich schreiben ich hab an meinem Auto (LDAP) ein Problem mit dem Motor (Group Member Format) und du postest mir irgendeinen Beitrag wie jemand ein Motorproblem gelöst hat und sagt das dürfte die Lösung für dein Problem sein, obwohl ich im Eingangbeitrag schon schrieb, dass ich diesen Fehler quasi ausgeschlossen habe.

Nicht böse gemeint, aber der verlinkte Beitrag hilft mir leider nicht. Da wie gesagt mein Ansatz bereits mit der dortigen Lösung übereinstimmt.