將您自己的身分提供程式與 Amazon Athena 結合使用

從 Tableau 2023.2 開始,可以使用 OAuth 2.0/OIDC 將外部身分提供程式的身分與 Amazon Athena 結成同盟。

根據身分提供程式的不同,設定整合需要執行不同的步驟。Tableau 僅提供如何設定 Tableau 產品的詳細說明。有關如何設定身分提供程式(例如 Okta)的說明,請參閱該產品的說明和教學課程。本文件提供對設定流程的高階概觀。

附註:Tableau 和 Salesforce 內容以外的步驟與連結可能尚未更新或不準確。

設定身分提供程式 (IDP)

  1. 在 IDP 上為 Tableau Desktop 與 Tableau Server 建立 OAuth 用戶端。Desktop 用戶端會啟用 PKCE(連結在新視窗開啟),並使用 http://localhost 重新導向。

  2. 新增任何所需的自訂聲明以用於角色授權。有關聲明和範圍的更多詳細資訊,請參閱範圍與聲明(連結在新視窗開啟)

  3. 建立 Tableau OAuth 設定檔。有關如何執行此動作的詳細資訊,請參閱 github 上的 OAuth 設定和使用(連結在新視窗開啟)以及此處的範例。請務必在 Tableau OAuth 設定 ID 前面加上「custom_」前置詞。

  4. 請依照上面連結的 OAuth 設定主題中的說明,在 Tableau Desktop 電腦、Tableau Server 和 Tableau Cloud 站台上安裝 Tableau OAuth 設定檔。

在 AWS 上設定 IDP

  1. 建立 IDP 實體。請參閱 Amazon 文件 Web 身分同盟建立 OIDC 身分提供程式
  2. IDP 必須設定為以與 Tableau 驅動程式外掛程式協作的方式與 Athena 結成同盟。以下提供者資訊用於 Tableau Server 和 Tableau Desktop 流程:
    AwsCredentialsProviderClas=com.simba.athena.iamsupport.plugin.JwtCredentialsProvider
    role_session_name=AthenaJWT

  3. 專門為 IDP 建立角色和原則。請參閱 AWS 文件上的為 OIDC 建立角色

為 Athena 設定角色

附加 Athena 所需的原則。有很多方法可以執行此動作。一種方法是使用自訂宣告。可以使用 openID 權杖中的自訂宣告對角色進行授權。這些角色會被授予對其他資源的存取權。有關詳情,請參閱:

連線到 Athena

使用者必須指定要代入的 AWS 角色 ARN(Amazon 資源名稱),然後在 OAuth 提供者下選取先前安裝的 OAuth 設定。請注意,只有當有多個設定可供選擇時,才會顯示用於選取設定的下拉式功能表。

正確設定後,使用者將被重新定向到 IDP,以對 Tableau 的權杖進行驗證和授權。Tableau 會接收 openid 與重新整理權杖。AWS 能夠驗證來自 IDP 的權杖與簽章、從權杖中擷取宣告、查找宣告對應的 IAM 角色,以及允許或阻止 Tableau 代表使用者代入角色。

範例:AssumeRoleWithWebIdentity

登入 Athena 視窗

權杖

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

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

有關設定和安裝 .tdc 檔案的更多資訊,請參閱自訂和調整連線(連結在新視窗開啟)

Okta 設定

若使用 Okta,最好使用「自訂授權伺服器」,而不是「組織授權伺服器」。自訂授權伺服器具有更多彈性。系統會預設建立一個自訂授權伺服器,稱為「預設」。授權 URL 類似以下範例。

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

Okta 儀表板

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