无法使用Apache-Superset应用程序一次连接两个LDAP服务器

问题描述

我正在尝试为超级集配置多个ldap服务器,但是目前,我只能为一台服务器设置。

任何解决方法都可以在“ Config.py”中完成,以同时配置多台服务器?

我在“ config.py”文件中进行了以下配置。

config.py-LDAP配置

AUTH_TYPE = AUTH_LDAP    
AUTH_USER_REGISTRATION = True
AUTH_USER_REGISTRATION_ROLE = "Alpha"

AUTH_LDAP_SERVER = "ldap://ldap_example_server_one:389"
AUTH_LDAP_USE_TLS = False
AUTH_LDAP_BIND_USER = "CN=my_user,OU=my_users,DC=my,DC=domain"
AUTH_LDAP_BIND_PASSWORD = "mypassword"
AUTH_LDAP_SEARCH = "DC=my,DC=domain"
AUTH_LDAP_UID_FIELD = "sAMAccountName"

注意–它适用于“ ldap_example_server_one:389”服务器,但是当尝试添加其他服务器时,抛出配置失败错误

解决方法

您不能将多个 LDAP 服务器与 Flask Appbuilder 的默认 LDAP 身份验证器一起使用。您必须实现您自己的自定义安全管理器,以便您可以根据需要操作任意数量的 LDAP 服务器。

首先,您应该创建新文件,例如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

这是额外的 information on the topic