疑難排解 Active Directory 問題
本主題提供下列部份,可協助您疑難排解 Active Directory 的相關問題:
實體匯入失敗,無法轉換錯誤
匯入 Active Directory 實體時,匯入只會在 XML 檔案中指定的值與欄位的資料類型不符時失敗。例如,如果為 <port> 元素提供值 test,則匯入將會失敗。以下是發生此問題時顯示的 XML 程式碼片段:

<Row>
<adminPassword><![CDATA[]]></adminPassword>
<adminPrincipal><![CDATA[CN=Administrator,CN=Users,DC=domain,DC=com]]></adminPrincipal>
<domain><![CDATA[dc=domain,dc=com]]></domain>
<port>test</port> <================================ INVALID DATA TYPE VALUE FOR <port>. MUST BE AN INTEGER.
<protocol><![CDATA[LDAP]]></protocol>
<server><![CDATA[10.80.21.164]]></server>
</Row>
以下是螢幕擷取畫面顯示了您會在 Composer 中看到的內容:
以下錯誤會寫入至 ApplicationLog:

ERROR: [message: Conversion Error on Field port : Unable To Convert From com.sun.org.apache.xerces.internal.dom.ElementNSImpl to INTEGER]
ERROR: Entity import failed
若要解決此問題,請仔細檢查 XML,以確保所提供的值屬於適當的資料類型。
返回入門
匯入驗證失敗,但匯入成功
在驗證因遺失必要欄位或無效組態而失敗的情況下,目錄服務實體仍可匯入,但將會標記為已禁用。欲啟用實體,必須更新無效的欄位。
* 
啟用之前,目錄服務實體無法用於驗證。啟用匯入為已禁用之目錄服務實體的程序是手動進行的。您必須導覽至在 ThingWorx Composer 中禁用的實體、將其啟用,然後儲存。
以下是無效組態的範例,在無效參數下有一個註解 (protocol):

<Row>
<adminPassword><![CDATA[]]></adminPassword>
<adminPrincipal><![CDATA[CN=Administrator,CN=Users,DC=domain,DC=com]]></adminPrincipal>
<domain><![CDATA[dc=domain,dc=com]]></domain>
<port>test</port>
<protocol><![CDATA[INVALID-PROTOCOL]]></protocol>
<== INVALID CONFIGURATION VALUE FOR <protocol>. MUST BE EITHER LDAP OR LDAPS.
<server><![CDATA[10.80.21.164]]></server>
</Row>
請注意,此實體會成功匯入至 ThingWorx:
但是,請注意,實體本身上的「已啟用」核取方塊未選取,這表示該實體已停用。以下是一個範例:
此情況的下列錯誤會顯示在 ApplicationLog 中:

