【问题标题】:How to activate authentication in Apache Airflow如何在 Apache Airflow 中激活身份验证
【发布时间】:2019-02-03 00:35:34
【问题描述】:

气流版本 - 1.9.0

我已经安装了 apache 气流并发布了配置,我能够使用顺序执行器运行示例 DAG。

另外,创建了新的示例用户,我可以在 Admin > Users 下看到。

但是当我们访问 :8080/ 的网络服务器地址时无法获取登录窗口/屏幕,它直接以管理员用户打开 Airflow 网络服务器。 如果任何人都可以提供一些有关如何激活登录屏幕/页面的信息,这将非常有帮助,以便用户凭据可用于登录网络服务器。

启用网络用户身份验证的步骤: https://airflow.apache.org/security.html?highlight=authentication

【问题讨论】:

    标签: authentication webserver airflow


    【解决方案1】:

    在您的 airflow.cfg 文件中检查以下内容:

    [webserver]
    authenticate = True
    auth_backend = airflow.contrib.auth.backends.password_auth
    

    另外记得重启Airflow Webserver,如果还是不行,运行airflow initdb并重启webserver。

    另外,在airflow.cfg 文件中仔细检查它不包含authenticateauth_backend 的多个配置。如果出现不止一次,则可能导致该问题。

    如果需要,安装python2.x/3.x的flask_bcrpyt包 例如, $ python3.7 -m pip install flask_bcrypt

    确保您已创建管理员用户,

    airflow create_user -r Admin -u admin -e admin@acme.com -f admin -l user -p *****
    

    【讨论】:

    • 感谢@kaxil 的建议。我像以前一样再次尝试了它们,但没有成功。它仍然以管理员身份直接登录网络服务器 UI。
    • 您能否在airflow.cfg 文件中再次检查它不包含authenticateauth_backend 的多个配置。如果发生不止一次,则可能导致该问题
    • 你能在这里复制/粘贴你的airflow.cfg文件吗?
    • 你是对的,airflow.cfg 文件中存在重复的身份验证条目。谢谢你指点。现在我可以看到登录窗口。知道管理员用户的默认密码是什么,在这种情况下是超级用户。我如何使用管理员登录。
    • 此时没有创建用户。您必须按照airflow.apache.org/… 的步骤创建用户
    【解决方案2】:
    1. 编辑airflow.cfg
      [webserver] 部分内

      • 更改authenticate = True。默认情况下,它设置为 False。
      • 添加auth_backend = airflow.contrib.auth.backends.password_auth
      • rbac = True 更改为基于角色的访问控制 – RBAC。
    2. airflow initdb

    3. 重启气流网络服务器

    【讨论】:

    • 嗨@Ganesh,我好像完全按照你说的做,我使用的是 Airflow 版本 1.10.10。情况是我得到“气流404 =很多圈”。知道为什么吗?
    • 这意味着气流网络服务器没有运行。尝试重新启动它。您正在点击 http://{ip}:8080/home URL 对吗?
    • 嗨@Ganesh,你帮了我,问题是实际的URL。我使用的是 /admin 而不是 /home (!)。我真的很感谢你。
    • @RafaIK 我遇到了同样的问题。将 /login 添加到 url 也可以
    【解决方案3】:

    只需将rbac = True 添加到airflow.cfg,就可以了。 现在您只需要重新启动您的气流网络服务器。 如果你想添加一个新用户。你可以使用这个命令,

     airflow create_user -r Admin -u admin -f Ashish -l malgawa -p test123 -e ashishmalgawa@gmail.com
    

    “-r”是我们想要给用户的角色 “-u”是用户名 “-f”是名字 “-l”是姓氏 “-e”是电子邮件ID “-p”是密码

    更多详情可以关注这篇文章 https://www.cloudwalker.io/2020/03/01/airflow-rbac-role-based-access-control/#:~:text=RBAC%20is%20the%20quickest%20way,access%20to%20DAGs%20as%20well

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-15
      • 1970-01-01
      • 2012-09-28
      • 2021-01-23
      • 2017-10-07
      • 2019-10-22
      相关资源
      最近更新 更多