2016-12-23 8 views
1

Я использую flask_simpleldap, и я изо всех сил пытаюсь получить связующее соединение, чтобы сделать что-нибудь полезное.python - flask_simpleldap не будет связывать

Мой LDAP-сервер является активным каталогом.

Обваленная вниз код выглядит следующим образом, и выглядит почти идентично the example:

from flask import Flask 
from flask_simpleldap import LDAP 

app = Flask(__name__) 
app.secret_key = 'super secret key' 
app.debug = True 

app.config['LDAP_HOST'] = 'my-ldap-host.example.com' 
app.config['LDAP_REALM_NAME'] = 'LDAP Authentication' 
app.config['LDAP_SCHEMA'] = 'ldaps' 
app.config['LDAP_PORT'] = 636 
app.config['LDAP_BASE_DN'] = 'dc=example,dc=com' 
app.config['LDAP_USERNAME'] = '[email protected]' 
app.config['LDAP_PASSWORD'] = 'binduser_pw' 

app.config['LDAP_OBJECTS_DN'] = 'distinguishedName' 
app.config['LDAP_OPENLDAP'] = False 

ldap = LDAP(app) 


@app.route('/ldap') 
@ldap.basic_auth_required 
def ldap_protected(): 
    return 'Welcome, {0}!'.format(g.ldap_username) 

if __name__ == '__main__': 
    app.run(host='0.0.0.0', port=8080, debug=True) 

При запуске приложения склянки, я буду получать сообщение об ошибке, например, как это:

LDAPException: Operations error 

В то время как пытаясь устранить неполадки, я изменил файл flask_simpleldap__init__.py, чтобы показать info, а также desc ошибки, на line 274; Теперь я получаю немного больше информации об ошибке:

LDAPException: 000004DC: LdapErr: DSID-0C090752, 
comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v2580 

Итак, я думаю, что мне нужно, чтобы понять, почему моя первоначальная привязка не будет работать ... Должен ли я что-то неправильно в моем app.config?

Не уверен, что эта проблема может быть ... ldapsearch, кажется, работает из командной строки, как например:

ldapsearch -x -LLL -E pr=200/noprompt -h my-ldap-host.example.com -D "[email protected]" -w 'binduser_pw' -b "dc=example, dc=com" -s sub "(sAMAccountName=binduser)" | grep distinguishedName 


distinguishedName: CN=Bind User,OU=Some_OU,DC=example,DC=com 

Другие детали:

  • Я пытался на python2.7 и 3.5, те же вопросы
  • Centos 7.2
  • Active Directory - это мой LDAP-сервер

Любая помощь приветствуется, спасибо.

ответ

1

Не уверен, что это будет полезно, но я только что установил flask_simpleldap для работы с нашим тестовым экземпляром Active Directory. Релевантна только разница в том, что я должен был использовать:

app.config['LDAP_USE_SSL'] = True 

Я думаю, что я также видел «Операция Error», когда я был недействительный DN или имя пользователя формат.

+0

Хорошо, это меня привязало и пропустило мою первую ошибку. Спасибо за ваше время. – joefromct

1

Ваше имя пользователя должно быть полностью квалифицированным.

app.config['LDAP_USERNAME'] = 'uid=binduser,dc=example,dc=com'