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 *****

  1. 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.
  2. airflow initdb

  3. 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