password
Airflow默认不使用用户认证,可以通过配置airflow.cfg进行相关配置,最简单的认证方式自然是密码认证
[webserver]
authenticate = True
auth_backend = airflow.contrib.auth.backends.password_auth
若要airflow使用简单密码认证,airflow需要安装相应的password组件。
$ pip install apache-airflow[password]
此时airflow的数据库中并没有任何用户存在,因此需要添加用户,添加用户的代码如下所示:
import airflow
from airflow import models, settings
from airflow.contrib.auth.backends.password_auth import PasswordUser
user = PasswordUser(models.User())
user.username = 'new_user_name'
user.email = '[email protected]'
user.password = 'set_the_password'
session = settings.Session()
session.add(user)
session.commit()
session.close()
通过上面代码添加的用户都是superuser,因为password组件中默认is_super返回值是true,可以在contrib/backend/auth目录修改password的文件,进行自定义的设置。