使用身份提供程序 (OAuth2) 进行身份验证以访问外部系统
在访问某些外部系统(例如带有连接器的数据或地图中的 WMS 服务器)时,Spotfire 支持使用您自己的身份提供程序(例如 Okta、Keycloak 或 Google)进行身份验证。
配置 Spotfire 环境后,您可以使用相同的身份提供程序对多个不同的外部系统进行身份验证。如果您在 Spotfire 环境中使用相同的身份提供程序进行身份验证,您甚至可以启用完整的单点登录体验。
按照以下步骤配置您的 Spotfire 环境,以便用户在访问外部系统时可以使用身份提供程序登录。
准备工作
以下是在您开始之前需要了解的先决条件和其他重要信息。
先决条件
- 您的身份提供程序使用以下协议之一:
- OAuth2
- OpenID Connect
- 您已将要从中访问数据的外部系统配置为使用您的身份提供程序进行身份验证。
- 您已针对 Spotfire 向您的身份提供程序注册了客户端应用程序,包括一个机密客户端应用程序和一个公共客户端应用程序。安装了 Spotfire 的客户端需要公共客户端应用程序,Spotfire Server 和 Spotfire Web 客户端需要机密客户端。
我的身份提供程序是否受支持?
Spotfire 对使用身份提供程序进行身份验证的支持是通用的,并不是针对任何特定的身份提供程序解决方案定制的。一个重要的先决条件是身份提供程序受外部数据源支持。
以下是有关 Spotfire 实施的详细信息,可帮助您了解对身份提供程序的要求和限制:
- 身份提供程序必须公开 OAuth2 或 OpenID Connect 授权服务器,而 Spotfire 使用授权代码授予流程从授权服务器获取访问令牌。
- Spotfire 不支持在授权请求中添加自定义标头
- Spotfire 不支持在授权请求中添加自定义查询参数
将 Spotfire 配置为使用身份提供程序访问外部系统
要使用身份提供程序从 Spotfire 登录到外部系统,必须添加有关您的身份提供程序的详细信息。
Spotfire 配置中有两个位置必须添加您的身份提供程序信息:在 Spotfire Server 上的 OpenID Connect 设置中,可以使用您的机密客户端应用程序详细信息;以及在管理器中的偏好“OAuth2IdentityProviders
”中,可以使用您的公共客户端应用程序详细信息。请务必配置这两个设置,以便您在 Spotfire Web 客户端和安装了 Spotfire 的客户端中均能登录并访问数据。
概括来讲,必须执行以下步骤才能完成配置:
- 收集有关身份提供程序和 Spotfire 客户端应用程序的信息。
- 将您的身份提供程序添加到 Spotfire Server,并提供机密客户端应用程序详细信息。
- 将您的身份提供程序添加到“
OAuth2IdentityProviders
”偏好,并提供公共客户端应用程序详细信息。 - 使用身份提供程序对外部系统进行身份验证。
- 在 Web 浏览器中,转到 Spotfire Server,然后登录。
- 转到库。在左侧导航面板中,单击您的用户名。
- 在“我的帐户”页面上,转到“管理登录信息”选项卡。
当您通过单击此处的“注销”来撤销访问权限时,您还必须从 Web 客户端注销才能使更改生效,因为令牌缓存在 Web 客户端会话中。
1.收集有关身份提供程序的信息
在开始之前,请收集有关您的身份提供程序的以下信息:
- 它使用什么协议:OpenID Connect 还是 OAuth2?
- 签发者标识符 URL。
- 有关您已针对 Spotfire 向身份提供程序注册的客户端应用程序的详细信息;客户端 ID 和客户端密钥(如果适用)。
- 访问外部系统中数据所需的权限作用域。
根据您的身份提供程序,可能需要其他详细信息。有关所有可用设置的信息,请参见有关表 12 中的“OAuth2IdentityProviders
”偏好的参考文档。
2.在 Spotfire Server 上添加身份提供程序
为了能够使用单点登录,并且能够在 Spotfire Web 客户端中使用您的数据连接,必须将您的身份提供程序和机密客户端应用程序信息添加到 Spotfire Server。根据用例,您有两种选择:
- 要使用身份提供程序在 Spotfire Server 上进行身份验证以及访问外部系统,请将身份提供程序添加到 Spotfire Server 上的 OpenID Connect 设置。请参见配置 OpenID Connect。
- 要使用身份提供程序仅对访问外部系统进行身份验证,请使用 config-oauth-client 命令将身份提供程序添加到 Spotfire Server。
3.将您的身份提供程序添加到 OAuth2IdentityProviders 偏好
- 启动已安装的 Spotfire 客户端,并以具有管理员权限的用户身份登录。
- 在菜单栏上,选择“工具”>“管理器”
- 在“管理器”对话框的“偏好”选项卡上,单击以选择要为其编辑偏好的用户组。
- 在“偏好”选项卡上,单击“编辑”。
- 在“编辑偏好”对话框中,导航到偏好“应用程序”>“OAuth2Preferences”>“OAuth2IdentityProviders”。
- 要编辑“OAuth2IdentityProviders”偏好,请选择该偏好并单击编辑按钮 [...]。
- 在“字符串集合编辑器”对话框中,将您的身份提供程序和公共客户端详细信息添加为 JSON 对象。重要: 仅在此处使用身份提供程序的公共客户端应用程序,不要使用机密客户端应用程序。您可以将详细信息添加到下面的示例中,其中包含常用设置:
[ { type: "<OAuth2 or OpenId>", displayName: "<My Identity Provider>", issuer: "<https:\\issuer1.example.com>", publicClient: { id: "<Client name or ID>", redirectUrl: "<redirect-url>", redirectPorts: "<port-number>" }, defaultScope: "<myScope>" } ]
- 要保存更改,请单击“确定”。
4.使用身份提供程序对外部系统进行身份验证
与身份提供程序建立数据连接以进行身份验证
要在数据连接中使用您的身份提供程序进行身份验证,请创建新的数据连接或连接数据源并选择身份验证方法“身份提供程序 (OAuth2)”。您可以在“身份提供程序”下拉菜单中选择您的身份提供程序(以其显示名称在“OAuth2IdentityProviders
”偏好中列出)。
使用身份提供程序进行外部库的身份验证
某些连接器支持使用身份提供程序进行身份验证和配置外部库。在这种情况下,您可以使用已添加到 Spotfire 的身份提供程序来登录外部库。
在外部库配置中设置外部库时,添加以下设置:
authenticationMethod = "OAuth2"
issuer = "[Issuer URL of your Identity Provider]"
有关详细信息,请参见为 TIBCO Data Virtualization 配置外部库。
使用身份提供程序进行身份验证以向地图添加 WMS 图层
在向地图添加 WMS 图层时,您可以选择“身份提供程序(OAuth2)”对 WMS 服务器进行身份验证。有关详细说明请参见添加 WMS 图层。