从 Tableau Server 配置 Azure Databricks 登录

本文描述了如何从 Tableau Server 配置 Azure Databricks 登录。 在你以 Azure Databricks 帐户管理员身份完成这个一次性配置后,用户可以通过 SSO 身份验证从 Tableau Server 进行连接。

Tableau Desktop 和 Tableau Cloud 不需要执行本文中的步骤,它们默认在 Azure Databricks 帐户中作为 OAuth 应用程序启用。

本文专门用于创建自定义 Tableau Server OAuth 应用程序。 有关通用的自定义 OAuth 应用程序创建步骤,请参阅以下内容:

开始之前

在配置 Azure Databricks 从 Tableau Server 登录之前:

还必须满足以下 Tableau 要求:

  • 安装的 Tableau Server 具有以下版本之一:
    • 2021.4.13 或更高版本
    • 2022.1.9 或更高版本
    • 2022.3.1 或更高版本
  • 你是 Tableau Server 管理员。

使用 Azure Databricks UI 将 Tableau Server 添加为 OAuth 应用程序

若要使用 Azure Databricks UI 将 Tableau Server 添加为 OAuth 应用程序,请执行以下作:

  1. 登录到帐户控制台,然后单击边栏中的“设置”图标。

  2. “应用连接 ”选项卡上,单击“ 添加连接”。

  3. 输入以下详细信息:

    1. 连接的名称。

    2. OAuth 连接的重定向 URL。

    3. 访问范围 确定 Tableau Server 应有权访问的 API。

      • 允许 Tableau 访问 Databricks SQL API 接口所需的 SQL 范围。
      • 范围 ALL APIs 允许 Tableau Server 出于查询以外的目的访问 Databricks API。

      将自动允许以下范围:

      • openidemailprofile:生成 ID 令牌所必需的。
      • offline_access:生成刷新令牌的必要条件。

      如果您不想允许 Tableau Server 使用这些范围,可以使用 POST /api/2.0/accounts/{account_id}/oauth2/custom-app-integrations API 来创建自定义应用程序,以便细化地管理这些范围。

    4. 是否生成客户端密码。 这是非公开(机密)的客户所必需的。

      “已创建连接”对话框显示连接的客户端 ID 和客户端密码(如果适用)。

    5. 访问令牌生存时间(TTL)以分钟为单位。 默认值:60

    6. 刷新令牌的有效期,以分钟为单位。 默认值:10080

  4. 单击 添加

  5. 如果选择了 “生成客户端密码”,请复制并安全地存储客户端密码。 你以后无法检索客户端密码。

可以通过在帐户控制台的 “设置>应用连接 ”页上单击应用程序名称来编辑 UI 中的重定向 URL、令牌 TTL 和刷新令牌 TTL。 还可以在 UI 中查看现有的已发布 OAuth 应用程序。

替代方法:使用 Azure Databricks CLI 将 Tableau Server 添加为 OAuth 应用程序

若要使用 Azure Databricks CLI 将 Tableau Server 作为 OAuth 应用程序添加到 Azure Databricks 帐户,请执行以下作:

  1. 找到帐户 ID

  2. 查找 Tableau Server URL。

  3. 运行以下命令:

    databricks account custom-app-integration create --confidential --json '{"name":"<name>", "redirect_urls":["<redirect-url>"], "scopes":["all-apis", "offline_access", "openid", "profile", "email"]}'
    
    • <name> 替换为自定义 OAuth 应用程序的名称。
    • 对于 <redirect-url>,请将 /auth/add_oauth_token 追加到 Tableau Server URL。 例如 https://example.tableauserver.com/auth/add_oauth_token

    有关受支持的值的详细信息,请参阅 REST API 参考中的 POST /api/2.0/accounts/{account_id}/oauth2/custom-app-integrations

    将生成客户端 ID 和客户端密码,并返回以下输出:

    {"integration_id":"<integration-id>","client_id":"<client-id>","client_secret":"<client-secret>"}
    

    备注

    启用 OAuth 应用程序可能需要 30 分钟的处理时间。

  4. 安全地存储客户端密码。

    重要

    你以后无法检索客户端密码。

在 Tableau Server 中配置 OAuth

要在 Tableau Server 中配置 OAuth,请执行以下操作:

  1. 以服务器管理员身份登录 Tableau Server。

  2. 在边栏中,单击“设置”>“OAuth 客户端注册表”>“添加 OAuth 客户端”。

  3. 选择“Databricks”作为“连接类型”。

  4. 对于 客户端 ID,输入 在 Alternative:使用 Azure Databricks CLI 将 Tableau Server 添加为 OAuth 应用程序时生成的客户端 ID。

  5. 对于 客户端密码,请输入在替代项中生成的客户端密码 :使用 Azure Databricks CLI 将 Tableau Server 添加为 OAuth 应用程序

  6. 对于 重定向 URL,请输入 “替代项”中的重定向 URL:使用 Azure Databricks CLI 将 Tableau Server 添加为 OAuth 应用程序

  7. 单击“添加 OAuth 客户端”。

排除 OAuth 配置故障

本节介绍如何解决 OAuth 配置的常见问题。

IdP 出现 404 错误

问题:尝试向 Tableau Server 进行身份验证时,会看到 404 错误。

原因:OAuth 配置错误。

解决方案:确保正确配置了 OAuth

后续步骤

用户现在可以使用 SSO 从 Tableau Server 向 Azure Databricks 进行身份验证。 请参阅连接 Tableau 和 Azure Databricks