如何禁用Airflow登录以进行身份​​验证和授权?

时间:2019-08-27 18:05:38

标签: python-3.x flask airflow flask-appbuilder

我有一个Apache气流分支,我想在代理服务器后面运行。所有身份验证将已经在气流之外进行了处理,因此我不希望客户再次使用另一组凭据登录。有什么方法可以完全从气流中删除/禁用身份验证。

基本上,我想摆脱这个初始的登录屏幕,并允许任何接触到气流的人都具有用户(而非管理员)访问权限。 [最坏情况的管理员访问也可以。]

enter image description here

4 个答案:

答案 0 :(得分:1)

如果有人在使用 docker,这对我有用(airflow 2.0.1):

  1. 在项目中的某处添加 webserver_config.py 的副本。
  2. 取消注释 AUTH_ROLE_PUBLIC 并将“Admin”设置为值。
<块引用>
AUTH_ROLE_PUBLIC = 'Admin'
  1. 将这些设置添加到您的 .cfg 文件中。
<块引用>
[webserver]
rbac = False
authenticate = False
  1. 在您的 Dockerfile 中,添加将 webserver_config.py 复制到 /home/airflow 目录中的命令。例如:
<块引用>
ADD airflow/webserver_config.py /home/airflow

一旦你启动了 pod,配置文件应该被附加到禁用身份验证的目录中。

答案 1 :(得分:0)

一种方法是通过环境变量禁用 RBAC。确保在启动网络服务器之前设置以下内容:

export AIRFLOW__WEBSERVER__RBAC=False

有关详细信息,请参阅 here。 这里的其他答案也都适用!

答案 2 :(得分:-1)

在气流配置文件(airflow.cfg)中将身份验证值更改为false,然后重新启动气流,

# Set to true to turn on authentication:
# https://airflow.apache.org/security.html#web-authentication
authenticate = False

RBAC,

rbac = False

答案 3 :(得分:-1)

我使用以下命令创建了一个具有“Admin”角色的新用户“Admin”,它对我有用:

$ airflow users create \
      --username Admin \
      --firstname FIRST_NAME \
      --lastname LAST_NAME \
      --role Admin \
      --email admin@example.org