我正在尝试找到一种方法来从 Flask 中经过 LDAP 身份验证/登录的用户检索“邮件”、“显示名称”、“电话号码”等信息。
我的用户可以使用 LDAP 成功进行身份验证和登录。但是,我如何能够获得有关用户的其他信息?
我正在使用标准的 python-ldap 和 flask-login 模块,并且正在尝试为这些属性创建一个字符串变量,以便稍后在会话中调用它们。当试图运行我得到的查询时ldap.FILTER_ERROR: {'desc': u'Bad search filter'}。关于如何使它工作的任何想法?
class UserInfo():
def whoami(username, password):
conn = get_ldap_connection()
conn.simple_bind_s(username,password)
basedn = 'OU=...,OU=...,DC=...,DC=...'
userfilter = "(|(SamAccountName=\*" + username + "\*)"
userattribute = ['displayName']
userresults = conn.search_s(basedn,ldap.SCOPE_SUBTREE,userfilter, userattribute)
userinfos = UserInfo()
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(100))
def __init__(self, username, password):
self.username = username
@staticmethod
def try_login(username, password):
conn = get_ldap_connection()
conn.simple_bind_s(domain+username, password)
def is_authenticated(self):
return True
def is_active(self):
return True
def is_anonymous(self):
return False
def get_id(self):
return unicode(self.id)
@login_manager.user_loader
def load_user(id):
return User.query.get(int(id))
@app.before_request
def get_current_user():
g.user = current_user