如何配置Apache Airflow 2.10.4接受无认证POST请求触发DAG
解决Apache Airflow 2.10.4接受无认证POST请求的配置方案
1. 修改Airflow认证后端配置
你之前配置的airflow.api.auth.backend.default是需要认证的默认后端,需替换为匿名认证后端:
- 打开
airflow.cfg配置文件,定位到[api]小节 - 将
auth_backends的值修改为:auth_backends = airflow.api.auth.backend.anonymous_auth
2. 配置RBAC权限(Airflow 2.x默认启用RBAC)
开启匿名认证后,还需给匿名角色分配触发DAG的权限:
- 登录Airflow UI,进入
Security -> Roles页面 - 找到
Anonymous角色并点击编辑 - 在权限列表中勾选以下两项:
can trigger dag(DAG触发权限)can create dagrun(创建DAG运行实例权限)
- 保存角色配置
3. 重启Airflow服务
修改配置后必须重启webserver和scheduler才能生效:
# 重启webserver airflow webserver restart # 重启scheduler airflow scheduler restart
4. 验证配置有效性
用不带认证的curl命令测试触发DAG:
curl -X POST "https://你的服务器地址/api/v1/dags/DagInQuestion/dagRuns" \ -H "Content-Type: application/json" \ -d '{ "conf": { "json_data": "{你的测试数据}" } }'
若返回状态码201 Created,说明配置成功,Dialpad的webhook可正常触发DAG。
安全提示
无认证API存在安全风险,建议:
- 通过反向代理(如Nginx)设置IP白名单,仅允许Dialpad官方IP访问Airflow API
- 定期审计DAG触发记录,排查未授权请求
内容的提问来源于stack exchange,提问作者rancper
相关产品推荐
相关产品推荐

