將 PingFederate 作為中央授權伺服器 > SSO 組態範例 > 範例:在將 PingFederate 作為中央驗證伺服器、將 ADFS 作為識別提供者,及將 Windchill 作為資源提供者的情況下實行 SCIM
範例:在將 PingFederate 作為中央驗證伺服器、將 ADFS 作為識別提供者,及將 Windchill 作為資源提供者的情況下實行 SCIM
此範例提供有關如何配置已針對單一登入配置 ThingWorx,且將 PingFederate 作為「中央授權伺服器」(CAS)、將「Active Directory 同盟服務」(ADFS) 作為「識別提供者」(IdP),並將 Windchill 作為「資源提供者」之環境的詳細步驟。
下表顯示了在此範例中配置的應用程式及其角色:
角色
應用程式
服務提供者
ThingWorx
中央授權伺服器
PingFederate
識別提供者
ADFS
資源提供者
Windchill
下圖顯示了本範例討論的組態。
如需使用此架構的 SSO 實行概觀,請參閱文章 CS271789 中提供的視訊。
在開始 SSO 實行之前,請先審核下列決策樹,在 ThingWorx Navigate 與 Windchill 和 PingFederate 的部署流程中找出關鍵決策點。此圖表根據最佳作法、可用性及典型使用案例來顯示建議的路徑。
* 
有其他一些 IdP 與 LDAP 的組合並未包含在此圖表中。例如,您可以將 Windows 主機中的 Microsoft Active Directory 與 Linux 主機中的 Thingworx 和 Windchill 搭配使用,但這種情況並非典型或偏好作法。
使用 Shibboleth SP 來針對 Windchill 協助 SSO,需要 11.0 M020 或更高版本。
A 部份:先決條件 
1. 將在您環境中所使用電腦的 hosts 檔案更新為下列項目:
PingFederate 電腦 - 新增 ADFS、ThingWorxPingFederate 機器。
ThingWorx 電腦 - 新增 ADFS、ThingWorxPingFederate 機器。
Windchill 電腦 - 新增 ThingWorxPingFederate 電腦。
2. 安裝 ThingWorx。如需詳細資訊,請參閱適當的 ThingWorx 說明中心
停止 ThingWorx 伺服器。
* 
請務必更新並配置 Tomcat,以使 ThingWorx 可在跨網域環境中操作。如需詳細資訊,請參閱此文章
3. 安裝升級 PingFederateThingWorx 所支援的最新修補程式。
4. 請確保您已設定 Windchill。如需詳細資訊,請參閱適當的 Windchill 說明中心
5. 設定並配置 ADFS,確保您擁有下列屬性值與檔案:
uid
email
group
中繼資料檔案
簽署憑證
B 部份:手動配置 ADFS 的驗證 
步驟 1:建立 PingFederate 全域 SSL 憑證
1. 以管理員身分登入 PingFederate,並導覽至 Security > SSL Server Certificates
2. 按一下 Create New 以建立全域 SSL 憑證,並執行下列操作:
a. Common Name 欄位中,提供 PingFederate 電腦的 FQDN。
b. 提供頁面的其他詳細資訊,然後按一下 Next
c. 按一下 Done,然後按一下 Save
d. 按一下 SSL Server Certificates
e. 針對您建立的 SSL 憑證,在 Select Action 清單中選取 Activate Default for Runtime Server,然後選取 Activate Default for Admin Console。按一下 Save
此 SSL 憑證即會針對管理主控台與執行時間伺服器標記為 default
3. 針對 localhost 憑證,執行下列操作:
a. Select Action 清單中,選取 Deactivate for Runtime Server,然後選取 Deactivate for Admin Console
b. 刪除 localhost 憑證,然後按一下 Save
步驟 2:建立服務提供者契約
1. PingFederate 中,導覽至 Identity Provider 頁,然後轉至 Authentication Policies > Policy Contract
2. 按一下 Create New Contracts,然後執行下列操作:
a. Contract Info 欄位中,輸入契約名稱,例如 SPContract,然後按一下 Next
b. Contract Attributes 下,如需延伸下列屬性的契約,請針對每個屬性按一下 Add
uid
email
group
依預設,subject 屬性已存在。
c. 按一下 Next,然後在 Summary 頁按一下 Done
d. Authentication Policy Contracts 頁中,按一下 Save
步驟 3:下載 ADFS FederationMetadata.xml 檔案
1. 在您的 ADFS 電腦瀏覽器中,輸入下列 URL 以下載同盟中繼資料檔案:
https://ADSF_Host.ADFS_Domain/FederationMetadata/2007-06/FederationMetadata.xml
2. 將下載的檔案複製到 PingFederate 電腦。
步驟 4:建立 PingFederate IdP 連線
A) 指定用來建立 IdP 連線的一般資訊
1. PingFederate 中,轉至 Service Provider > IdP Connections,然後按一下 Create New
2. Connection Type 標籤中,選取 BROWSER SSO Profiles 核取方塊,然後按一下 Next
3. Connection Options 標籤中,選取 BROWSER SSO 核取方塊與 OAUTH ATTRIBUTE MAPPING 核取方塊,然後按一下 Next
4. Import Metadata 標籤中,選取 File,按一下 Choose File 以瀏覽至 FederationMetadata.xml 檔案,然後按一下 Next
5. Metadata Summary 標籤中,按一下 Next
6. General Info 標籤即會填入資料。如有需要,您可以變更 CONNECTION NAME。核對其餘資訊,然後按一下 Next
7. Browser SSO 標籤中,按一下 Configure Browser SSOBrowser SSO 頁即會開啟,您需要在其中為您的瀏覽器指定單一登入的設定。
B) 配置瀏覽器 SSO 設定
1. Browser SSO 頁的 SAML Profiles 標籤中,選取下列選項,然後按一下 Next
IDP-INITIATED SSO
SP-INITIATED SSO
2. User-Session Creation 標籤中,按一下 Configure User-Session CreationUser-Session Creation 頁即會開啟,您需要在其中指定用來配置使用者建立的設定。
C) 配置使用者工作階段建立設定
1. Identity Mapping 標籤中,接受預設設定,然後按一下 Next
2. Attribute Contract 標籤中,核對自動填入的屬性,然後按一下 Next
3. Target Session Mapping 標籤中,按一下 Map New Authentication PolicyAuthentication Policy Mapping 頁即會開啟,您需要在其中指定驗證原則對應的設定。
D) 配置驗證原則對應設定
1. Authentication Policy Contract 清單中,選取您在 B 部份 - 步驟 2 建立的契約,即 SPContract。確認所有屬性都已顯示,然後按一下 Next
2. Attribute Retrieval 標籤中,接受預設設定,然後按一下 Next
3. Contract Fulfillment 標籤中,針對 emailgroupsubjectuid 驗證原則契約選取下列值:
Source 清單中,選取 Assertion
Value 清單中,從清單中選取對應的項目。
按一下 Next
4. Issuance Criteria 標籤中,按一下 Next
5. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 DoneUser-Session Creation 頁即會開啟,您需要在其中審核使用者工作階段建立的組態設定。
E) 審核使用者工作階段建立組態設定
1. User-Session Creation 頁中的 Target Session Mapping 標籤會顯示您在對應新驗證原則時選取的資訊。按一下 Next
2. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 DoneBrowser SSO 頁即會開啟。
3. Browser SSO 頁中的 User-Session Creation 標籤會顯示您在配置使用者工作階段建立時輸入的資訊。按一下 Next
4. OAuth Attribute Mapping 標籤中,選取 Map Directly Into Persistent GrantConfigure OAuth Attribute Mapping,然後執行下列操作:
a. Data Store 標籤中,按一下 Next
b. Contract Fulfilment 標籤中,針對 USER_KEYUSER_NAME,將 Source 設定為 Assertion,將 Value 設定為來自 ADFS 的名稱屬性,然後按一下 Next
c. Issuance Criteria 標籤中,按一下 Next
5. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 Done。在 OAuth Attribute Mapping Configuration 頁中按一下 Next
6. Protocol Settings 標籤中,按一下 Configure Protocol SettingsProtocol Settings 頁即會開啟,您需要在其中指定通訊協定設定。
F) 配置及審核通訊協定設定
1. SSO Service URLs 標籤中,按一下 Next
2. Allowable SAML Bindings 標籤中,執行下列操作,然後按一下 Next
a. 選取下列核取方塊:
POST
REDIRECT
b. 清除下列核取方塊:
ARTIFACT
POST
3. 跳過 Overrides 標籤中的設定,然後按一下 Next
4. Signature Policy 標籤中,按一下 SPECIFY ADDITIONAL SIGNATURE REQUIREMENTS,選取其下的兩個核取方塊,然後按一下 Next
5. Encryption Policy 標籤中,按一下 ALLOW ENCRYPTED SAML ASSERTIONS AND SLO MESSAGES,選取 THE ENTIRE ASSERTION 核取方塊,然後按一下 Next
6. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 DoneBrowser SSO 頁即會開啟。
7. Browser SSO 頁中的 Protocol Settings 標籤會顯示您在配置通訊協定設定時選取的資訊。按一下 Next
8. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 DoneIdP Connection 頁即會開啟。
9. IdP Connection 頁的 Browser SSO 標籤中,按一下 Next
10. Credentials 標籤中,按一下 Configure CredentialsCredentials 頁即會開啟,您需要在其中指定用來配置認證的設定。
G) 配置認證
1. Digital Signature Settings 標籤中,按一下 Manage Certificates
2. 欲建立簽署憑證,請按一下 Create New,提供下列值,然後按一下 Next
COMMON NAME
ORGANIZATION
COUNTRY
VALIDITY (DAYS)365
KEY ALGORITHMRSA
KEY SIZE (BITS)2048
SIGNATURE ALGORITHMRSA SHA256
3. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 Done,然後按一下 Save
4. Digital Signature Settings 標籤中,針對您建立的 SIGNING CERTIFICATE,選取 INCLUDE THE CERTIFICATE IN THE SIGNATURE <KEYINFO> ELEMENT 核取方塊,然後按一下 Next
這是用來以數位方式簽署從 PingFederate 到 IdP 之請求的應用程式層憑證。
5. Signature Verification Settings 標籤中,按一下 Manage Signature Verification Settings
a. Trust Model 標籤中,選取 UNANCHORED,然後按一下 Next
b. Signature Verification Certificate 中,確認已顯示 IdP 簽署憑證,然後按一下 Next
這是用來針對從 IdP 到 PingFederate 的請求進行「簽章驗證」的應用程式層憑證。當您從 IdP 匯入 metadata.xml 檔案時,會自動將此憑證匯入至 PingFederate
c. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 Done
d. Signature Verification Settings 標籤中,按一下 Next
e. Select Decryption Keys 中,選取 PingFederate 憑證,然後按一下 Next
f. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 Done
g. Credentials 頁中,按一下 Next
H) 啟動 IdP 連線
Activation & Summary 頁中,確保已啟動 SSO Application Endpoint,然後按一下 Save
現在,即已建立並啟動 IdP 連線。
I) 確認 IdP 連線
按一下您建立的 IdP 連線,複製 SSO Application Endpoint URL,將其貼上到瀏覽器中,並確認它會重新導向至 IdP。這樣一來,PingFederate 中的此 URL 就必須重新導向至 ADFS。您會看到一個類似於如下所示的頁面,且其中包含錯誤訊息。
C 部份:配置 ADFS 信賴憑證者 
步驟 1:從 PingFederate 匯出中繼資料 XML 檔案
1. PingFederate 中,轉至 Service Provider,然後在 IDP Connections 下,按一下 Manage All
2. 針對您的 IdP 連線,在 Select Action 清單中,按一下 Export Metadata
3. Metadata Signing 頁中,按一下 Next
4. Export & Summary 頁中,按一下 Export 以將中繼資料檔案下載至您電腦中的 Downloads 資料夾,然後按一下 Done
5. 將中繼資料 XML 檔案複製到 ADFS 電腦。
步驟 2:在 ADFS 中新增信賴憑證者
1. 登入至 ADFS 伺服器,然後開啟 Server Manager
2. 轉至 Tools > AD FS Management
3. ADFS 下的 Relying Party Trusts 上按一下滑鼠右鍵,然後選取 Add Relying Party Trust。這是為了確保 ADFS 會信任連線是來自 PingFederate 的。
4. Add Relying Party Trust Wizard 視窗中,執行下列操作:
a. 按一下 Start
b. 在下一個畫面中,按一下 Import data about the relying party from a file
c. 按一下 Browse,導覽至您從 PingFederate 複製之 Metadata.xml 的位置,以在 ADFS 中建立「信賴憑證者」,然後按一下 Next
d. 提供 Display name,然後按一下 Next
請記下此名稱,因為稍後會需要用到它。
e. 在接下來的視窗中按一下 Next,直到您到達 Finish 畫面為止。然後,按一下 Close
您目前的項目即會新增至 Relying Part Trusts 清單。
您應該也會看到下列視窗 (它可能會隱藏在目前視窗之後):
5. 欲將 ADFS 屬性對應至 Active Directory,請執行下列操作:
a. Edit Claim Issuance Policy for <信賴憑證者信任名稱> 視窗中,按一下 Add Rule,然後按一下 Next
b. 提供 Claim rule name,並將 Attribute store 設定為 Active Directory
c. Mapping of LDAP attributes to outgoing claim types 表中,從清單中選取值,以將 ADFS 屬性對應至 Active Directory 屬性:
Display-Name
名稱
SAM-Account-Name
名稱 ID
E-Mail-Addresses
電子郵件地址
Is-Member-Of-DL
群組
* 
如果您沒有正確對應這些屬性,將無法進行單一登入。
d. 按一下 Finish,然後按一下 OK
步驟 3:設定 ADFS 以加密完整訊息與宣告
1. 在 ADFS 電腦中,以管理員身分開啟 Windows PowerShell
2. 在 ADFS 電腦中執行下列指令,以進行通訊:
Set-ADFSRelyingPartyTrust -TargetName <信賴憑證者信任名稱> -SamlResponseSignature "MessageAndAssertion"
其中,<信賴憑證者信任名稱> 是您在上述「步驟 2」中建立並記下的信賴憑證者信任名稱。
此指令會透過 Windows PowerShell 配置 SAML 回應簽章。
D 部份:確認 IdP 連線端點 URL 
1. PingFederate 中,複製 SSO Application Endpoint URL,並將其貼上到無痕視窗中。
2. 使用您為 ADFS 建立的網域名稱與管理員使用者登入。
您應該會收到下列訊息:
E 部份:針對 ThingWorx 建立 PingFederate 服務提供者連線 
步驟 1:建立 ThingWorx 簽署憑證
1. <ThingWorx 安裝資料夾>/ThingworxPlatform 資料夾中,建立 ssoSecurityConfig 資料夾。
2. 建立 JKS 類型的 KeyStore,並將其命名為 sso-keystore.jks,方式如下:
產生金鑰組。
將憑證的一般名稱 (CN) 指定為 ThingWorx
3. thingworx.cersso-keystore.jks 匯出到 ssoSecurityConfig 資料夾。
步驟 2:針對 ThingWorx 配置服務提供者連線
A) 指定用來建立服務提供者連線的一般資訊
1. PingFederate 主頁中,按一下 Identity Provider,然後在 SP Connections 群組下,按一下 Create NewSP Connection 頁即會開啟。
2. Connection Template 標籤中,選取 DO NOT USE A TEMPLATE FOR THIS CONNECTION,然後按一下 Next
3. Connection Type 標籤中,選取 Browser SSO Profiles 核取方塊與 SAML 2.0 Protocol 核取方塊,然後按一下 Next
4. Connection Options 標籤中,選取 BROWSER SSO 核取方塊,然後按一下 Next
5. Import Metadata 標籤中,選取 None,然後按一下 Next
6. General Info 標籤中,執行下列任務:
a. Partner's Entity ID (Connection ID) 欄位中,提供具唯一性的值,例如 TWX_SP
請記下此值,因為在配置 ThingWorx sso-settings.json 檔案時,您還會用到此值。
b. Connection Name 欄位中,提供描述性名稱,例如 TWX_SP
這是將會顯示在 PingFederate SP 連線清單中的名稱。
c. Base URL 欄位中,鍵入已部署 ThingWorx 之伺服器的 URL,然後按一下 Next。例如:https://{ThingWorxHost_FQDN}:8443
7. Browser SSO 標籤中,按一下 Configure Browser SSOBrowser SSO 頁即會開啟,您需要在其中為您的瀏覽器指定單一登入的設定。
B) 配置瀏覽器 SSO 設定
1. Browser SSO 頁中 SAML Profiles 標籤的 Single Sign-On (SSO) Profiles 部份下,選取下列選項,然後按一下 Next
IDP-INITIATED SSO
SP-INITIATED SSO
請勿選取 Single Logout (SLO) Profiles 欄中的任何選項。
2. Assertion Lifetime 標籤中,將 Minutes Before 設定為 60,將 Minutes After 設定為 480。按一下 Next
3. Assertion Creation 標籤中,按一下 Configure Assertion CreationAssertion Creation 頁即會開啟,您需要在其中指定宣告建立的設定。
C) 配置宣告建立設定
1. Assertion Creation 頁的 Identity Mapping 標籤中,按一下 Standard,然後按一下 Next
2. Attribute Contract 標籤的 Attribute Contract 下,鍵入 SAML_Subject,然後選取 Subject Name Format 下的值。
3. Attribute Contract 標籤的 Extend the Contract 欄位中,配置下列設定,然後按一下每個值之後的 Add
延伸契約
屬性名稱格式
group
urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified
uid
urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified
email
urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified
按一下 Next
4. Authentication Source Mapping 標籤中,按一下 Map New Authentication PolicyAuthentication Policy Mapping 頁即會開啟,您需要在其中指定驗證原則對應的設定。
D) 配置驗證原則對應設定
1. Authentication Policy Mapping 頁的 Authentication Policy Contract 清單中,選取您在 B 部份 - 步驟 2 建立的屬性契約,即 SPContract。按一下 Next
2. Mapping Method 標籤中,按一下 USE ONLY THE AUTHENTICATION POLICY CONTRACT VALUES IN THE SAML ASSERTION,然後按一下 Next
3. Attribute Contract Fulfillment 標籤中,針對 emailgroupSAML_SUBJECTuid 驗證原則契約選取下列值:
Source 清單中,選取 Authentication Policy Contract
Value 清單中,從清單中選取對應的項目。
按一下 Next
4. 跳過 Issuance Criteria 標籤中的設定,然後按一下 Next
5. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 DoneAssertion Creation 頁即會開啟,您需要在其中審核宣告建立的組態設定。
E) 審核宣告建立組態設定
1. Assertion Creation 頁中的 Authentication Source Mapping 標籤會顯示您在對應新驗證政策時選取的資訊。按一下 Next
2. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 DoneBrowser SSO 頁即會開啟。
3. Browser SSO 頁中的 Assertion Creation 標籤會顯示您在配置宣告建立時輸入的資訊。按一下 Next
4. Protocol Settings 標籤中,按一下 Configure Protocol SettingsProtocol Settings 頁即會開啟,您需要在其中指定通訊協定設定。
F) 配置及審核通訊協定設定
1. Protocol Settings 頁的 Assertion Consumer Service URL 標籤中,執行下列操作:
a. 選取 Default 核取方塊。
b. Index 欄位中鍵入 0
c. Binding 清單中,選取 POST
d. Endpoint URL 欄位中,鍵入 /Thingworx/saml/SSO
e. 按一下 Add,然後按一下 Next
2. Allowable SAML Bindings 標籤中,選取 POST 核取方塊,然後按一下 Next
3. Signature Policy 標籤中,選取下列選項,然後按一下 Next
REQUIRE AUTHN REQUESTS TO BE SIGNED WHEN RECEIVED VIA THE POST OR REDIRECT BINDINGS
ALWAYS SIGN THE SAML ASSERTION
4. Encryption Policy 標籤中,選取 The Entire Assertion,然後按一下 Next
5. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 DoneBrowser SSO 頁即會開啟。
6. Browser SSO 頁中的 Protocol Settings 標籤會顯示您在配置通訊協定設定時選取的資訊。按一下 Next
7. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 DoneSP Connection 頁即會開啟。
8. SP Connection 頁的 Browser SSO 標籤中,按一下 Next
9. Credentials 標籤中,按一下 Configure CredentialsCredentials 頁即會開啟,您需要在其中指定用來配置認證的設定。
G) 配置認證
1. Digital Signature Settings 標籤中,執行下列任務:
a. SIGNING CERTIFICATE 清單中,從清單中選取憑證。
b. 選取 INCLUDE THE CERTIFICATE IN THE SIGNATURE <KEYINFO> ELEMENT 核取方塊。
按一下 Next
2. Signature Verification Settings 標籤中,按一下 Save Draft
3. 按一下 Manage All,然後按一下 Save
H) 配置簽章驗證設定並匯入及加密憑證
1. 欲還原已儲存的組態,請按一下 Identity Provider,然後在 SP Connections 中,按一下 Manage All
2. 按一下您儲存為草稿的 SP 連線,即 TWX_SP,然後按一下 Manage Signature Verification Settings
3. Trust Model 標籤中,選取 UNANCHORED,然後按一下 Next
Signature Verification Certificate 中,清單中沒有可用憑證。
4. 按一下 Manage Certificates,然後按一下 Import
5. Import Certificate 標籤中,按一下 Choose file 以瀏覽至您在 E 部份 - 步驟 1 建立的憑證檔案,然後按一下 Next
6. Summary 標籤中,確定已選取 MAKE THIS THE ACTIVE CERTIFICATE 核取方塊。
7. 審核 Summary 頁中的資訊。如果資訊正確,請按一下 DoneCertificate Management 頁即會開啟。
8. 按一下「完成」Signature Verification 頁即會開啟。
9. Signature Verification Certificate 標籤中,您應該會看到您匯入的憑證。按一下 Next
10. Summary 頁中,按一下 Done
11. Signature Verification Settings 標籤中,按一下 Next
J) 加密憑證
1. Select XML Encryption Certificate 標籤中,執行下列操作,然後按一下 Next
a. 針對 Block Encryption Algorithm 選取 AES-128
b. 針對 Key Transport Algorithm 選取 RSA-OAEP
c. 從清單中選取憑證。
2. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 DoneCredentials 頁即會開啟,您需要在其中審核簽章驗證的設定。
K) 啟動 SP 連線
1. SP Connection 頁中的 Credentials 標籤會顯示您在配置認證時選取的資訊。按一下 Next
2. Activation & Summary 頁的 Connection Status 下,確保已啟用連線。
3. 按一下 Save
連線會顯示在 Identity Provider 頁中的 SP Connections 群組下。
步驟 3:匯出 ThingWorx 服務提供者連線中繼資料及 PingFederate 公開憑證
A) 針對 ThingWorx 從 PingFederate 匯出中繼資料
1. PingFederate 中的 SP Connections 下,按一下 Manage All
2. 針對您在 E 部份 - 步驟 2 建立的 SP 連線 (即 TWX_SP),於 Select Action 清單中,按一下 Export Metadata
3. Metadata Signing 標籤中,按一下 Next
4. Export & Summary 標籤中,按一下 Export
即會下載檔案。
5. 按一下 Done,然後按一下 Save
B) 匯出 PingFederate 公開憑證
1. PingFederate 中的 SP Connections 下,按一下您選取的 SP 連線,即 TWX_SP
2. Activation & Summary 標籤中的 Credentials 部份下,按一下 Digital Signature Settings,然後執行下列操作:
3. 按一下 Manage Certificates
4. 針對您的憑證,在 Select Action 清單中,按一下 Export
5. 選取 CERTIFICATE ONLY 核取方塊,然後按一下 Export
即會下載檔案。將此檔案重新命名為適當的名稱。例如:pingfedsigning.crt
6. 將此 PingFederate 公開憑證檔案匯入至您在 E 部份 - 步驟 1 建立的 sso-keystore.jks KeyStore。
F 部份:配置 ThingWorx 進行單一登入 
1. 停止 ThingWorx 伺服器。
2. 請遵循配置 ThingWorx 進行單一登入中詳細說明的步驟。
完成 ThingWorx 的單一登入配置後,您的 ssoSecurityConfig 必須包含下列檔案:
G 部份:建立 SSL 憑證 
步驟 1:將 ThingWorx SSL 憑證匯入至 PingFederate Java cacerts 檔案
1. 針對 ThingWorx 建立金鑰組 (KeyStore)。請務必使用 ThingWorx 主機的 FQDN 作為 CN 值。
2. 從此金鑰組匯出 ThingWorx 公開 SSL 憑證。
3. ThingWorx SSL 憑證 (.crt) 匯入至 PingFederate 電腦的 Java cacerts 檔案。
4. 重新啟動 PingFederate
步驟 2:將 PingFederate SSL 憑證匯入至 ThingWorx Java cacerts 檔案
1. 欲匯出 PingFederate 憑證,請執行下列操作:
a. PingFederate 中,按一下 Security > SSL Server Certificates
b. 針對您的憑證,在 Select Action 清單中,按一下 Export,然後按一下 Next
c. Export Certificate 標籤中,確保 CERTIFCATE ONLY 為預設值,然後按一下 Next
d. Export & Summary 標籤中,按一下 Export
即會下載憑證。
e. 將憑證重新命名為適當的名稱。例如:pingfedssl.cer
2. PingFederate SSL 憑證 (.crt) 匯入至 ThingWorx 電腦的 Java cacerts 檔案。
步驟 3:將 PingFederate SSL 憑證匯入至 PingFederate Java cacerts 檔案
1. 欲匯出 PingFederate 憑證,請執行下列操作:
a. PingFederate 瀏覽器的位址左側,按一下 Not Secure
b. Certificate 視窗中,按一下 Copy to File
c. Certificate Export Wizard 中,按一下 Next,選取 DER encoded binary X.509 (.CER),然後按一下 Next
d. File to Export 頁的 File name 中,按一下 Browse 以提供憑證檔案的位置與適當名稱。
e. 按一下「完成」
2. PingFederate SSL 憑證匯入至 PingFederate 電腦的 Java cacerts 檔案。
H 部份:針對 ThingWorx 建立 OAuth 用戶端連線 
* 
請確定 Redirect URIS 欄位中沒有空格,並在組態結束時按一下 Save
I 部份:先確認 ThingWorx 已啟動,再繼續 SCIM 組態 
1. 啟動 ThingWorx
檢查記錄檔以確保沒有錯誤。
2. 使用您在 ADFS 中建立的 Domain\username 登入 ThingWorx
J 部份:針對 ThingWorx 配置 SCIM 
如需詳細資訊,請參閱授權
步驟 1:啟用向外授權
1. 停止 PingFederate
2. 停止 ThingWorx
3. <pf_install>/pingfederate/bin (其中,<pf_install>PingFederate 的安裝位置) 的 run.properties 檔案中,將 pf.provisioner.mode 的值更新為 STANDALONE
pf.provisioner.mode=STANDALONE
4. 啟動 PingFederate
5. 欲在 PingFederate 中啟用向外授權,請轉至 System > Protocol Settings,然後在 Roles & Protocols 標籤中選取 OUTBOUND PROVISIONING 核取方塊。按一下 Save
步驟 2:針對 Active Directory 建立資料存放區
1. PingFederate 中,按一下 System,然後在 EXTERNAL SYSTEMS 下,按一下 Data Stores
2. 按一下 Add new Data Store.
3. 輸入 NAME,例如 LDAP_ADFS,針對 TYPE 選取 Directory (LDAP),然後按一下 Next
4. 針對 HOSTNAME(S),提供 ADFS 電腦的 FQDN。
5. 針對 USER DN,提供 cn=Administrator,cn=Users,dc=thingworx,dc=com
6. 針對 PASSWORD,提供您在 Active Directory 中設定的相同管理員密碼,然後按一下 Next
7. Summary 標籤中,按一下 Done,然後按一下 Save
如需詳細資訊,請參閱新增 LDAP 作為資料存放區
步驟 3:建立密碼認證驗證器實例
1. PingFederate 中,按一下 System,然後在 EXTERNAL SYSTEMS 下,按一下 Password Credential Validators
2. 按一下「建立新實例」
3. 提供 INSTANCE NAMEINSTANCE ID 的值。
4. TYPE 清單中,選取 Simple Username Password Credential Validator,然後按一下 Next
5. Instance Configuration 標籤中,按一下 Add a new row to 'Users'
6. 提供現有 ThingWorx (例如,管理員) 的 UsernamePassword。按一下 Update,然後按一下 Next
7. Summary 標籤中,按一下 Done,然後按一下 Save
如需詳細資訊,請參閱配置密碼認證驗證器實例
步驟 4:將密碼認證驗證器實例對應至持續授與契約
1. PingFederate 中,轉至 OAuth Server > Resource Owner Credentials Mapping
2. SOURCE PASSWORD VALIDATOR INSTANCE 中,選取您在上述步驟建立的驗證器,然後按一下 Add Mapping
3. Attribute Sources & User Lookup 標籤中,按一下 Next
4. Contract Fulfillment 標籤中,將 Source 設定為 Password Credential Validator,將 Value 設定為 username,然後按一下 Next
5. Issuance Criteria 標籤中,按一下 Next
6. Summary 標籤中,按一下 Done,然後按一下 Save
如需詳細資訊,請參閱配置密碼認證驗證器實例
步驟 5:建立適用於 SCIM 的 OAuth 用戶端
OAuth 用戶端是 PingFederateThingWorx 提供存取權杖時所用的連線點。服務提供者會使用這些存取權杖來從 ThingWorx 請求受 OAuth 保護的資源。
1. PingFederate 中,轉至 OAuth Server,然後在 CLIENTS 下,按一下 Create New
2. CLIENT IDNAME 提供具唯一性的值。
3. CLIENT AUTHENTICATION 設定為 CLIENT SECRET
4. 針對 CLIENT SECRET,選取 CHANGE SECRET 核取方塊,然後按一下 Generate Secret
請記下 CLIENT IDCLIENT SECRET 的值,因為在配置 sso-settings.json 檔案中的 SCIMAccessTokenServicesSettings 區段時,您會用到這兩個值。
5. REDIRECT URIS 欄位中,輸入 https://{THINGWORX 主機}:8443/Thingworx/SCIMProvider/SCIM,然後按一下 Add
6. 針對 ALLOWED GRANT TYPES,選取 Client CredentialsResource Owner Password CredentialsAccess Token Validation (Client is a Resource Server) 核取方塊。
7. DEFAULT ACCESS TOKEN MANAGER 設定為 Default
8. 請務必如下圖所示設定其餘值:
9. 按一下 Save
如需詳細資訊,請參閱建立適用於 SCIM 的 OAuth 用戶端
步驟 6:在 platform-settings.json 檔案中配置 SCIM
步驟 7:確認 SCIMSubsytem 是否正在執行
1. 啟動 ThingWorx 伺服器。
2. ThingWorx Composer 中,按一下 Browse,並選取 Subsystems
3. 選取 SCIMSubsystem,並確認其正在執行。
步驟 8:對應 USERNAME 與 USER_KEY
1. PingFederate 中,轉至 OAuth Server,然後在 TOKEN MAPPING 下,按一下 Access Token Management
2. 按一下「建立新實例」
3. 提供 INSTANCE NAME
4. 針對 INSTANCE ID,鍵入 default
5. TYPE 設定為 Internally Managed Reference Tokens,然後按一下 Next
6. Instance Configuration 標籤中,按一下 Next
7. Session Validation 標籤中,按一下 Next
8. Access Token Attribute Contract 標籤中,執行下列操作,然後按一下 Next
a. Extend the Contract 下,針對 Windchill 新增 Username,然後按一下 Add
* 
請務必指定與此處所述相同的情況。
b. Extend the Contract 下,針對 SCIM 新增 username,然後按一下 Add
* 
請務必指定與此處所述相同的情況。
9. Resource URIs 標籤中,按一下 Next
10. Access Control 標籤中,按一下 Next
11. Summary 標籤中,按一下 Done,然後按一下 Save
現在,Access Token Mapping 會位於 PingFederate 主頁中的 TOKEN MAPPING 之下。
12. 按一下 Access Token Mapping,然後按一下 Add Mapping (至 Default 前後關聯)。
13. 按一下 Next,直到您到達 Contract Fulfillment 標籤為止。
14. Contract Fulfillment 標籤中,針對 Usernameusername 契約,執行下列操作:
Source 設定為 Persistent Grant
Value 設定為 USER_KEY
15. Issuance Criteria 標籤中,按一下 Next
16. Summary 標籤中,按一下 Done,然後按一下 Save
步驟 9:針對 SCIM 定義服務提供者連線
1. PingFederate 中,按一下 Identity Provider,然後在 SP CONNECTIONS 下,按一下 Create New
2. Connection Template 標籤中,選取 DO NOT USE A TEMPLATE FOR THIS CONNECTION,然後按一下 Next
3. CONNECTION TYPE 標籤中,執行下列操作,然後按一下 Next
a. 請確保未選取 BROWSER SSO PROFILES 核取方塊。
b. 選取 OUTBOUND PROVISIONING 核取方塊,並將 TYPE 設定為 SCIM 1.1 Service Provider
4. General Info 標籤中,執行下列操作,然後按一下 Next
a. 指定 PARTNER'S ENTITY ID (CONNECTION ID)CONNECTION NAME。例如:SCIM_ADFS_SP
b. BASE URL 欄位中,輸入 https://ThingWorx_FQDN:8443/Thingworx/SCIMProvider
* 
在將 URL 複製到 PingFederate 時,請確保其結尾沒有空格。
5. Outbound Provisioning 標籤中,按一下 Configure Provisioning
6. Custom SCIM Attributes 標籤中,執行下列操作,然後按一下 Next
a. USERS RESOURCE URL 欄位中,輸入 https://ThingWorx_FQDN:8443/Thingworx/SCIMProvider/SCIM/Users
* 
在將 URL 複製到 PingFederate 時,請確保其結尾沒有空格。
b. GROUPS RESOURCE URL 欄位中,輸入 https://ThingWorx_FQDN:8443/Thingworx/SCIMProvider/SCIM/Groups
* 
在將 URL 複製到 PingFederate 時,請確保其結尾沒有空格。
c. AUTHENTICATION METHOD 設定為 OAUTH 2.0 BEARER TOKEN
d. USER 指定為 Administrator,然後輸入 PASSWORD
e. 指定 sso-settings.json 檔案中的 CLIENT IDCLIENT SECRET 值。
f. TOKEN END POINT URL 中,輸入 https://PingFederate 主機:9031/as/token.oauth2
* 
請確定 URL 的結尾沒有空格。
g. 請確保 SCIM SP SUPPORTS PATCH UPDATESPROVISION GROUPS WITH DISTINGUISHED NAME 核取方塊皆未選取。
h. DEPROVISION METHOD 設定為 DELETE USER
7. Custom SCIM Attributes 標籤中,按一下 Next
如需詳細資訊,請參閱定義適用於 SCIM 的 SP 連線.
步驟 10:建立資料存放區通道
1. Manage Channels 標籤中,按一下 Create
2. 提供 CHANNEL NAME
3. ACTIVE DATA STORE 設定為您在步驟 2 建立的資料存放區,即 LDAP_ADFS,然後按一下 Next
4. Source Settings 標籤中,按一下 Next
5. Source Location 標籤中,執行下列操作,然後按一下 Next
a. BASE DN 欄位中,輸入 cn=users,dc=thingworx,dc=com
b. Users 下的 FILTER 欄位中,輸入 (&(objectCategory=person)(objectClass=user)(cn=*))
c. Groups 下的 FILTER 欄位中,輸入 (&(objectCategory=group))
6. Attribute Mapping 標籤中,按一下 Next
7. Activation & Summary 標籤中,將 Channel Status 設定為 ACTIVE,然後按一下 Done
8. Manage Channels 標籤中,按一下 Done
9. Outbound Provisioning 標籤中,按一下 Next
10. 確保 SP 連線處於使用中狀態 (綠色),然後按一下 Save
SP 連線會列在 SP 連線頁中。
如需詳細資訊,請參閱建立資料存放區通道
K 部份:將 Windchill 配置為資源提供者 
步驟 1:先決條件
已針對 SSL/OAuth 2.0 配置 Windchill
已將 ThingWorxPingFederate SSL 憑證匯入至 Windchill 電腦的 jssecacerts/ cacerts 檔案。
已在 ThingWorx 實例上配置 Integration Runtime
已將 Windchill SSL 憑證匯入至 ThingWorx 電腦的 jssecacerts / cacerts 檔案。
已將 Windchill SSL 憑證匯入至 PingFederate 電腦的 jssecacerts / cacerts 檔案。
步驟 2:完成 Windchill OAuth 2.0 檔案組態
更新位於 <WC_install_root>\Windchill\codebase\WEB-INF\security\config 中的 securityContext.properties 檔案:
checkTokenEndpointUrl - PingFederate 電腦的 FQDN。
clientId - OAuth 用戶端 ID,例如,wnc-rp-client
clientSecret - OAuth 用戶端密碼。
resourceScopes - Windchill 範圍,例如 WINDCHILL_READ
步驟 3:將 Windchill 的 OAuth 用戶端連線建立為資源提供者
* 
您可從 securityContext.properties 檔案中擷取 clientIdclientSecret 的值。
步驟 4:在 PingFederate 中建立 Windchill 範圍
1. PingFederateOAuth Server 頁中,按一下 Scope Management
2. Scope Value 下,按一下 Add 來新增相同的範圍,例如,WINDCHILL_READ,您已針對 securityContext.properties 檔案中的 resourceScopes 值新增此範圍。
3. 按一下 Save
這是否有幫助?