airflow.providers.fab.auth_manager.security_manager.override¶
属性¶
类¶
这个安全管理器覆盖了默认的 AirflowSecurityManager 安全管理器。 |
模块内容¶
- 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 – 应用构建器对象。
- 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 会调用此函数。
- 参数:
dag_id (str) – 应更新其权限的 DAG 的 ID
access_control (collections.abc.Mapping[str, collections.abc.Mapping[str, collections.abc.Collection[str]] | collections.abc.Collection[str]] | None) – 一个字典,其中每个键是角色名称,每个值可以是:- 一个 DAGs 资源操作名称的集合(例如 {‘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 – 资源名称
- sync_roles()[source]¶
初始化默认和自定义角色及其相关权限。
初始化默认角色(Admin, Viewer, User, Op, public)及其相关权限。
初始化自定义角色(dag-user)及其相关权限。
- update_admin_permission()[source]¶
向管理员表格添加缺失的权限。
管理员应拥有所有权限,除了 DAG 权限,因为管理员已经拥有 Dags 权限。将缺失的权限添加到管理员表格中。
- get_roles_from_keys(role_keys)[source]¶
根据密钥列表构建 FAB 角色对象列表。
注意:- 密钥可以是诸如“LDAP group DNs”或“OAUTH group names”之类的东西- 我们使用 AUTH_ROLES_MAPPING 将密钥映射到 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_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 – 要添加的资源名称
- add_permission_to_role(role, permission)[source]¶
将现有的权限对添加到角色。
- 参数:
role (airflow.providers.fab.auth_manager.models.Role) – 即将获得新权限的角色。
permission (airflow.providers.fab.auth_manager.models.Permission | None) – 要添加到角色的权限对。
- remove_permission_from_role(role, permission)[source]¶
从角色中移除权限对。
- 参数:
role (airflow.providers.fab.auth_manager.models.Role) – 包含权限的用户角色。
permission (airflow.providers.fab.auth_manager.models.Permission) – 表示资源->操作对的对象
- static get_user_roles(user=None)[source]¶
获取与用户关联的所有角色。
- 参数:
user – FAB 模型中的 ab_user。
- 返回值:
与用户关联的角色列表。
- auth_user_ldap(username, password)[source]¶
使用 LDAP 对用户进行身份验证。
注意:这取决于 python-ldap 模块。
- 参数:
username – 用户名
password – 密码
- auth_user_db(username, password)[source]¶
数据库风格的用户身份验证。
- 参数:
username – 用户名或注册邮箱地址
password – 密码,将根据数据库中的哈希密码进行测试
- get_oauth_token_key_name(provider)[source]¶
返回 OAuth 提供程序的 token_key 名称。
如果未配置,则默认为 oauth_token,这可以通过 OAUTH_PROVIDERS 和 token_key 键进行配置。