airflow.providers.fab.auth_manager.security_manager.override

属性

log

MAX_NUM_DATABASE_USER_SESSIONS

FabAirflowSecurityManagerOverride

这个安全管理器覆盖了默认的 AirflowSecurityManager 安全管理器。

模块内容

airflow.providers.fab.auth_manager.security_manager.override.log[源码]
airflow.providers.fab.auth_manager.security_manager.override.MAX_NUM_DATABASE_USER_SESSIONS = 50000[源码]
class airflow.providers.fab.auth_manager.security_manager.override.FabAirflowSecurityManagerOverride(appbuilder)[源码]

基类: airflow.providers.fab.www.security_manager.AirflowSecurityManagerV2

这个安全管理器覆盖了默认的 AirflowSecurityManager 安全管理器。

此安全管理器仅在使用 FabAuthManager 认证管理器时使用。它定义了 FabAuthManager 工作所需的所有安全管理器中的内容。任何特定于 AirflowSecurityManager 的操作都应在此处定义,而不是在 AirflowSecurityManager 中定义。

参数:

appbuilder – 应用构建器对象。

auth_view = None[源码]

用于认证视图的对象实例

registeruser_view = None[源码]

用于注册用户视图的对象实例

user_view = None[源码]

用于用户视图的对象实例

user_model[源码]
role_model[源码]
action_model[源码]
resource_model[源码]
permission_model[源码]

视图

authdbview[源码]

如果您想要自己的数据库认证视图,请重写此项

authldapview[源码]

如果您想要自己的 LDAP 认证视图,请重写此项

authoidview[源码]

如果您想要自己的 OID 认证视图,请重写此项

authoauthview[源码]

如果您想要自己的 OAuth 认证视图,请重写此项

authremoteuserview[源码]

如果您想要自己的 REMOTE_USER 认证视图,请重写此项

registeruserdbview[源码]

如果您想要自己的数据库用户注册视图,请重写此项

registeruseroidview[源码]

如果您想要自己的 OpenID 用户注册视图,请重写此项

registeruseroauthview[源码]

如果您想要自己的 OAuth 用户注册视图,请重写此项

actionmodelview[源码]
permissionmodelview[源码]
rolemodelview[源码]
registeruser_model[源码]
registerusermodelview[源码]
resourcemodelview[源码]
userdbmodelview[源码]
resetmypasswordview[源码]
resetpasswordview[源码]
userinfoeditview[源码]
userldapmodelview[源码]
useroauthmodelview[源码]
userremoteusermodelview[源码]
useroidmodelview[源码]
userstatschartview[源码]
jwt_manager = None[源码]

Flask-JWT-Extended

oauth = None[源码]
oauth_remotes: dict[str, Any][源码]

已初始化的 (remote_app) 提供者字典 {'provider_name', OBJ }

oauth_user_info = None[源码]
oauth_allow_list: dict[str, list][源码]

OAuth 电子邮件允许列表

DAG_RESOURCES[源码]
VIEWER_PERMISSIONS[源码]
USER_PERMISSIONS[源码]
OP_PERMISSIONS[源码]
ADMIN_PERMISSIONS[源码]
ROLE_CONFIGS: list[dict[str, Any]][源码]
RESOURCE_DETAILS_MAP[源码]
DAG_ACTIONS[源码]
appbuilder[源码]
lm[源码]
register_views()[源码]

注册 FAB 认证管理器相关的视图。

property get_session[源码]
创建登录管理器。

create_login_manager()[源码]

创建 JWT 管理器。

create_jwt_manager()[源码]

reset_password(userid, password)[源码]

更改/重置用户在认证数据库中的密码。

密码将被哈希并保存。

参数:
  • userid (int) – 要重置密码的用户 ID

  • password (str) – 要重置并在数据库中保存哈希值的明文密码

reset_user_sessions(user)[源码]
load_user_jwt(_jwt_header, jwt_data)[源码]
property auth_type[源码]

获取认证类型。

property is_auth_limited: bool[源码]

认证是否限速。

property auth_rate_limit: str[源码]

获取认证限速。

property auth_role_public[源码]

获取公共角色。

property oauth_providers[源码]

OAuth 提供者。

property auth_ldap_tls_cacertdir[源码]

LDAP TLS CA 证书目录。

property auth_ldap_tls_cacertfile[源码]

LDAP TLS CA 证书文件。

property auth_ldap_tls_certfile[源码]

LDAP TLS 证书文件。

property auth_ldap_tls_keyfile[源码]

