为 Oauth 和现代身份验证配置 Azure AD

Azure Synapse、Azure SQL Database、Azure Databricks、Azure Data Lake Gen2、OneDrive 和 SharePoint Online 以及 SharePoint 列表 (JDBC) 连接器通过为 Tableau Server 配置 OAuth 客户端来支持通过 Azure AD 进行身份验证。

注意:OAuth 对 Azure AD 的支持仅支持 Microsoft SQLServer 驱动程序 17.3(链接在新窗口中打开)及更高版本。

步骤 1:为 Azure 注册 OAuth 客户端

按照以下步骤在特定 Azure 租户下为 Azure 注册和配置 OAuth 应用程序。

  1. 登录到 Azure 门户
  2. 如果您能够访问多个租户,请选择要注册应用程序的租户。
  3. 搜索并选择“Azure Active Directory”
  4. “Manage”(管理)下,选择“App registrations”(应用程序注册),然后选择“New registration”(新注册)
  5. 输入“Tableau Server OAuth”或与“Name”(名称)类似的值。
  6. 在应用程序注册页面的“Supported account types”(支持的帐户类型)字段下,选择谁可以使用此应用程序。
  7. 注意:如果您想将应用程序的客户端 ID 和客户端密文用于不同租户下的帐户,选择第二个选项(多租户)。

  8. “重定向 Uri (可选)”字段下,选择“Web” ,然后输入附加字符串的服务器的 Internet 地址,/auth/add_oauth_token
  9. 例如:https://your_server_url.com/auth/add_oauth_token

  10. 选择“Register”(注册)。注册完成后,Azure 门户会显示应用程序注册的“Overview”(概览)窗格,其中包括其应用程序(客户端)ID。此值也称为客户端 ID,在 Microsoft 身份平台中唯一标识您的应用程序。
  11. 复制该值,它将用作以下步骤中的 [your_client_id] 字段。
  12. 选择左侧栏中的“Certificates & secrets”(认证和密文),然后选择“New client secret”(新客户端密文)
  13. 添加密文的描述。
  14. 选择“Client secret lifetime”(客户端密文生命周期)
  15. 选择“Add”(添加),然将复制密文。该密文将用作以下步骤中的 [your_client_secret]
  16. 在左侧栏中选择“API permissions”(API 权限)
  17. 选择“Add permissions”(添加权限)。
  18. 选择“Microsoft Graph”
  19. 选择“Delegated permissions”(委派权限)
  20. “Select permissions”(选择权限)下,选择所有 OpenId 权限(email、offline_access、openid 和 profile)。
  21. 选择“Add permissions”(添加权限)。
  22. 添加附加权限。对于您要启用的连接器,请执行以下步骤:
    • Azure SQL Database
      1. 单击“Add a permission”(添加权限)
      2. 选择“My APIs”(我的 API)
      3. 单击“Azure SQL Database”,然后选择“Delegated permissions”(委派权限)
      4. 选择“user_impersonation”,然后单击“添加权限”
    • OneDrive 和 SharePoint Online
      1. 单击“Add a permission”(添加权限)
      2. 选择“Microsoft Graph”
      3. 单击“Delegated permissions”(委派权限)
      4. “选择权限”下的筛选器搜索框中,输入并添加以下权限:
      • Files.Read.All
      • Sites.Read.All
      • User.Read
    • SharePoint 列表 (JDBC)
      1. 单击“Add a permission”(添加权限)
      2. 选择“Microsoft Graph”
      3. 单击“Delegated permissions”(委派权限)
      4. “Select permissions”(选择权限)下的筛选器搜索框中,输入并添加“User.Read”权限。
      5. 再次单击“Add a permission”(添加权限)
      6. 选择“SharePoint”
      7. 单击“Delegated permissions”(委派权限)
      8. 展开“AllSites”部分,然后选择并添加“AllSites.Manage”权限。

步骤 2:针对 Azure 配置 Tableau Server

配置 Tableau Server 需要运行 Tableau Server Manager (TSM) 命令。Azure Data Lake Storage Gen2 需要一组与为 Azure Synapse、Azure SQL Database 或 Databricks 运行的通用命令不同的命令。

