[英]django + ldap3 error on prod envirounment
請幫助,我有下一個問題。 我有通過外部MS AD服務器進行ldap身份驗證的django 1.8(python 3.3.5,centos 7)應用程序。 在我的本地開發人員環境中,一切正常,可以在應用程序中進行授權,但是在使用Apache服務器遷移到產品后,它會失敗,並且錯誤權限被拒絕。 我正在將ldap3與django-python3-ldap https://github.com/etianen/django-python3-ldap一起使用
錯誤:
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
連接線例外:
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)
當我在django服務器上啟動該應用程序時-它工作正常,但是當我通過apache運行它時失敗了。 如果有需要,我可以分享任何細節。 謝謝。
這可能是由於SELinux權限。 httpd無法創建套接字以連接到LDAP。 無需完全禁用SELinux。
首先做一個檢查
getsebool -a | grep ldap # check SE booleans
你應該看到
authlogin_nsswitch_use_ldap --> off
dhcpd_use_ldap --> off
httpd_can_connect_ldap --> off
使用以下命令設置布爾值
setsebool -P httpd_can_connect_ldap 1 #-P turns sets the boolean permanently (persist across reboots)
最終結果
authlogin_nsswitch_use_ldap --> off
dhcpd_use_ldap --> off
httpd_can_connect_ldap --> on
您與哪個用戶一起運行Apache? 可能無法打開套接字。 另外,如果您使用的是wsgi,請檢查運行python解釋器的用戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.