【问题标题】:Can't use local user with LDAP无法将本地用户与 LDAP 一起使用
【发布时间】:2021-04-29 18:56:47
【问题描述】:

我正在尝试将 apache 超集与 LDAP 集成。使用我将在下面提供的配置,我可以使用 LDAP 用户登录超集 Web,但同时我无法使用安装期间创建的本地用户(例如 admin)登录。有什么问题?

另外,我正在尝试使用“AUTH_ROLES_MAPPING”拆分权限角色,但还没有运气。我该怎么做?

from flask_appbuilder.security.manager import AUTH_OID
from flask_appbuilder.security.manager import AUTH_REMOTE_USER
from flask_appbuilder.security.manager import AUTH_DB
from flask_appbuilder.security.manager import AUTH_LDAP
#AUTH_TYPE = AUTH_LDAP
#AUTH_USER_REGISTRATION = True
#AUTH_USER_REGISTRATION_ROLE = "Public"

#AUTH_LDAP_SERVER = "ldap://10.10.0.50"
#AUTH_LDAP_USE_TLS = False
#AUTH_LDAP_BIND_USER = "CN=Administrator,CN=Users,DC=gru,DC=lab"
#AUTH_LDAP_BIND_PASSWORD = "password"
#AUTH_LDAP_SEARCH = "DC=gru,DC=lab"
#AUTH_LDAP_GROUP_FIELS="CN=linuxadmins,DC=gru,DC=lab"
#AUTH_LDAP_SEARCH = "DC=gru,DC=lab"
#AUTH_LDAP_UID_FIELD = "sAMAccountName"
#AUTH_LDAP_FIRSTNAME_FIELD = "givenName"
#AUTH_LDAP_LASTNAME_FIELD = "sn"

更新——我试过 "AUTH_TYPE = 1|2",也试过 "AUTH_TYPE = AUTH_DB, AUTH_LDAP" 。可惜没有结果。

【问题讨论】:

    标签: authentication ldap flask-login apache-superset superset


    【解决方案1】:

    要同时使用 LDAP 和 DB 用户,您应该实现自定义 Superset 安全管理器,这将解决问题。

    首先,您应该创建新文件,例如my_security_manager.py。将这些行放入其中:

    from superset.security import SupersetSecurityManager
    
    
    class MySecurityManager(SupersetSecurityManager):
        
        def __init__(self, appbuilder):
            super(MySecurityManager, self).__init__(appbuilder)
    

    其次,您应该让 Superset 知道您想使用全新的安全管理器。为此,请将这些行添加到您的 Superset 配置文件 (superset_config.py):

    from my_security_manager import MySecurityManager
    CUSTOM_SECURITY_MANAGER = MySecurityManager
    

    然后您可以使用自定义身份验证逻辑覆盖您的类的 auth_user_db(username, password) 方法。

    这是额外的information on the topic

    【讨论】:

      猜你喜欢
      • 2011-01-23
      • 1970-01-01
      • 2016-12-24
      • 2018-09-21
      • 1970-01-01
      • 1970-01-01
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多