單一登入疑難排解
可啟用事件記錄以對 SSO 相關問題進行疑難排解。欲啟用記錄,請使用 ThingworxPlatform 目錄中的標準 logback.xml 檔案。如果 logback.xml 檔案存在於此位置,您可以單純將 SSO 記錄器新增至現有的該組記錄器。如需有關 logback.xml 檔案的詳細資訊,請參閱配置記錄
logback.xml 功能是 Java 標準。如需有關配置這些檔案的指示,請參閱 Java 文件集。
下表提供有關可新增之記錄器封裝的資訊,這些記錄器封裝可協助您調查與 ThingWorx 之 SSO 組態相關的問題。
封裝
描述
com.thingworx.security.authentication.sso
所有 ThingWorx SSO 驗證元件的封裝。下列範例為記錄器封裝中的項目:
例如,若是轉至應用程式記錄檔的訊息:
LogUtilities.getInstance().getApplicationLogger([class name]):
<logger name="com.thingworx.security.authentication.sso" level="DEBUG"/>
安全性記錄器用於此封裝中的許多類別。例如:
LogUtilities.getInstance().getSecurityLogger(ThingworxSSOAuthenticator.class);
欲開啟這些記錄器,請新增 SecurityLog 作為根父項記錄器:
<logger name="SecurityLog.com.thingworx.security.authentication.sso" level="DEBUG"/>
SecurityLog.com.thingworx.security.sso
「整合連接器」在取得存取權杖與其組態時所使用之委派授權工作流程適用的封裝。
com.thingworx.ptc.eauth.identity
所有 PTC 核心 SSO 庫元件的封裝。
com.springframework.security
所有彈簧架構安全性元件的封裝。
com.springframework.jdbc
所有彈簧架構 JDBC 驗證元件的封裝。
如果您的 SSO 實行導致錯誤,可調查下列疑難排解項目。
問題
ThingWorx 管理員無法登入 - 收到範圍無效錯誤
描述
使用者在登入後會重新導向至 ThingWorx 錯誤頁,其中指出系統目前遇到驗證組態錯誤。
解決方案
ThingWorx「整合連接器」或媒體實體中註冊的一或多個範圍不符合在 PingFederate (或您選擇的 CAS) 中註冊的範圍。PingFederate 之間的範圍有此不相符情況可能會導致 ThingWorx 管理員遭到反鎖。您可在安全性記錄檔中檢視已在 ThingWorx 中註冊的資源提供者範圍。欲解決此問題,請遵循下列步驟:
1. 登入 PingFederate,然後比較來自 ThingWorx 安全性記錄檔的所報告範圍和在 PingFederate 中註冊的範圍。ThingWorx 中若有任何範圍未於 PingFederate 中註冊或具有不相符的名稱,請在 PingFederate 中新增該範圍,或修改名稱來符合 ThingWorx 中的拼字 (即使這不是該範圍的正確拼字)。
2. 現在,授與核准頁可正常使用,您能夠以管理員身份登入 ThingWorx。在 ThingWorx Composer 中,導覽至正在嘗試使用範圍的「整合連接器」或媒體實體。將其從「整合連接器」或媒體實體的範圍註冊表中移除。以新的 ThingWorx 工作階段登入來確認登入成功。
3. 如果 ThingWorx 嘗試使用未註冊的範圍,請在 PingFederate 中將不想要的範圍從範圍管理頁中移除。如果範圍名稱不相符,請刪除範圍,並在 PingFederate 中及 ThingWorx「整合連接器」或媒體實體中使用正確的拼寫重新註冊。
問題
「整合連接器」或「媒體實體」上的服務無法運作 - 擷取存取權杖失敗。
描述
您已登入至 ThingWorx Composer,並且已具備存取權杖。您已匯入或建立一個帶有範圍的連接器,然後嘗試在連接器上執行某項服務卻無法運作。
解決方案
登出並重新登入來針對連接器的範圍開啟授與核准頁。您必須核准新註冊的範圍授與,服務才能運作。
如果您要匯入或建立包含範圍的媒體實體,則情況相同。
問題
ThingWorx 啟動時 SSO 前後關聯與 Bean 初始化錯誤。
描述
ThingWorx 無法啟動。
解決方案
請參閱錯誤記錄檔來判定問題。前後關聯結尾文字、Bean 初始化警告或錯誤記錄檔將會描述問題。例如,某項可能的錯誤可能會指出:
SSOConfigurationException: BasicSettings > idpMetadataFilePath cannot be null or empty
檢查 sso-settings.json 檔案中 idpMetadataFilePath 參數的值,並新增適當值。
問題
使用者在來自 PingFederate 的 Request Grant Approval 頁上針對所請求的範圍按一下 Don't allow 後,ThingWorx 混搭或應用程式沒有載入。
描述
Request Grant Approval 頁上按一下 Don't allow 後,混搭沒有載入且瀏覽器 URL 以井號 "#" 和句點 "." 結尾。
解決方案
在預設情況下,PingFederate 會使用英文句點 "." 作為片段預留位置,而這便會導致發生此問題。若要解決這個問題,請執行下列操作:
1. 在 PingFederate 安裝位置中,導覽至 <PingFederateInstallation>\server\default\data\config-store\sanitize-fragments.xml
2. 編輯此 XML 檔案,然後將英文句點 "." 從片段預留位置中移除。該行應如下所示:<con:item name="FragmentPlaceholder"></con:item>
3. 重新啟動 PingFederate 伺服器。
問題
針對 http://<您的伺服器>:<連接埠>/Thingworx/runtime/index.html#mashup=<MyMashup> 進行的 SAML 驗證會在成功登入後重新導向至 http://<您的伺服器>:<連接埠>/Thingworx/runtime/index.html
描述
在使用混搭 URL 登入期間,URL 的片段部份 (亦即 #mashup=<我的混搭>) 不會傳送至 ThingWorx 伺服器或驗證伺服器來在成功登入之後進行適當的重新導向,因為瀏覽器會保留該資料來僅供用戶端使用。因此,ThingWorx 伺服器和驗證伺服器會收到不含該片段的 URL,亦即 http://<您的伺服器>:<連接埠>/Thingworx/runtime/index.html
解決方案
針對用來作為初始驗證點的混搭 URL,請使用查詢參數而非片段參數來建構 URL。
因此,在這種情況下請使用下列 URL:http://<您的伺服器>:<連接埠>/Thingworx/runtime/index.html?mashup=<MyMashup>
如需更多使用案例,請參閱 IAM 支援網站
這是否有幫助?