التخطي إلى المحتوى الرئيسي

خادم LDAP

العديد من الأنظمة، مثل Nexus، تدعم المصادقة LDAP. Casdoor ينفذ أيضًا خادم LDAP بسيط، يدعم عمليات الربط والبحث.

هذا المستند يصف كيفية الاتصال بخادم LDAP في Casdoor وتنفيذ مصادقة تسجيل دخول بسيطة.

منفذ خادم LDAP

خادم LDAP يستمع افتراضيًا على المنفذ 389. You can change the default port by modifying the ldapServerPort value in conf/app.conf.

كيف يعمل

مشابه لعميل LDAP في Casdoor، المستخدمون في خادم LDAP هم جميعًا فئات فرعية من posixAccount.

عندما يتلقى الخادم مجموعة من البيانات المنقولة بواسطة LDAP، سيقوم بتحليل cn و ou، حيث cn يمثل اسم المستخدم و ou يمثل اسم المنظمة. dc لا يهم.

إذا كانت عملية ربط، سيستخدم الخادم Casdoor للتحقق من اسم المستخدم وكلمة المرور ومنح المستخدم إذن في Casdoor.

إذا كانت عملية بحث، سيتحقق الخادم مما إذا كانت عملية البحث قانونية، وفقًا للأذونات الممنوحة للعميل بواسطة عملية الربط، ويرجع استجابة.

معلومات

نحن ندعم فقط المصادقة البسيطة.

كيفية الربط

في خادم LDAP Casdoor، نحن نعترف فقط بـ DN مشابه لهذا الشكل: cn=admin,ou=built-in,dc=example,dc=com.

يرجى تعيين DN للمستخدم المسؤول إلى الشكل أعلاه. ثم، يمكنك استخدام هذا DN للربط بخادم LDAP بكلمة مرور المستخدم لتسجيل الدخول إلى Casdoor للتحقق. إذا كانت عملية التحقق من الخادم ناجحة، سيتم منح المستخدم سلطة في Casdoor.

كيفية البحث

بمجرد اكتمال عملية الربط بنجاح، يمكنك تنفيذ عملية البحث. هناك بعض الاختلافات بين عمليات البحث والربط.

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