Аутентификация Google Airflow не работает должным образом - PullRequest
2 голосов
/ 11 марта 2019

Я выполнил шаг, указанный в документе: https://airflow.apache.org/security.html#google-authentication

После выполнения всех шагов и перезапуска веб-сервера. Я не вижу никакой разницы со страницей входа в систему, и она по-прежнему запрашивает у меня пароль аутентификации. Я не уверен, как получить опцию входа в 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 голосов
/ 11 июля 2019

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

0 голосов
/ 13 марта 2019

Поскольку я включил RBAC, мне пришлось изменить файл webserver_config.py, чтобы oauth работал с RBAC. Файл webserver_config.py создается после того, как мы включили RBAC для истины и перезапускаем веб-сервер.

  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 = "Уже определенные роли / Администратор / Общедоступные"

Как только мы настроим его и перезапустим веб-сервер, на странице входа появится опция входа в Google. Для справки: https://flask -appbuilder.readthedocs.io / en / latest / security.html? Highlight = google # authentication-oauth

...