启用 API 身份验证时,Apache 气流 REST API 调用失败并出现 403 禁止
Posted
技术标签:
【中文标题】启用 API 身份验证时,Apache 气流 REST API 调用失败并出现 403 禁止【英文标题】:Apache airflow REST API call fails with 403 forbidden when API authentication is enabled 【发布时间】: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
【问题讨论】:
【参考方案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。我花了好几个星期来修复这个问题。以上是关于启用 API 身份验证时,Apache 气流 REST API 调用失败并出现 403 禁止的主要内容,如果未能解决你的问题,请参考以下文章
启用 CORS 的 Web Api 2 facebook 身份验证
Google Data Studio:如何使用 2 KEYS 为 API 连接器启用身份验证
如何在 ASP.Net Web API 中为特定控制器启用 Windows 身份验证