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