问题标签 [django-auth-ldap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1210 浏览

python - Django 用户 julienb 没有要填充的配置文件

我正在尝试通过 ldap 登录到管理站点。用户在 ldap 中找到。我的问题是每次我尝试登录时,都会出现此错误。

显然我无法登录管理站点。我不知道如何告诉 django “不要使用配置文件!!让我登录”

这是我的settings.py

我不知道为什么我无法登录,为什么他要求提供个人资料,我不使用个人资料,是否有什么可以指定来告知 django 不关心个人资料,让我登录 :)

0 投票
1 回答
3336 浏览

python - 如何为 Django 项目创建模拟 LDAP 服务器?

我正在使用django-auth-ldap并且想知道创建 python 模拟 ldap 服务器的最简单方法是什么。当我远离 ldap 服务器所在的网络进行开发时,就会出现问题。测试是另一种情况。我想避免在本地创建实际 ldap 服务器的实例。

0 投票
6 回答
13993 浏览

python - Django Auth LDAP - 使用 sAMAccountName 直接绑定

有两种使用 Django Auth LDAP 对用户进行身份验证的方法

  1. 搜索/绑定和
  2. 直接绑定。

第一个涉及匿名或使用固定帐户连接到 LDAP 服务器并搜索身份验证用户的可分辨名称。然后我们可以尝试再次与用户的密码绑定。

第二种方法是从用户的用户名中导出用户的 DN,并尝试直接绑定为用户。

我希望能够使用尝试访问应用程序的用户的用户 ID (sAMAccountName) 和密码进行直接绑定。请让我知道是否有办法实现这一目标?目前,由于下面解释的问题,我似乎无法完成这项工作。

就我而言,LDAP 中用户的 DN 格式如下

这基本上转换为“CN=FirstName LastName,OU=Users,OU=Central,OU=US,DC=client,DC=corp”

这阻止我使用直接绑定,因为用户的sAMAccountNamesjones,这是与用户名 (%user) 对应的参数,我无法找到一种方法来构建正确的AUTH_LDAP_USER_DN_TEMPLATE以派生用户的 DN使用。

由于上面解释的问题,我现在正在使用搜索/绑定,但这需要我在AUTH_LDAP_BIND_DNAUTH_LDAP_BIND_PASSWORD中指定一个固定的用户凭据。

这是我当前的settings.py配置

期待这里的好人的一些指导。

0 投票
0 回答
2339 浏览

python - 使用 django_auth_ldap 进行 Ldap 身份验证

我正在尝试使用 django 实现 Ldap 身份验证。为此,我已经配置了我的 settings.py,如此处所述http://pythonhosted.org/django-auth-ldap/example.html

我在这里附上我的 settings.py 文件

除了这个还有什么可以做的吗?

我的views.py文件如下

我的 models.py 文件是空的。我根本无法对用户进行身份验证?

我还需要做什么。从我发现它只是试图对本地数据库进行身份验证。我无法从http://pythonhosted.org/django-auth-ldap/#auth-ldap-bind-as-authenticating-user获得任何进一步的帮助

我在这里检查了类似的问题,但无法从用户的答案中找出任何东西。

请帮助我,以便我可以实现身份验证。

0 投票
1 回答
568 浏览

python - 使用 django-auth-ldap 检索 dn

我正在使用 django 和 Ldap 后端编写一个 Web 应用程序来验证用户身份。身份验证完成,属性映射也用 django-auth-ldap 完成(谢谢...)。但在网页界面中,用户需要更新一些信息,如描述、电话等......

所以我需要检索 dn 属性来更新当前用户而不是另一个。我尝试使用和属性映射区分名称但不起作用......有什么想法吗?

请在下面找到当前代码。

设置.py:

但没有结果...

我也尝试写下我的观点:

但没有结果,我无法检索该用户的 dn 条目...

在此先感谢,洛伊克。

0 投票
0 回答
340 浏览

python - Django-auth-ldap 配置

我进入我的登录页面,提交我的凭据,然后我被重定向说我的凭据错误。我的日志记录甚至似乎都不起作用,我假设 django-auth-ldap 配置甚至没有正确设置。任何进一步的帮助将不胜感激。我的日志记录可能不正确,但我完全遵循了文档。

谢谢!

0 投票
1 回答
95 浏览

django - Django - 将身份验证后端代码与实现分开

将身份验证后端逻辑与本质上依赖于它的代码分开的最佳方法是什么?

这是一个常见问题:django_auth_ldap 没有预先填充用户表,而是针对 LDAP 进行身份验证,并在用户第一次登录时将用户添加到表中。

