airflow.providers.fab.auth_manager.fab_auth_manager
¶
模块内容¶
类¶
Flask-AppBuilder 认证管理器。 |
函数¶
生成文档;由 Sphinx argparse 使用。 |
- class airflow.providers.fab.auth_manager.fab_auth_manager.FabAuthManager(appbuilder)[源代码]¶
基类:
airflow.auth.managers.base_auth_manager.BaseAuthManager
Flask-AppBuilder 认证管理器。
此认证管理器负责为用户提供向后兼容的用户管理体验。
- get_user()[源代码]¶
返回与会话中的用户关联的用户。
尝试在 g.user 中查找当前用户,如 Kerberos 身份验证后端定义的那样。如果未找到此类用户,则返回链接到用户会话的 current_user 本地代理对象。
- is_authorized_configuration(*, method, details=None, user=None)[源代码]¶
返回用户是否有权在配置上执行给定操作。
- 参数
method (airflow.auth.managers.base_auth_manager.ResourceMethod) – 要执行的方法
details (airflow.auth.managers.models.resource_details.ConfigurationDetails | None) – 有关配置的可选详细信息
user (airflow.auth.managers.models.base_user.BaseUser | None) – 要对其执行操作的用户。 如果未提供(或为 None),则使用当前用户
- is_authorized_connection(*, method, details=None, user=None)[源代码]¶
返回用户是否有权对连接执行给定操作。
- 参数
method (airflow.auth.managers.base_auth_manager.ResourceMethod) – 要执行的方法
details (airflow.auth.managers.models.resource_details.ConnectionDetails | None) – 有关连接的可选详细信息
user (airflow.auth.managers.models.base_user.BaseUser | None) – 要对其执行操作的用户。 如果未提供(或为 None),则使用当前用户
- is_authorized_dag(*, method, access_entity=None, details=None, user=None)[源代码]¶
返回用户是否有权访问 DAG。
有多种情况
1. 未提供
dag_access
,这意味着用户希望访问 DAG 本身,而不是子实体(例如 DAG 运行)。2. 提供了dag_access
,这意味着用户希望访问 DAG 的子实体(例如 DAG 运行)。如果
method
为 GET,则检查用户是否对 DAG 和子实体具有 READ 权限。- 否则,检查用户是否对 DAG 具有 EDIT 权限,并对子实体具有
method
权限。 但是, 如果没有指定 DAG,则仅检查子实体。
- 否则,检查用户是否对 DAG 具有 EDIT 权限,并对子实体具有
- 参数
method (airflow.auth.managers.base_auth_manager.ResourceMethod) – 要授权的方法。
access_entity (airflow.auth.managers.models.resource_details.DagAccessEntity | None) – DAG 访问实体。
details (airflow.auth.managers.models.resource_details.DagDetails | None) – DAG 详细信息。
user (airflow.auth.managers.models.base_user.BaseUser | None) – 用户。
- is_authorized_asset(*, method, details=None, user=None)[源代码]¶
返回用户是否有权对资产执行给定操作。
- 参数
method (airflow.auth.managers.base_auth_manager.ResourceMethod) – 要执行的方法
details (airflow.providers.common.compat.assets.AssetDetails | None) – 关于资产的可选详细信息
user (airflow.auth.managers.models.base_user.BaseUser | None) – 要对其执行操作的用户。 如果未提供(或为 None),则使用当前用户
- is_authorized_pool(*, method, details=None, user=None)[source]¶
返回用户是否有权对池执行给定操作。
- 参数
method (airflow.auth.managers.base_auth_manager.ResourceMethod) – 要执行的方法
details (airflow.auth.managers.models.resource_details.PoolDetails | None) – 关于池的可选详细信息
user (airflow.auth.managers.models.base_user.BaseUser | None) – 要对其执行操作的用户。 如果未提供(或为 None),则使用当前用户
- is_authorized_variable(*, method, details=None, user=None)[source]¶
返回用户是否有权对变量执行给定操作。
- 参数
method (airflow.auth.managers.base_auth_manager.ResourceMethod) – 要执行的方法
details (airflow.auth.managers.models.resource_details.VariableDetails | None) – 关于变量的可选详细信息
user (airflow.auth.managers.models.base_user.BaseUser | None) – 要对其执行操作的用户。 如果未提供(或为 None),则使用当前用户
- is_authorized_view(*, access_view, user=None)[source]¶
返回用户是否有权访问安装的只读状态。
- 参数
access_view (airflow.auth.managers.models.resource_details.AccessView) – 关于特定只读视图/状态的授权请求。
user (airflow.auth.managers.models.base_user.BaseUser | None) – 要对其执行操作的用户。 如果未提供(或为 None),则使用当前用户
- is_authorized_custom_view(*, method, resource_name, user=None)[source]¶
返回用户是否有权对自定义视图执行给定操作。
自定义视图可以是定义为身份验证管理器一部分的视图。当身份验证管理器作为环境的一部分使用时,此视图才可用。它也可以是用户定义的插件的一部分的视图。
- 参数
method (airflow.auth.managers.base_auth_manager.ResourceMethod | str) – 要执行的方法。如果操作是在插件中定义的,则该方法也可以是字符串。在这种情况下,该操作可以是任何内容(例如 can_do)。请参阅 https://github.com/apache/airflow/issues/39144
resource_name (str) – 资源的名称
user (airflow.auth.managers.models.base_user.BaseUser | None) – 要对其执行操作的用户。 如果未提供(或为 None),则使用当前用户
- get_permitted_dag_ids(*, methods=None, user=None, session=NEW_SESSION)[source]¶
获取用户可读或可写的 DAG。
默认情况下,读取所有 DAG 并单独检查用户是否具有访问 DAG 的权限。这可能会导致性能不佳。建议在身份验证管理器实现中覆盖此方法,以提供更有效的实现。
- 参数
methods (Container[airflow.auth.managers.base_auth_manager.ResourceMethod] | None) – 是否过滤可读或可写
user – 当前用户
session (sqlalchemy.orm.Session) – 会话