[英]Can't use local user with LDAP
我正在尝试将 apache 超集与 LDAP 集成。 使用我将在下面提供的配置,我可以使用 LDAP 用户登录超集 web,但同时我无法使用安装期间创建的本地用户(例如管理员)登录。 问题是什么?
另外,我正在尝试使用“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”。 不幸的是没有结果。
要同时使用 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
然后,您可以使用自定义身份验证逻辑覆盖class 的 auth_user_db(username, password)方法。
这是有关该主题的其他信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.