google-oauth - Apache Airflow - Google 身份验证仅创建超级用户
问题描述
我正在气流中实施谷歌身份验证(版本- 1.9.0)。在google_auth.py中,气流将每个用户创建为超级用户
def is_superuser(self):
'''Access all the things'''
return True
我只想将超级用户权限授予某些团队成员。所以,我is_superuser()
在GoogleUser
类中编辑了函数如下:
def is_superuser(self):
'''Access all the things'''
if self.user.email in ["member1@xyz.com","member2@xyz.com"]:
return True
else:
return False
有没有更好的方法来做到这一点,或者气流开箱即用地提供了这个东西?我找不到任何有关使用 google OAuth 创建具有有限权限的用户的信息。
解决方案
在使用 RBAC 的较新版本之前,气流基本上只是在没有任何授权层的情况下处理身份验证。所以超级用户标志就是它。
我不会对其进行硬编码,而是通过airflow.cfg 对其进行配置。这样您就不必每次要更新列表时都修改代码,只需更新配置并重新启动即可。
所以在你的airflow.cfg下说..[core]
块,添加super_users = member1@xyz.com,member2@xyz.com
然后让你的功能
def is_superuser(self):
return self.user.email in configuration.get("core", "super_users").split(",")
推荐阅读
- java - 为什么 System.out.println("0:00".compareTo("0")); 结果是3?
- reactjs - 通过数组索引从基于数组的状态中删除是否安全?
- html - 如何在 h2 标签内使图像显示为块元素
- java - 如果除了一个之外不为空,如何检查列表中的每个值?
- sharepoint-online - 在 pnp/sp 中为不同的用户初始化 spfxContext
- perl - 如何搜索并替换为“OR”条件
- c# - 更新父记录时删除 C# 子记录中的 EF
- javascript - 从 html 中删除元素时事件不起作用
- javascript - 如何使用动态生成的值过滤数组?
- php - Nginx 允许单个位置块中的子目录