首页 > 解决方案 > 如何捕获触发 Airflow DAG 的用户

问题描述

我在 docker-compose 文件中启用了 RBAC 作为环境变量。

- AIRFLOW__WEBSERVER__RBAC=True

我想捕获在我的 dag 文件中启动 dag 的用户。

我尝试使用from flask_login import current_user. 但是,我得到的值为current_user无。

我可以知道如何使用 RBAC 捕获用户详细信息吗?

标签: airflowrbac

解决方案


根据作为由Flask AppBuilder (FAB)处理的RBAC安全模型的一部分的Airflow文档:

Airflow在模块中使用flask_login并公开了一组钩子 。airflow.default_login您可以更改内容并使其成为 的一部分PYTHONPATH并将其配置为 airflow.cfg.

Flask-login模块提供用户管理操作,因此您可以在专用属性flask_login.current_user中获取当前用户,添加一些额外的字段,如#3438 pull request 中所述:

if current_user and hasattr(current_user, 'user'):
    user = current_user.user.username
elif current_user and hasattr(current_user, 'username'):

我想您可以使用它current_user.user.username来获取用户登录信息。


推荐阅读