airflow.providers.fab.auth_manager.security_manager.override
¶
模块内容¶
类¶
此安全管理器覆盖默认的 AirflowSecurityManager 安全管理器。 |
属性¶
- airflow.providers.fab.auth_manager.security_manager.override.MAX_NUM_DATABASE_USER_SESSIONS = 50000[source]¶
- class airflow.providers.fab.auth_manager.security_manager.override.FabAirflowSecurityManagerOverride(appbuilder)[source]¶
基类:
airflow.www.security_manager.AirflowSecurityManagerV2
此安全管理器覆盖默认的 AirflowSecurityManager 安全管理器。
仅当使用认证管理器 FabAuthManager 时才使用此安全管理器。它定义了 FabAuthManager 工作所需的安全管理器中的所有内容。任何特定于 AirflowSecurityManager 的操作都应在此处而不是 AirflowSecurityManager 中定义。
- 参数
appbuilder – appbuilder。
- VIEWER_PERMISSIONS = [(), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (),...[source]¶
- OP_PERMISSIONS = [(), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), ()][source]¶
- reset_password(userid, password)[source]¶
为身份验证数据库更改/重置用户的密码。
密码将被哈希并保存。
- 参数
userid (int) – 要重置密码的用户 ID
password (str) – 要重置的明文密码,并以哈希形式保存到数据库中
- 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 肯定存在于我们的 DAG 包中,因为只有 “刷新” 按钮或 DagBag 才会调用此函数。
- 参数
dag_id (str) – 应更新其权限的 DAG 的 ID
access_control (Mapping[str, Mapping[str, Collection[str]] | Collection[str]] | None) – 一个字典,其中每个键是角色名称,每个值可以是:- DAG 资源操作名称的集合(例如,{‘can_read’})- 或一个字典,其中每个键是一个资源名称(‘DAGs’ 或 ‘DAG Runs’),每个值是操作名称的集合(例如,{‘DAG Runs’: {‘can_create’}, ‘DAGs’: {‘can_read’}})
- 返回
- 返回类型
None
- add_permissions_view(base_action_names, resource_name)[source]¶
在后端为资源添加操作。
- 参数
base_action_names –
- 视图中的权限列表(所有公开的方法)
’can_add’,’can_edit’ 等…
resource_name – 要添加的资源名称
在 permission_resource 上为资源添加 menu_access。
- 参数
resource_name – 资源名称
- security_cleanup(baseviews, menus)[source]¶
清理数据库中所有未使用的权限。
- 参数
baseviews – BaseViews 类的列表
menus – Menu 类
- sync_roles()[source]¶
使用相关权限初始化默认角色和自定义角色。
使用相关权限初始化默认角色(管理员、查看者、用户、操作员、公共)。
使用相关权限初始化自定义角色 (dag-user)。
- update_admin_permission()[source]¶
为管理员添加表中缺少的权限。
管理员应获得所有权限,但 DAG 权限除外,因为管理员已经具有 DAG 权限。将缺少的权限添加到管理员的表中。
- permission_exists_in_one_or_more_roles(resource_name, action_name, role_ids)[source]¶
高效地检查特定权限是否存在于角色 ID 列表中;被 has_access 使用。
- 参数
resource_name (str) – 要检查的角色之一是否存在视图的名称
action_name (str) – 要检查的权限名称是否存在
role_ids (list[int]) – 角色 ID 列表
- 返回
布尔值
- 返回类型
- get_roles_from_keys(role_keys)[source]¶
从键列表中构造 FAB 角色对象列表。
注意:- 键类似于:“LDAP 组 DN”或“OAUTH 组名称” - 我们使用 AUTH_ROLES_MAPPING 从键映射到 FAB 角色名称
- 参数
role_keys (list[str]) – FAB 角色键列表
- add_user(username, first_name, last_name, email, role, password='', hashed_password='')[source]¶
创建一个用户。
- add_register_user(username, first_name, last_name, email, password='', hashed_password='')[source]¶
为用户添加注册请求。
:rtype : RegisterUser
- 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_permission(action_name, resource_name)[源代码]¶
如果权限已存在,则获取由给定的操作 -> 资源对创建的权限。
- 参数
action_name (str) – 操作的名称
resource_name (str) – 资源的名称
- get_resource_permissions(resource)[源代码]¶
检索与特定资源对象关联的权限对。
- 参数
resource (airflow.providers.fab.auth_manager.models.Resource) – 表示单个资源的对像。
- create_permission(action_name, resource_name)[源代码]¶
向后端添加对资源的权限。
- 参数
action_name – 要添加的操作的名称:‘can_add’、‘can_edit’ 等…
resource_name – 要添加的资源名称
- delete_permission(action_name, resource_name)[源代码]¶
删除链接操作 -> 资源对的权限。
不会删除底层操作或资源。
- 参数
action_name (str) – 现有操作的名称
resource_name (str) – 现有资源的名称
- add_permission_to_role(role, permission)[源代码]¶
将现有的权限对添加到角色。
- 参数
role (airflow.providers.fab.auth_manager.models.Role) – 即将获得新权限的角色。
permission (airflow.providers.fab.auth_manager.models.Permission | None) – 要添加到角色的权限对。
- remove_permission_from_role(role, permission)[源代码]¶
从角色中删除权限对。
- 参数
role (airflow.providers.fab.auth_manager.models.Role) – 包含权限的用户角色。
permission (airflow.providers.fab.auth_manager.models.Permission) – 表示资源 -> 操作对的对象
- auth_user_ldap(username, password)[源代码]¶
使用 LDAP 验证用户身份。
注意:这取决于 python-ldap 模块。
- 参数
username – 用户名
password – 密码
- auth_user_db(username, password)[源代码]¶
验证用户身份,数据库验证方式。
- 参数
username – 用户名或注册的电子邮件地址
password – 密码,将针对数据库中的哈希密码进行测试
- oauth_user_info_getter(func)[source]¶
获取所有提供者的 OAuth 用户信息。
接收提供者和响应,返回一个包含从提供者返回的信息的字典。返回的用户信息字典的键应与用户模型的名称相同。
像这样使用,以下是 GitHub 的示例:
@appbuilder.sm.oauth_user_info_getter def my_oauth_user_info(sm, provider, response=None): if provider == "github": me = sm.oauth_remotes[provider].get("user") return {"username": me.data.get("login")} return {}
- 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_PROVIDERS
和token_secret
配置的。