疑難排解 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 中 目錄服務實體組態頁內的「使用者延伸功能內容對應」表中移除無效的項目。