airflow.providers.fab.auth_manager.fab_auth_manager

模組內容

類別

FabAuthManager

Flask-AppBuilder 授權管理器。

函數

get_parser()

產生文件;由 Sphinx argparse 使用。

class airflow.providers.fab.auth_manager.fab_auth_manager.FabAuthManager(appbuilder)[source]

基於: airflow.auth.managers.base_auth_manager.BaseAuthManager

Flask-AppBuilder 授權管理器。

此授權管理器負責為使用者提供向後相容的使用者管理體驗。

static get_cli_commands()[source]

提供 CLI 命令以包含在 Airflow CLI 中。

get_api_endpoints()[source]

傳回授權管理器的 API 端點定義。

get_user_display_name()[source]

傳回與會話中使用者相關聯的使用者顯示名稱。

get_user()[source]

傳回與會話中使用者相關聯的使用者。

嘗試在 g.user 中尋找當前使用者,如 Kerberos 身份驗證後端所定義。如果找不到此類使用者,則傳回連結到使用者會話的 current_user 本機代理物件。

init()[source]

在 Airflow 初始化時執行操作。

is_logged_in()[source]

傳回使用者是否已登入。

is_authorized_configuration(*, method, details=None, user=None)[source]

傳回使用者是否有權對設定執行給定動作。

參數
  • 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)[source]

傳回使用者是否有權對連線執行給定動作。

參數
  • 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)[source]

傳回使用者是否有權存取 DAG。

有多種情境

1. dag_access 未提供,表示使用者想要存取 DAG 本身,而不是子實體(例如 DAG 執行)。 2. dag_access 已提供,表示使用者想要存取 DAG 的子實體(例如 DAG 執行)。

  1. 如果 method 是 GET,則檢查使用者是否具有 DAG 和子實體的 READ 權限。

  2. 否則,檢查使用者是否具有 DAG 和子實體上 method 的 EDIT 權限。但是,

    如果沒有針對特定的 DAG,則僅檢查子實體。

參數
  • 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)[source]

傳回使用者是否有權對資產執行給定動作。

參數
  • 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_dataset(*, method, details=None, user=None)[source]
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) – 會話

security_manager()[source]

傳回 FAB 特有的安全性管理器。

get_url_login(**kwargs)[source]

傳回登入頁面 URL。

get_url_logout()[source]

傳回登出頁面 URL。

get_url_user_profile()[source]

傳回顯示當前使用者資訊的頁面 URL。

register_views()[source]

註冊授權管理器特有的視圖。

airflow.providers.fab.auth_manager.fab_auth_manager.get_parser()[source]

產生文件;由 Sphinx argparse 使用。

此條目是否有幫助?