AshishPatil
AshishPatil

Reputation: 435

How to activate authentication in Apache Airflow

Airflow version- 1.9.0

I have installed apache airflow and post configuration i am able to run sample DAG's with sequential executor.

Also, created new sample user which i can see under Admin > Users.

But unable to get the login window/screen when we visit webserver adress at :8080/ it directly opens up Airflow webserver with admin user. It will be great help if anyone can provide some info on how to activate login screen/page, so that user credentials can be used for logging into webserver.

Steps followed to enable web user authentication: https://airflow.apache.org/security.html?highlight=authentication

Upvotes: 13

Views: 26156

Answers (3)

kaxil
kaxil

Reputation: 18844

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

Upvotes: 24

ashish malgawa
ashish malgawa

Reputation: 187

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

Upvotes: 2

Ganesh
Ganesh

Reputation: 757

  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

Upvotes: 7

Related Questions