使用 Active Directory 安全群組為 Babelfish 設定 Kerberos 驗證 - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Active Directory 安全群組為 Babelfish 設定 Kerberos 驗證

從 Babelfish 4.2.0 版開始,您可以使用 Active Directory 安全群組為 Babelfish 設定 Kerberos 身分驗證。若要使用 Active Directory 設定 Kerberos 身分驗證,以下是要完成的先決條件:

  • 您必須遵循使用 Babelfish 進行 Kerberos 身分驗證中提到的所有步驟。

  • 確保資料庫執行個體與 Active Directory 相關聯。若要確認這一點,您可以在主控台中或執行 describe-db-instances AWS CLI 命令,來檢視網域成員資格狀態。

    資料庫執行個體的狀態應為啟用 kerberos 的狀態。如需了解網域成員資格的詳細資訊,請參閱了解網域成員資格

  • 使用以下查詢驗證 NetBIOS 網域名稱與 DNS 網域名稱之間的對應:

    SELECT netbios_domain_name, fq_domain_name FROM babelfish_domain_mapping;
  • 繼續進行之前,請先驗證使用個別登入的 Kerberos 身分驗證是否如預期運作。以 Active Directory 使用者身分使用 Kerberos 身分驗證的連線應會成功。如果您遇到任何問題,請參閱常見錯誤

設定 pg_ad_mapping 延伸模組

您必須遵循設定 pg_ad_mapping 延伸模組中提到的所有步驟。若要驗證是否已安裝延伸模組,請從 TDS 端點執行下列查詢:

1> SELECT extname, extversion FROM pg_extension where extname like 'pg_ad_mapping'; 2> GO extname extversion ------------- ---------- pg_ad_mapping 0.1 (1 rows affected)

管理群組登入

依照管理登入中所述步驟建立群組登入。我們建議登入名稱與 Active Directory (AD) 安全群組名稱應相同,以便輕鬆維護,但這不是強制性的。例如:

CREATE LOGIN [corp\accounts-group] FROM WINDOWS [WITH DEFAULT_DATABASE=database]

稽核和記錄

若要判斷 AD 安全主體身分,請使用下列命令:

1> select suser_name(); 2> GO suser_name ---------- corp\user1 (1 rows affected)

目前,日誌中看不到 AD 使用者身分。您可以開啟 log_connections 參數來記錄資料庫工作階段的建立。如需詳細資訊,請參閱 log_connections。如下列範例所示,輸出包含作為主體的 AD 使用者身分。與此輸出相關聯的後端 PID 可以協助將動作追溯至實際 AD 使用者。

bbf_group_ad_login@babelfish_db:[615]:LOG: connection authorized: user=bbf_group_ad_login database=babelfish_db application_name=sqlcmd GSS (authenticated=yes, encrypted=yes, principal=user1@CORP.EXAMPLE.COM)