为 Azure Data Lake Storage Gen2 配置默认 OAuth 客户端

若要针对 Data Lake Storage Gen2 配置 Tableau Server,您必须具有以下配置参数:

  • Azure OAuth 客户端 Id:客户端 ID 是通过步骤 1 中的程序生成的。在第一个 tsm 命令中复制 [your_client_id] 的此值。
  • Azure OAuth 客户端密文:客户端密文是通过步骤 1 中的程序生成的。在第二个 tsm 命令中复制 [your_client_secret] 的此值。
  • Tableau Server URL:输入您的 Tableau Server URL,例如 https://myco.com。在第三个 tsm 命令中复制 [your_server_url] 的此值。

运行以下 tsm 命令,针对 Azure Data Lake Storage Gen2 配置 Tableau Server OAuth:

  • tsm configuration set -k oauth.azuredatalake_storage_gen2.client_id -v [your_client_id] --force-keys
  • tsm configuration set -k oauth.azuredatalake_storage_gen2.client_secret -v [your_client_secret] --force-keys
  • tsm configuration set -k oauth.azuredatalake_storage_gen2.redirect_uri -v http://[your_server_url]/auth/add_oauth_token --force-keys
  • tsm pending-changes apply

针对 Azure Synapse、Azure SQL Database 或 Databricks 配置默认客户端

若要配置 Tableau Server,您必须具有以下配置参数:

  • Azure OAuth 客户端 ID:通过步骤 1 中的程序生成。在 tsm 命令中复制 [your_client_id] 的此值。
  • Azure OAuthClient 秘文:通过步骤 1 中的程序生成。在第二个 tsm 命令中复制 [your_client_secret] 的此值。
  • Tableau Server URL:这是您的 Tableau Server URL,例如 https://myserver.com。在第三个 tsm 命令中复制 [your_server_url] 的此值。
  • 配置 ID:以下 tsm 命令中的 oauth.config.id 参数的值。有效值:
    • Azure Synapse:azure_sql_dw
    • Azure SQL Database:azure_sqldb
    • Databricks:databricks

运行以下 tsm 命令,针对 Azure Synapse、Azure SQL Database 或 Databricks 配置 Azure AD。例如,若要设置 Azure Synapse:

tsm configuration set -k oauth.config.clients -v "[{\"oauth.config.id\":\"azure_sql_dw\", \"oauth.config.client_id\":\"[your_client_id]\", \"oauth.config.client_secret\":\"[your_client_secret]\", \"oauth.config.redirect_uri\":\"[your_server_url]/auth/add_oauth_token\"}]" --force-keys

tsm pending-changes apply

为 OneDrive 和 SharePoint Online 配置默认 OAuth 客户端

若要针对 OneDrive 和 SharePoint Online 配置 Tableau Server,您必须具有以下配置参数:

  • Azure OAuth 客户端 ID:客户端 ID 是通过步骤 1 中的程序生成的。在第一个 tsm 命令中复制 [your_client_id] 的此值。
  • Azure OAuth 客户端密文:客户端密文是通过步骤 1 中的程序生成的。在第二个 tsm 命令中复制 [your_client_secret] 的此值。
  • Tableau Server URL:这是您的 Tableau Server URL,例如 https://myco.com。在第三个 tsm 命令中复制 [your_server_url] 的此值。

运行以下 tsm 命令,针对 OneDrive 和 SharePoint Online 配置 Tableau Server OAuth:

  • tsm configuration set -k oauth.onedrive_and_sharepoint_online.client_id -v [your_client_id] --force-keys
  • tsm configuration set -k oauth.onedrive_and_sharepoint_online.client_secret -v [your_client_secret] --force-keys
  • tsm configuration set -k oauth.onedrive_and_sharepoint_online.redirect_uri -v http://[your_server_url]/auth/add_oauth_token --force-keys
  • tsm pending-changes apply

为 Sharepoint 列表 (JDBC) 配置默认 OAuth 客户端

