Итак, я обнаружил, что если мы использовали 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"
для самого первого пользователя, в противном случае этот пользователь даже не сможет войти в систему и оказаться на странице с сообщением об ошибке «слишком много перенаправлений».