首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生产环境中的django + ldap3错误

生产环境中的django + ldap3错误
EN

Stack Overflow用户
提问于 2015-12-08 22:56:33
回答 2查看 891关注 0票数 0

请帮帮忙,我有下一期。我有django 1.8 (python 3.3.5,centos 7)应用程序,通过外部MS AD服务器进行ldap身份验证。在我的本地开发环境中,一切正常,可以在应用程序中授权,但在使用Apache服务器迁移到prod后,它会失败,错误权限被拒绝。我正在使用带有django-python3-ldap https://github.com/etianen/django-python3-ldap的ldap3

错误:

代码语言:javascript
复制
DAPSocketOpenError at /login/
('unable to open socket', [(datetime.datetime(2015, 12, 8, 14, 53, 5, 22728), <class 'ldap3.core.exceptions.LDAPSocketOpenError'>, LDAPSocketOpenError('socket connection error: [Errno 13] Permission denied',), ('172.20.48.12', 389)), (datetime.datetime(2015, 12, 8, 14, 53, 5, 23125), <class 'ldap3.core.exceptions.LDAPSocketOpenError'>, LDAPSocketOpenError('socket connection error: [Errno 13] Permission denied',), ('172.20.48.11', 389))])

 Exception Location:    /usr/local/lib/python3.3/site-packages/ldap3/strategy/base.py in open, line 136

来自异常的连接线:

代码语言:javascript
复制
Connection(server=Server(host='ldap.server.corp', port=389, use_ssl=False, get_info='NO_INFO'), user='COMPANY\\user', password=u'value_password', auto_bind='NO_TLS', version=3, authentication='SIMPLE', client_strategy='SYNC', auto_referrals=True, check_names=True, read_only=False, lazy=False, raise_exceptions=False, fast_decoder=True)

当我在dev django服务器上启动应用程序时,它工作得很好,但当我通过apache运行它时,它失败了。如果有这样的需要,我可以分享任何细节。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2018-07-04 18:00:53

这可能是由于SELinux权限造成的。httpd无法创建套接字以连接到LDAP。不需要完全禁用SELinux。

首先检查一下

代码语言:javascript
复制
getsebool -a | grep ldap # check SE booleans

您应该会看到

代码语言:javascript
复制
authlogin_nsswitch_use_ldap --> off
dhcpd_use_ldap --> off
httpd_can_connect_ldap --> off

使用以下命令设置布尔值

代码语言:javascript
复制
setsebool -P httpd_can_connect_ldap 1 #-P turns sets the boolean permanently (persist across reboots)

最终结果

代码语言:javascript
复制
authlogin_nsswitch_use_ldap --> off
dhcpd_use_ldap --> off
httpd_can_connect_ldap --> on
票数 2
EN

Stack Overflow用户

发布于 2015-12-10 15:20:45

您使用哪个用户运行Apache?可能它不能打开套接字。另外,如果您使用的是wsgi,请检查运行python解释器的用户。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34159005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档