为 Snowflake 连接配置 OAuth

您可以通过多种方式为 Snowflake 连接配置 OAuth,具体取决于您使用的 Tableau 版本以及要更新的站点数量。本主题介绍每个可用选项的配置。

  • 对于 Tableau 的所有版本(直至版本 2024.1),Tableau Snowflake 连接器默认使用托管在 AWS(GALOP)中的 OAuth 代理,该代理使用通用客户端 ID 和密文。
  • 从 Tableau 2020.4 开始,您可以选择配置 Tableau Server 使用与 Tableau 实例在同一位置运行的新 OAuth 服务。这需要提供您自己的客户端 ID 和密文,这称为自定义 OAuth。
  • 从 2024.2 开始,GALOP 代理将被弃用,并且将需要按照以下说明设置自定义 OAuth,因为它现在将使用本地 OAuth 服务进行身份验证。
  • 对于 Tableau DesktopTableau Cloud 版本 2024.3 及更高版本,您可以为 Snowflake 配置第三方 IdP(外部 OAuth)。有关详细信息,请参见Snowflake 的外部 OAuth

自定义 OAuth 提供的好处包括:

  • 提高安全性

  • 您可以在无法连接到 OAuth 代理 (GALOP) 的隔离环境中使用 OAuth。

  • 您不必将 GALOPIP 地址放入安全列表即可在 AWS 专用链接或 Azure 专用链接 VPC 中运行 Oauth 流程。

向 Snowflake 注册 OAuth 客户端。

若要在 Tableau Server 中使用自定义 OAuth 设置,您必须先注册您的 OAuth 客户端并获取客户端 ID 和客户端密文才能完成配置。对于 Tableau Server 版本 2024.2 及更高版本,无论您使用哪个配置选项,此步骤都是必需的。若要向 Snowflake 注册自定义 OAuth 客户端,请按照为自定义客户端配置 Snowflake OAuth(链接在新窗口中打开)中描述的步骤进行操作。

注册后,您将使用以下 Snowflake 参数来配置 Tableau Server

  • 帐户实例 URL
  • 客户端 ID
  • 客户端密码
  • 重定向 URL

注意:在 Snowflake 和 Tableau 端输入的重定向 URL 是相同的。格式为:
https://your_server_url.com/auth/add_oauth_token
例如,https://example.com/auth/add_oauth_token

选项 1:使用 TSM 为 Snowflake 连接配置 OAuth

当您需要同时更新多个站点时,我们建议使用此选项。

注意:此配置选项不能在 Tableau Cloud 上使用。

  1. (版本 2024.1 及更低版本)在 Tableau Server 计算机上,运行以下命令以启用 Snowflake OAuth 服务:

    tsm configuration set -k native_api.enable_snowflake_privatelink_on_server -v true

    注意:对于版本 2024.2 及更新版本,无论是否使用 Snowflake 私有连接,都跳过步骤 1。

  2. 在文本编辑器中复制、粘贴和自定义以下命令:

    注意:如果在 Tableau Server 2021.1 及更高版本中进行这些配置更改,请注意,oauth.snowflake.client 值的格式已经更改。

    tsm configuration set -k oauth.snowflake.clients -v " [{\"oauth.snowflake.instance_url\":\"https://account.snowflakecomputing.com\", \"oauth.snowflake.client_id\":\"client_id_string\", \"oauth.snowflake.client_secret\":\"client_secret_string\", \"oauth.snowflake.redirect_uri\":\"http://your_server_url.com/auth/add_oauth_token\" }]"

    oauth.snowflake.clients 密钥采用密钥对数组。密钥对中的每个元素都必须用双引号封装。双引号必须转义为 \"

    若要指定多个帐户实例 URL,请使用逗号 (,) 将每个额外的用大括号 ({}) 括起来的 OAuth 客户端分隔开,如下例所示:

    tsm configuration set -k oauth.snowflake.clients -v " [{\"oauth.snowflake.instance_url\":\"https://account.snowflakecomputing.com\",\"oauth.snowflake.client_id\":\"client_id_string1\",\"oauth.snowflake.client_secret\":\"client_secret_string1\",\"oauth.snowflake.redirect_uri\":\"http://your_server_url.com/auth/add_oauth_token\" },{\"oauth.snowflake.instance_url\":\"https://account2.snowflakecomputing.com\",\"oauth.snowflake.client_id\":\"client_id_string2\",\"oauth.snowflake.client_secret\":\"client_secret_string2\",\"oauth.snowflake.redirect_uri\":\"http://your_server_url.com/auth/add_oauth_token\" }]"

    替换每个密钥的值:

    • 帐户实例 URL:oauth.snowflake.instance_url
    • 客户端 ID:oauth.snowflake.client_id
    • 客户端密码:oauth.snowflake.client_secret
    • 重定向 URL:oauth.snowflake.redirect_uri

    注意:在运行命令之前,请仔细验证语法。TSM 不会验证此输入。

    将命令复制到 TSM CLI 并运行该命令。

  3. 输入以下命令以应用更改:

    tsm pending-changes apply

    如果待定更改需要重新启动服务器,pending-changes apply 命令将显示一个提示,告知您将进行重新启动。即使服务器已停止,此提示也会显示,但在这种情况下不会重新启动。您可以使用 --ignore-prompt 选项隐藏提示,但这样做不会改变重新启动行为。如果更改不需要重新启动,则会在不提示的情况下应用更改。有关详细信息,请参见tsm pending-changes apply

