我尝试通过Oauth2在Apache SuperSet中启用身份验证。
它应该是直截了当的,因为它建立在支持OAuth的Flask AppBuilder之上,并且非常容易设置和使用。
我设法使以下两个示例与Twitter Oauth配置无缝协作:
现在我尝试将相同的配置应用于SuperSet。
泊坞
由于我无法手动为多个神秘的python错误构建项目(在Windows 7 / Ubuntu Linux和Python版本2.7和3.6上尝试过),我决定使用this Superset docker image(安装和工作罚款)并按照docs的建议注入我的配置:
按照Apache Superset提供的说明编写自己的superset_config.py。将此文件放在本地目录中,并将此目录安装到容器内的/home/superset/.superset。
我添加了superset_config.py
(在一个文件夹中,并且单独添加)并通过添加到Dockerfile
以下内容来安装它:
ADD config .superset/config
(config
是文件夹的名称)或(对于单个文件):
COPY superset_config.py .superset
在这两种情况下,文件最终都在容器中的正确位置(我使用docker exec /bin/bash
检查),但Web应用程序没有显示出任何差异:没有Twitter身份验证的痕迹。
有人能弄明白我做错了吗?
答案 0 :(得分:5)
您必须更改superset_config.py。看看这个示例配置,它适用于我。
11313
答案 1 :(得分:0)
2021 年更新:FAB OAuth 提供程序架构似乎自此答案以来发生了一些变化。如果您尝试使用 Superset >= 1.1.0 执行此操作,请尝试以下操作:
OAUTH_PROVIDERS = [
{
'name': 'google',
'icon': 'fa-google',
'token_key': 'access_token',
'remote_app': {
'client_id': 'GOOGLE_KEY',
'client_secret': 'GOOGLE_SECRET',
'api_base_url': 'https://www.googleapis.com/oauth2/v2/',
'client_kwargs':{
'scope': 'email profile'
},
'request_token_url': None,
'access_token_url': 'https://accounts.google.com/o/oauth2/token',
'authorize_url': 'https://accounts.google.com/o/oauth2/auth'
}
}
]
当然,分出 GOOGLE_KEY 和 GOOGLE_SECRET。其余的应该没问题。这是从 FAB security docs 抄来的,以便下次有漂移时。