ERROR: Directory Service Error: The URI Scheme must be LDAP or LDAPS
返回入門
組態錯誤訊息
下表列出了可能會顯示在 ApplicationLog 中的錯誤訊息,這些錯誤訊息基於 Active Directory 實體中的無效配置欄位。在下表後面有一個簡短的表格,其中提供了下表所列「組態部份」的連結:
組態錯誤訊息
欄位
組態部份
錯誤訊息
URI 配置
連線設定
目錄服務錯誤:URI 配置必須是 LDAP 或 LDAPS。
伺服器 FQDN 或 IP 位址
伺服器網路連接埠
連線設定
目錄服務錯誤:伺服器 FQDN 或 IP 位址不得為 null。
目錄服務錯誤:java.net.MalformedURLException: Not an LDAP URL: <IP>:<Port> Cannot parse url: <IP><Port
目錄服務錯誤:
java.net.ConnectException: Connection refused (Connection refused) to 'Server FQDN or IP address' and 'Server Network Port' <IP>:<Port>
伺服器網路連接埠
連線設定
目錄服務錯誤:伺服器網路埠必須在 0 到 65535 的範圍之間。
網域辨別名稱
連線設定
目錄服務錯誤:網域不得為 null。
管理主體名稱
連線設定
目錄服務錯誤:管理主體名稱不得為 null。
* 
若「未」啟用/核取「動態使用者登入」,管理主體名稱為必填。
管理密碼
連線設定
目錄服務錯誤:管理密碼不得為 null。
* 
若「未」啟用「動態使用者登入」,管理密碼為必填。
使用者 ID 屬性名稱
結構對應
目錄服務錯誤:attributeUserIdName 不得為 null。
使用者基準辨別名稱
結構對應
目錄服務錯誤:userBaseDN 不得為 null。
群組物件類別名稱
結構對應
目錄服務錯誤:groupObjectClass 不得為 null。
群組成員資格屬性名稱
結構對應
目錄服務錯誤:memberOfAttribute 不得為 null。
群組屬性名稱
結構對應
目錄服務錯誤:groupAttribute 不得為 null。
使用者旗標屬性名稱
結構對應
目錄服務錯誤:userControlAttribute 不得為 null。
使用者控制屬性的已停用位元
結構對應
目錄服務錯誤:userDisableBit 不得為 null,且必須是整數。
使用者控制屬性的反鎖位元
結構對應
目錄服務錯誤:userLockoutBit 不得為 null,且必須是整數。
Active Directory 群組名稱
群組對應
目錄服務錯誤:activeDirectoryGroupName 不得為 null。
ThingWorx 群組名稱
群組對應
目錄服務錯誤:thingworxGroupName 不得為 null。
所授權使用者的預設主混搭
使用者預設值
目錄服務錯誤:userDefaultHomeMashupName 不得為無效的混搭名稱。
所授權使用者的預設行動混搭
使用者預設值
目錄服務錯誤:userDefaulMobileMashupName 不得為無效的混搭名稱。
所授權使用者的預設標籤
使用者預設值
目錄服務錯誤:userDefaulTags 不得有無效的標籤。
目錄服務錯誤:userDefaulTags 不得有無效的標籤名稱。
ThingWorx 使用者名稱
使用者授權排除清單
目錄服務錯誤:thingworxUserName 不得為 null。
下表可連結至上表中組態部份的相關主題:
組態部份
主題
連線設定
結構對應
群組對應
使用者預設值
使用者授權排除清單
疑難排解:Active Directory 網域前置碼與動態使用者登入
Active Directory 目錄服務具有組態設定 Provisioned User's Default Domain Prefix,這可能會干擾「動態使用者登入」。以下是一組「使用者預設值」
Provisioned User's Default Domain Prefix 設定可讓您指定限制目錄服務可以驗證哪些使用者的前置碼。如果您為同一個 ThingWorx Platform 配置了多個 Active Directory 目錄服務,請考慮使用此選項來防止所有目錄服務都嘗試驗證同一位使用者。
但是,請注意,會從傳送至 Active Directory 的使用者名稱中去除此前置碼。如果指定前置碼正好是使用者的 Active Directory 網域,使用者就無法登入至 Active Directory。
例如:
1. DOMAIN\ 會指定為 Provisioned User's Default Domain Prefix
2. 使用者 DOMAIN\user1 嘗試登入 ThingWorx Platform。
3. DOMAIN\ 會從傳至 Active Directory 的使用者名稱中去除,user1 無法登入
此問題目前不影響已禁用「動態使用者登入」的 Active Directory 目錄服務。
欲解決此問題,請遵循下列做法:
避免使用預設網域前置碼 (偏好) - 啟用「動態使用者登入」時,避免使用使用者的預設網域前置碼設定。
請使用使用者必須輸入的其他前置碼,或讓使用者輸入網域前置碼兩次 - 您可以指定透過 DOMAIN\SamAccountName 登入所需的 DOMAIN\ 前置碼以外的其他前置碼。例如,您可能有一個前置碼為 PREFIX-,而使用者就可以使用 PREFIX-DOMAIN\prefix 登入。
疑難排解:UserExtension 內容的無效名稱
將 Active Directory 屬性對應至 ThingWorx UserExtension 內容時,可從下拉選單中選取 UserExtension 內容的名稱。ThingWorx 應用程式記錄檔中可能會出現下列錯誤訊息:
Property name: <property_name> not found
in UserExtensions properties
此錯誤由下列條件造成:
針對 Active Directory 目錄服務匯入的 XML 檔案包含無效的 userExtensionPropertyName 名稱,且
使用者登入並透過包含無效 userExtensionPropertyName 組態的 Active Directory 目錄服務進行驗證。
如果您手動編輯 XML 檔案,便可能發生此錯誤。您可以從 ThingWorx Composer 中 目錄服務實體組態頁內的「使用者延伸功能內容對應」表中移除無效的項目。
這是否有幫助?