Saltar al contenido principal

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.

información

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 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.