问题标签 [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 回答
1599 浏览

python - 具有多个数据库和应用特定路由器的 Django,无法在 MSSQL 中添加用户

我们有一个连接到多个 MS SQL 数据库实例的 Django 应用程序。每个应用程序都有一个 router.py,用于处理将进程路由到每个数据库。

这是我第一次设置多个数据库访问。

Django 内置应用程序通过这个 router.py 路由到默认数据库:

我们正在使用 LDAP 身份验证和 Django 的内置身份验证。这个想法是 Intranet 用户可以针对我们的 AD 服务器进行身份验证。外部用户可以注册,并将通过 Django 的身份验证进行身份验证。

当我将默认数据库设置为:

LDAP 有效,但我无法将用户添加到 Django 的身份验证中。管理员显示“成功”消息,但未将用户添加到数据库中。

如果我将默认数据库切换回 SQLLite,我就可以针对 AD 进行身份验证并添加 Django 用户。

所以,我认为这不是 routers.py 文件的问题。我担心这可能是“sql_server.pyodbc”引擎的问题。

编辑:根据请求,这里是数据库设置:

注意:我认为这可能与 Django 保存新用户的方式有关。要去那里看看。当两个身份验证后端都到位时,我可以使用 createsuperuser 命令添加更多超级用户。确认,我可以通过外壳创建普通用户,但不能通过管理员。

跟进说明:仍然没有找到管理员的问题,但我发现我可以通过表单添加用户。我认为问题一定是管理员中的错误。

编辑:

根据@AndrewSmiley 的要求:

Django 管理员添加用户视图

更新:

根据@user1797792 的建议,我创建了一个自定义 UserCreationForm 来设置date_joined值,但我们仍然无法通过 Django Admin 添加用户。

相关 forms.py & admin.py 条目如下:

0 投票
1 回答
167 浏览

python - 如何在 Heroku 服务器中安装 django-auth-ldap==1.2.7?

我正在尝试django-auth-ldap==1.2.7使用pip installin requirements.txt安装这个库。

我正在使用Heroku服务进行部署。

但是,每次我尝试推送/部署代码时,我都无法完成依赖项检查/安装,因为会弹出此错误

我放弃了这个问题和答案:python-ldap failed to install in Heroku

没有运气

基本上,我尝试使用第三方BUILDPACK

但仍然无法正常工作。

有人可以请,

  1. 帮助我向我展示一种构建自己的BUILDPACK的方法或
  2. 指点我一个替代解决方案?

谢谢!

- -编辑 - -

刚刚发现有几个好人正在努力让它发挥作用。

有一个拉取请求试图直接在 heroku default buildpack中解决我的这个问题。

https://github.com/heroku/heroku-buildpack-python/pull/271

如果有人想知道同样的问题,我将保持这个问题的开放和更新。

谢谢!

0 投票
1 回答
2626 浏览

python - django-auth-ldap - 查找用户是否属于 ldap 组

我正在尝试为 django 项目配置 ldap 身份验证。所有用户都应该能够访问 Web 服务的地方(我实现了这一点)。我想让几个人(ldap 组的一部分)成为管理员。我需要验证登录用户是否属于 ldap 组。

我没有使用 Django 默认身份验证后端,也不打算使用。

是否有任何简单的方法来查找用户是否属于特定的 ldap 组?

我试图阅读和理解“ https://pythonhosted.org/django-auth-ldap/index.html ”,但它处于非常高的水平并且没有示例。

0 投票
1 回答
890 浏览

python - django-auth-ldap 与 Active Directory 不拉“域用户”组

我的以下settings.py内容工作正常并针对 Active Directory 进行身份验证。除了我需要在当前项目中使用的“域用户”组之外,此配置将所有组都拉入 Django Admin 应用程序。有谁知道为什么这是唯一没有出现在管理应用程序中的组?

settings.py

0 投票
1 回答
257 浏览

python - Django 可以将多个 LDAP 身份验证映射到单个用户对象吗?

我正在使用django-auth-ldap针对 Active Directory (LDAP) 数据库对 Django 用户进行身份验证。

我们的约定sAMAccountName(通常是 AD 帐户的唯一标识符)是firstname.surname. 对于逻辑用户,此值可能会更改。例如,他们的姓氏可能会在结婚或离婚时改变。

sAMAccountName为了便于使用,我们还要求用户使用他们的电子邮件前缀而不是他们的, 登录。在大多数情况下,此值与 相同sAMAccountName。但是,在某些情况下,用户有两个电子邮件地址(1. 法定名称,2. 英文/西方友好名称)。在其他情况下,电子邮件和sAMAccountName因历史原因而有所不同。

在所有情况下(AD 标识符更改,一个用户的两个电子邮件标识符,电子邮件标识符 != sAMAccountName)多个有效的 LDAP 身份验证应该映射到同一个逻辑 Django 用户——它们不应该触发创建多个独立的用户对象。

我们如何为这种场景配置身份验证?

  • 别名。如果可以将 Django 用户映射到“主要”用户,而不是对同一用户进行多个身份验证,那将是一个可接受的解决方案。
  • 备用库。如果另一个维护良好的 Django/LDAP 身份验证库可以完成这项工作(例如django-auth-ldap-ng
0 投票
1 回答
1715 浏览

python - django-auth-ldap 找不到组

我正在使用带有 pyldap==2.4.25.1 的 django-auth-ldap (django-auth-ldap-ng==1.7.6) 的分支连接到 ldap。我能够成功登录,但我遇到了错误。即使我仍然能够使用 ldap 凭据和映射属性登录,我也会收到 DN_SYNTAX 错误。这是主要的错误代码:

这是我的 settings.py 设置:

我曾尝试使用“ActiveDirectoryGroupType”,但这似乎没有什么不同。有什么建议么?

0 投票
2 回答
9099 浏览

django - django-auth-ldap 身份验证失败

我正在尝试在我的项目(Django 1.6、Python 2.7)中使用Django-Auth-Ldap,但它不起作用。

我的活动目录 shema 是:

在此处输入图像描述

  1. 我已经通过安装 ldap-utils 包测试了 cmd 行上的连接

    /li>

连接测试工作正常。

  1. 我正在使用以下代码从 shell 测试 python-ldap 连接:

    /li>

python-ldap 连接工作正常。

  1. 我的问题是如何从我的 django 登录界面对 AD 用户进行身份验证?

设置.py:

视图.py:

在文件 django-ldap-debug.log 我有这个错误:

0 投票
1 回答
1074 浏览

python - django > 1.7 中的 django-ldap-auth 用户配置文件

我正在尝试在我的项目中实现django-ldap-auth,一切似乎都运行良好。问题是,该软件包不支持user profile1.7 之后的 Django 版本的字段填充。

来自文档:

注意 Django 1.7 及更高版本不直接支持用户配置文件。在这些版本中,LDAPBackend 将忽略与配置文件相关的设置。

我已将此添加到我的settings.py但没有任何反应(如预期的那样):
AUTH_LDAP_PROFILE_ATTR_MAP = {"description": "description"}

我的问题是:如何AUTH_LDAP_PROFILE_ATTR_MAP在较新的 django 版本中启用?

编辑:我正在考虑使用自定义用户模型,但我不确定这是否是最好的方法..

0 投票
1 回答
1160 浏览

python - LDAP:“填充 Django 用户”导致错误“INSUFFICIENT_ACCESS”

我正在尝试针对 LDAP 服务器对 Django 应用程序进行身份验证,并且收到一些奇怪的行为。请记住,我对 LDAP 了解不多,所以如果我误用了一些 LDAP 术语,请见谅。另请注意,在整个问题中,my_domain 是我公司的域名,user_id 是身份验证用户的 uid。

这是我的 settings.py 配置文件的相关部分:

当我尝试登录我的应用程序时,我收到此错误:

填充 Django 用户 user_id search_s('uid=user_id,cn=users,cn=accounts,dc=my_domain,dc=com', 0, '(objectClass=*)') 返回 1 个对象:uid=user_id,cn=users, cn=accounts,dc=my_domain,dc=com 在验证 user_id 时捕获 LDAPError: INSUFFICIENT_ACCESS({'desc': 'Insufficient access'},)

但是,当我将此标志从 True 翻转为 false 时:

认证成功。现在这是奇怪的部分:即使身份验证成功,我的属性也没有映射到我的 Django User 对象(在 中指定的那些AUTH_LDAP_USER_ATTR_MAP = {"first_name": "givenName", "last_name": "sn"})。当我手动检查request.user.ldap_user.attrs所有属性时。

现在问题来了,“填充 Django 用户”到底是什么意思?是什么导致了“INSUFFICIENT_ACCESS”错误,为什么翻转那个标志会修复(隐藏?)问题?

谢谢。

0 投票
0 回答
481 浏览

python - django-auth-ldap 查询。无法将 LDAP 用户添加到活动、员工、超级用户角色

寻找 django-auth-ldap 包的帮助。

背景 - 我正在尝试将 LDAP 用户添加到默认用户角色 STAFF、ACTIVE 和 SUPERUSER。毫无疑问,您可以从 debug.log 中看到 django-auth-ldap 成功找到 LDAP 用户名并相应地填充 DJANGO。

但是,它不会将 LDAP 用户添加到相关角色 ieactive、staff、superuser,因为它声明它不属于相关组,尽管对用户名和组执行 LDAP 搜索另有说明。

任何帮助/建议将不胜感激。

谢谢

调试日志

设置.py

来自 LDAP 组搜索的输出###(省略了一些行)

LDAP 用户名搜索的输出###(省略了一些行)