1

基本上,我想制作一个应用程序(Superset),它被配置为flask-login在没有任何身份验证的情况下用于身份验证工作。匿名用户已经被分配/执行,AnonymousUserMixin但应用程序的某些部分需要用户名和大概的 ID。

我的想法是在数据库中创建一个管理员用户,并以某种方式分配AnonymousUserMixin始终等于该用户。我将如何做到这一点以及我希望在烧瓶登录或超集代码中的哪个位置做到这一点?

注意:进入此应用程序的身份验证已经得到处理,因此安全隐患没有实际意义。

先感谢您!

4

1 回答 1

3

Superset 用作Flask-AppBuilder作为底层 Web 框架。其配置包括:

AUTH_TYPE = 0 | 1 | 2 | 3 | 4 这是认证类型

  • 0 = 打开 ID
  • 1 = 数据库样式(用户/密码)
  • 2 = LDAP,也使用 AUTH_LDAP_SERVER
  • 3 = 使用 web 服务器环境变量 REMOTE_USER
  • 4 = 使用一个或多个 OAUTH 提供者

我们的兴趣是3。因为 Superset支持中间件设置预定义用户就像 (in superset_config.py) 一样简单:

AUTH_TYPE = 3

class PredefinedUserMiddleware:

    def __init__(self, app):
        self.app = app

    def __call__(self, environ, start_response):
        environ['REMOTE_USER'] = 'admin'
        return self.app(environ, start_response)

ADDITIONAL_MIDDLEWARE = [PredefinedUserMiddleware]
于 2018-03-03T22:21:02.980 回答