选项 2:按站点为 Snowflake 连接配置 OAuth

注意:从版本 2024.2 开始,此选项也适用于 Tableau Cloud

您可以使用 Tableau Server UI 在站点级别配置自定义 Snowflake OAuth 客户端。

考虑将自定义 OAuth 客户端配置为 1) 覆盖 OAuth 客户端(如果为服务器配置)或 2) 支持安全连接到需要唯一 OAuth 客户端的数据。

配置自定义 OAuth 客户端时,站点级别配置优先于任何服务器端配置,并且默认情况下创建的所有新 OAuth 凭据都使用站点级别 OAuth 客户端。无需重新启动 Tableau Server 即可使配置生效。

重要信息:在配置自定义 OAuth 客户端之前建立的现有 OAuth 凭据暂时可用,但服务器管理员和用户都必须更新他们保存的凭据以帮助确保不间断的数据访问。

1:准备 OAuth 客户端 ID、客户端密文和重定向 URL

在配置自定义 OAuth 客户端之前,您需要下列信息。准备好这些信息后,您可以为站点注册自定义 OAuth 客户端。有关详细信息,请参见上面的“向 Snowflake 注册 OAuth 客户端”

  • OAuth 客户端 ID 和客户端密码:首先向数据提供程序(连接器)注册 OAuth 客户端,以检索为 Tableau Server 生成的客户端 ID 和密码。

  • 重定向 URL:注意正确的重定向 URL。在下面步骤 2 的注册过程中,您将需要此 URL。

    Https://<您的服务器名称>.com/auth/add_oauth_token

    例如,https://example.com/auth/add_oauth_token

2:注册 OAuth 客户端 ID 和客户端密文

按照下面描述的过程将自定义 OAuth 客户端注册到站点。

  1. (版本 2024.1 及更低版本)在 Tableau Server 计算机上,运行以下命令以启用 Snowflake OAuth 服务:

    tsm configuration set -k native_api.enable_snowflake_privatelink_on_server -v true

    注意:对于版本 2024.2 及更新版本,无论是否使用 Snowflake 私有连接,都跳过步骤 1。

  2. 使用管理员凭据登录到 Tableau Server 站点,并导航到“设置”页面。

  3. 在“OAuth 客户端注册”下,单击“添加 OAuth 客户端”按钮。

  4. 输入所需信息,包括上述步骤 1 中的信息:

    1. 对于“连接类型”,选择要配置其自定义 OAuth 客户端的连接器。

    2. 如果注册多个 OAuth 客户端,则“OAuth 实例 URL”为必填。否则,它是可选的。

    3. 对于“客户端 ID”“客户端密码”“重定向 URL”,输入您在上面的步骤 1 中准备的信息。

    4. 单击“添加 OAuth 客户端”按钮以完成注册过程。

  5. (可选)对所有支持的连接器重复步骤 3。

  6. 单击“设置”页面底部或顶部的“保存”按钮以保存更改。

3:验证和更新保存的凭据

为帮助确保不间断的数据访问,您(和您的站点用户)必须删除之前保存的凭据并再次添加,以便为站点使用自定义 OAuth 客户端。

  1. 导航到“我的帐户设置”页面。

  2. “保存的数据源凭据”下,执行以下操作:

    1. 单击您在上述步骤 2 中配置的自定义 OAuth 客户端的连接器的现有已保存凭据旁边的“删除”

    2. 在连接器名称旁边,单击“添加”并按照提示进行操作以 1) 连接到在上述步骤 2 中配置的自定义 OAuth 客户端,以及 2) 保存最新的凭据。

4:通知用户更新他们保存的凭据

确保通知您的站点用户更新他们为连接器保存的凭据,该连接器的自定义 OAuth 客户端是您在上面的步骤 2 中配置的。站点用户可以使用更新保存的凭据描述的过程来更新他们保存的凭据。

用于 OAuth 身份验证的转发代理

有关为 Tableau Server(仅限 Windows)设置具有 OAuth 身份验证的转向代理的详细信息,请参见 Tableau 帮助中的为 OAuth 身份验证配置转发代理(链接在新窗口中打开)

感谢您的反馈!您的反馈已成功提交。谢谢!