pythonoauthairflowauthlib

Airflow 2.2.5 Authlib 1.0.0 Google Login


I'm experiencing problems with Google OAUTH login after updating Airflow to version 2.2.5 and Authlib required as constraint to be at version 1.0.0.

Here my previous webserver_config.py

import os
from airflow.www.fab_security.manager import AUTH_OAUTH
# from flask_appbuilder.security.manager import AUTH_OAUTH
from airflow.configuration import conf

basedir = os.path.abspath(os.path.dirname(__file__))

# The SQLAlchemy connection string.
AUTH_TYPE = AUTH_OAUTH

AUTH_USER_REGISTRATION = True

AUTH_USER_REGISTRATION_ROLE = "Viewer"
AUTH_USER_REGISTRATION_ROLE_JMESPATH = "contains(['$$CUSTOM_ADMIN_EMAIL$$'], email) && 'Admin' || contains(['$$CUSTOM_USER_EMAIL$$'], email) && 'User' || 'Viewer'"

CSRF_ENABLED = True

# The SQLAlchemy connection string.
SQLALCHEMY_DATABASE_URI = conf.get('core', 'SQL_ALCHEMY_CONN')

OAUTH_PROVIDERS = [
    {'name': 'google', 'icon': 'fa-google', 'token_key': 'access_token',
     'whitelist': ['@$$CUSTOM_DOMAIN$$'],
     'remote_app': {
         'client_id': '$$CLIENT_ID$$',
         'client_secret': '$$CLIENT_SECRET$$',
         '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'}
     },
]

After trying to login it appears:

enter image description here

With this error log:

[2022-04-06 06:44:39,729] {views.py:671} ERROR - Error returning OAuth user info: missing_token:

Anyone knows if it's a bug or I'm missing updates to be done in the code after the update?


Solution

  • Thanks @lepture. We updated cosntraints for Airflow 2.2.5 and refreshed the images with Authlib=1.0.1 now !