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.
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 thebuilt-in
organization, you should use aDN
like this:ou=built-in,dc=example,dc=com
, and addcn=Alice
in the Filter field. - To search for all users under a certain organization, such as all users in
built-in
, you should use aDN
like this:ou=built-in,dc=example,dc=com
, and addcn=*
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 addcn=*
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
ReturnssubschemaSubentry: 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.