配置和加载 OAuth
在为任何第三方服务或实用程序创建 OAuth 连接器之前,必须将其 OAuth 提供工具加载到 ThingWorx Flow 服务器中。ThingWorx Composer 中的 WorkflowSubsystem,其 LoadOAuthConfiguration 服务的 oauthConfigurations 参数提供了示例 OAuth 配置 JSON 文件模板。以下是对加载 OAuth 过程的高级概述:
1. 基于第三方系统创建应用程序。
2. 从应用程序中检索客户端 ID 客户端密码对,并将其添加到示例 OAuth 配置 JSON 文件中。添加 OAuth 配置所需的任何其他参数的值。
如果要移除任何第三方服务或实用程序的 OAuth 设置,则需要移除其整个 JSON 对象。例如,如果要移除 Gmail 的 OAuth 设置,则需移除以下 JSON 对象:
"google_gmail": {
"Gmail": {
"CLIENT_ID": "<Client ID>"
"CLIENT_SECRET": "<Secret>"
}
},
如果您已移除任何第三方服务或实用程序的 JSON 对象,并且希望在稍后添加其 OAuth 设置,则可从示例 OAuth 配置 JSON 文件模板中添加 JSON 代码片段,并提供 OAuth 配置所需的值。
* 
示例配置文件包含表示第三方服务或实用程序的连接器配置值。例如,对于 Gmail,请勿修改 JSON 对象中的 google_gmail。要为 Gmail 添加多个 OAuth 提供工具,例如 Gmail-1 和 Gmail-2,请将以下 JSON 对象添加到示例文件中:
{
"google_gmail": {
"Gmail-1": {
"CLIENT_ID": "<client id for Gmail - 1 account here>",
"CLIENT_SECRET": "<client secret for Gmail - 1 account here>"
},
"Gmail-2": {
"CLIENT_ID": "<client id for Gmail - 2 account here>",
"CLIENT_SECRET": "<client secret for Gmail - 2 account here>"
}
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
ThingWorx Flow 支持对下列服务和实用程序使用 OAuth:
Azure
Bitly
Box
Github
Gitlab
Gmail
HTTP
JIRA
OData
OSLC
SOAP
Slack
Trello
为服务和实用程序配置和加载 OAuth
Azure
每当想要为 Azure 应用程序添加 OAuth 提供工具时,请执行以下步骤:
1. 创建 Azure 应用程序
创建此应用程序时,请为下列参数设置适当的值:
API 权限 - Azure 服务管理。
重定向 URI - 以 https://<主机名:端口>/Thingworx/Oauths/oauth/return 格式输入 ThingWorx Flow 回调 URL。
2. 要为 Azure 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 Azure 应用程序检索值。
CLIENT_SECRET
客户端密码值。
从 Azure 应用程序检索值。
"azure": {
"Azure": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
Bitly
每当想要为 Bitly 应用程序添加 OAuth 提供工具时,请执行以下步骤:
1. 创建 Bitly 应用程序
创建此应用程序时,将重定向 URI 设置为采用 https://<主机名:端口>/Thingworx/Oauths/oauth/return 格式的 ThingWorx Flow 回调 URL。
2. 要为 Bitly 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 Bitly 应用程序检索值。
CLIENT_SECRET
客户端密码值。
从 Bitly 应用程序检索值。
"bitly": {
"Bitly": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
Box
每当想要为 Box 应用程序添加 OAuth 提供工具时,请执行以下步骤:
1. 创建 Box 应用程序
创建此应用程序时,请为下列参数设置适当的值:
应用程序作用域 - 选择所有作用域。
重定向 URI - 以 https://<主机名:端口>/Thingworx/Oauths/oauth/return 格式输入 ThingWorx Flow 回调 URL。
以下视频演示了启用 Box 连接器的 OAuth 配置所需的步骤:
2. 要为 Box 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 Box 应用程序中检索值。
CLIENT_SECRET
客户端密码值。
从 Box 应用程序中检索值。
"box": {
"Box": {
"CLIENT_SECRET": "client secret here>",
"CLIENT_ID": "<client id here>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
Dialogflow
要为 Dialogflow 应用程序添加 OAuth 提供工具,请始终遵循以下步骤:
创建应用程序时,将重定向 URI 作为 ThingWorx Flow 回调 URL 提供,例如 https://<HostName:Port>/Thingworx/Oauths/oauth/return
要为 Dialogflow 应用程序添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 Google 应用程序中检索值。
CLIENT_SECRET
客户端密码值。
从 Google 应用程序中检索值。
"apiai": {
"Dialogflow": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
2. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
Dropbox
每当想要为 Dropbox 应用程序添加 OAuth 提供工具时,请执行以下步骤:
1. 创建 Dropbox 应用程序。此链接可提供有关 Dropbox OAuth 的信息。
创建此应用程序时,请为下列参数设置适当的值:
API - 选择 Dropbox API。
访问类型 - 完整 Dropbox。
重定向 URI - 以 https://<主机名:端口>/Thingworx/Oauths/oauth/return 格式输入 ThingWorx Flow 回调 URL。
2. 要为 Dropbox 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 Dropbox 应用程序中检索值。
CLIENT_SECRET
客户端密码值。
从 Dropbox 应用程序中检索值。
"dropbox": {
"Dropbox": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
Dynamics 365 CRM
每当想要为 Dynamics 365 CRM 应用程序添加 OAuth 提供工具时,请执行以下步骤:
创建此应用程序时,将重定向 URI 设置为采用 https://<主机名:端口>/Thingworx/Oauths/oauth/return 格式的 ThingWorx Flow 回调 URL。
2. 要为 Dynamics 365 CRM 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 Azure 应用程序检索值。
CLIENT_SECRET
客户端密码值。
从 Azure 应用程序检索值。
"dynamics365": {
"Dynamics365": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
Excel Online、Office 365、OneDrive
每当想要为 Excel Online、Office 365 或 OneDrive 应用程序添加 OAuth 提供工具时,请执行以下步骤:
1. 创建 Azure 应用程序
创建此应用程序时,请为下列参数设置适当的值:
API 权限 - Azure 服务管理。
重定向 URI - 以 https://<主机名:端口>/Thingworx/Oauths/oauth/return 格式输入 ThingWorx Flow 回调 URL。
2. 要为 Excel Online、Office 365 或 OneDrive 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 Azure 应用程序检索值。
CLIENT_SECRET
客户端密码值。
从 Azure 应用程序检索值。
Excel Online
"excel": {
"Excel Online": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
Office 365
"microsoft_365": {
"Office 365": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
OneDrive
"onedrive": {
"OneDrive": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
Github
每当想要为 GitHub 应用程序添加 OAuth 提供工具时,请执行以下步骤:
创建此应用程序时,将授权回调 URL 设置为采用 https://<主机名:端口>/Thingworx/Oauths/oauth/return 格式的 ThingWorx Flow 回调 URL。
2. 要为 Github 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 Github 应用程序中检索值。
CLIENT_SECRET
客户端密码值。
从 Github 应用程序中检索值。
"github": {
"Github": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
Gitlab
每当想要为 Gitlab 应用程序添加 OAuth 提供工具时,请执行以下步骤:
1. 创建 GitLab 应用程序
创建此应用程序时,请为下列参数设置适当的值:
作用域 - apiread_userread_repositoryread_registry
重定向 URI - 输入 ThingWorx Flow 回调 URL,如 https://<主机名:端口>/Thingworx/Oauths/oauth/return
2. 要为 Gitlab 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 GitLab 应用程序中检索值。
CLIENT_SECRET
客户端密码值。
从 GitLab 应用程序中检索值。
"gitlab": {
"Gitlab": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
Gmail、Google Drive、Google Forms、Google Sheets、Google Tasks、Google Translator、YouTube
每当想要为 Google 应用程序添加 OAuth 提供工具时,请执行以下步骤:
创建应用程序时,将重定向 URI 作为 ThingWorx Flow 回调 URL 提供,例如 https://<HostName:Port>/Thingworx/Oauths/oauth/return
要为 Google 应用程序添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 Google 应用程序中检索值。
CLIENT_SECRET
客户端密码值。
从 Google 应用程序中检索值。
Gmail
"google_gmail": {
"Gmail": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
Google Drive
"google_drive": {
"Google Drive": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
Google Form
"google_form": {
"Google Form": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
Google Sheet
"google_sheet": {
"Google Sheet": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
Google Task
"google_task": {
"Google Tasks": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
Google Translator
"google_translator": {
"Google Translator": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
Youtube
"youtube": {
"Youtube": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
2. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
HTTP
每当想要为 HTTP 服务器添加 OAuth 提供工具时,请执行以下步骤:
1. 在 HTTP 服务器上配置 OAuth。
2. 要为 HTTP 服务器添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
AUTH_URL
[必需]
为令牌请求指定 OAuth 端点。
从 OAuth 客户端检索值。
示例:\authorize
TOKEN_URL
[必需]
提供访问令牌。
从 OAuth 客户端检索值。
示例:\token
VALIDATE_URL
[必需]
用于指定:验证访问令牌的 URL。
从 OAuth 客户端检索值。
如果不需要 VALIDATE_URL,请提供可访问的服务器 URL。
示例:https://www.dropbox.com/
如果要实现 VALIDATE_URL,请使用 get 方法创建 API。
REFRESH_URL
指定用于获取访问令牌的 URL。
从 OAuth 客户端检索值。
示例:\token
SCOPE
[必需]
为应用程序提供一个以空格分隔的作用域列表。
<作用域 1> <作用域 2>
BASE_URL
[必需]
用于指定:中央身份验证服务器 URL。
从 OAuth 客户端检索值。
NEED_RESOURCE_URL
[必需]
用于指定:在添加 OAuth 连接器时,用户是否必须提供 RESOURCE_URL
如果将其设置为 True,则用户在添加 OAuth 提供工具时必须指定 RESOURCE_URL 的值。
如果将其设置为 False,则用户在添加 OAuth 连接器时必须指定 RESOURCE_URL 的值。
truefalse
RESOURCE_URL
指定资源服务器 URL。
CLIENT_ID
[必需]
用于指定:从授权服务器获取验证访问令牌时,所使用的客户端标识符。
从 OAuth 客户端检索值。
CLIENT_SECRET
[必需]
客户端密码值。
从 OAuth 客户端检索值。
"devtools": {
"HTTP": {
"AUTH_URL": "<auth url here>",
"CLIENT_SECRET": "<client secret here>",
"TOKEN_URL": "<token url here>",
"VALIDATE_URL": "<validate url here>",
"CLIENT_ID": "<client id here>",
"SCOPE": "<scopes separated by spaces>",
"RESOURCE_URL": "<resource url here>",
"BASE_URL": "<base url here>",
"REFRESH_URL": "<refresh url here>",
"NEED_RESOURCE_URL": "<boolean value here>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
JIRA
每当想要为 JIRA 应用程序添加 OAuth 提供工具时,请执行以下步骤:
1. 创建 JIRA 应用程序
创建此应用程序时,请为下列参数设置适当的值:
作用域 - view Jira issue data (read:jira-work)create and manage issues (write:jira-work)view user profiles (read:jira-user)
回调 URL - 输入 ThingWorx Flow 回调 URL,如 https://<主机名:端口>/Thingworx/Oauths/oauth/return
2. 要为 JIRA 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 JIRA 应用程序中检索值。
CLIENT_SECRET
客户端密码值。
从 JIRA 应用程序中检索值。
"jira": {
"JIRA": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
OData
每当想要为 OData 实例添加 OAuth 提供工具时,请执行以下步骤:
1. 在 OData 实例上配置 OAuth。
2. 根据您的 OAuth 配置,在 OAuth 配置 JSON 文件中提供值。请参阅示例 config.json。以下是加载 OAuth 时可能提供的示例值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 OAuth 应用程序检索值。
CLIENT_SECRET
客户端密码值。
从 OAuth 应用程序检索值。
VALIDATE_URL
指定用于验证访问令牌的 URL。
从 OAuth 客户端检索值。
REFRESH_URL
指定用于获取访问令牌的 URL。
从 OAuth 客户端检索值。
TOKEN_URL
提供访问令牌。
从 OAuth 客户端检索值。
AUTH_URL
为令牌请求指定 OAuth 端点。
从 OAuth 客户端检索值。
{
"name": "odata",
"created_at": "2017-02-27T09:26:46.890Z",
"updated_at": "2017-02-27T09:26:46.890Z",
"uid": "oaufe1978bc9e71d999ef2ba4",
"icon": "odata",
"version": "v1",
"__v": 0,
"title": "Dynamics 365",
"oauth2_include": [
"{\"resource\":\"{resource}\"}"
],
"oauth2_required": [
{
"title": "Tenant ID",
"id": "tenant",
"default": "common",
"description": "Enter Dynamics 365 tenant id, leave it common if you don't have it"
},
{
"title": "Resource URL",
"id": "resource",
"description": "Enter Dynamics 365 resource URL, eg: https://example.crm5.dynamics.com"
}
],
"oauth2_params_scope": [
"{\"user_impersonation\":\"User Impersonation\"}"
],

"oauth2_refresh_data": [
"{\"client_secret\":\"{client_secret}\"}",
"{\"grant_type\":\"refresh_token\"}",
"{\"client_id\":\"{client_id}\"}",
"{\"resource\":\"{resource}\"}",
"{\"refresh_token\":\"{refresh_token}\"}"
],
"oauth2_refresh_url": "/token",
"oauth2_token_data": [
"{\"redirect_uri\":\"{redirect_uri}\"}",
"{\"client_id\":\"{client_id}\"}",
"{\"client_secret\":\"{client_secret}\"}",
"{\"resource\":\"{resource}\"}",
"{\"grant_type\":\"authorization_code\"}"
],
"oauth2_token_url": "/token",
"oauth2_auth_query": [
"{\"client_id\":\"{client_id}\"}",
"{\"response_type\":\"code\"}",
"{\"resource\":\"{resource}\"}",
"{\"scope\":\"{scope}\"}",
"{\"prompt\":\"login\"}",
"{\"redirect_uri\":\"{redirect_uri}\"}"
],
"oauth2_auth_url": "/authorize",
"oauth2_no_state": false,
"env_pre_prod_params": [
"{\"client_secret\":\"{{{pre_prod.CLIENT_SECRET}}}\"}",
"{\"redirect_uri\":\"{OAUTH_ENDPOINT_OAUTH_RETURN}\"}"
],
"env_production_params": [
"{\"redirect_uri\":\"{OAUTH_ENDPOINT_OAUTH_RETURN}\"}",
"{\"client_id\":\"{{{production.CLIENT_ID}}}\"}",
"{\"client_secret\":\"{{{production.CLIENT_SECRET}}}\"}"
],
"env_staging_params": [
"{\"redirect_uri\":\"{OAUTH_ENDPOINT_OAUTH_RETURN}\"}",
"{\"client_id\":\"{{{staging.CLIENT_ID}}}\"}",
"{\"client_secret\":\"{{{staging.CLIENT_SECRET}}}\"}"
],
"env_development_params": [
"{\"client_id\":\"{{{development.CLIENT_ID}}}\"}",
"{\"client_secret\":\"{{{development.CLIENT_SECRET}}}\"}",
"{\"redirect_uri\":\"{OAUTH_ENDPOINT_OAUTH_RETURN}\"}"
],
"env_local_params": [
"{\"client_id\":\"{{{local.CLIENT_ID}}}\"}",
"{\"client_secret\":\"{{{local.CLIENT_SECRET}}}\"}",
],
"base_url": "https://login.microsoftonline.com/{tenant}/oauth2",
"oauth_type": "OAuth2",
"development_phase": "new",
"advanced_enabled": true,
"express_enabled": true,
"deleted_at": null,
"published": true
}
"oauth2_validate_headers" 数组中提供标题信息,如示例数组所示:
{
"oauth2_validate_headers": [
"{\"Authorization\":\"Bearer {access_token}\"}",
"{\"Content-Type\":\"application/json\"}"
]
}
"oauth2_params_scope" 数组中提供范围信息,如示例数组所示:
{
"oauth2_params_scope": [
"{\"READ\":\"READ_PRIVILEGES\"}"
]
}
"oauth2_params_other" 数组中提供 needurl 信息,如示例数组所示:
{
"oauth2_params_other": [
"{\"needurl\":\"true\"}"
]
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
OSLC
每当想要为 OSLC 服务器添加 OAuth 提供工具时,请执行以下步骤:
2. 要为 OSLC 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 OAuth 客户端检索值。
CLIENT_SECRET
客户端密码值。
从 OAuth 客户端检索值。
BASE_URL
指定 OAuth URL。
从中央身份验证服务器检索值。
如果您的 OAUth 客户端为 PingFederate,则此 URL 必须采用以下格式:
https://<PingFederate FQDN>:<端口>/as
VALIDATE_URL
指定用于验证访问令牌的 URL。
从中央身份验证服务器检索值。
示例:/introspect.oauth2
RESOURCE_URL
指定 OSLC 服务器 URL。
如果未指定 RESOURCE_URL,则必须提供 OAUTH_URLREFRESH_URLTOKEN_URL 的值。
从中央身份验证服务器检索值。
OAUTH_URL
为令牌请求指定 OAuth 端点。
从中央身份验证服务器检索值。
示例:/authorization.oauth2
REFRESH_URL
指定用于获取访问令牌的 URL。
从中央身份验证服务器检索值。
示例:/token.oauth2
TOKEN_URL
提供访问令牌。
从中央身份验证服务器检索值。
示例:/token.oauth2
"oslc": {
"OSLC": {
"CLIENT_SECRET": "<client secret here>",
"OAUTH_URL": "<oauth url here>",
"VALIDATE_URL": "<validate url here>",
"VALIDATE_AUTH": "<stringified validate auth object here in format <auth>:<authObject>, authObject should be a stringified json object>",
"TOKEN_URL": "<token url here>",
"CLIENT_ID": "client id here>",
"RESOURCE_URL": "<resource url here>",
"VALIDATE_QUERY": "<stringified validate query object here in format <token>:<access_token>",
"BASE_URL": "<base url here>",
"VALIDATE_METHOD": "<validate method here>",
"REFRESH_URL": "<refresh url here>"
}
}
* 
必须指定 RESOURCE_URL 或授权参数 (OAUTH_URLREFRESH_URLTOKEN_URL)。
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
SAP OData
每当想要为 SAP OData 服务器添加 OAuth 提供工具时,请执行以下步骤:
配置 OAuth 时,请将重定向 URI 提供为 ThingWorx Flow 回调 URL,例如 https://<主机名:端口>/Thingworx/Oauths/oauth/return
2. 要为 SAP OData 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 SAP OAuth 客户端检索值。
CLIENT_SECRET
客户端密码值。
从 SAP OAuth 客户端检索值。
BASE_URL
指定中央授权服务器 URL。
https://<主机名:端口>/sap/bc/sec/oauth2
SCOPE
以空格分隔的范围列表。有关详细信息,请参阅 OAuth 作用域
<作用域 1> <作用域 2>
RESOURCE_URL
指定 SAP 资源 URL。
建议在配置 OAuth 时提供 RESOURCE_URL。如果未指定 RESOURCE_URL,则用户必须在添加 OAuth 连接器时予以提供。
https://<主机:端口>/
"sap_odata": {
"SAP_OData": {
"CONNECTION_URL": "<SAP OData url in format https://<host>:<port>/>",
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>",
"SCOPE": "<scopes separated by space>",
"BASE_URL": "<SAP OAuth url in format https://<host>:<port>/sap/bc/sec/oauth2>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
SOAP
每当想要为 SOAP 实例添加 OAuth 提供工具时,请执行以下步骤:
1. 在 SOAP 实例上配置 OAuth。
2. 根据您的 OAuth 配置,在 OAuth 配置 JSON 文件中提供值。请参阅示例 config.json。以下是加载 OAuth 时可能提供的示例值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 OAuth 应用程序检索值。
CLIENT_SECRET
客户端密码值。
从 OAuth 应用程序检索值。
VALIDATE_URL
指定用于验证访问令牌的 URL。
从 OAuth 客户端检索值。
REFRESH_URL
指定用于获取访问令牌的 URL。
从 OAuth 客户端检索值。
TOKEN_URL
提供访问令牌。
从 OAuth 客户端检索值。
AUTH_URL
为令牌请求指定 OAuth 端点。
从 OAuth 客户端检索值。
"oauth2_validate_headers" 数组中提供标题信息,如示例数组所示:
{
"oauth2_validate_headers": [
"{\"Authorization\":\"Bearer {access_token}\"}",
"{\"Content-Type\":\"application/json\"}"
]
}
"oauth2_params_scope" 数组中提供范围信息,如示例数组所示:
{
"oauth2_params_scope": [
"{\"READ\":\"READ_PRIVILEGES\"}"
]
}
"oauth2_params_other" 数组中提供 needurl 信息,如示例数组所示:
{
"oauth2_params_other": [
"{\"needurl\":\"true\"}"
]
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
Salesforce
每当想要为 Salesforce 应用程序添加 OAuth 提供工具时,请执行以下步骤:
创建此应用程序时,请为下列参数设置适当的值:
作用域 - 为应用程序提供适当的作用域。
回调 URL - 输入 ThingWorx Flow 回调 URL,如 https://<主机名:端口>/Thingworx/Oauths/oauth/return
2. 要为 Salesforce 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:JSON 文件中的以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 Salesforce 应用程序中检索值。
CLIENT_SECRET
客户端密码值。
从 Salesforce 应用程序中检索值。
"salesforce": {
"Salesforce": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
以下视频演示了启用 Salesforce 的 OAuth 配置所需的步骤:
ServiceMax
每当想要为 ServiceMax 应用程序添加 OAuth 提供工具时,请执行以下步骤:
1. 登录到 ServiceMax 后,创建 Servicemax 应用程序
创建此应用程序时,请为下列参数设置适当的值:
作用域 - 为应用程序提供适当的作用域。
回调 URL - 输入 ThingWorx Flow 回调 URL,如 https://<主机名:端口>/Thingworx/Oauths/oauth/return
2. 要为 ServiceMax 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 Servicemax 应用程序中检索值。
CLIENT_SECRET
客户端密码值。
从 Servicemax 应用程序中检索值。
"servicemax": {
"Servicemax": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
Slack
每当想要为 Slack 应用程序添加 OAuth 提供工具时,请执行以下步骤:
1. 创建 Slack 应用程序
创建此应用程序时,请为下列参数设置适当的值:
作用域 - 为应用程序提供适当的作用域。
重定向 URL - 输入 ThingWorx Flow 回调 URL,如 https://<主机名:端口>/Thingworx/Oauths/oauth/return
2. 要为 Slack 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 Slack 应用程序中检索值。
CLIENT_SECRET
客户端密码值。
从 Slack 应用程序中检索值。
"slack": {
"Slack": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
Swagger
每当想要为 Swagger 实例添加 OAuth 提供工具时,请执行以下步骤:
1. 在 Swagger 实例上配置 OAuth。
2. 根据您的 OAuth 配置,在 OAuth 配置 JSON 文件中提供值。请参阅示例 config.json。以下是加载 OAuth 时可能提供的示例值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 OAuth 应用程序检索值。
CLIENT_SECRET
客户端密码值。
从 OAuth 应用程序检索值。
VALIDATE_URL
指定用于验证访问令牌的 URL。
从 OAuth 客户端检索值。
REFRESH_URL
指定用于获取访问令牌的 URL。
从 OAuth 客户端检索值。
TOKEN_URL
提供访问令牌。
从 OAuth 客户端检索值。
AUTH_URL
为令牌请求指定 OAuth 端点。
从 OAuth 客户端检索值。
"oauth2_validate_headers" 数组中提供标题信息,如示例数组所示:
{
"oauth2_validate_headers": [
"{\"Authorization\":\"Bearer {access_token}\"}",
"{\"Content-Type\":\"application/json\"}"
]
}
"oauth2_params_scope" 数组中提供范围信息,如示例数组所示:
{
"oauth2_params_scope": [
"{\"READ\":\"READ_PRIVILEGES\"}"
]
}
"oauth2_params_other" 数组中提供 needurl 信息,如示例数组所示:
{
"oauth2_params_other": [
"{\"needurl\":\"true\"}"
]
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
ThingWorx
每当想要为 ThingWorx 服务器添加 OAuth 提供工具时,请执行以下步骤:
1. 将 ThingWorx 配置为资源提供者,以允许 ThingWorx 通过 OAuth2 协议响应请求。
2. 要为 ThingWorx 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 PingFederate OAuth 客户端检索值。
CLIENT_SECRET
客户端密码值。
从 PingFederate OAuth 客户端检索值。
BASE_URL
指定 PingFederate OAuth URL。
https://<PingFederate FQDN>:<端口>/as
RESOURCE_URL
指定 ThingWorx URL。
建议在配置 OAuth 时提供 RESOURCE_URL。如果未指定 RESOURCE_URL,则用户必须在添加 OAuth 连接器时予以提供。
https://<Thingworx FQDN>:<端口>/Thingworx
"thingworx": {
"Thingworx": {
"CLIENT_SECRET": "client secret here>",
"CLIENT_ID": "client id here>",
"RESOURCE_URL": "<Thingworx URL in format https://<Thingworx FQDN>:<port>/Thingworx>",
"BASE_URL": "<Pingfederate URL in format https://<Pingfederate FQDN>:<port>/as>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
Trello
每当想要为 Trello 帐户添加 OAuth 提供工具时,请执行以下步骤:
在设置中,为以下参数设置适当的值:
重定向 URL - 在 Allowed Origins 下输入 ThingWorx Flow 回调 URL,如 https://<主机名:端口>/Thingworx/Oauths/oauth/return
2. 要为 Trello 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CONSUMER_KEY
指定从授权服务器获取验证访问令牌时所使用的使用者密钥。
CONSUMER_SECRET
使用者密码值。
"trello": {
"Trello": {
"CONSUMER_SECRET": "<client secret here>",
"CONSUMER_KEY": "<client id here>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
Windchill
每当想要为 Windchill 服务器添加 OAuth 提供工具时,请执行以下步骤:
2. 要为 Windchill 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 PingFederate OAuth 客户端检索值。
CLIENT_SECRET
客户端密码值。
从 PingFederate OAuth 客户端检索值。
BASE_URL
指定 PingFederate OAuth URL。
https://<PingFederate FQDN>:<端口>/as
SCOPE
通过在授予的范围内颁发访问令牌来限制应用程序对用户帐户的访问。要添加多个范围,请使用逗号 (,) 来分隔各个范围。
WINDCHILL_READ, <scope1>, <scope2>
PF_IDP_ADAPTER_ID
可选。指定配置中的 PingFederate IdP 适配器 ID。仅当 PingFederate 中存在多个 IdP 适配器时才指定。
PingFederateAdapterID
RESOURCE_URL
可选。指定 Windchill URL。
建议在配置 OAuth 时提供 RESOURCE_URL。如果未指定 RESOURCE_URL,则用户必须在添加 OAuth 连接器时予以提供。
<协议>://<Windchill FQDN>:<端口>/Windchill
"windchill": {
"Windchill": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>",
"base_url": "<base url here>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
Windchill RV&S
每当想要为 Windchill RV&S 服务器添加 OAuth 提供工具时,请执行以下步骤:
2. 要为 Windchill RV&S 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 PingFederate OAuth 客户端检索值。
CLIENT_SECRET
客户端密码值。
从 PingFederate OAuth 客户端检索值。
BASE_URL
指定 PingFederate OAuth URL。
https://<PingFederate FQDN>:<端口>/as
"integrity": {
"integrity": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>",
"base_url": "<base url here>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
Zendesk
每当想要为 Zendesk 应用程序添加 OAuth 提供工具时,请执行以下步骤:
创建此应用程序时,请为下列参数设置适当的值:
作用域 - 为应用程序提供适当的作用域。
重定向 URL - 输入 ThingWorx Flow 回调 URL,如 https://<主机名:端口>/Thingworx/Oauths/oauth/return
以下视频演示了启用 Zendesk 连接器的 OAuth 配置所需的步骤。
2. 要为 Zendesk 添加 OAuth 提供工具,请在 OAuth 配置 JSON 文件中提供以下值:
参数
说明
CLIENT_ID
指定从授权服务器获取验证访问令牌时所使用的客户端标识符。
从 Zendesk 应用程序中检索值。
CLIENT_SECRET
客户端密码值。
从 Zendesk 应用程序中检索值。
"zendesk": {
"Zendesk": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
3. 从 ThingWorx Composer 执行 LoadOAuthConfiguration 服务,以将 OAuth 提供工具加载到 ThingWorx Flow 服务器中。
故障排除
情景
解决方案
如果 OAuth 连接器正在使用具有相同名称的现有 OAuth 提供工具,则无法添加 OAuth 提供工具。
* 
系统不会上载相同 JSON 文件中存在的任何其他有效 OAuth 提供工具。
添加一个唯一的 OAuth 提供工具名称,然后加载 OAuth 配置。
例如,如果 OAuth 配置中已存在 Gmail-1,则将 Gmail-2 添加到 OAuth 配置 JSON 文件中,如以下示例代码所示:
{
"google_gmail": {
"Gmail-1": {
"CLIENT_ID": "<client id for Gmail - 1 account here>",
"CLIENT_SECRET": "<client secret for Gmail - 1 account here>"
},
"Gmail-2": {
"CLIENT_ID": "<client id for Gmail - 2 account here>",
"CLIENT_SECRET": "<client secret for Gmail - 2 account here>"
}
}
}
或者
删除任何使用现有 OAuth 提供工具的连接器,再次上载 OAuth 提供工具,然后重新启动 OAuth 服务。
要重新启动 OAuth 服务,请完成以下步骤:
a. 在安装了 ThingWorx Flow 的系统上,以管理员身份启动命令提示符。
b. 运行 pm2 ls 命令以获取 OAuth 服务编号。
c. 运行 pm2 restart <OAuth_service_number> 命令以重新启动 OAuth 服务器。
或者
在安装了 ThingWorx Flow 的系统上,以管理员身份启动命令提示符,然后运行 pm2 restart flow-oauth-server 命令以重新启动 OAuth 服务器。
这对您有帮助吗?