airflow.providers.fab.auth_manager.fab_auth_manager¶
类¶
Flask-AppBuilder 认证管理器。 |
函数¶
生成文档;由 Sphinx argparse 使用。 |
模块内容¶
- class airflow.providers.fab.auth_manager.fab_auth_manager.FabAuthManager(context=None)[source]¶
继承自:
airflow.api_fastapi.auth.managers.base_auth_manager.BaseAuthManager
[airflow.providers.fab.auth_manager.models.User
]Flask-AppBuilder 认证管理器。
这个认证管理器负责为用户提供向后兼容的用户管理体验。
- appbuilder: airflow.providers.fab.www.extensions.init_appbuilder.AirflowAppBuilder | None = None[source]¶
- get_user()[source]¶
返回与会话中的用户关联的用户。
尝试在 g.user 中查找当前用户,如 kerberos 认证后端所定义。如果未找到此类用户,则返回与用户会话关联的 current_user 本地代理对象。
- is_authorized_configuration(*, method, user, details=None)[source]¶
返回用户是否被授权对配置执行给定操作。
- 参数:
method (airflow.api_fastapi.auth.managers.base_auth_manager.ResourceMethod) – 要执行的方法
user (airflow.providers.fab.auth_manager.models.User) – 执行操作的用户
details (airflow.api_fastapi.auth.managers.models.resource_details.ConfigurationDetails | None) – 关于配置的可选详情
- is_authorized_connection(*, method, user, details=None)[source]¶
返回用户是否被授权对连接执行给定操作。
- 参数:
method (airflow.api_fastapi.auth.managers.base_auth_manager.ResourceMethod) – 要执行的方法
user (airflow.providers.fab.auth_manager.models.User) – 执行操作的用户
details (airflow.api_fastapi.auth.managers.models.resource_details.ConnectionDetails | None) – 关于连接的可选详情
- is_authorized_dag(*, method, user, access_entity=None, details=None)[source]¶
返回用户是否被授权访问 dag。
有多种情况
1.
dag_access
未提供,这意味着用户想要访问 DAG 本身而不是子实体(例如 DAG 运行)。 2.dag_access
已提供,这意味着用户想要访问 DAG 的子实体(例如 DAG 运行)。如果
method
是 GET,则检查用户是否对 DAG 和子实体具有 READ 权限。- 否则,检查用户是否对 DAG 具有 EDIT 权限以及对子实体具有对应的
method
权限。但是, 如果没有针对特定 DAG,则只检查子实体。
- 否则,检查用户是否对 DAG 具有 EDIT 权限以及对子实体具有对应的
- 参数:
method (airflow.api_fastapi.auth.managers.base_auth_manager.ResourceMethod) – 要授权的方法。
user (airflow.providers.fab.auth_manager.models.User) – 执行操作的用户。
access_entity (airflow.api_fastapi.auth.managers.models.resource_details.DagAccessEntity | None) – dag 访问实体。
details (airflow.api_fastapi.auth.managers.models.resource_details.DagDetails | None) – dag 详情。
- is_authorized_backfill(*, method, user, details=None)[source]¶
返回用户是否被授权对回填执行给定操作。
- 参数:
method (airflow.api_fastapi.auth.managers.base_auth_manager.ResourceMethod) – 要执行的方法
user (airflow.providers.fab.auth_manager.models.User) – 执行操作的用户
details (airflow.api_fastapi.auth.managers.models.resource_details.BackfillDetails | None) – 关于回填的可选详情
- is_authorized_asset(*, method, user, details=None)[source]¶
返回用户是否被授权对资产执行给定操作。
- 参数:
method (airflow.api_fastapi.auth.managers.base_auth_manager.ResourceMethod) – 要执行的方法
user (airflow.providers.fab.auth_manager.models.User) – 执行操作的用户
details (airflow.providers.common.compat.assets.AssetDetails | None) – 关于资产的可选详情
- is_authorized_asset_alias(*, method, user, details=None)[source]¶
返回用户是否被授权对资产别名执行给定操作。
- 参数:
method (airflow.api_fastapi.auth.managers.base_auth_manager.ResourceMethod) – 要执行的方法
user (airflow.providers.fab.auth_manager.models.User) – 执行操作的用户
details (airflow.providers.common.compat.assets.AssetAliasDetails | None) – 关于资产别名的可选详情
- is_authorized_pool(*, method, user, details=None)[source]¶
返回用户是否被授权对池执行给定操作。
- 参数:
method (airflow.api_fastapi.auth.managers.base_auth_manager.ResourceMethod) – 要执行的方法
user (airflow.providers.fab.auth_manager.models.User) – 执行操作的用户
details (airflow.api_fastapi.auth.managers.models.resource_details.PoolDetails | None) – 关于池的可选详情
- is_authorized_variable(*, method, user, details=None)[source]¶
返回用户是否被授权对变量执行给定操作。
- 参数:
method (airflow.api_fastapi.auth.managers.base_auth_manager.ResourceMethod) – 要执行的方法
user (airflow.providers.fab.auth_manager.models.User) – 执行操作的用户
details (airflow.api_fastapi.auth.managers.models.resource_details.VariableDetails | None) – 关于变量的可选详情
- is_authorized_view(*, access_view, user)[source]¶
返回用户是否被授权访问安装的只读状态。
- 参数:
access_view (airflow.api_fastapi.auth.managers.models.resource_details.AccessView) – 授权请求所涉及的特定只读视图/状态。
user (airflow.providers.fab.auth_manager.models.User) – 执行操作的用户
- is_authorized_custom_view(*, method, resource_name, user)[source]¶
返回用户是否被授权对自定义视图执行给定操作。
自定义视图可以是认证管理器中定义的视图。这种视图仅在认证管理器作为环境的一部分使用时可用。它也可以是用户定义的插件中定义的视图。
- 参数:
method (airflow.api_fastapi.auth.managers.base_auth_manager.ResourceMethod | str) – 要执行的方法。如果操作已在插件中定义,则该方法也可以是字符串。在这种情况下,操作可以是任何内容(例如 can_do)。参见 https://github.com/apache/airflow/issues/39144
resource_name (str) – 资源的名称
user (airflow.providers.fab.auth_manager.models.User) – 执行操作的用户
根据用户权限过滤菜单项。
- 参数:
menu_items (list[airflow.api_fastapi.common.types.MenuItem]) – 所有菜单项的列表
user (airflow.providers.fab.auth_manager.models.User) – 用户
- get_authorized_dag_ids(*, user, method='GET', session=NEW_SESSION)[source]¶
获取用户有权访问的 DAG。
默认情况下,读取所有 DAG 并单独检查用户是否有权访问该 DAG。这可能导致性能不佳。建议在认证管理器实现中覆盖此方法以提供更高效的实现。
- 参数:
user (airflow.providers.fab.auth_manager.models.User) – 用户
method (airflow.api_fastapi.auth.managers.base_auth_manager.ResourceMethod) – 用于过滤的方法
session (sqlalchemy.orm.Session) – 会话
- property security_manager: airflow.providers.fab.auth_manager.security_manager.override.FabAirflowSecurityManagerOverride[source]¶
返回特定于 FAB 的安全管理器。
提供要添加到菜单的额外链接。
- 参数:
user (airflow.providers.fab.auth_manager.models.User) – 用户