簡體   English   中英

產品環境中的django + ldap3錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM