Servidor LDAP
Muchos sistemas, como Nexus
, admiten autenticación LDAP. Casdoor también implementa un servidor LDAP simple, que admite operaciones de enlace y búsqueda.
Este documento describe cómo conectarse al servidor LDAP en Casdoor e implementar una autenticación de inicio de sesión simple.
Puerto del Servidor LDAP
El servidor LDAP escucha en el puerto 389
por defecto. You can change the default port by modifying the ldapServerPort
value in conf/app.conf.
Cómo funciona
Similar al cliente LDAP en Casdoor, los usuarios en el servidor LDAP son todas subclases de posixAccount
.
Cuando el servidor recibe un conjunto de datos transmitidos por LDAP, analizará el cn
y ou
, donde cn
representa el nombre de usuario y ou
representa el nombre de la organización. El dc
no importa.
Si es una operación de enlace, el servidor usará Casdoor para verificar el nombre de usuario y la contraseña y otorgar al usuario permiso en Casdoor.
Si es una operación de búsqueda, el servidor verificará si la operación de búsqueda es legal, de acuerdo con los permisos otorgados al cliente por la operación de enlace, y devolverá una respuesta.
Solo admitimos Autenticación Simple.
Cómo Enlazar
En el servidor LDAP de Casdoor, solo reconocemos DN
similar a este formato: cn=admin,ou=built-in,dc=example,dc=com
.
Por favor, establezca el DN
del usuario administrador al formato anterior. Luego, puede usar este DN
para enlazar al servidor LDAP con la contraseña del usuario para iniciar sesión en Casdoor para verificación. Si la verificación del servidor es exitosa, al usuario se le otorgará autoridad en Casdoor.
Cómo Buscar
Una vez que la operación de enlace se completa con éxito, puede realizar la operación de búsqueda. Hay algunas diferencias entre las operaciones de búsqueda y enlace.
- 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.