How to activate authentication in Apache Airflow
Check the following in your airflow.cfg
file:
[webserver]
authenticate = True
auth_backend = airflow.contrib.auth.backends.password_auth
And also remember to Restart Airflow Webserver, if it still doesn't work, run airflow initdb
and restart the webserver.
Also, double-check in airflow.cfg
file that it does not contain multiple configurations for authenticate
or auth_backend
. If there is more than one occurrence, than it can cause that issue.
If necessary, install flask_bcrpyt package of python2.x/3.x For instance, $ python3.7 -m pip install flask_bcrypt
Make sure you have an admin user created,
airflow create_user -r Admin -u admin -e [email protected] -f admin -l user -p *****
edit
airflow.cfg
inside[webserver]
section- change
authenticate = True
. by default it is set to False. - add
auth_backend = airflow.contrib.auth.backends.password_auth
. - change
rbac = True
for Role-based-access-control – RBAC.
- change
airflow initdb
- restart airflow webserver
just add rbac = True
to airflow.cfg
, and you are good to go.
Now all you need to is restart your airflow webserver.
And in case if you want to add a new user. You can use this command,
airflow create_user -r Admin -u admin -f Ashish -l malgawa -p test123 -e [email protected]
“-r” is the role we want for the user “-u” is the username “-f” is the first name “-l” is the last name “-e” is the email id “-p” is the password
For more details, you can follow this article https://www.cloudwalker.io/2020/03/01/airflow-rbac-role-based-access-control/#:~:text=RBAC%20is%20the%20quickest%20way,access%20to%20DAGs%20as%20well