配置及載入 OAuth
在為任何協力廠商服務或公用程式建立 OAuth 連接器之前,您必須先將其 OAuth 提供者載入至 ThingWorx Flow 伺服器。您可在 ThingWorx ComposerWorkflowSubsystemLoadOAuthConfiguration 服務的 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 應用程式
建立應用程式時,請以 https://<主機名稱:埠>/Thingworx/Oauths/oauth/return 的格式將重新導向 URI 設定為 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://<主機名稱:埠>/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 提供者時,都請執行下列步驟:
建立應用程式時,請以 https://<主機名稱:埠>/Thingworx/Oauths/oauth/return 的格式將重新導向 URI 設定為 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 提供者時,都請執行下列步驟:
建立應用程式時,請以 https://<主機名稱:埠>/Thingworx/Oauths/oauth/return 的格式將授權回撥 URL 設定為 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://<主機名稱:埠>/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 表單
"google_form": {
"Google Form": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
Google 試算表
"google_sheet": {
"Google Sheet": {
"CLIENT_SECRET": "<client secret here>",
"CLIENT_ID": "<client id here>"
}
}
Google 任務
"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 檔案中提供下列值:
參數
描述
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 提供者時,都請執行下列步驟:
1. 建立您的 Zendesk 應用程式
建立應用程式時,請為下列參數設定適當值:
範圍 - 為應用程式提供適當的範圍。
重新導向 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 組態。
例如,如果 Gmail-1 存在於 OAuth 組態中,則請將 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 伺服器。
這是否有幫助?