Airflow - LDAP 设置 - 映射不同group为不同权限

本文介绍了如何配置Airflow以使用LDAP进行认证,并根据不同的LDAP group赋予用户不同的权限,如将test_users组设置为user权限,test_admins组设置为admin权限。实现这一目标涉及对Flask AppBuilder的深入理解和配置。

Airflow LDAP Mapping 不同 group 为不同权限

说明

由于工作需要搭建Airflow,需求是为Airflow 建立LDAP认证,并且不同的LDAP group 分别给予不同的Airflow 权限
比如:

  • 已存在LDAP group -> test_users , test_admins
  • Airflow 启用LDAP认证
  • 使test_users 组用户登陆Airflow为user 权限
  • 使test_admin 组用户登陆Airflow为admin 权限

分析:
Airflow 是采用Flask AppBuilder 作为认证模块的,查了Flask 的官方文档给的demo,所推荐配置的内容如下:

#身份验证:LDAP
#此方法将根据LDAP服务器验证用户的凭据。
#警告:要使用LDAP,您需要安装python-ldap。
#对于典型的Microsoft AD设置(所有用户可以预制LDAP搜索):

AUTH_TYPE = AUTH_LDAP
AUTH_LDAP_SERVER = "ldap://ldap.example.com"
AUTH_LDAP_USE_TLS = False

# registration configs
AUTH_USER_REGISTRATION = True  # allow users who are not already in the FAB DB
AUTH_USER_REGISTRATION_ROLE = "Public"  # this role will be given in addition to any AUTH_ROLES_MAPPING
AUTH_LDAP_FIRSTNAME_FIELD = "givenName"
AUTH_LDAP_LASTNAME_FIELD = "sn"
AUTH_LDAP_EMAIL_FIELD = "mail"  # if null in LDAP, email is set to: "{username}@email.notfound"

# bind username (for password validation)
AUTH_LDAP_USERNAME_FORMAT 
<think>嗯,用户想了解openmetadata-airflow-managed-apis的相关信息,我需要梳理五个引用材料中的相关内容。用户提到的是"openmetadata-airflow-managed-apis",这看起来是OpenMetadata项目中与Airflow集成的组件。 引用[2]提到通过docker compose安装时需要用到mysql、elasticsearch和airflow源码,并给出了克隆OpenMetadata仓库的指令。这说明用户可能需要从源码开始搭建环境。引用[5]详细说明了本地编译的具体步骤:maven编译命令和数据库初始化脚本,这些都是运行OpenMetadata后端服务的关键步骤。 关于API插件部分,引用[3]提到airflow-rest-api插件的安装和纠错过程,虽然名称不完全匹配,但说明Airflow的API扩展可能存在兼容性问题,这点需要提醒用户注意。而引用[1]显示Airflow在生产环境中的实际应用场景——用于数据转换和监控,这暗示openmetadata-airflow-managed-apis的核心功能可能是元数据采集任务的调度和管理。 部署方面,引用[4]的Kubernetes Helm创建流程虽然不直接相关,但说明若要将整套系统部署到K8s,用户可能需要自行编写chart,这对进阶部署有参考价值。 用户没有明确环境类型,所以需要同时覆盖本地开发和云环境方案。考虑在回复中突出三个重点:组件的核心作用(桥接元数据与调度)、部署必需的依赖项(数据库、初始化脚本)、以及API交互时的版本兼容风险。对于资料引用,准备优先采用OpenMetadata官方文档,因为引用[2][5]的操作都指向GitHub仓库,避免用户被第三方教程误导。 </think>以下是关于 **openmetadata-airflow-managed-apis** 的详细介绍、使用方法和相关资料整理,结合引用内容及官方文档: --- ### **一、组件介绍** `openmetadata-airflow-managed-apis` 是 **OpenMetadata** 项目中的核心模块,专为与 **Apache Airflow** 集成设计。主要功能包括: 1. **元数据采集自动化** 通过 Airflow DAG 自动调度元数据提取任务(如数据库表结构、Pipeline 血缘)。 2. **统一任务管理** 将 OpenMetadata 的元数据摄取、测试框架、数据分析等任务封装为 Airflow Operator。 3. **API 服务扩展** 提供 REST API 插件(参考引用[3]),支持通过 API 触发元数据操作(如启动摄取任务、校验数据质量)。 > 该组件使 OpenMetadata 能依托 Airflow 的调度能力实现元数据管理的自动化流水线[^2][^5]。 --- ### **二、使用方法** #### **1. 环境准备** - **依赖项**: - Airflow 2.3+(推荐使用 Docker 或 Composer 部署,参考引用[1][2]) - OpenMetadata 后端服务(需先完成编译部署,参考引用[5]) ```bash # 克隆仓库 git clone git@github.com:open-metadata/OpenMetadata.git # 编译源码(跳过测试) mvn clean install -DskipTests=true # 初始化数据库 ./bootstrap/bootstrap_storage.sh drop-create-all ``` #### **2. 安装插件** - **直接安装**(需在 Airflow 环境中): ```bash pip install "openmetadata-airflow-managed-apis==x.y.z" # 版本需匹配OpenMetadata ``` - **源码集成**: 将编译后的 `openmetadata-airflow-managed-apis` 包复制到 Airflow 的 `plugins` 目录[^3]。 #### **3. 配置 Airflow** - **修改 `airflow.cfg`**: ```ini [openmetadata] host = http://localhost:8585/api # OpenMetadata服务地址 auth_provider = openmetadata # 认证方式(如JWT) jwt_token = your_token # 从OpenMetadata获取 ``` - **添加 Airflow Connection**: 在 Airflow UI 创建类型为 **OpenMetadata** 的 Connection,填写API密钥。 #### **4. 使用 Managed APIs** - **示例:创建元数据摄取DAG** ```python from openmetadata.managed_apis.workflows.ingestion import metadata_ingestion_workflow with DAG("metadata_ingestion", schedule_interval="@daily") as dag: ingest_task = metadata_ingestion_workflow( config=Path("/ingestion/pipelines/mysql.yaml"), metadata_service_name="my_service", ) ``` - **API 调用**(需启用 airflow-rest-api 插件[^3]): ```bash # 触发元数据摄取 curl -X POST http://airflow-host:8080/api/v1/namespaces/default/tasks/metadata_ingestion/trigger ``` --- ### **三、相关资料** 1. **官方文档** - [OpenMetadata Airflow Integration](https://docs.open-metadata.org/integrations/airflow) - [Managed APIs 源码](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/airflow/managed_apis) 2. **部署方案** - **本地开发**:使用 Docker Compose(引用[2])启动 Airflow + MySQL + OpenMetadata。 - **生产环境**: - 云托管方案(如 GCP Composer,引用[1]) - Kubernetes Helm 部署(自定义 Chart,引用[4]) 3. **排错指南** - REST API 插件安装问题:检查 Airflow 版本兼容性(引用[3]) - 数据库连接失败:确保 OpenMetadata 后端已初始化(引用[5]) --- ### **四、典型应用场景** | 场景 | 实现方式 | |---------------------|----------------------------------------------| | **自动元数据同步** | Airflow DAG 定时调用 `metadata_ingestion_workflow` | | **数据质量监控** | 集成 `TestSuiteWorkflow` 运行数据校验规则 | | **血缘关系更新** | 解析 DBT/Flink 任务日志,推送血缘到 OpenMetadata | > 提示:需保持 `openmetadata-airflow-managed-apis` 与 OpenMetadata 主版本严格一致[^5]。 ---
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

githan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值