airflow.providers.fab.auth_manager.fab_auth_manager
¶
模組內容¶
類別¶
Flask-AppBuilder 授權管理器。 |
函數¶
產生文件;由 Sphinx argparse 使用。 |
- class airflow.providers.fab.auth_manager.fab_auth_manager.FabAuthManager(appbuilder)[source]¶
基於:
airflow.auth.managers.base_auth_manager.BaseAuthManager
Flask-AppBuilder 授權管理器。
此授權管理器負責為使用者提供向後相容的使用者管理體驗。
- get_user()[source]¶
傳回與會話中使用者相關聯的使用者。
嘗試在 g.user 中尋找當前使用者,如 Kerberos 身份驗證後端所定義。如果找不到此類使用者,則傳回連結到使用者會話的 current_user 本機代理物件。
- 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 執行)。如果
method
是 GET,則檢查使用者是否具有 DAG 和子實體的 READ 權限。- 否則,檢查使用者是否具有 DAG 和子實體上
method
的 EDIT 權限。但是, 如果沒有針對特定的 DAG,則僅檢查子實體。
- 否則,檢查使用者是否具有 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_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) – 會話