kn6405 opened a new issue #17542:
URL: https://github.com/apache/airflow/issues/17542
I pushed out a custom webserver_config.py to enable oauth authentication for
the webserver pod:
Apache Airflow version: 2.1.2
Kubernetes version: v1.18.10
Environment: Azure AKS using the official apache/airflow helm chart (1.1.0)
Running celery executor. With default webserver_config.py everything works
fine. Not really sure what this error means and how to resolve. Or if I'm
setting things up incorrectly causing this. I'm hoping to get Azure AZ App
working with oauth2 then doing some custom role mapping (AUTH_ROLES_MAPPING).
When the pod starts I now get the error:
```
____________ _____________
____ |__( )_________ __/__ /________ __
____ /| |_ /__ ___/_ /_ __ /_ __ \_ | /| / /
___ ___ | / _ / _ __/ _ / / /_/ /_ |/ |/ /
_/_/ |_/_/ /_/ /_/ /_/ \____/____/|__/
[2021-08-10 21:52:00,980] {dagbag.py:496} INFO - Filling up the DagBag from
/dev/null
Traceback (most recent call last):
File "/home/airflow/.local/bin/airflow", line 8, in <module>
sys.exit(main())
File "/home/airflow/.local/lib/python3.6/site-packages/airflow/__main__.py",
line 40, in main
args.func(args)
File
"/home/airflow/.local/lib/python3.6/site-packages/airflow/cli/cli_parser.py",
line 48, in command
return func(*args, **kwargs)
File
"/home/airflow/.local/lib/python3.6/site-packages/airflow/utils/cli.py", line
91, in wrapper
return f(*args, **kwargs)
File
"/home/airflow/.local/lib/python3.6/site-packages/airflow/cli/commands/webserver_command.py",
line 360, in webserver
app = cached_app(None)
File "/home/airflow/.local/lib/python3.6/site-packages/airflow/www/app.py",
line 146, in cached_app
app = create_app(config=config, testing=testing)
File "/home/airflow/.local/lib/python3.6/site-packages/airflow/www/app.py",
line 123, in create_app
init_appbuilder(flask_app)
File
"/home/airflow/.local/lib/python3.6/site-packages/airflow/www/extensions/init_appbuilder.py",
line 51, in init_appbuilder
update_perms=conf.getboolean('webserver', 'UPDATE_FAB_PERMS'),
File
"/home/airflow/.local/lib/python3.6/site-packages/flask_appbuilder/base.py",
line 148, in __init__
self.init_app(app, session)
File
"/home/airflow/.local/lib/python3.6/site-packages/flask_appbuilder/base.py",
line 202, in init_app
self.sm = self.security_manager_class(self)
File
"/home/airflow/.local/lib/python3.6/site-packages/airflow/www/security.py",
line 186, in __init__
super().__init__(appbuilder)
File
"/home/airflow/.local/lib/python3.6/site-packages/flask_appbuilder/security/sqla/manager.py",
line 52, in __init__
super(SecurityManager, self).__init__(appbuilder)
File
"/home/airflow/.local/lib/python3.6/site-packages/flask_appbuilder/security/manager.py",
line 256, in __init__
from authlib.integrations.flask_client import OAuth
ModuleNotFoundError: No module named 'authlib'
```
My webserver_config.py:
```
import os
from logging import getLogger
from flask_appbuilder.security.manager import AUTH_OAUTH
from airflow.configuration import conf
basedir = os.path.abspath(os.path.dirname(__file__))
AZURE_APPLICATION_ID = os.environ.get("AZURE_APPLICATION_ID")
AZURE_SECRET = os.environ.get("AZURE_SECRET")
AZURE_TENANT_ID = os.environ.get("AZURE_TENANT_ID")
WTF_CSRF_ENABLED = True
AUTH_TYPE = AUTH_OAUTH
SQLALCHEMY_DATABASE_URI = conf.get('core', 'SQL_ALCHEMY_CONN')
log = getLogger(__name__)
# Azure OAuth
OAUTH_PROVIDERS = [{
"name":"azure",
"token_key":"access_token",
"icon":"fa-windows",
"remote_app": {
"client_id": {AZURE_APPLICATION_ID},
"client_secret": {AZURE_SECRET},
"api_base_url":
"https://login.microsoftonline.com/{AZURE_TENANT_ID}/oauth2",
"client_kwargs": {
"scope": "User.read name preferred_username email profile
upn",
"resource": {AZURE_APPLICATION_ID},
},
"request_token_url": None,
"access_token_url":
"https://login.microsoftonline.com/{AZURE_TENANT_ID}/oauth2/token",
"authorize_url":
"https://login.microsoftonline.com/{AZURE_TENANT_ID}/oauth2/authorize",
}
}]
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]