但是,假设我们正在编写一个涉及向项目添加成员的应用程序。用户可能希望添加其他存在于 LDAP 中但之前未登录的用户,因此在这种情况下您几乎需要输入用户名并查询 LDAP 和数据库以查看该用户是否存在。同样,如果我们正在编写可重用的应用程序,我们希望“按用户名查找”子例程是可配置的。

在工作中,我们有两种不同的解决方案来解决这个问题,它们都可以正常工作,但它们是一种奇怪的解决方案。

  • 让它这样你就可以在 settings.py 中编写一个 get_user_by_username 函数,它可以执行你想要的任何查找
  • 为您创建的 auth.User 的代理模型提供“appname.modelname”路径,该模型预期/强制具有与 get_user_by_username 执行相同操作的类方法

我认为第一个更干净一些,因为它没有引入新类型,但在 settings.py 中仍然是一个奇怪的东西。

0 投票
2 回答
1426 浏览

python - 使用 Django 管理页面添加具有其他 AUTHENTICATION_BACKEND 的用户

我正在使用django_auth_ldap针对没有以有用的方式组织的大型企业 ActiveDirectory 系统对 Django 项目的用户进行身份验证(而且我没有能力更改它)。因此,我必须单独添加用户,这样我就不会得到任何可以针对 LDAP 进行身份验证的用户都能够登录系统。可以使用在命令行上添加 LDAP 用户

但我不能使用管理页面做同样的事情(添加用户强制我输入密码,而不是让帐户继承已经存在的 LDAP 凭据。)

似乎没有一种简单/聪明的方法可以在不必编写 django 管理页面的情况下完成此操作(尽管如果我在这方面错了,纠正我)。如何添加一个简单的管理页面,只创建一个用户而不设置密码或其他任何东西?

我了解基本机制基本上涉及执行以下操作:

但是我在制作模板和处理逻辑方面仍然很模糊,这样我最终不会得到一堆用户帐户,这些用户帐户将成功地django.contrib.auth.backends.ModelBackend使用空密码进行身份验证。(显然,我可以django.contrib.auth.backends.ModelBackend从insettings.py 中删除AUTHENTICATION_BACKENDS,但这也使我无法将本地管理员帐户与 LDAP 分开。)

0 投票
0 回答
817 浏览

python - 使用 WSGI 和 django-auth-ldap 验证静态资源时出错

我正在使用django-auth-ldap (v1.1.4) 来允许 LDAP 目录中的用户登录到我的 Django Web 应用程序。这很好用,但是,我也希望我的用户能够通过他们的 Django 凭据访问一些静态资源,包括 LDAP 登录。

我正在遵循Django 文档的这个页面中记录的模式,使用 WSGI 身份验证脚本来允许用户进入。

我遇到的问题是我的 WSGI 脚本似乎调用了所选身份验证提供程序的 check_password 方法。这对于纯 Django 用户来说很好用,但 LDAP 用户不走运,因为他们的密码在 Django 数据库中是空白的。

这会导致静态资源出现 401 Unauthorized 错误,即使使用有效的 LDAP 凭据也是如此。在日志中,Apache 报告密码不匹配,因为(有效)输入的密码与空字符串不匹配。

同时,在 Django 的主要身份验证数据库中的用户可以毫无问题地访问资源。

这是我针对静态资源的 Apache 指令的净化版本:

这是“/path/myapp/wsgi.py”中的内容:

我意识到一个可能的解决方法是让 Apache 直接绑定到 LDAP,但这会阻止我的非 LDAP Django 用户访问静态资源。

我正在使用 Django 1.5.1 和 Apache 2(点东西)。

提前感谢您的任何帮助。

0 投票
2 回答
40161 浏览

python - 了解 Django-LDAP 身份验证

我是 Django 的新手,并被分配了以 LDAP 作为后端实现用户身份验证系统的任务。我猜文档假设最终开发人员在 Django 方面有足够的经验,能够理解和实现这样的系统。这是我无法理解如何使用基于 LDAP 的身份验证实现简单 django 应用程序的地方。这是我到目前为止所理解的:

仅将更改发布到文件:

auth.html

模型.py:

视图.py:

我无法理解什么?

1> 我很确定我必须实现一个函数views.py来获取并验证它的值,POST例如: [SO]。该文档指定实现搜索/绑定或直接绑定。为什么?如果将包含实际的身份验证代码,那么文档中指定的代码是做什么的? emailpasswordviews.py

2> 如果views.py会执行实际的身份验证,那么为什么我们需要文档中指定的变量?

3> 作者在库方面做得很好,但文档没有提供一个简单的准系统示例来说明如何使用 LDAP 实现整个身份验证系统。如果存在,任何人都可以指出这样的资源吗?要理解实现这样一个系统需要添加/修改的文件并不容易。