Airflow Google身份验证未按预期工作
我遵循了文件中提供的步骤: 完成所有步骤并重新启动Web服务器后。我看不出登录页面有什么不同,它仍然要求我进行密码验证。我不知道如何在网页上获得谷歌登录选项。我没有在Web服务器日志上得到任何错误Airflow Google身份验证未按预期工作,airflow,google-authentication,Airflow,Google Authentication,我遵循了文件中提供的步骤: 完成所有步骤并重新启动Web服务器后。我看不出登录页面有什么不同,它仍然要求我进行密码验证。我不知道如何在网页上获得谷歌登录选项。我没有在Web服务器日志上得到任何错误 Configuration=> airflow.cfg: authenticate = True #auth_backend = airflow.contrib.auth.backends.password_auth auth_backend = airflow.contrib.auth.bac
Configuration=> airflow.cfg:
authenticate = True
#auth_backend = airflow.contrib.auth.backends.password_auth
auth_backend = airflow.contrib.auth.backends.google_auth
[google]
client_id = <client id>
client_secret = <secret key>
oauth_callback_route = /oauth2callback
domain = <domain_name>.com
Configuration=>afflow.cfg:
验证=真
#auth\u backend=afflow.contrib.auth.backends.password\u auth
auth_backend=afflow.contrib.auth.backends.google_auth
[谷歌]
客户端id=
客户端密码=
oauth_callback_route=/oauth2callback
域=.com
因为我启用了RBAC,所以我必须更改webserver_config.py文件,以便oauth使用RBAC。一旦启用RBAC并重新启动web服务器,就会创建webserver_config.py文件
作为参考:所以我发现,如果我们像上面描述的那样使用
webserver\u config.py
,就不需要再在aiffort.cfg
中添加[google]
部分了。这只是多余的。总而言之,我的设置是:
airflow.cfg:
authenticate = True
auth_backend = airflow.contrib.auth.backends.google_auth
rbac = True
webserver_config.py:
from flask_appbuilder.security.manager import AUTH_OAUTH
AUTH_TYPE = AUTH_OAUTH
AUTH_USER_REGISTRATION = True
AUTH_USER_REGISTRATION_ROLE = "Admin"
OAUTH_PROVIDERS = [{
'name':'google',
'whitelist': ['@yourdomain.com'], # optional
'token_key':'access_token',
'icon':'fa-google',
'remote_app': {
'base_url':'https://www.googleapis.com/oauth2/v2/',
'request_token_params':{
'scope': 'email profile'
},
'access_token_url':'https://oauth2.googleapis.com/token',
'authorize_url':'https://accounts.google.com/o/oauth2/auth',
'request_token_url': None,
'consumer_key': '<your_client_id>',
'consumer_secret': '<your_client_secret>',
}
}]
来自flask\u appbuilder.security.manager导入验证\u OAUTH
AUTH_TYPE=AUTH_OAUTH
验证用户注册=真
验证用户注册角色=“管理员”
OAUTH_提供程序=[{
'name':'google',
“白名单”:['@yourdomain.com'],#可选
“令牌密钥”:“访问令牌”,
'图标':'fa-google',
“远程应用程序”:{
'基本url':'https://www.googleapis.com/oauth2/v2/',
“请求令牌参数”:{
“范围”:“电子邮件配置文件”
},
“访问令牌url”:https://oauth2.googleapis.com/token',
'授权url':'https://accounts.google.com/o/oauth2/auth',
“请求\u令牌\u url”:无,
“消费者密钥”:“,
“消费者的秘密”:“,
}
}]
我必须对第一个用户使用
AUTH\u USER\u REGISTRATION\u ROLE=“Admin”
,否则该用户甚至无法登录,并在错误页面中显示“重定向过多”。您可能已经这样做了,但您需要确保使用的是基于FAB的前端(1.10.0中新增,1.10.3中默认)。我发现update.md在寻找新功能时非常有用:谢谢@7yl4r。这是否意味着RBAC设置为true时,我们无法启用google身份验证?相反;要使用此身份验证方法,您必须在aiffair.cfg
中具有rbac=True
,并且必须使用aiffair1.10+
。考虑一下这个气流。CFG细节和你的气流版本。我发现在1.10-4我仍然需要<代码> [谷歌]。auth_callback_route=/oauth2callback-如果不进行此登录,则会首先将我带到一个崩溃页面,要求我编辑URL以继续。我唯一的猜测是您没有在Google developer控制台中设置回调。当默认角色仅为用户提供Public
权限后,似乎会发生太多重定向搜索了一整天,这终于是我一直在寻找的设置配置。文件中没有提到需要创建/更新webserver_config.py,这真是令人讨厌。