当我在airflow.cfg文件中设置authenticate = False时,默认设置下Apache气流运行得很好
但是当我设置authenticate = True时,我无法访问Web UI 我正在按照网站上的说明进行操作 https://incubator-airflow.readthedocs.io/en/latest/security.html
我正在使用Version:1.10.1
当我尝试访问Web ui时,我收到消息 无法访问该网站或重定向过多
[网络服务器]
authenticate = True
auth_backend = airflow.contrib.auth.backends.password_auth
import airflow
from airflow import models, settings
from airflow.contrib.auth.backends.password_auth import PasswordUser
user = PasswordUser(models.User())
user.username = 'my.user'
user.email = 'my.user@company.com'
user.password = 'password'
session = settings.Session()
session.add(user)
session.commit()
session.close()
exit()
答案 0 :(得分:1)
我尝试过与您相同的方式来创建气流用户,但无法正常工作。
只需在气流Web服务器外壳中使用诸如removeTimeFromDate(date: Date): Date {
return new Date(date.getFullYear(), date.getMonth(), date.getDay());
}
这样的命令即可。
答案 1 :(得分:0)
调试3小时后,我遇到了同样的错误,我发现我有一个小错误,这是因为在为气流创建用户时,您没有指定角色。我不知道默认角色是什么。但是,如果默认角色为公共(可用角色为Admin,User,Viewer,Public和Op),那么即使成功登录后,您仍会重定向到首页,而 Public 角色没有查看垃圾邮件的权限。因此,如果您看到网络服务器日志,则会看到警告消息,例如无法气流指数。因此,我建议您创建一个具有各自要求的用户。 例如,使用CLI创建气流用户。
$ airflow create_user -h
显示命令选项,然后根据它们设置参数。
$ airflow create_user -r Viewer -u <username> -p <login_password whatever you want> -f <first name> -l <last_name> -e <email_id>
希望对您有用,对我有用。 ps:我正在使用google_auth作为后端。
答案 2 :(得分:0)
试试这个方法
激活您的气流 python 环境并启动 python
shell。
然后在这些命令的帮助下,您可以轻松地在气流中设置一个新用户。
>>> 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 = 'new_user_email@example.com'
>>> user.password = 'set_the_password'
>>> session = settings.Session()
>>> session.add(user)
>>> session.commit()
>>> session.close()
>>> exit()