LDAP TLS 密钥文件。

property auth_ldap_allow_self_signed[源码]

LDAP 允许自签名。

property auth_ldap_tls_demand[源码]

LDAP TLS 要求。

property auth_ldap_server[源码]

获取 LDAP 服务器对象。

property auth_ldap_use_tls[源码]

LDAP 是否应使用 TLS。

property auth_ldap_bind_user[源码]

LDAP 绑定用户。

property auth_ldap_bind_password[源码]

LDAP 绑定密码。

LDAP 搜索对象。

property auth_ldap_search_filter[源码]

LDAP 搜索过滤器。

property auth_ldap_uid_field[源码]

LDAP UID 字段。

property auth_ldap_firstname_field[源码]

LDAP 名(firstname)字段。

property auth_ldap_lastname_field[源码]

LDAP 姓(lastname)字段。

property auth_ldap_email_field[source]

LDAP 电子邮件字段。

property auth_ldap_append_domain[source]

LDAP 附加域。

property auth_ldap_username_format[source]

LDAP 用户名格式。

property auth_ldap_group_field: str[source]

LDAP 用户组字段。

property auth_roles_mapping: dict[str, list[str]][source]

认证角色的映射。

property auth_user_registration_role_jmespath: str[source]

用于用户注册的 JMESPATH 角色。

property auth_username_ci[source]

获取 CI 的认证用户名。

property auth_user_registration[source]

是否允许用户自行注册。

property auth_user_registration_role[source]

默认的用户自行注册角色。

property auth_roles_sync_at_login: bool[source]

是否应在登录时同步角色。

property auth_role_admin[source]

获取管理员角色。

property oauth_whitelists[source]
create_builtin_roles()[source]

返回 FAB 内置角色。

property builtin_roles[source]

获取内置角色。

create_db()[source]

创建数据库。

如果管理员和公共角色不存在,则创建它们。

get_all_permissions()[source]

将所有权限作为包含操作和资源名称的元组集合返回。

create_dag_specific_permissions()[source]

向所有 DAG 添加权限。

为所有 DAG 创建‘can_read’、‘can_edit’和‘can_delete’权限,以及其中提供的任何 access_control 权限。

这将遍历所有 DAG,这可能会很慢。如果只需要同步单个 DAG,请参阅 sync_perm_for_dag

sync_perm_for_dag(dag_id, access_control=None)[source]

同步给定 DAG ID 的权限。

DAG ID 肯定存在于我们的 DagBag 中,因为只有 / 刷新按钮或 DagBag 会调用此函数。

参数:
返回值:

返回类型:

None

add_permissions_view(base_action_names, resource_name)[source]

在后端资源上添加一个操作。

参数:
  • base_action_names

    视图中的权限列表(所有公开方法)

    例如 'can_add'、'can_edit' 等...

  • resource_name – 要添加的资源名称

add_permissions_menu(resource_name)[source]

在 permission_resource 上为资源添加 menu_access。

参数:

resource_name – 资源名称

sync_roles()[source]

初始化默认和自定义角色及其相关权限。

  1. 初始化默认角色(Admin, Viewer, User, Op, public)及其相关权限。

  2. 初始化自定义角色(dag-user)及其相关权限。

create_perm_vm_for_all_dag()[source]

如果 perm-vm 不存在则创建,并为所有 DAG 插入到 FAB 安全模型中。

add_homepage_access_to_custom_roles()[source]

向所有自定义角色添加 Website.can_read 访问权限。

update_admin_permission()[source]

向管理员表格添加缺失的权限。

管理员应拥有所有权限,除了 DAG 权限,因为管理员已经拥有 Dags 权限。将缺失的权限添加到管理员表格中。

clean_perms()[source]

FAB 会留下需要清理的有问题的权限。

perms_include_action(perms, action_name)[source]
bulk_sync_roles(roles)[source]

同步提供的角色和权限。

update_role(role_id, name)[source]

更新数据库中的角色。

add_role(name)[source]

在数据库中添加角色。

find_role(name)[source]

在数据库中查找角色。

参数:

name – 角色名称

get_all_roles()[source]
delete_role(role_name)[source]

删除给定角色。

参数:

role_name (str) – ab_role 表中角色的名称

get_roles_from_keys(role_keys)[source]

根据密钥列表构建 FAB 角色对象列表。

注意:- 密钥可以是诸如“LDAP group DNs”或“OAUTH group names”之类的东西- 我们使用 AUTH_ROLES_MAPPING 将密钥映射到 FAB 角色名称

