【问题标题】:Apache airflow REST API call fails with 403 forbidden when API authentication is enabled启用 API 身份验证时,Apache 气流 REST API 调用失败并出现 403 禁止
【发布时间】:2020-07-25 02:22:55
【问题描述】:

Apache Airflow REST API 失败并出现 403 禁止调用:

“/api/实验/测试”

airflow.cfg 中的配置

[网络服务器]

  • 验证 = 真
  • auth_backend = airflow.contrib.auth.backends.password_auth

[API]

  • rbac = 真
  • auth_backend = airflow.contrib.auth.backends.password_auth

设置完这一切后,docker 镜像被构建并作为 docker 容器运行。

按如下方式创建气流用户:

airflow create_user -r Admin -u admin -e admin@hpe.com -f Administrator -l 1 -p admin

使用 Web UI 凭据登录可以正常工作。

无法登录 REST API。 用于身份验证的 HTTP 标头: 授权 BASIC YWRtaW46YWRtaW4=

气流版本:1.10.9

【问题讨论】:

    标签: airflow


    【解决方案1】:

    通过以下方式创建用户,我们可以使用凭据访问 Airflow 实验 API。

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

    通过使用“airflow create_user”命令创建用户,我们无法访问 Airflow Experimental API。

    【讨论】:

    • sn-p 就像一个魅力 :) 似乎 web-server 和 api 用户实体是不同的东西。这应该有更好的记录我花了几个小时来弄清楚这一点:(
    • 这行得通。 Ty 表示此代码 sn-p。我花了好几个星期来修复这个问题。
    猜你喜欢
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多