Airflow 3.0.0 Rest API未认证:需配置哪些设置启用API调用?
Airflow 3.0.0 API认证失败的解决步骤
1. 调整API认证后端配置
默认情况下Airflow 3.0.0的API可能使用会话认证,不支持Basic Auth,需要通过Docker Compose配置环境变量切换认证后端:
- 打开你的
docker-compose.yml文件,找到airflow-webserver服务的environment部分,添加以下配置:environment: # 保留其他已有的环境变量 - AIRFLOW__API__AUTH_BACKEND=airflow.api.auth.backend.basic_auth - 如果需要同时兼容UI会话和API调用,也可以设置为
airflow.api.auth.backend.session,但Basic Auth更适合脚本自动化场景
2. 确保用户拥有正确权限
确认你的airadmin用户存在且具备管理员权限,若不确定可重新创建:
- 先查看Airflow webserver容器ID:
docker ps | grep airflow-webserver - 进入容器执行创建用户命令:
docker exec -it <容器ID> airflow users create \ --username airadmin \ --password airpass \ --firstname Admin \ --lastname User \ --role Admin \ --email admin@example.com
3. 重启服务并验证
- 重启Airflow webserver服务:
docker-compose restart airflow-webserver - 重新执行你的curl命令测试:
curl -X GET 'localhost:8080/api/v2/dags/my_dag' -H 'Content-Type: application/json' --user "airadmin:airpass" - 如果仍有问题,可改用API Token方式:
- 登录Airflow UI,点击右上角头像进入
Profile页面 - 点击
Generate Token按钮,创建一个新的API令牌 - 使用令牌调用API:
curl -X GET 'localhost:8080/api/v2/dags/my_dag' -H 'Content-Type: application/json' -H "Authorization: Bearer <你的令牌>"
- 登录Airflow UI,点击右上角头像进入
4. 检查服务状态
确认webserver服务正常启动且REST API已加载:
docker-compose logs airflow-webserver | grep "Started REST API"
若日志中出现该信息,说明API服务已正常运行
内容的提问来源于stack exchange,提问作者atul ahire
相关产品推荐
相关产品推荐

