Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I disable Airflow login for authentication and authorization?

I have a fork of apache airflow which I want to run behind a proxy server. All the authentication will be already handled outside airflow, thus I don't want the customers to login with another set of credentials again. Is there any way to completely remove/disable the authentication from airflow.

Basically, I want to get rid of this initial login screen and allow anyone who reaches airflow to have user (not admin) access. [Worst case admin access is also ok.]

enter image description here

like image 284
Ankit Basarkar Avatar asked Aug 27 '19 18:08

Ankit Basarkar


2 Answers

If anyone is using docker, this worked for me(airflow 2.0.1):

  1. Add a copy of webserver_config.py somewhere in your project.
  2. Uncomment AUTH_ROLE_PUBLIC and set 'Admin' as the value.
AUTH_ROLE_PUBLIC = 'Admin'
  1. Add these settings to your .cfg file.
[webserver]
rbac = False
authenticate = False
  1. In your Dockerfile, add the command to copy the webserver_config.py into the /home/airflow directory. e.g:
ADD airflow/webserver_config.py /home/airflow

Once you spin up the pod, config file should be appended to the directory disabling the authentication.

like image 67
Rolando Ardon Avatar answered Sep 20 '22 14:09

Rolando Ardon


For airflow 2.0.1 and later:

In file: $AIRFLOW_HOME/webserver_config.py

add/edit this line (note that by default it says = 'Public' and you need to change it!)

AUTH_ROLE_PUBLIC = 'Admin'

Documentation about this argument: https://airflow.apache.org/docs/apache-airflow/stable/security/webserver.html#web-authentication

The feature was added in this PR/change: https://github.com/apache/airflow/pull/13191 which was merged into airflow 2.0.1

like image 22
Geobio Boo Avatar answered Sep 21 '22 14:09

Geobio Boo