Passer au contenu principal

Serveur LDAP

De nombreux systèmes, comme Nexus, prennent en charge l'authentification LDAP. Casdoor implémente également un serveur LDAP simple, qui prend en charge les opérations de liaison (bind) et de recherche (search).

Ce document décrit comment se connecter au serveur LDAP dans Casdoor et mettre en œuvre une authentification de connexion simple.

Port du serveur LDAP

Le serveur LDAP écoute sur le port 389 par défaut. You can change the default port by modifying the ldapServerPort value in conf/app.conf.

Fonctionnement

Semblable au client LDAP dans Casdoor, les utilisateurs du serveur LDAP sont tous des sous-classes de posixAccount.

Lorsque le serveur reçoit un ensemble de données transmises par LDAP, il analysera le cn et le ou, où cn représente le nom d'utilisateur et ou représente le nom de l'organisation. Le dc n'a pas d'importance.

S'il s'agit d'une opération de liaison, le serveur utilisera Casdoor pour vérifier le nom d'utilisateur et le mot de passe et accorder à l'utilisateur la permission dans Casdoor.

S'il s'agit d'une opération de recherche, le serveur vérifiera si l'opération de recherche est légale, selon les permissions accordées au client par l'opération de liaison, et retournera une réponse.

info

Nous ne prenons en charge que l'Authentification Simple.

Comment se Lier

Dans le serveur LDAP de Casdoor, nous ne reconnaissons que le DN similaire à ce format : cn=admin,ou=built-in,dc=example,dc=com.

Veuillez définir le DN de l'utilisateur admin au format ci-dessus. Ensuite, vous pouvez utiliser ce DN pour vous lier au serveur LDAP avec le mot de passe de l'utilisateur pour vous connecter à Casdoor pour vérification. Si la vérification du serveur est réussie, l'utilisateur se verra accorder une autorité dans Casdoor.

Comment Rechercher

Une fois l'opération de liaison réussie, vous pouvez effectuer l'opération de recherche. Il existe quelques différences entre les opérations de recherche et de liaison.

  • To search for a certain user, such as Alice under the built-in organization, you should use a DN like this: ou=built-in,dc=example,dc=com, and add cn=Alice in the Filter field.
  • To search for all users under a certain organization, such as all users in built-in, you should use a DN like this: ou=built-in,dc=example,dc=com, and add cn=* in the Filter field.
  • To search for all users in all organizations (assuming the user has sufficient permissions), you should use a DN like this: ou=*,dc=example,dc=com, and add cn=* in the Filter field.
  • 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.

Supported RFC-Style Features

Partial Root DSE Query Support

The Root DSE (baseDN="") provides directory capabilities.

  • Query namingContexts (organization list): ldapsearch -x -H ldap://<casdoor-host>:389 -D "cn=admin,ou=built-in" -w <passwd> -b "" -s base "(objectClass=*)" namingContexts
    Returns visible organization DNs.

  • Query subschemaSubentry: ldapsearch -x -H ldap://<casdoor-host>:389 -D "cn=admin,ou=built-in" -w <passwd> -b "" -s base "(objectClass=*)" subschemaSubentry
    Returns subschemaSubentry: cn=Subschema.

Schema Query Support

Query objectClasses: ldapsearch -x -H ldap://<casdoor-host>:389 -D "cn=admin,ou=built-in" -w <passwd> -b "cn=Subschema" -s base "(objectClass=*)" objectClasses
Returns definitions for posixAccount and posixGroup.

POSIX Filters

  • (objectClass=posixAccount) returns user list.
  • (objectClass=posixGroup) returns group list under organization (e.g., ldapsearch -x -H ldap://<casdoor-server>:389 -D "cn=admin,ou=built-in" -w <passwd> -b "ou=<org>" "(objectClass=posixGroup)").

Note: (objectClass=posixGroup) Does not support combined searches like (&(objectClass=posixGroup)(cn=<group>)). Please use memberOf for searching members in a group.