|
如果已在配置为 SSO 的 ThingWorx Foundation 实例上安装 ,则必须先停止所有 ThingWorx Foundation 和 服务 (包括 RabbitMQ 和 Nginx),然后再配置 sso-settings.json 文件。配置此文件后,必须先重新启动 RabbitMQ,然后再重新启动所有 ThingWorx Foundation 和 服务,包括 Nginx。
|
|
务必按照要求对每个参数的值进行编辑。您的实施可能会有所不同,具体取决于多个因素,例如 ThingWorx 的托管位置、您组织的安全策略以及联合的 CAS。根据下表中的信息来设置不同参数的值。
|
参数
|
说明
|
值
|
||
---|---|---|---|---|
clientBaseUrl
|
指定 ThingWorx 服务器实例的 URL。
将其设置为 ThingWorx 服务器的完全限定域名。
如果已安装 ,则请指定 NGINX URL。
|
http://<主机名>:<port-number>/Thingworx
或
https://<ThingWorx Flow Nginx 主机名>:<ThingWorx Flow Nginx 端口号>/Thingworx
|
||
idpMetadataFilePath
|
指定 IdP 元数据文件的绝对文件路径位置。
|
/ThingworxPlatform/ssoSecurityConfig/sso-idp-metadata.xml
|
||
metadataEntityId
|
指定服务提供者连接的实体 ID。
这是您在 PingFederate 中配置服务提供工具连接时所选择的唯一 ID。
|
—
|
||
metadataEntityBaseUrl
|
指定 ThingWorx 服务器的完全限定域名。此值与 ThingWorx 浏览器 URL 相同。
如果已安装 ,则请指定 NGINX URL。
|
http://<主机名>:<port-number>/Thingworx
或
https://<ThingWorx Flow Nginx 主机名>:<ThingWorx Flow Nginx 端口号>/Thingworx
|
||
webSSOProfileConsumerResponseSkew
|
指定 SAML 2.0 WebSSO Assertion Consumer 响应偏差容限。
设置此值时,请考虑您自己的安全需求以及企业网络中的延迟情况。
使用此设置可确定从 CAS 返回到 ThingWorx 的登录请求响应所允许的时间 (以秒为单位)。如果登录请求响应比此置花费的时间更长,则登录将失败。
偏差容限是接收人所允许的响应有效性偏差范围,造成偏差的原因是各系统时钟之间可能存在的差异。最好确保所涉及的每个系统时钟均能正确同步以最大限度地减小偏差影响。
|
300
|
||
webSSOProfileConsumerReleaseDOM
|
确定安全框架在身份验证完成后是否保留 SAML 断言。
如果设置为 false,则在身份验证完成后会保持 SAML 断言。
|
true
|
||
webSSOProfileResponseSkew
|
指定 SAML 2.0 Web SSO 配置文件响应偏差容限。
设置此值时,请考虑您自己的安全需求以及企业网络中的延迟情况。
偏差容限是接收人所允许的响应有效性偏差范围,造成偏差的原因是各系统时钟之间可能存在的差异。最好确保所涉及的每个系统时钟均能正确同步以最大限度地减小偏差影响。
|
300
|
||
retriggerOnScopesRemoval
|
指定所需范围的列表是否已更改且必须刷新。
如果将值设置为 true,则表示已从所需范围的列表中添加或移除范围。
如果将值设置为 false,则表示范围已添加到所需范围的列表中。
|
true
|
||
samlAssertionUserNameAttributeName
|
指定 ThingWorx 用户登录时哪个 SAML 属性具有存储用户名的值。确保标识提供工具中该属性的值与您使用的 ThingWorx 用户名的值一致。
|
uid
|
||
samlAssertionMaxAuthenticationAge
|
指定过期之前 SAML 2.0 断言的最大时长 (以秒为单位)。这也指定了身份验证断言的最长会话时间。
该值在设置后应与标识提供工具中所指定的会话超时值相匹配。
|
7200 seconds
|
||
authnContextAsPassword
|
可选。在少数情况下,IdP 会要求您将下一个声明放入 SAML 请求中。
<saml2p:RequestedAuthnContext Comparison="exact">
<saml2:AuthnContextClassRef xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">urn:oasis:names:tc:SAML:2.0:ac:classes:Password</saml2:AuthnContextClassRef> </saml2p:RequestedAuthnContext> 在上述情况下,应定义此属性。
|
true
|
|
如果您想要在启用 SSO 的情况下启用应用程序密钥身份验证器,则必须将以下 ApplicationKeySettings 配置部分添加到 BasicSettings 下的 sso-settings.json 设置中。只有当您想要通过 REST API 请求使用
应用程序密钥进行身份验证时,才需要执行此操作。无论该设置处于启用还是禁用状态,均可以通过 WebSocket 从 Edge 设备使用应用程序密钥。
{
"BasicSettings": { ... }, "ApplicationKeySettings": { "enabled": true }, ... } |
参数
|
说明
|
值
|
||
---|---|---|---|---|
dbType
|
指定配置并用于 ThingWorx 安装的数据库类型。
• 要使用在 platform-settings.json 文件中设置的相同数据库,请指定在 platform-settings.json 中设置的相同数据库类型和凭据。
• 要将专用数据库用于授权令牌,请指定“默认”值。配置为“默认”后,即会创建新的专用 H2 数据库。
|
默认
|
||
H2
|
||||
postgres
|
||||
mssql
|
||||
hana
|
||||
driverClassName
|
指定您在 platform-settings.json 文件中使用的驱动类名称。
|
对于设置为 default 的 dbType,可设置为 org.h2.Driver。
|
||
对于设置为 h2 的 dbType,可设置为 org.h2.Driver。
|
||||
对于设置为 postgres 的 dbType,可设置为 org.postgresql.Driver。
|
||||
对于设置为 mssql 的 dbType,可设置为 com.microsoft.sqlserver.jdbc.SQLServerDriver。
|
||||
对于设置为 hana 的 dbType,可设置为 com.sap.db.jdbc.Driver
|
||||
url
|
指定您安装 ThingWorx 的数据库位置的 URL。
|
对于设置为 default 的 dbType,可设置为 jdbc:h2:\\<驱动器>:\\ThingworxPlatform\\ssoSecurityConfig\\sso-oauth2-client-db。
|
||
对于设置为 h2 的 dbType,无需设置此参数。
|
||||
对于设置为 postgres 的 dbType,可设置为 jdbc:postgresql://<主机名>:<端口>/thingworx。
|
||||
对于设置为 mssql 的 dbType,可设置为 jdbc:sqlserver://<主机名>:<端口>;databaseName=thingworx;applicationName=Thingworx。
|
||||
对于设置为 hana 的 dbType,可设置为 jdbc:sap://<IP 地址>:39041/?databaseName=thingworx¤tschema=TWADMIN。
|
||||
username
|
指定您的系统用于存储访问令牌的数据库用户名。此用户名应该与您在 platform-settings.json 文件中指定的用户名相匹配。
|
—
|
||
password
|
指定您的系统用于存储访问令牌的数据库密码。此密码应该与您在 platform-settings.json 文件中指定的密码相匹配。
|
—
|
||
encryptTokenInDatabase
|
设置为 true 以在将访问令牌持久保留在数据库之前对其进行加密。
|
true
|
||
keyczarKeyFolderPath
|
如果将 encryptTokenInDatabase 参数值设置为 true,则该路径必须指向有效的 keyCzarKey 位置。修改此路径以使用您的 ThingworxPlatform\ssoSecurityConfig\symmetric 文件夹所在的目录。
|
对于 Windows:<drive>:\\ThingworxPlatform\\ssoSecurityConfig\\symmetric
其中 <驱动器> 指定安装有 ThingWorx 的驱动器。
对于 Linux:\\ThingworxPlatform\\ssoSecurityConfig\\symmetric
|
dbType
|
数据库中用于存储授权批准的位置
|
---|---|
default
|
按照 url 参数路径的指定创建子集 H2 数据库。默认情况下,数据库位于 Tomcat 目录的相对目录中。
如果将 dbType 设置为 default,建议您指定 JDBC URL 的完全限定路径,而不只是相对路径。
例如:jdbc:h2:./ThingworxPlatform/ssoSecurityConfig/sso-oauth2-client-db
|
H2
|
ThingworxStorage/database H2 数据库文件中的 H2 ThingWorx war 文件。
|
postgres
|
在 ThingWorx PostgreSQL 数据库中的 Oauth_client_token 表中。
|
mssql
|
在 ThingWorx MS SQL 数据库中的 Oauth_client_token 表中。
|
hana
|
在 ThingWorx SAP HANA 数据库中的 Oauth_client_token 表中。
|
参数
|
说明
|
值
|
||
---|---|---|---|---|
keyStoreFilePath
|
指定密钥库的绝对文件路径位置。根据您的环境,修改路径以使用保存密钥库文件的目录。
|
对于 Windows:<驱动器>:\\ThingworxPlatform\\ssoSecurityConfig\\sso-keystore.jks
其中 <驱动器> 指定安装有 ThingWorx 的驱动器。
对于 Linux:\\ThingworxPlatform\\ssoSecurityConfig\\sso-keystore.jks
|
||
keyStoreStorePass
|
指定密钥库密码。
|
—
|
||
keyStoreKey
|
指定默认密钥。
|
—
|
||
keyStoreKeyPass
|
指定用于访问私人密钥的密码。
|
—
|
|
AuthorizationServersSettings 设置可包含不止一个身份验证服务器的信息。每个服务器在 sso settings.json 文件中采用唯一标识符进行标识。
|
参数
|
说明
|
值
|
||
---|---|---|---|---|
<AuthorizationServerId1>.clientId
|
指定从身份验证服务器获取访问令牌时使用的客户端标识符。
|
—
|
||
<AuthorizationServerId1>.clientSecret
|
指定用于通过身份验证服务器进行身份验证的客户端凭据。
设置为网络上的完全限定域名服务器 URL。
|
—
|
||
<AuthorizationServerId1>.authorizeUri
|
指定授权访问令牌时作为用户重定向目标的 URI
|
https://<PingFederate-host-name>:<PingFederate-Port-Number>/as/authorization.oauth2
|
||
<AuthorizationServerId1>.tokenUri
|
指定用于获取 OAuth2 访问令牌的 URI
设置为网络上的完全限定域名服务器 URL。
|
https://<PingFederate-host-name>:<PingFederate-Port-Number>/as/token.oauth2
|
||
<AuthorizationServerId1>.clientAuthScheme
|
指定用于验证客户端的方案。允许的值包括:
• form
• header
• 查询
• 无
|
form
|