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
시작하기 항목으로 돌아가기
구성 오류 메시지
다음 표에는 Active Directory 엔티티의 잘못 구성된 필드를 기반으로 ApplicationLog에 나타날 수 있는 오류 메시지가 나와 있습니다. 다음은 이 표에 나열된 구성 섹션에 대한 링크를 제공하는 간단한 표입니다.
구성 오류 메시지
필드
구성 섹션
오류 메시지
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에서 디렉터리 서비스 엔티티의 구성 페이지에 있는 사용자 확장 속성 매핑의 테이블에서 잘못된 엔트리를 제거할 수 있습니다.
도움이 되셨나요?