参数:

role_keys (list[str]) – FAB 角色密钥列表

get_public_role()[source]
add_user(username, first_name, last_name, email, role, password='', hashed_password='')[source]

创建一个用户。

load_user(user_id)[source]
get_user_by_id(pk)[source]
count_users()[source]

返回数据库中的用户数量。

add_register_user(username, first_name, last_name, email, password='', hashed_password='')[source]

为用户添加注册请求。

:rtype : RegisterUser

find_user(username=None, email=None)[source]

按用户名或电子邮件查找用户。

update_user(user)[source]
del_register_user(register_user)[source]

从数据库中删除注册对象。

参数:

register_user – 要删除的 RegisterUser 对象

get_all_users()[source]
update_user_auth_stat(user, success=True)[source]

更新用户认证统计信息。

这在认证尝试成功/失败后进行。

参数:
  • user – 已识别(但可能未成功认证)的用户模型

  • success – 默认为 true,如果为 true,则增加 login_count,更新 last_login,并将 fail_login_count 重置为 0;如果为 false,则增加用户模型上的 fail_login_count。

get_action(name)[source]

获取现有操作记录。

参数:

name (str) – 名称

create_action(name)[source]

向后端添加操作,即模型操作。

参数:

name – 操作名称:例如 'can_add'、'can_edit' 等...

delete_action(name)[source]

删除一个权限操作。

参数:

name (str) – 要删除的操作名称(例如 can_read)。

get_resource(name)[source]

按名称返回资源记录,如果存在。

参数:

name (str) – 资源名称

create_resource(name)[source]

创建具有给定名称的资源。

参数:

name – 要创建的资源的名称。

get_permission(action_name, resource_name)[source]

获取由给定操作->资源对构成的权限,如果该权限已存在。

参数:
  • action_name (str) – 操作名称

  • resource_name (str) – 资源名称

get_resource_permissions(resource)[source]

检索与特定资源对象关联的权限对。

参数:

resource (airflow.providers.fab.auth_manager.models.Resource) – 表示单个资源的对象。

create_permission(action_name, resource_name)[source]

在后端资源上添加权限。

参数:
  • action_name – 要添加的操作名称:例如 'can_add'、'can_edit' 等...

  • resource_name – 要添加的资源名称

delete_permission(action_name, resource_name)[source]

删除链接操作->资源对的权限。

不删除底层操作或资源。

参数:
  • action_name (str) – 现有操作的名称

  • resource_name (str) – 现有资源的名称

add_permission_to_role(role, permission)[source]

将现有的权限对添加到角色。

参数:
remove_permission_from_role(role, permission)[source]

从角色中移除权限对。

参数:
static get_user_roles(user=None)[source]

获取与用户关联的所有角色。

参数:

user – FAB 模型中的 ab_user。

返回值:

与用户关联的角色列表。

auth_user_ldap(username, password)[source]

使用 LDAP 对用户进行身份验证。

注意:这取决于 python-ldap 模块。

参数:
  • username – 用户名

  • password – 密码

check_password(username, password)[source]

检查用户名的密码是否正确。

参数:
  • username – 用户名

  • password – 密码

auth_user_db(username, password)[source]

数据库风格的用户身份验证。

参数:
  • username – 用户名或注册邮箱地址

  • password – 密码,将根据数据库中的哈希密码进行测试

set_oauth_session(provider, oauth_response)[source]

使用 OAuth 用户密钥设置当前会话。

get_oauth_token_key_name(provider)[source]

返回 OAuth 提供程序的 token_key 名称。

如果未配置,则默认为 oauth_token,这可以通过 OAUTH_PROVIDERS 和 token_key 键进行配置。

get_oauth_token_secret_name(provider)[source]

获取 OAuth 提供程序的 token_secret 名称。

如果未配置,则默认为 oauth_secret。这可以通过 OAUTH_PROVIDERStoken_secret 进行配置。

auth_user_oauth(userinfo)[source]

使用 OAuth 对用户进行身份验证。

用户信息:

包含用户信息(键与 User 模型列相同)的字典

get_oauth_user_info(provider, resp)[source]

检索用户信息的不同 OAuth API 有不同的方式。

所有提供程序都有不同的方式来检索用户信息。

static oauth_token_getter()[source]

获取身份验证 (OAuth) 令牌。

static ldap_extract_list(ldap_dict, field_name)[source]
static ldap_extract(ldap_dict, field_name, fallback)[source]

此条目有帮助吗?