簡體   English   中英

不能使用 LDAP 的本地用戶

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM