首页 > 解决方案 > 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 创建具有有限权限的用户的信息。

标签: google-oauthairflow

解决方案


在使用 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(",")

推荐阅读