若要针对 Sharepoint 列表 (JDBC) 配置 Tableau Server,您必须具有以下配置参数:

  • Azure OAuth 客户端 ID:客户端 ID 是通过步骤 1 中的程序生成的。在第一个 tsm 命令中复制 [your_client_id] 的此值。
  • Azure OAuth 客户端密文:客户端密文是通过步骤 1 中的程序生成的。在第一个 tsm 命令中复制 [your_client_secret] 的此值。
  • Tableau Server URL:这是您的 Tableau Server URL,例如 https://myco.com。在第一个 tsm 命令中复制 [your_server_url] 的此值。

运行以下 tsm 命令,配置 Tableau Server OAuth SharePoint 列表 (JDBC):

  • tsm configuration set -k oauth.config.clients -v "[{\"oauth.config.id\":\"cdata_sharepoint\", \"oauth.config.client_id\":\"[your_client_id]\", \"oauth.config.client_secret\":\"[your_client_secret]\", \"oauth.config.redirect_uri\":\"[your_server_url]/auth/add_oauth_token\"}]" --force-keys
  • tsm pending-changes apply

为 OneDrive 配置默认 OAuth 客户端(已弃用)

若要针对 OneDrive 配置 Tableau Server(已弃用),您必须具有以下配置参数:

  • Azure OAuth 客户端 ID:客户端 ID 是通过步骤 1 中的程序生成的。在第一个 tsm 命令中复制 [your_client_id] 的此值。
  • Azure OAuth 客户端密文:客户端密文是通过步骤 1 中的程序生成的。在第二个 tsm 命令中复制 [your_client_secret] 的此值。
  • Tableau Server URL:这是您的 Tableau Server URL,例如 https://myco.com。在第三个 tsm 命令中复制 [your_server_url] 的此值。

若要继续运行以下 tsm 命令以针对 OneDrive 配置 Tableau Server OAuth(已弃用):

  • tsm configuration set -k oauth.onedrive.client_id -v [your_client_id] --force-keys
  • tsm configuration set -k oauth.onedrive.client_secret -v [your_client_secret] --force-keys
  • tsm configuration set -k oauth.onedrive.redirect_uri -v http://[your_server_url]/auth/add_oauth_token --force-keys
  • tsm pending-changes apply

服务器重新启动场景

配置默认 OAuth 客户端后,可能会出现以下情况。

  • 如果挂起的更改需要重新启动服务器,则会出现重新启动提示。
  • 您可以使用 --ignore-prompt 选项隐藏提示,但这样做不会停止重新启动。
  • 如果更改不需要重新启动,则会在不提示的情况下应用更改。有关详细信息,请参见 tsm pending-changes apply

设置多个连接器

如果您要设置多个连接器,则必须在单个命令中包括所有这些连接器。例如:

tsm configuration set -k oauth.config.clients -v "[{\"oauth.config.id\":\"azure_sql_dw\", \"oauth.config.client_id\":\"[your_client_id]\", \"oauth.config.client_secret\":\"[your_client_secret]\", \"oauth.config.redirect_uri\":\"[your_server_url]/auth/add_oauth_token\"}, {\"oauth.config.id\":\"azure_sqldb\", \"oauth.config.client_id\":\"[your_client_id]\", \"oauth.config.client_secret\":\"[your_client_secret]\", \"oauth.config.redirect_uri\":\"[your_server_url]/auth/add_oauth_token\"}, {\"oauth.config.id\":\"databricks\", \"oauth.config.client_id\":\"[your_client_id]\", \"oauth.config.client_secret\":\"[your_client_secret]\", \"oauth.config.redirect_uri\":\"[your_server_url]/auth/add_oauth_token\"}]" --force-keys

tsm pending-changes apply

为站点配置自定义 OAuth

可以为站点配置自定义 Azure Data Lake Storage Gen2、Azure Synapse、Azure SQL 数据库和 Databricks 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. 对于“客户端 ID”“客户端密码”“重定向 URL”,输入您在上面的步骤 1 中准备的信息。

    3. 单击“添加 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 身份验证配置转发代理(链接在新窗口中打开)

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