在 Okta 中创建 ThingWorx 的 App 集成
SAML
1. 登录 Okta Admin Console。
2. 导航至 > 。单击 Create App Integration。
3. 在 Create a new application integration 窗口中,选择 SAML 2.0 作为 Sign-in method,然后单击 Next:
4. 在 Create SAML Integration 页面的 General Settings 选项卡上,输入以下信息,然后单击 Next。
◦ App name - 为应用指定一个名称 (例如,ThingworxSAML)
◦ App logo - (可选) 为应用添加徽标
◦ App visibility - 选择是否向用户显示应用图标
5. 在 Configure SAML 选项卡上,输入和选择以下信息:
◦ Single Sign On URL - 输入 http://<ThingWorx FQDN>:<port>/Thingworx/saml/SSO
| 选中 Use this for Recipient URL and Destination URL 复选框。 |
◦ Audience URI (SP Entry ID) - 输入 ThingWorxSP
◦ Default RelayState - 留空
◦ Name ID format - 选择 Unspecified
◦ Application username - 选择 Okta username
◦ Update application username on - 选择 Create and update
6. 仍在 Configure SAML 选项卡上,向下滚动到 ATTRIBUTE STATEMENTS。
7. 在 Name 字段中输入 user.firstName,对于 Name format 保留 Unspecified,对于 Value 选择 user.firstName。单击 Add Another。
8. 在新的属性语句字段集内,输入 user.email - 在 Name 字段中,对于 Name format 保留 Unspecified,对于 Value 选择 user.email。
9. 在 Group Attribute Statements (optional) 下,在 Name 字段中输入 role,对于 Name format 保留 Unspecified,对于 Starts with 输入 gr。
10. 单击 Next。在 Feedback 选项卡上,单击 Finish。
11. 您的应用集成创建完毕,将前往新应用的 Sign On 选项卡。
12. 在 Sign On 选项卡上,单击 Metadata URL 下的 Copy,将其粘贴到新的浏览器选项卡中。显示文件内容时,右键单击页面,根据您所使用的浏览器选择 Save As 或 Save Page As。如果使用 Chrome 或 Edge,则文件将以 XML 文件格式下载。
| 直接复制和粘贴输出会产生格式问题,因此请务必使用 Save As。 |
13. 导航至系统上的 ThingworxPlatform 文件夹,打开 platform-settings.json 文件,确保如下指定下列值。
14. 在系统上的同一 ThingworxPlatform 文件夹中,打开 ssoSecurityConfig 文件夹,然后打开 sso-settings.json 文件。确保在 BasicSettings 下进行以下配置:
◦ idpMetadataFilePath - 指定您在步骤 11 中复制的 metadata_okta.xml 文件的路径。
◦ metadataEntityId - 在 Okta 中,从应用程序的 General 选项卡的 SAML Settings 部分,输入 Audience Restriction 字段的值 (如步骤 4 中所示)。
◦ samlAssertionUserNameAttributeName - 输入您 (在步骤 8 中) 创建的属性语句中的 user.email 名称。
15. 仍在 sso-settings.json 文件中,确保 ApplicationKeySettings 下的 enabled 参数设置为 true。
16. 接下来,在 sso-settings.json 文件中,滚动至 KeyManagerSettings,确保指定以下内容:
17. 保存并关闭 sso-settings.json 文件。
18. 重新启动 ThingWorx。
19. 使用适当的登录凭据,以管理员身份登录到 ThingWorx Composer,验证 Okta 身份验证已正确配置。
20. 成功登录后,导航至 ThingworxSSOAuthenticator 的“配置”选项卡,对于您在步骤 9 中创建的组属性,在“组”中输入 role。
| 如果登录尝试失败并显示 403 App Not Assigned 错误,请在 Okta 中将用户分配到 ThingWorx 应用程序,然后重试登录。 |
OAuth 2.0
1. 登录 Okta Admin Console。
2. 导航至 > 。
3. 在 Create App Integration 窗口中,选择 OIDC – OpenID Connect。选择此选项后,将显示 Application type 部分。选择 Web Application,然后单击 Next。
4. 在 General Settings 下,输入以下信息,然后单击 Save。
◦ App name - 为应用指定一个名称 (例如,ThingworxResourceProvider)
◦ Logo - (可选) 为应用添加徽标
◦ Proof of possession - 选择是否要求在令牌请求中提供持有证明令牌 (DPoP) 标头
◦ Grant type - 默认情况下,在 Client acting on behalf of a user 下选中 Authorization Code 复选框
◦ Sign-in redirect URIs - 输入登录重定向 URI。例如,http://localhost:8515/Thingworx/oauth2_authorization_code_redirect
◦ Assignments - 选择 Skip group assignments for now
5. 接下来,导航至 > 。在 Authorization Servers 选项卡上,单击 default。
6. 在 Scopes 选项卡上,单击 Add Scope。将 scope 命名为 THINGWORX,然后单击 Create。
8. 导航至系统上的 ThingworxPlatform 文件夹,然后打开 resourceServerSettings.json 文件。指定以下值:
属性 | 值 |
userAuthenticationConverterUserNameAttribute | sub 此值是在 Okta 中的 default 授权服务器上创建的声明的名称。要查找此值,请导航至 > > > > 。 |
oathTokenEndPoint | 此值与 Metadata URL 中 token_endpoint 的值相同。要查找此值,请打开 Okta Admin Console,导航至 > > > > 。单击 Metadata URI 并查找 token_endpoint 值。其格式如下: https://<唯一的服务器名称>.okta.com/oauth2/default/v1/token |
checkTokenEndpointUrl | 此值与 Metadata URL 中 introspection_endpoint 的值相同。要查找此值,请打开 Okta Admin Console,导航至 > > > > 。单击 Metadata URI 并查找 introspection_endpoint 值。其格式如下: https://<唯一的服务器名称>.okta.com/oauth2/default/v1/introspect |
clientId | 这与 Okta 中 ThingworxResourceProvider 应用程序的 Client ID 字段的值相同。 要查找此值,请打开 Okta Admin Console,在左侧导航窗格中,导航至 > 。单击 ThingworxResourceProvider 应用程序。在 General 选项卡上,找到 Client Credentials 下的 Client ID 字段。 |
clientSecret | 这与 Okta 中 ThingworxResourceProvider 应用程序的 Client secret 字段的值相同。 要查找此值,请打开 Okta Admin Console,单击左侧导航面板中的 Applications。单击 ThingworxResourceProvider 应用程序。在 General 选项卡上,在 Client Credentials 下找到 CLIENT SECRETS 部分。 |