相关疑难解决方法(0)

用于 superest 的 Flask appbuilder 中的 SecurityManager 装饰器

我正在尝试在超集中添加来自 OAuth 的自定义用户信息检索,该超集中构建在 Flask-appbuilder 之上。

官方文档提供以下信息:

使用 SecurityManager oauth_user_info_getter 装饰器装饰您的方法。让您的方法接受本示例中的确切参数,然后返回包含检索到的用户信息的字典。

http://flask-appbuilder.readthedocs.io/en/latest/security.html#authentication-oauth

文档中的示例也没有多大帮助,因为装饰器被放在注释中。

我在 Superset 中将自定义装饰器放在哪里?我已将自定义装饰器放在 superset_config.py 中,但我没有为我工作。

python flask flask-appbuilder apache-superset

3
推荐指数
1
解决办法
2080
查看次数

在Superset中使用OpenID/Keycloak

我想在Superset环境中使用keycloak对我的用户进行身份验证.

Superset使用flask-openid,如在flask-security中实现的:

要启用与常规用户身份验证(数据库)不同的用户身份验证,您需要覆盖superset_config.py文件中的AUTH_TYPE参数.您还需要提供对openid-connect领域的引用并启用用户注册.据我了解,它应该看起来像这样:

from flask_appbuilder.security.manager import AUTH_OID
AUTH_TYPE = AUTH_OID
OPENID_PROVIDERS = [
    { 'name':'keycloak', 'url':'http://localhost:8080/auth/realms/superset' }
]
AUTH_USER_REGISTRATION = True
AUTH_USER_REGISTRATION_ROLE = 'Gamma'
Run Code Online (Sandbox Code Playgroud)

使用此配置,登录页面将更改为用户可以选择所需OpenID提供程序的提示(在我们的示例中为keycloak).我们还有两个按钮,一个用于登录(对于现有用户),另一个用于注册为新用户.

我希望这些按钮中的任何一个都能带我到我的keycloak登录页面.但是,这不会发生.相反,我被重定向回到登录页面.

在我按下注册按钮的情况下,我收到一条消息"此刻无法注册您,请稍后再试".当我按下登录按钮时,不会显示任何消息.Superset日志显示加载登录页面的请求,但没有对keycloak的请求.我使用Google OpenID提供程序尝试了相同的操作,该工作正常.

由于我没有看到对keycloak的请求,这让我觉得我要么在某处丢失配置设置,要么我使用了错误的设置.你能帮我弄清楚我应该使用哪些设置吗?

python flask-security openid-connect keycloak apache-superset

2
推荐指数
1
解决办法
3189
查看次数