启用身份验证= True时无法访问Apache Airflow Web UI

时间:2019-01-24 22:26:34

标签: apache airflow

当我在airflow.cfg文件中设置authenticate = False时,默认设置下Apache气流运行得很好

但是当我设置authenticate = True时,我无法访问Web UI 我正在按照网站上的说明进行操作 https://incubator-airflow.readthedocs.io/en/latest/security.html

我正在使用Version:1.10.1

当我尝试访问Web ui时,我收到消息 无法访问该网站或重定向过多

airflow.cfg文件

[网络服务器]

authenticate = True
auth_backend = airflow.contrib.auth.backends.password_auth

使用python创建我的用户

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()

重新启动气流

3 个答案:

答案 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()