我们的团队已经实现Apache Superset一段时间了。现在,我们想在这个平台上使用谷歌登录。然而,经过深思熟虑,我们仍然无法完成这项任务。
-
我们在超集文件夹中复制config.py,并将其命名为superset_config.py。superset_connfig.py的位置在超集文件夹中。
$ cp config.py superset_config.py
-
在superset_config.py中,我们修改了
-
我们额外进口了AUTH_OAUTH
-
我们将AUTH_TYPE=AUTH_DB修改为AUTH_TYPE=AUTH_OAUTH
-
我们取消了对AUTH_USER_REGISTRATION=True和AUTH_USER_REGISTRATION_ROLE=";公开的";以便使它们都变为活动的。
-
我们添加了名为OAUTH_PROVIDERS的列表。
OAUTH_PROVIDERS = [ { ‘name’: ‘google’, ‘whitelist’: [‘@company.com’], ‘icon’: ‘fa-google’, ’token_key’: ‘access_token’, ‘remote_app’: { ‘base_url’: ‘https://www.googleapis.com/oauth2/v2/', ‘request_token_params’: { ‘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', ‘consumer_key’: ‘GOOGLE_OAUTH_KEY’, ‘consumer_secret’: ‘GOOGLE_OAUTH_SECRET’ } } ]
-
在这段代码中,我们从谷歌云平台(OAUTH 2.0凭据API和服务的客户端id(下载的json文件中将GOOGLE_OAUTH_KEY和GOOGLE.OAUTH_SSECRET的最后两行修改为我们的client_id和client_SECRET
请描述一下我们出了什么问题,并给我们建议。由于我们是Apache Superset的新手,如果您能为我们提供如何使Apache Superset登录页面成为谷歌登录页面的分步方法,我们将不胜感激。
PS。由于一些技术问题,我们更喜欢非docker解决方案,我们的Apache Superset正在Ubuntu EC2 上运行
您当前的配置似乎不错。如果您在尝试登录时出现以下错误
Authorization Error
Error 400: redirect uri mismatch
原因:重定向uri必须转到http而不是https。在superset_config.py 中也设置以下内容
ENABLE_PROXY_FIX = True
我认为您的OAUTH_PROVIDERS部分配置错误。以下是在最新的Superset 1.0.1:上为我们工作的配置
OAUTH_PROVIDERS = [
{
'name': 'google',
'whitelist': ['@company.com'],
'icon': 'fa-google',
'token_key': 'access_token',
'remote_app': {
'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',
'client_id': 'GOOGLE_OAUTH_KEY',
'client_secret': 'GOOGLE_OAUTH_SECRETT'
}
}]