

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

# 使用 Active Directory 安全群組為 Babelfish 設定 Kerberos 驗證
<a name="babelfish-kerberos-securityad"></a>

從 Babelfish 4.2.0 版開始，您可以使用 Active Directory 安全群組為 Babelfish 設定 Kerberos 身分驗證。若要使用 Active Directory 設定 Kerberos 身分驗證，以下是要完成的先決條件：
+  您必須遵循[使用 Babelfish 進行 Kerberos 身分驗證](babelfish-active-directory.md)中提到的所有步驟。
+ 確保資料庫執行個體與 Active Directory 相關聯。若要驗證，您可以在 主控台中或透過執行 [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI 命令來檢視網域成員資格的狀態。

  資料庫執行個體的狀態應為啟用 kerberos 的狀態。如需了解網域成員資格的詳細資訊，請參閱[了解網域成員資格](postgresql-kerberos-managing.md#postgresql-kerberos-managing.understanding)。
+ 使用以下查詢驗證 NetBIOS 網域名稱與 DNS 網域名稱之間的對應：

  ```
  SELECT netbios_domain_name, fq_domain_name FROM babelfish_domain_mapping;
  ```
+ 繼續進行之前，請先驗證使用個別登入的 Kerberos 身分驗證是否如預期運作。以 Active Directory 使用者身分使用 Kerberos 身分驗證的連線應會成功。如果您遇到任何問題，請參閱[常見錯誤](babelfish-active-directory.md#babelfish-active-directory-errors)。

## 設定 pg\$1ad\$1mapping 延伸模組
<a name="babelfish-kerberos-securityad-setpgextn"></a>

 您必須遵循[設定 pg\$1ad\$1mapping 延伸模組](AD.Security.Groups.md#AD.Security.Groups.Setup)中提到的所有步驟。若要驗證是否已安裝延伸模組，請從 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)
```

## 管理群組登入
<a name="babelfish-kerberos-securityad-managing"></a>

 依照[管理登入](babelfish-active-directory.md#babelfish-active-directory-login-managing)中所述步驟建立群組登入。我們建議登入名稱與 Active Directory (AD) 安全群組名稱應相同，以便輕鬆維護，但這不是強制性的。例如：

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

## 稽核和記錄
<a name="babelfish-kerberos-securityad-audit"></a>

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

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

(1 rows affected)
```

目前，日誌中看不到 AD 使用者身分。您可以開啟 `log_connections` 參數來記錄資料庫工作階段的建立。如需詳細資訊，請參閱 [log\$1connections](https://docs.aws.amazon.com/prescriptive-guidance/latest/tuning-postgresql-parameters/log-connections.html)。如下列範例所示，輸出包含作為主體的 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)
```