設定 Amazon Redshift IAM 身分中心 OAuth

這些說明適用於較新的 AWS IAM IDC 服務。有關原始 IAM 整合,請參閱設定 Amazon Redshift IAM OAuth

根據身分提供程式的不同,設定整合需要執行不同的步驟。這是一個高層級的概觀。Tableau 無法提供有關如何設定 AWS 或 IDP 的詳細指示,但這是一般方法。

有關使用 Redshift 實作驗證的一些詳細範例,請參閱「使用 AWS IAM 身分中心將 Tableau 和 Okta 與 Amazon Redshift 整合(連結在新視窗開啟)」和「使用 AWS IAM 身分中心將 Tableau 和 Microsoft Entra ID 與 Amazon Redshift 整合(連結在新視窗開啟)」。

步驟 1:設定 IDP

  1. 在 IDP 上為 Tableau Desktop 和 Tableau Server 或 Tableau Cloud 建立 OAuth 用戶端。Desktop 用戶端應啟用 PKCE 並使用 http://localhost 重新導向。

  2. 新增任何所需的自訂聲明以用於角色授權。

  3. 建立 Tableau OAuth 設定檔。請參閱有關 github(連結在新視窗開啟) 的文件以及範例(連結在新視窗開啟)。我們歡迎其他 IDP 的範例。

    1. 請務必在 Tableau OAuth 設定 ID 前面加上「custom_」前置碼。

    2. 如果您的 IDP 支援動態 localhost 連接埠,則停用 OAUTH_CAP_FIXED_PORT_IN_CALLBACK_URL。如果沒有,請確保將多個 localhost 回呼 URL 新增至設定檔和 IDP 上的允許清單中。

  4. 在與桌面主機(Tableau Desktop、Tableau Prep Builder、Tableau Bridge)以及將使用 OAuth 的每個 Tableau Server 和 Tableau Cloud 站台上每個應用程式關聯的 OAuthConfigs 資料夾中安裝新的 Tableau OAuth 設定檔。

步驟 2:設定 IDP 並啟用 AWS 上的角色

有關執行詳情,請參閱 AWS 文件。

步驟 3: 連線到 Redshift

  1. 連線到 Redshift。

  2. 「驗證」選取 OAuth。

  3. 「同盟類型」選取身分中心。

  4. (可選)如果需要的話,請指定身分中心命名空間

正確設定後,您將被重新導向到 IDP,以對 Tableau 的權杖進行驗證和授權。Tableau 將收到存取權杖和重新整理權杖。它將把存取權杖傳送給驅動程式進行驗證。

權杖

預設情況下,Redshift OAuth 到 IAM IDC 會將存取權杖傳遞給驅動程式。對於內部部署客戶(包括使用 Tableau Bridge 的客戶),可以改用 TDC 檔案來傳遞 ID 權杖。

<connection-customization class='redshift' enabled='true' version='10.0'>
	<vendor name='redshift' />
	<driver name='redshift' />
	<customizations>
		<customization name='CAP_OAUTH_FEDERATE_ID_TOKEN' value='yes'/>
	</customizations>
</connection-customization>

有關設定和安裝 .tdc 檔案的詳細資訊,請參閱自訂和調整連線(連結在新視窗開啟)以及在 Tableau Server 中使用 .tdc 檔案(連結在新視窗開啟)

Okta

若使用 Okta,最好使用「自訂授權伺服器」,而不是「組織授權伺服器。」自訂授權伺服器具有更多彈性。預設會建立自訂授權伺服器,稱為「預設」。授權 URL 應如下所示:

https://${yourOktaDomain}/oauth2/{authServerName}/v1/authorize

更新驅動程式

對於使用 IAM IDC 服務的 Redshift OAuth,需要至少使用 2.x 版本的 ODBC 驅動程式。請從 https://github.com/aws/amazon-redshift-odbc-driver/tags(連結在新視窗開啟) 下載最新版本的 Redshift ODBC 驅動程式。請注意,目前還沒有適用於 OSX 的 v2 驅動程式。

Redshift IAM IDC OAuth 疑難排解

診斷錯誤的最佳方法是從圖片中移除 Tableau。可以使用驅動程式管理員或類似工具進行測試。這僅用於疑難排解 - 在正常使用此功能時,不應使用 DSN 或「其他 ODBC」連接器。為幫助確保測試有效,參數應與下面所示相同,但叢集資訊、資料庫、權杖和命名空間除外。

如果在第一次連線時看到來自驅動程式的無效/過期權杖的錯誤訊息(錯誤訊息中將包含如 [28000] 或[08001] 的 SQLState 錯誤代碼),則 Tableau 已成功完成 OAuth 流程,並且驅動程式失敗。這表示 AWS 端或 IDP 端存在設定錯誤。驅動程式也可能傳回權限或授權錯誤,這也不受 Tableau 的控制。

在開始測試之前,首先需要取得存取權杖(IAM IDC 的預設設定)或重新整理權杖(若自訂),以傳送給驅動程式。

這是 Okta 的範例。幾乎所有 IDP 都有一種非常相似的方法來實現上述動作。請注意,要使用此流程,需要啟用資源擁有者密碼授與類型。替代 IDP URL、用戶端金鑰、用戶端識別碼、使用者名稱和密碼。

curl -X POST "https://OKTA_URL/v1/token" \
-H 'accept: application/json' \
-H "Authorization: Basic $(echo -n 'CLIENTID:CLIENTSECRET' | base64)" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=password&username=USER&password=PASSWORD&scope=openid"

取得權杖後,可以使用 DSN 進行測試。對於 Windows,可以使用 ODBC 驅動程式管理員。在 Linux 上,可以使用 Tableau Server 隨附的 customer-bin 資料夾中的 isql 命令列工具。

Tableau 建議不要使用其他外掛程式進行測試,因為它們可能無法在伺服器環境中工作。它們要麼使用固定的 AWS 設定檔,要麼需要直接存取瀏覽器。

以下是在 Windows 上使用 ODBC 驅動程式管理器的範例。

感謝您的意見反應!已成功提交您的意見回饋。謝謝!