LDAP-Server
Viele Systeme, wie Nexus
, unterstützen LDAP-Authentifizierung. Casdoor implementiert auch einen einfachen LDAP-Server, der Bind- und Suchoperationen unterstützt.
Dieses Dokument beschreibt, wie man sich mit dem LDAP-Server in Casdoor verbindet und eine einfache Login-Authentifizierung implementiert.
LDAP-Server-Port
Der LDAP-Server hört standardmäßig auf Port 389
. Sie können den Standardport ändern, indem Sie den Wert ldapServerPort
in conf/app.conf ändern.
Wie es funktioniert
Ähnlich wie der LDAP-Client in Casdoor sind alle Benutzer im LDAP-Server Unterklassen von posixAccount
.
Wenn der Server einen Datensatz erhält, der von LDAP übertragen wird, wird er den cn
und ou
analysieren, wobei cn
den Benutzernamen und ou
den Organisationsnamen darstellt. Der dc
spielt keine Rolle.
Wenn es sich um eine Bind-Operation handelt, wird der Server Casdoor verwenden, um den Benutzernamen und das Passwort zu überprüfen und dem Benutzer in Casdoor die Berechtigung zu erteilen.
Wenn es sich um eine Suchoperation handelt, wird der Server überprüfen, ob die Suchoperation gemäß den Berechtigungen, die dem Client durch die Bind-Operation gewährt wurden, legal ist und eine Antwort zurückgeben.
Wir unterstützen nur Einfache Authentifizierung.
Wie man bindet
Im Casdoor LDAP-Server erkennen wir nur DN
in einem Format ähnlich diesem: cn=admin,ou=built-in,dc=example,dc=com
.
Bitte setzen Sie den DN
des Admin-Benutzers auf das oben genannte Format. Dann können Sie diesen DN
verwenden, um sich mit dem Passwort des Benutzers an den LDAP-Server zu binden, um sich bei Casdoor zur Überprüfung anzumelden. Wenn die Serverüberprüfung erfolgreich ist, wird dem Benutzer in Casdoor Autorität gewährt.
Wie man sucht
Sobald die Bind-Operation erfolgreich abgeschlossen ist, können Sie die Suchoperation durchführen. Es gibt einige Unterschiede zwischen Such- und Bind-Operationen.
- Um nach einem bestimmten Benutzer zu suchen, wie zum Beispiel
Alice
unter der Organisationbuilt-in
, sollten Sie einenDN
wie diesen verwenden:ou=built-in,dc=example,dc=com
undcn=Alice
im Filterfeld hinzufügen. - Um nach allen Benutzern unter einer bestimmten Organisation zu suchen, wie zum Beispiel allen Benutzern in
built-in
, sollten Sie einenDN
wie diesen verwenden:ou=built-in,dc=example,dc=com
undcn=*
im Filterfeld hinzufügen. - Um nach allen Benutzern in allen Organisationen zu suchen (vorausgesetzt, der Benutzer hat ausreichende Berechtigungen), sollten Sie einen
DN
wie diesen verwenden:ou=*,dc=example,dc=com
undcn=*
im Filterfeld hinzufügen. - To search for all users in a specific group, you should use a filter query like this:
(memberOf=organization_name/group_name)
in the Filter field.