範例:在將 PingFederate 作為中央驗證伺服器、將 AD FS 作為識別提供者、將 SCIM 作為使用者授權方法,及將 Windchill 作為資源伺服器的情況下實行 SSO
此範例提供有關如何配置已針對單一登入配置 ThingWorx,且將 PingFederate 作為「中央驗證伺服器」(CAS)、將 Active Directory Federation Services (AD FS) 作為「識別提供者」(IdP),並將 Windchill 作為「資源伺服器」之環境的詳細步驟。
下表顯示了在此範例中配置的應用程式及其角色:
角色
|
應用程式
|
服務提供者
|
ThingWorx
|
中央授權伺服器
|
PingFederate
|
識別提供者
|
AD FS
|
資源伺服器
|
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 機器 - 新增 AD FS、ThingWorx 及 PingFederate 機器。
◦ ThingWorx 電腦 - 新增 AD FS、ThingWorx 及 PingFederate 電腦。
◦ Windchill 電腦 - 新增 ThingWorx 與 PingFederate 電腦。
停止 ThingWorx 伺服器。
| 請務必更新並配置 Tomcat,以使 ThingWorx 可在跨網域環境中操作。如需詳細資訊,請參閱 此文章。 |
3. 安裝或
升級 PingFederate 至
ThingWorx 所支援的最新修補程式。
5. 設定並配置 AD FS,確保您擁有下列屬性值與檔案:
◦ uid
◦ email
◦ group
◦ 中繼資料檔案
◦ 簽署憑證
B 部份:手動配置 AD FS 的驗證
步驟 1:建立 PingFederate 全域 SSL 憑證
1. 以管理員身分登入 PingFederate。搜尋 SSL Server Certificates 並開啟搜尋結果。
2. 按一下 Create New 以建立全域 SSL 憑證,並執行下列操作:
a. 在 Common Name 欄位中,提供 PingFederate 電腦的 FQDN。
b. 提供頁面的其他詳細資訊,然後按一下 Next。
c. 請確定已核取下列核取方塊,然後按一下 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 中,搜尋 Policy Contract,並開啟搜尋結果。
2. 按一下 Create New Contracts,然後執行下列操作:
a. 在 Contract Info 欄位中,輸入契約名稱,例如 SPContract,然後按一下 Next。
b. 在 Contract Attributes 下,如需延伸下列屬性的契約,請針對每個屬性按一下 Add:
▪ uid
▪ email
▪ group
依預設,subject 屬性已存在。
c. 按一下 Next,然後在 Summary 頁按一下 Save。
d. 在 Authentication Policy Contracts 頁中,按一下 Save。
步驟 3:下載 AD FS FederationMetadata.xml 檔案
1. 在您的 AD FS 電腦瀏覽器中,輸入下列 URL 以下載同盟中繼資料檔案:
https://ADSF_Host.ADFS_Domain/FederationMetadata/2007-06/FederationMetadata.xml
2. 將下載的檔案複製到 PingFederate 電腦。
步驟 4:建立 PingFederate IdP 連線
A) 指定用來建立 IdP 連線的一般資訊
1. 在 PingFederate 中,搜尋 IdP Connections,並開啟搜尋結果。按一下 Create Connection。
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 SSO。Browser SSO 頁即會開啟,您需要在其中為您的瀏覽器指定單一登入的設定。
B) 配置瀏覽器 SSO 設定
1. 在 Browser SSO 頁的 SAML Profiles 標籤中,選取下列選項,然後按一下 Next:
▪ IDP-INITIATED SSO
▪ SP-INITIATED SSO
2. 在 User-Session Creation 標籤中,按一下 Configure User-Session Creation。User-Session Creation 頁即會開啟,您需要在其中指定用來配置使用者建立的設定。
C) 配置使用者工作階段建立設定
1. 在 Identity Mapping 標籤中,接受預設設定,然後按一下 Next。
2. 在 Attribute Contract 標籤中,核對自動填入的屬性,然後按一下 Next。
3. 在 Target Session Mapping 標籤中,按一下 Map New Authentication Policy。Authentication Policy Mapping 頁即會開啟,您需要在其中指定驗證原則對應的設定。
D) 配置驗證原則對應設定
1. 在
Authentication Policy Contract 清單中,選取您在
B 部份 - 步驟 2 建立的契約,即
SPContract。確認所有屬性都已顯示,然後按一下
Next。
2. 在 Attribute Retrieval 標籤中,接受預設設定,然後按一下 Next。
3. 在 Contract Fulfillment 標籤中,針對 email、group、subject 與 uid 驗證原則契約選取下列值:
▪ 在 Source 清單中,選取 Assertion。
▪ 在 Value 清單中,從清單中選取對應的項目。
按一下 Next。
4. 在 Issuance Criteria 標籤中,按一下 Next。
5. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 Done。User-Session Creation 頁即會開啟,您需要在其中審核使用者工作階段建立的組態設定。
E) 審核使用者工作階段建立組態設定
1. User-Session Creation 頁中的 Target Session Mapping 標籤會顯示您在對應新驗證原則時選取的資訊。按一下 Next。
2. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 Done。Browser SSO 頁即會開啟。
3. Browser SSO 頁中的 User-Session Creation 標籤會顯示您在配置使用者工作階段建立時輸入的資訊。按一下 Next。
4. 在 OAuth Attribute Mapping 標籤中,選取 Map Directly Into Persistent Grant 與 Configure OAuth Attribute Mapping,然後執行下列操作:
a. 在 Data Store 標籤中,按一下 Next。
b. 在 Contract Fulfilment 標籤中,針對 USER_KEY 與 USER_NAME,將 Source 設定為 Assertion,將 Value 設定為來自 ADFS 的名稱屬性,然後按一下 Next。
c. 在 Issuance Criteria 標籤中,按一下 Next。
5. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 Done。在 OAuth Attribute Mapping Configuration 頁中按一下 Next。
6. 在 Protocol Settings 標籤中,按一下 Configure Protocol Settings。Protocol 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 標籤中的資訊。如果資訊正確,請按一下 Done。Browser SSO 頁即會開啟。
7. Browser SSO 頁中的 Protocol Settings 標籤會顯示您在配置通訊協定設定時選取的資訊。按一下 Next。
8. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 Done。IdP Connection 頁即會開啟。
9. 在 IdP Connection 頁的 Browser SSO 標籤中,按一下 Next。
10. 在 Credentials 標籤中,按一下 Configure Credentials。Credentials 頁即會開啟,您需要在其中指定用來配置認證的設定。
G) 配置認證
1. 在 Digital Signature Settings 標籤中,按一下 Manage Certificates。
2. 欲建立簽署憑證,請按一下 Create New,提供下列值,然後按一下 Next:
▪ COMMON NAME
▪ ORGANIZATION
▪ COUNTRY
▪ VALIDITY (DAYS)—365
▪ KEY ALGORITHM—RSA
▪ KEY SIZE (BITS)—2048
▪ SIGNATURE ALGORITHM—RSA SHA256
3. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 Save,然後按一下 Done。
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 就必須重新導向至 AD FS。您會看到一個類似於如下所示的頁面,且其中包含錯誤訊息。
C 部份:配置 AD FS 信賴憑證者
步驟 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 檔案複製到 AD FS 電腦。
步驟 2:在 AD FS 中新增信賴憑證者
1. 登入至 AD FS 伺服器,然後開啟 Server Manager。
2. 轉至 > 。
3. 在 AD FS 下的 Relying Party Trusts 上按一下滑鼠右鍵,然後選取 Add Relying Party Trust。這是為了確保 AD FS 信任連線來自 PingFederate。
4. 在 Add Relying Party Trust Wizard 視窗中,執行下列操作:
a. 按一下 Start。
b. 在下一個畫面中,按一下 Import data about the relying party from a file。
c. 按一下 Browse,導覽至您從 PingFederate 複製之 Metadata.xml 的位置,以在 AD FS 中建立「信賴憑證者」,然後按一下 Next。
d. 提供 Display name,然後按一下 Next。
請記下此名稱,因為稍後會需要用到它。
e. 在接下來的視窗中按一下 Next,直到您到達 Finish 畫面為止。然後,按一下 Close。
您目前的項目即會新增至 Relying Part Trusts 清單。
您應該也會看到下列視窗 (它可能會隱藏在目前視窗之後):
5. 欲將 AD FS 屬性對應至 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 表中,從清單中選取值,以將 AD FS 屬性對應至 Active Directory 屬性:
Display-Name | 名稱 |
SAM-Account-Name | 名稱 ID |
E-Mail-Addresses | 電子郵件地址 |
Is-Member-Of-DL | 群組 |
d. 按一下 Finish,然後按一下 OK。
步驟 3:設定 AD FS 以加密完整訊息與宣告
1. 在 AD FS 電腦中,以管理員身分開啟 Windows PowerShell。
2. 在 AD FS 電腦中執行下列指令,以進行通訊:
Set-ADFSRelyingPartyTrust -TargetName <信賴憑證者信任名稱> -SamlResponseSignature "MessageAndAssertion"
其中,<信賴憑證者信任名稱> 是您在上述「步驟 2」中建立並記下的信賴憑證者信任名稱。
此指令會透過 Windows PowerShell 配置 SAML 回應簽章。
D 部份:確認 IdP 連線端點 URL
1. 從 PingFederate 中,複製 SSO Application Endpoint URL,並將其貼上到無痕視窗中。
2. 使用您為 AD FS 建立的網域名稱與管理員使用者登入。
您應該會收到下列訊息:
E 部份:針對 ThingWorx 建立 PingFederate 服務提供者連線
步驟 1:建立 ThingWorx 簽署憑證
1. 在 <ThingWorx 安裝資料夾>/ThingworxPlatform 資料夾中,建立 ssoSecurityConfig 資料夾。
2. 建立 JKS 類型的 KeyStore,並將其命名為 sso-keystore.jks,方式如下:
▪ 產生金鑰組。
▪ 將憑證的一般名稱 (CN) 指定為 ThingWorx。
3. 將 thingworx.cer 從 sso-keystore.jks 匯出到 ssoSecurityConfig 資料夾。
步驟 2:針對 ThingWorx 配置服務提供者連線
A) 指定用來建立服務提供者連線的一般資訊
1. 在 PingFederate 主頁,搜尋 SP Connections 群組,按一下 Create Connection。SP 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 SSO。Browser 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 Creation。Assertion 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 Policy。Authentication 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 標籤中,針對 email、group、SAML_SUBJECT 與 uid 驗證原則契約選取下列值:
▪ 在 Source 清單中,選取 Authentication Policy Contract。
▪ 在 Value 清單中,從清單中選取對應的項目。
按一下 Next。
4. 跳過 Issuance Criteria 標籤中的設定,然後按一下 Next。
5. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 Done。Assertion Creation 頁即會開啟,您需要在其中審核宣告建立的組態設定。
E) 審核宣告建立組態設定
1. Assertion Creation 頁中的 Authentication Source Mapping 標籤會顯示您在對應新驗證政策時選取的資訊。按一下 Next。
2. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 Done。Browser SSO 頁即會開啟。
3. Browser SSO 頁中的 Assertion Creation 標籤會顯示您在配置宣告建立時輸入的資訊。按一下 Next。
4. 在 Protocol Settings 標籤中,按一下 Configure Protocol Settings。Protocol 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 標籤中的資訊。如果資訊正確,請按一下 Done。Browser SSO 頁即會開啟。
6. Browser SSO 頁中的 Protocol Settings 標籤會顯示您在配置通訊協定設定時選取的資訊。按一下 Next。
7. 審核 Summary 標籤中的資訊。如果資訊正確,請按一下 Done。SP Connection 頁即會開啟。
8. 在 SP Connection 頁的 Browser SSO 標籤中,按一下 Next。
9. 在 Credentials 標籤中,按一下 Configure Credentials。Credentials 頁即會開啟,您需要在其中指定用來配置認證的設定。
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 頁中的資訊。如果資訊正確,請按一下 Done。Certificate 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 標籤中的資訊。如果資訊正確,請按一下 Done。Credentials 頁即會開啟,您需要在其中審核簽章驗證的設定。
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. 按一下「完成」。
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。
步驟 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 伺服器。
完成 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 中,按一下 > 。
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 檔案。
H 部份:針對 ThingWorx 建立 OAuth 用戶端連線
| 請確定 Redirect URIS 欄位中沒有空格,並在組態結束時按一下 Save。 |
I 部份:先確認 ThingWorx 已啟動,再繼續 SCIM 組態
1. 啟動 ThingWorx。
檢查記錄檔以確保沒有錯誤。
2. 使用您在 AD FS 中建立的 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。
步驟 2:針對 Active Directory 建立資料存放區
1. 在 PingFederate 中,搜尋 Data Stores。
2. 按一下 Add new Data Store.
3. 輸入 NAME,例如 LDAP_ADFS,針對 TYPE 選取 Directory (LDAP),然後按一下 Next。
4. 針對 HOSTNAME(S),提供 AD FS 電腦的 FQDN。
5. 針對 USER DN,提供 cn=Administrator,cn=Users,dc=thingworx,dc=com
6. 針對 PASSWORD,提供您在 Active Directory 中設定的相同管理員密碼,然後按一下 Next。
7. 在 Summary 標籤中,按一下 Save。
步驟 3:建立密碼認證驗證器實例
1. 在 PingFederate 中,搜尋 Password Credential Validators。
2. 按一下「建立新實例」。
3. 提供 INSTANCE NAME 與 INSTANCE ID 的值。
4. 在 TYPE 清單中,選取 Simple Username Password Credential Validator,然後按一下 Next。
5. 在 Instance Configuration 標籤中,按一下 Add a new row to 'Users'。
6. 提供現有 ThingWorx (例如,管理員) 的 Username 與 Password。按一下 Update,然後按一下 Next。
7. 在 Summary 標籤中,按一下 Done,然後按一下 Save。
步驟 4:將密碼認證驗證器實例對應至持續授與契約
1. 在 PingFederate 中,搜尋 Resource Owner Credentials Grant 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 標籤中,按一下 Save。
步驟 5:建立適用於 SCIM 的 OAuth 用戶端
OAuth 用戶端是 PingFederate 向 ThingWorx 提供存取權杖時所用的連線點。服務提供者會使用這些存取權杖來從 ThingWorx 請求受 OAuth 保護的資源。
1. 在 PingFederate 中,搜尋 Clients 並開啟搜尋結果。按一下 Add Client。
2. 為 CLIENT ID 與 NAME 提供具唯一性的值。
3. 將 CLIENT AUTHENTICATION 設定為 CLIENT SECRET。
4. 針對 CLIENT SECRET,選取 CHANGE SECRET 核取方塊,然後按一下 Generate Secret。
請記下 CLIENT ID 與 CLIENT SECRET 的值,因為在配置 sso-settings.json 檔案中的 SCIMAccessTokenServicesSettings 區段時,您會用到這兩個值。
5. 在 REDIRECT URIS 欄位中,輸入 https://{THINGWORX 主機}:8443/Thingworx/SCIMProvider/SCIM,然後按一下 Add。
6. 針對 ALLOWED GRANT TYPES,選取 Client Credentials、Resource Owner Password Credentials 與 Access Token Validation (Client is a Resource Server) 核取方塊。
7. 將 DEFAULT ACCESS TOKEN MANAGER 設定為 Default。
8. 請務必如下圖所示設定其餘值:
9. 按一下 Save。
步驟 6:在 platform-settings.json 檔案中配置 SCIM
步驟 7:確認 SCIM 子系統是否正在執行
1. 啟動 ThingWorx 伺服器。
2. 在 ThingWorx Composer 中,按一下 Browse,並選取 Subsystems。
3. 選取 SCIMSubsystem,並確認其正在執行。
步驟 8:對應 USERNAME 與 USER_KEY
1. 在 PingFederate 中,搜尋 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 標籤中,按一下 Save。
12. 搜尋 Access Token Mapping,然後按一下 Add Mapping (至 Default 前後關聯)。
13. 按一下 Next,直到您到達 Contract Fulfillment 標籤為止。
14. 在 Contract Fulfillment 標籤中,針對 Username 與 username 契約,執行下列操作:
▪ 將 Source 設定為 Persistent Grant。
▪ 將 Value 設定為 USER_KEY。
15. 在 Issuance Criteria 標籤中,按一下 Next。
16. 在 Summary 標籤中,按一下 Save。
步驟 9:針對 SCIM 定義服務提供者連線
1. 在 PingFederate 中,搜尋 SP CONNECTIONS 並建立新連線。
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 ID 與 CLIENT SECRET 值。
f. 在 TOKEN END POINT URL 中,輸入 https://PingFederate 主機:9031/as/token.oauth2
g. 請確保 SCIM SP SUPPORTS PATCH UPDATES 與 PROVISION GROUPS WITH DISTINGUISHED NAME 核取方塊皆未選取。
h. 將 DEPROVISION METHOD 設定為 DELETE USER。
7. 在 Custom SCIM Attributes 標籤中,按一下 Next。
步驟 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 連線頁中。
步驟 11:新增 LDAP 二進位屬性
1. 轉至 > > 。
2. 按一下 LDAP_ADFS 資料存放區,然後選取 LDAP Configuration 標籤。
3. 按一下 Advanced 以查看繫結與組態的其他設定。
4. 按一下 LDAP Binary Attributes,並新增 objectGUID 作為值新二進位屬性。
5. 按一下 Save。
K 部份:將 Windchill 配置為資源伺服器
步驟 1:先決條件
◦ 已針對 SSL/OAuth 2.0 配置 Windchill。
◦ 已將 ThingWorx 與 PingFederate SSL 憑證匯入至 Windchill 電腦的 jssecacerts/ cacerts 檔案。
◦ 已將 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 檔案中擷取 clientId 與 clientSecret 的值。 |
步驟 4:在 PingFederate 中建立 Windchill 範圍
1. 在 PingFederate 的 OAuth Server 頁中,按一下 Scope Management。
2. 在 Scope Value 下,按一下 Add 來新增相同的範圍,例如,WINDCHILL_READ,您已針對 securityContext.properties 檔案中的 resourceScopes 值新增此範圍。
3. 按一下 Save。