airflow.providers.fab.auth_manager.security_manager.override
¶
模組內容¶
類別¶
此安全性管理器會覆寫預設的 AirflowSecurityManager 安全性管理器。 |
屬性¶
- airflow.providers.fab.auth_manager.security_manager.override.MAX_NUM_DATABASE_USER_SESSIONS = 50000[source]¶
- class airflow.providers.fab.auth_manager.security_manager.override.FabAirflowSecurityManagerOverride(appbuilder)[source]¶
基底類別:
airflow.www.security_manager.AirflowSecurityManagerV2
此安全性管理器會覆寫預設的 AirflowSecurityManager 安全性管理器。
此安全性管理器僅在使用授權管理器 FabAuthManager 時使用。它定義了 FabAuthManager 運作所需之安全性管理器的所有內容。任何特定於 AirflowSecurityManager 的操作都應在此處定義,而不是在 AirflowSecurityManager 中定義。
- 參數
appbuilder – Appbuilder。
- VIEWER_PERMISSIONS = [(), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), ()][原始碼]¶
- OP_PERMISSIONS = [(), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), (), ()][原始碼]¶
- create_dag_specific_permissions()[原始碼]¶
為所有 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)[原始碼]¶
同步給定 DAG ID 的權限。
DAG ID 肯定存在於我們的 DAG 包中,因為只有「重新整理」按鈕或 DagBag 才會呼叫此函數。
- 參數
- 傳回
- 傳回類型
None
- add_permissions_view(base_action_names, resource_name)[原始碼]¶
將資源上的動作新增至後端。
- 參數
base_action_names –
- 來自視圖的權限列表 (所有公開的方法)
’can_add’、’can_edit’ 等…
resource_name – 要新增的資源名稱
在 permission_resource 上將 menu_access 新增至資源。
- 參數
resource_name – 資源名稱
- security_cleanup(baseviews, menus)[原始碼]¶
清除資料庫中所有未使用的權限。
- 參數
baseviews – BaseViews 類別的列表
menus – Menu 類別
- update_admin_permission()[原始碼]¶
為管理員將遺失的權限新增到表格中。
管理員應取得所有權限,除了 DAG 權限,因為管理員已具有 Dags 權限。將遺失的權限新增到管理員的表格中。
- permission_exists_in_one_or_more_roles(resource_name, action_name, role_ids)[原始碼]¶
有效率地檢查特定權限是否存在於角色 ID 列表中;由 has_access 使用。
- get_roles_from_keys(role_keys)[source]¶
從金鑰列表建構 FAB 角色物件的列表。
注意: - 金鑰類似於:「LDAP 群組 DN」或「OAUTH 群組名稱」 - 我們使用 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 – 密碼,將針對資料庫中的雜湊密碼進行測試
- oauth_user_info_getter(func)[source]¶
取得所有提供者的 OAuth 使用者資訊。
接收提供者和回應,並回傳一個字典,其中包含從提供者回傳的資訊。回傳的使用者資訊字典的鍵應與使用者模型同名。
像這樣使用它,以下為 GitHub 的範例
@appbuilder.sm.oauth_user_info_getter def my_oauth_user_info(sm, provider, response=None): if provider == "github": me = sm.oauth_remotes[provider].get("user") return {"username": me.data.get("login")} return {}
- get_oauth_user_info(provider, resp)[source]¶
有不同的 OAuth API,它們使用不同的方式來檢索使用者資訊。
所有提供者都有不同的方式來檢索使用者資訊。
- get_oauth_token_key_name(provider)[source]¶
回傳 oauth 提供者的 token_key 名稱。
如果未設定,則預設為 oauth_token,這可以使用 OAUTH_PROVIDERS 和 token_key 鍵進行設定。
- get_oauth_token_secret_name(provider)[source]¶
取得 oauth 提供者的
token_secret
名稱。如果未設定,則預設為
oauth_secret
。這可以使用OAUTH_PROVIDERS
和token_secret
進行設定。