-1

我正在尝试为我的学士论文设置大学 ldap,但无法弄清楚我做错了什么。收到此消息:

Caught LDAPError while authenticating my_actual_id: SERVER_DOWN({'desc': "Can't contact LDAP server"})

我的设置是:

LDAP_AUTH_FORMAT_USERNAME = "django_python3_ldap.utils.format_username_active_directory"
# LDAP_AUTH_CONNECTION_USERNAME = "dc=my-university,dc=de"

# The URL of the LDAP server.
AUTH_LDAP_SERVER_URI = "ldaps://ldap.my-university.de:636"
AUTH_LDAP_START_TLS = True
# AUTH_LDAP_BIND_DN = "dc=my-university,dc=de"
AUTH_LDAP_BIND_DN = ""
AUTH_LDAP_BIND_PASSWORD = ""
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=people,dc=2017,dc=INF,dc=Studenten,dc=my-university,dc=de",ldap.SCOPE_SUBTREE,"(uid=%(user)s)")
# AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=people, dc=my-university,dc=de",ldap.SCOPE_SUBTREE,"(uid=%(user)s)")
# AUTH_LDAP_GLOBAL_OPTIONS = {ldap.OPT_REFERRALS: False}

我需要匿名搜索并且需要进行搜索/绑定。那告诉我我的大学。但他们不会提供任何帮助。之所以选择配置的用户搜索,是因为我学的是计算机科学,而我的 uid 在此路径下。我希望它至少对我有用。

我大学 ldap 的结构是这样的:

my-university
├── dc=BW
│   ├── dc=Insitute1
│   │   ├── ou=people
│   ├── dc=Insitute2
│   │   ├── ou=people
├── dc=Students
│   ├── dc=INF
│   │   ├── dc=2018
│   │   │   └──ou=people
│   │   ├── dc=2019
│   ├── dc=PSY
│   │   ├── dc=2018
│   │   │   └──ou=people
│   │   ├── dc=2019

and so on

这意味着 ou=people 有几个层次。有时在 3 级,有时在 4 级。如果您知道我所说的“级别”是什么意思。

4

1 回答 1

0
  1. STARTTLS 不与 LDAPS 一起使用——STARTTLS 是一种在明文连接上协商加密的方法。LDAPS 从一开始就协商加密。AUTH_LDAP_START_TLS = True如果您在服务器 URI 中使用 ldaps,请注释掉。

  2. 验证您可以与端口 636 上的主机名通信(例如nmap -P0 -p636 ldap.example.comtelnet ldap.example.com 636)——如果您无法与主机通信,则您正在解决与您的代码完全无关的网络/防火墙/名称解析类型的问题。

  3. 您是否能够使用明文 LDAP(即消除 SSL 协商问题)?这可能是不可能的,因为出于安全原因,大学可能不会公开明文 LDAP,但AUTH_LDAP_SERVER_URI = "ldap://ldap.example.com:389"可能是明文 LDAP 主机:端口

  4. 您是否能够使用 LDAP 客户端来绑定和搜索目录?在 Linux 上,ldapsearch 是一个常用的实用程序。Apache Directory Studio 是一个功能齐全的 GUI 客户端。Windows 也有 ldp.exe,这是一个更简单的客户端。输入主机名、端口和您的凭据。

  5. 您确定他们需要匿名绑定吗?从第一行看,您似乎正在使用 Active Directory (AD) 作为 LDAP 提供程序。自 Windows 2003 以来,AD 默认禁用匿名绑定。有一个设置可以启用它,所以他们可能已经设置了一个 AD 以允许匿名绑定......但这是在你的配置中对我来说唯一突出的另一件事.

如果您能够使用明文 LDAP,那么可能的罪魁祸首就是证书信任。有很多站点会逐步设置证书信任。如果您无法使用明文 LDAP,那么大学的管理员可能更愿意回答直接问题,而不是支持一般的“它不起作用”问题。明文 LDAP 是否可用

一旦您到达连接点,搜索范围 SUBTREE 旨在准确处理您正在谈论的用户在树中不同位置的位置。基层的子树搜索dc=Studenten,dc=my-university,dc=de应在该“级别”下的任何位置识别帐户。还有一个“搜索联合”允许您指定多个搜索库。如果您打算在 PHY 和 INF 而不是 ART 或 CHEM 中找到学生,这将很有用。

于 2020-01-02T15:24:55.597 回答