使用LDAP在Flask中获取登录用户信息



我正试图找到一种方法来检索信息,如'mail', 'displayName', 'telephoneNumber'从LDAP认证/登录用户在Flask。

我的用户可以通过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

我需要使用ldap.filter。Filter_format用于字符转义。

import ldap.filter
criteria= ldap.filter.filter_format('(&(objectClass=user)(sAMAccountName=%s))', [username])

相关内容

  • 没有找到相关文章

最新更新