Airflow Google身份验证无法正常工作

时间:2019-03-11 15:15:56

标签: airflow google-authentication

我遵循了文档中提供的步骤:https://airflow.apache.org/security.html#google-authentication

完成所有步骤并重新启动Web服务器之后。我看不到登录页面有什么不同,它仍然要求我进行密码验证。我不确定如何在网页上获取Google登录选项。我在网络服务器日志上没有任何错误。

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

2 个答案:

答案 0 :(得分:0)

由于我启用了RBAC,因此我不得不更改webserver_config.py文件以使oauth可以与RBAC一起使用。一旦将RBAC启用为true并重新启动Web服务器,就会创建webserver_config.py文件。

  1. AUTH_TYPE = AUTH_OAUTH(以启用Google身份验证/ Github身份验证)
  2. 必须设置OAUTH_PROVIDERS,例如:https://github.com/dpgaspar/Flask-AppBuilder/tree/master/examples/oauth
  3. AUTH_USER_REGISTRATION = True
  4. AUTH_USER_REGISTRATION_ROLE =“已经定义的角色/管理员/公共”

一旦我们对其进行了配置并重新启动了Web服务器,则Google登录选项会出现在登录页面上。 供参考:https://flask-appbuilder.readthedocs.io/en/latest/security.html?highlight=google#authentication-oauth

答案 1 :(得分:0)

因此,我发现,如果我们如上所述使用webserver_config.py,则不再需要在[google]中添加airflow.cfg部分。这只是多余的。总结一下,我的设置是:

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>',
    }
}]

我必须为第一个用户使用AUTH_USER_REGISTRATION_ROLE = "Admin",否则该用户甚至无法登录并进入错误页面,提示“重定向过多”。