试图通过ldap对Flask应用进行身份验证,但到目前为止未成功。
它给出的错误是: 警告:绑定错误:自动绑定不成功-invalidCredentials
我在日志中注意到:
调试:('binddn:','AD \\ username','bind_pw:','password')
它将在binddn中添加另一个'\'!
我不确定原因或方式。
我尝试编辑default.py,在其中它将获取LDAP详细信息,并转义字符“ \”。 还尝试了“用户名” 还尝试了“ AD”,“用户名”
来自:
default.py
LDAP_AUTH_SERVER_URI = 'ldap://DC-someplace.com:3268'
LDAP_AUTH_BIND_DN = 'AD\username'
LDAP_AUTH_BIND_PW = 'password'
LDAP_AUTH_SEARCH_BASE = 'DC=ad,DC=someplace,DC=com'
LDAP_AUTH_SEARCH_FILTER = "(&(&(sAMAccountName=%s)(objectClass=person))(CN=AAG_WEBAPP_RO,OU=WEBAPP,OU=Application,OU=Security Groups,OU=Groups and Distribution Lists,OU=WEBAPPL,DC=ad,DC=someplace,DC=com))"
来自:
ldap.py
def auth_handler(username, password):
app = current_app
logger.debug("authenticating user: %s" % username)
if username and password:
try:
ldap_auth_server_uri = app.config["LDAP_AUTH_SERVER_URI"]
server = Server(ldap_auth_server_uri)
bind_dn = app.config["LDAP_AUTH_BIND_DN"]
bind_pw = app.config["LDAP_AUTH_BIND_PW"]
user_dn = "%s@dn.someplace.com" % username
errstr = "binddn: ", bind_dn, " bind_pw: ", bind_pw
logger.debug(errstr)
#user_conn = Connection(server=server, user=user_dn, password=password, auto_bind=True)
user_conn = Connection(server=server, user=bind_dn, password=bind_pw, auto_bind=AUTO_BIND_NO_TLS, authentication=NTLM)
if user_conn and user_conn.result['result'] == 0:
我希望登录成功。这没有发生。