Composer의 ThingWorx 모델 정의 > 보안 > 디렉터리 서비스 > Active Directory에서 사용자 관리
Active Directory에서 사용자 관리
사용자가 Microsoft AD(Active Directory) 디렉터리 서비스에 이미 있는 경우 ThingWorx에서 사용자 및 사용자 그룹을 관리할 수 있습니다. ThingWorx를 통해 Active Directory 사용자 그룹을 ThingWorx 사용자 그룹으로 매핑할 수 있습니다. 사용자 프로비져닝 옵션을 통해 사용자를 생성, 수정 또는 삭제할 수 있습니다. 각 사용자 그룹에 대한 권한은 ThingWorx에서 관리됩니다.
* 
Active Directory 기능은 ThingWorx에서 기본적으로 활성화되어 있지 않습니다. ThingWorx에서 인증을 받는 데 Active Directory를 사용하려면 먼저 ThingWorx 관리자 사용자가 Active Directory를 활성화해야 합니다.
이 항목에서는 다음 정보를 제공합니다.
시작하기
시작하려면 XML 파일을 엔티티와 함께 ThingWorx로 가져와 ThingWorx에서 디렉터리 서비스를 만듭니다. 파일을 가져온 후 ThingWorx에서 디렉터리 서비스를 구성할 수 있습니다. XML 파일로 작업할 때 다음 규칙을 따릅니다.
XML 파일은 com.thingworx.security.directoryservices.ActiveDirectoryDirectoryService Java 클래스를 DirectoryService 요소의 className 속성으로 사용하는 디렉터리 서비스를 하나 이상 포함해야 합니다.
DirectoryService 요소에 대해 name의 고유한 값을 제공해야 합니다.
name 값도 ThingWorx Runtime 내 존재하는 모든 디렉터리 서비스 간에 고유해야 합니다.
priority 속성에는 인증을 위한 고유한 우선 순위 번호가 있어야 합니다. 또한 파일 및 ThingWorx Runtime에서 각 디렉터리 서비스에 고유한 우선 순위를 추가해야 합니다. 이 우선 순위는 ThingWorx가 자격 증명의 유효성을 검사할 때 디렉터리 서비스를 조회하는 순서에 해당합니다.
* 
디렉터리 서비스는 인증 시 연결된 우선 순위대로 작동합니다. 우선 순위 설정이 가장 낮은 디렉터리 서비스(아래 예에서는 1)가 사용자 인증의 유효성 검사를 실패하면 체인에서는 다음으로 우선 순위가 높은 체인의 디렉터리 서비스에 대해 사용자의 유효성 검사를 시도합니다. 아래의 예를 참조하십시오.
XML 예: 한 개의 디렉터리 서비스
아래 예에는 ThingWorx 내의 새 디렉터리 서비스를 가져오기 위해 필요한 최소 구성 xml 파일이 포함되어 있습니다.
* 
아래는 관리자 사용자에 대한 예입니다.

<Entities>
<DirectoryServices>
<DirectoryService
className="com.thingworx.security.directoryservices.ActiveDirectoryDirectoryService"
description="Active Directory Directory Services"
documentationContent="" enabled="false" homeMashup=""
lastModifiedDate="" name="ADDS1" priority="1" projectName=""
tags="">
<Owner name="Administrator" type="User" />
<avatar />
<DesignTimePermissions>
<Create />
<Read />
<Update />
<Delete />
<Metadata />
</DesignTimePermissions>
<RunTimePermissions />
<VisibilityPermissions>
<Visibility />
</VisibilityPermissions>
<ConfigurationTables/>
<ConfigurationChanges />
</DirectoryService>
</DirectoryServices>
</Entities>

XML 예: 두 개의 디렉터리 서비스
아래 예에는 두 개의 디렉터리 서비스가 있습니다. priority 속성이 각 DirectoryService에 정의되어 있습니다.
<Entities>
<DirectoryServices>
<DirectoryService
className="com.thingworx.security.directoryservices.ActiveDirectoryDirectoryService"
description="Active Directory Directory Services"
documentationContent="" enabled="false" homeMashup=""
lastModifiedDate="" name="ADDS1" priority="1" projectName=""
tags="">
<Owner name="Administrator" type="User" />
<avatar />
<DesignTimePermissions>
<Create />
<Read />
<Update />
<Delete />
<Metadata />
</DesignTimePermissions>
<RunTimePermissions />
<VisibilityPermissions>
<Visibility />
</VisibilityPermissions>
<ConfigurationTables/>
<ConfigurationChanges />
</DirectoryService>
<DirectoryService
className="com.thingworx.security.directoryservices.ActiveDirectoryDirectoryService"
description="Active Directory Directory Services"
documentationContent="" enabled="false" homeMashup=""
lastModifiedDate="" name="ADDS2" priority="2" projectName=""
tags="">
<Owner name="Administrator" type="User" />
<avatar />
<DesignTimePermissions>
<Create />
<Read />
<Update />
<Delete />
<Metadata />
</DesignTimePermissions>
<RunTimePermissions />
<VisibilityPermissions>
<Visibility />
</VisibilityPermissions>
<ConfigurationTables/>
<ConfigurationChanges />
</DirectoryService>
</DirectoryServices>
</Entities>
디렉터리 서비스의 구성
Active Directory 디렉터리 서비스에 대한 XML 파일을 가져온 후 해당 파일을 구성해야 합니다. ThingWorx Composer의 구성 페이지에 액세스하려면 다음을 수행합니다.
1. 찾아보기 탐색 패널에서 보안을 확장하고 디렉터리 서비스를 선택합니다.
2. 디렉터리 서비스 페이지에서 Active Directory 디렉터리 서비스의 이름을 클릭합니다. 디렉터리 서비스에 대한 일반 정보 페이지가 나타납니다.
3. 활성화됨 확인란을 선택하여 이 디렉터리 서비스를 활성화하고 저장을 클릭합니다.
4. 구성을 선택하여 구성 페이지를 표시합니다. 디렉터리 서비스를 구성할 준비가 완료되었습니다.
* 
이 단원 및 다음 단원에서 설명하는 구성 옵션은 디렉터리 서비스 엔티티에 대한 구성 페이지에 모두 표시됩니다. 구성 오류 메시지에 대한 자세한 내용은 구성 오류 메시지 단원을 참조하십시오.
ThingWorx에 로그인하는 동안 사용자 입력에 대한 자격 증명 유효성 검사는 User Base Distinguished Name 구성 테이블 설정에서 사용자 객체와 해당 객체에 대한 암호를 조회하여 수행됩니다. Active Directory 엔티티에 도메인을 지정하기 위한 두 개의 위치가 있으며 이러한 위치는 서로 완전히 독립적일 수 있습니다. Domain Distinguished Name 은 그룹 조회 중에 사용되므로 그룹 매핑 기능을 사용하려면 사용자가 있는 모든 그룹이 지정된 Domain Distinguished Name 값 아래에 속해 있는지 확인하십시오. User Base Distinguished Name은 ThingWorx에 로그인 중 제공된 사용자 이름과 암호를 사용하여 Active Directory에서 사용자 객체를 조회하는 동안 사용되는 위치입니다.
* 
여러 디렉터리 서비스 객체를 구성할 때 Active Directory 구조 내에서 사용자 검색 기준을 중첩하지 마십시오.
연결 설정
v.8.3.5부터 Active Directory 구성의 연결 설정 섹션에는 동적 사용자 로그인 옵션이 포함됩니다. 개정된 페이지는 다음과 같습니다.
다음 표에서는 디렉터리 서비스에 대한 연결 설정에 대해 설명합니다. 모든 연결 설정 필드는 필수 사항입니다.
이름
설명
XML 속성 이름
기본값
값의 예
URI 스키마
Active Directory 서버와의 통신에 사용되는 연관된 프로토콜을 지정하는 문자열입니다.
protocol
LDAP
LDAP
서버 FQDN 또는 IP 주소
디렉터리 질의 대상으로 지정되는 서버 이름/주소입니다.
server
localhost
localhost, domainserver.acme.com, 127.0.0.1
서버 네트워크 포트
디렉터리 질의 대상으로 지정되는 서버의 포트입니다.
port
389
389, 369, 10389
도메인 고유 이름
사용자 그룹 조회 중에 사용된 최상위 수준 디렉터리의 고유 이름입니다.
domain
해당 없음
DC=test, DC=acme, DC=com
동적 사용자 로그인
동적 사용자 로그인이 활성화되어 있는지 여부를 결정합니다. 자세한 내용은 다음 단원을 참조하십시오.
dynamicUserLogin
확인란이 비어 있음(비활성화됨)
확인란이 선택됨
관리 주체 이름
지정된 도메인 객체에 대한 관리자 읽기 권한을 가진 사용자의 이름입니다. 이 이름의 값은 스키마 매핑 구성 테이블에 지정된 User Id Attribute에 따라 달라집니다.
adminPrincipal
해당 없음
AcmeAdmin
관리 암호
연결 설정 구성 테이블에 지정된 관리 주체 이름의 암호입니다.
adminPassword
해당 없음
AcmePassword
동적 사용자 로그인
* 
동적 사용자 로그인이 활성화될 때 사용자는 동일한 사용자 이름을 사용하여 ThingWorx Platform에 인증하는 것이 좋습니다. 그렇지 않으면 ThingWorx Platform의 현재 제한으로 인해 동일한 사용자에 대해 여러 ThingWorx Platform 계정이 생성됩니다. 예를 들어, 사용자가 자신의 displayNametestuser를 사용하여 로그인한다고 가정합니다. 그러면 ThingWorx Platform에서 이름이 testuser인 사용자 계정이 작성됩니다. 그러나 동일한 사용자가 자신의 UPN(Universal Principal Name)(이 예에서는 testuser@domain.com임)을 사용하여 로그인하면 ThingWorx Platform에서 사용자 testuser@domain.com도 생성됩니다.
동적 사용자 로그인이 활성화된 경우 관리 주체 이름 및 관리 주체 암호에 대한 연결 설정이 무시됩니다. ThingWorx Platform 디렉터리에 로그인 중인 사용자는 사용자 이름 및 암호를 사용하여 Active Directory에 인증됩니다. Active Directory에서 현재 지원되는 인증 방법은 displayName, UPN 및 domain\samAccountName을 사용하는 것입니다.
동적 사용자 로그인이 비활성화된 경우 사용자 로그인에 대한 워크플로는 ThingWorx Platform 8.3.0부터 8.3.4까지 동일한 상태를 유지합니다.
그룹 매핑
사용자 및 그룹에 대한 ThingWorx 표시 유형, 권한조직 규칙을 파악하여 매핑을 의도한 대로 구성해야 합니다. 권한을 올바르게 지정하지 않으면 사용자가 액세스할 수 없어야 하는 콘텐츠에 액세스할 수 있습니다.
그룹 매핑이 필요하지는 않지만 그룹 매핑이 없으면 사용자가 프로비져닝되거나 업데이트되는 경우 권한이 제한(사용자가 보유한 기본 권한만 가능함)될 수 있습니다.
그룹 매핑 구성은 Active Directory 디렉터리 서비스에 대한 구성 페이지 아래쪽 중간에 위치합니다. 그룹 매핑을 설정하려면 다음을 수행하십시오.
1. ThingWorx Composer에서 Composer의 Active Directory 디렉터리 서비스로 이동합니다(보안 > 디렉터리 서비스 > Active Directory 서비스 이름).
2. 구성 페이지를 열고 그룹 매핑 섹션으로 스크롤한 다음 추가를 클릭합니다(다음 그림 참조).
3. ThingWorx 그룹에 매핑할 Active Directory 그룹의 이름을 그룹 매핑 창의 Active Directory 그룹 이름 필드에 입력합니다.
4. ThingWorx 그룹 이름 필드에서 + 기호를 클릭하여 아래에 표시된 ThingWorx 그룹의 드롭다운 목록을 표시합니다. 특정 엔티티 등으로 필터링할 수 있는 고급 검색이 제공됩니다. 이 드롭다운 목록은 ThingWorx의 v.8.3.5부터 사용할 수 있습니다.
* 
동적 사용자 로그인이 비활성화되면 다음 GroupMappings 양식이 표시됩니다.
5. 다음 버전의 GroupMappings 양식에서는 동적 그룹 로그인이 활성화되면 "자격 증명이 필요합니다" 메시지가 표시됩니다. Active Directory 그룹 이름을 입력하려면 녹색 잠금 아이콘을 클릭합니다.
6. 자격 증명 제공 대화 상자가 나타나면 AdministrativePrincipalNameAdministrativePassword를 클릭하고 설정을 클릭합니다.
다음 표에서는 그룹 매핑의 설정에 대해 설명합니다.
그룹 매핑
이름
설명
유효한 값
Active Directory 그룹 이름
실행 시간에 권한/승인 확인을 위해 ThingWorx 그룹으로 연관/매핑되는 Active Directory 그룹의 이름입니다.
구성된 도메인 아래의 Active Directory에 있는 groupObjectClass 객체에 해당하는 그룹 이름을 포함하는 비어 있지 않은 문자열, 공백 없는 문자열입니다.
ThingWorx 그룹 이름
실행 시간에 사용되는 ThingWorx 권한/승인 구성을 포함하는 ThingWorx 그룹의 이름입니다. Active Directory에서 프로비젼된 사용자가 이 ThingWorx 그룹에 추가됩니다. 이는 이 ThingWorx 그룹으로 매핑되는 사용자가 속한 Active Directory 그룹을 기반으로 합니다.
ThingWorx의 그룹 엔티티에 해당하는 그룹 이름을 포함하는 비어 있지 않은 문자열, 공백 없는 문자열입니다.
동적 사용자 로그인을 사용하는 그룹 매핑
v.8.3.5에 동적 사용자 로그인이 추가되어 GetDomainGroupsIsValidGroup 서비스에서는 동적 사용자 로그인 기능이 활성화될 때의 UI와 같이 Active Directory 관리 사용자 자격 증명을 전달할 수 있는 인수를 사용합니다. 동적 사용자 로그인이 비활성화(기본값)되면 IsValidGroupGetDomainGroups 서비스에 대한 관리 사용자 자격 증명은 선택 사항입니다. TestConnection 서비스는 모든 필수 자격 증명으로 작동합니다. 매개 변수가 비어 있으면 언제든지 서비스에서 관리자 자격 증명을 사용합니다.
그룹 매핑에 대한 그룹 유효성 검사
v.8.3.5부터 ThingWorx Composer는 그룹 매핑 페이지에 Active Directory 그룹의 이름을 입력할 수 있는 텍스트 상자를 제공합니다. 드롭다운 목록에서 Active Directory 그룹을 선택하는 옵션도 여전히 제공됩니다. 텍스트 상자에는 그룹을 이름별 또는 전체 고유 이름별로 입력할 수 있습니다. 예를 들어, 이름 TestGroup은 단순 이름이며, CN=TestGroup, CN=Users, DC=domain, DC=com은 전체 고유 이름입니다.
Active Directory에서 올바른 그룹의 이름을 검색할 수 있도록 IsValidGroup 서비스도 v.8.3.5부터 제공됩니다. 이 서비스는 찾을 그룹의 이름을 지정하는 단일 STRING 매개 변수인 groupName을 사용합니다. 서비스는 그룹이 Active Directory에 존재하는지를 나타내는 BOOLEAN 결과를 반환합니다.
* 
와일드카드 문자("*")는 groupName에 대한 입력의 일부로 허용되지 않습니다.
중첩된 그룹 멤버 자격
v.8.3.5부터 매핑된 상위 그룹에 사용자 추가 구성 옵션은 Active Directory 구성의 스키마 매핑 섹션에서 제공됩니다. 이 BOOLEAN 설정은 중첩된 그룹 멤버 자격을 활성화하거나 비활성화합니다.
중첩된 그룹 멤버 자격이 활성화된 경우 다음이 발생합니다.
사용자가 속한 그룹과 이러한 그룹이 속한 그룹 모두를 중첩 깊이에 상관없이 검색하는 확장 가능 일치 규칙을 사용하여 Active Directory를 질의합니다.
이러한 그룹을 그룹 매핑 테이블과 비교하여 결과 ThingWorx 사용자를 사용자 그룹에 지정합니다.
이 옵션은 Active Directory에 대한 로드를 증가시키고 결과 집합 수가 많아질 수 있으므로 성능에 영향을 줄 수 있습니다.
중첩된 그룹 멤버 자격이 비활성화된 경우 워크플로는 ThingWorx Platform v.8.3.0부터 8.3.4까지 동일한 상태를 유지합니다.
스키마 매핑
인증 및 그룹 검색/매핑이 작동하려면 이 섹션에 있는 "사용자 ID 속성 이름, 그룹 객체 클래스 이름, 그룹 멤버 자격 속성 이름, 그룹 속성 이름, 사용자 플래그 속성 이름, 사용자 제어 속성의 비활성 비트, 사용자 제어 속성의 잠금 비트" 필드가 필요합니다.
스키마 매핑
이름
설명
XML 속성 이름
기본값
값의 예
사용자 ID 속성 이름
ThingWorx에 로그인할 때 지정된 사용자 이름과 일치시키는 데 사용되는 사용자 이름 값을 포함하는 속성의 이름입니다.
attributeUserIdName
cn
cn, userPrincipleName
사용자 기반 고유 이름
사용자 자격 증명 유효성 검사 중 사용된 최상위 수준 디렉터리의 고유 이름입니다.
userBaseDN
ou=people
DC=test, DC=acme, DC=com
그룹 객체 클래스 이름
객체가 그룹임을 나타내는 objectClass 속성의 값입니다. 그룹 객체는 그룹 매핑 구성 테이블의 Active Directory/ThingWorx 그룹 매핑에 대해 질의되고 표시됩니다.
groupObjectClass
group
group
도메인 그룹을 필터링하는 그룹 LDAP 필터
도메인 그룹을 대량으로 필터링할 수 있습니다.
* 
그룹이 대량으로 있는 경우 이 매개 변수를 구성해야 합니다(비워 두지 않아야 함). 비워 두면 그룹을 대량으로 검색할 때 성능에 영향을 줄 수 있습니다.
groupLdapFilter
해당 없음
(cn=a_testgroup111*)(cn=b_testgroup222*)
그룹 멤버 자격 속성 이름
사용자 또는 그룹이 다른 그룹의 "멤버"임을 나타내는 속성의 이름입니다. Active Directory의 사용자 내 각 memberOf 엔트리에서 해당 사용자는 memberOf 엔트리에 명명된 Active Directory 그룹으로 매핑되는 ThingWorx 그룹에 멤버로 추가됩니다.
memberOfAttribute
memberOf
memberOf
그룹 속성 이름
특히, 그룹 매핑 구성 테이블 선택에서 ThingWorx UI의 그룹 표시 이름을 읽어들이는 데 사용해야 하는 속성의 이름입니다.
* 
distinguishedName을 사용하여 Active Directory의 그룹 위치에 대한 전체 경로를 표시하십시오. 이는 그룹이 둘 이상의 도메인에 있을 때 해당 그룹이 속하는 하위 도메인의 컨텍스트를 제공합니다.
groupAttribute
cn
cn
사용자 플래그 속성 이름
자세한 내용은 https://msdn.microsoft.com/en-us/library/cc223145.aspx를 참조하십시오.
userControlAttribute
userAccountControl
userAccountControl
사용자 제어 속성의 비활성 비트
지정된 사용자 플래그 속성 이름 내에 있는 비활성 비트 플래그의 정수 값/소수 값(예: 기본값 userControlAttribute)입니다. 자세한 내용은 https://msdn.microsoft.com/en-us/library/cc223145.aspx를 참조하십시오.
userDisableBit
2
2
사용자 제어 속성의 잠금 비트
지정된 사용자 플래그 속성 이름 내에 있는 잠금 비트 플래그의 정수 값/소수 값(예: 기본값 userControlAttribute)입니다. 자세한 내용은 https://msdn.microsoft.com/en-us/library/cc223145.aspx를 참조하십시오.
userLockoutBit
16
16
포리스트 이름 식별자
도메인 컨트롤러의 컬렉션/포리스트를 식별합니다. 동일한 문자열로 구성된 각 디렉터리 서비스 객체는 해당 그룹 매핑 구성 내 서로의 도메인에서 그룹을 매핑할 수 있습니다. 이 옵션 사용에 대한 예는 다음 단원을 참조하십시오.
forestNameIdentifier
해당 없음
사용자 프로비져닝
사용자 프로비져닝은 ThingWorx에서 사용자를 자동으로 생성, 수정 및 삭제하는 옵션을 제공합니다.
이름
설명
XML 속성 이름
기본값
설명
사용자 작성 사용
로그인 요청을 지원하는 Active Directory 서버에서 사용자 자격 증명이 올바른 경우 ThingWorx 사용자의 자동 생성/프로비져닝을 제어합니다.
이 필드가 선택되면 사용자는 지정된 로그인 사용자 이름과 사용자 기본 설정 구성 테이블에 지정된 기본값으로 생성됩니다.
이 필드가 선택 취소됨/false(기본값)이면 사용자는 로그인을 시도하기 전에 ThingWorx에 있어야 합니다.
로그인이 성공하려면 사용자가 ThingWorx에 있어야 합니다. 사용자가 사용자 프로비져닝 제외 목록 구성 테이블에 속한 경우 이 필드는 사용자 자동 생성에 영향을 주지 않습니다.
userCreationEnabled
false
ThingWorx의 디렉터리 서비스에서 사용자를 자동 생성할 수 있도록 하려면 true로 설정합니다.
사용자 수정 사용
로그인 요청을 지원하는 Active Directory 서버에서 사용자 자격 증명이 올바른 경우 ThingWorx 사용자의 자동 업데이트/프로비져닝을 제어합니다.
이 필드가 선택됨/true이면 로그인을 시도할 때 사용자가 업데이트됩니다. 사용자는 사용자 기본 설정 구성 테이블에 지정된 기본값으로 업데이트됩니다.
이 필드가 선택 취소됨/false(기본값)이면 사용자가 자동 생성/프로비젼될 때 처음 시도 후 로그인할 때마다 사용자가 업데이트되지 않습니다. 로그인이 성공하려면 사용자가 ThingWorx에 있어야 합니다.
사용자가 사용자 프로비져닝 제외 목록 구성 테이블에 속한 경우 이 필드는 사용자 자동 업데이트에 영향을 주지 않습니다.
userModificationEnabled
false
ThingWorx의 디렉터리 서비스에서 사용자 업데이트를 허용하려면 true로 설정합니다.
사용자 삭제 사용
로그인 요청을 지원하는 Active Directory 서버에 사용자가 없는 경우 ThingWorx 사용자의 자동 삭제/프로비져닝 해제를 제어합니다.
이 필드가 선택됨/true이면 로그인을 시도할 때 사용자가 삭제됩니다.
이 필드가 선택 취소됨/false이면 로그인을 시도할 때 사용자가 삭제되지 않습니다. 로그인과 삭제가 성공하려면 사용자가 ThingWorx에 있어야 합니다. 사용자가 사용자 프로비져닝 제외 목록 구성 테이블에 속한 경우 이 필드는 사용자 자동 삭제에 영향을 주지 않습니다.
userDeletionEnabled
false
ThingWorx의 디렉터리 서비스에서 사용자 삭제를 허용하려면 true로 설정합니다.
사용자 기본 설정
다음 표에는 사용자에 대해 사용 가능한 기본 설정이 나와 있습니다. 이러한 필드는 선택 사항입니다.
이름
설명
XML 속성 이름
유효한 값
참고
프로비젼된 사용자의 기본 도메인 접두사
사용자 X를 도메인 서버 Y와 구분하거나 사용자 X를 도메인 서버 Z와 구분하기 위해 사용자 이름의 접두사로 가정하는 문자열 값입니다.
이를 통해 구성된 Active Directory 디렉터리 서비스에서 유효성을 검사해야 할 사용자가 관리 대상으로 지정되었는지를 명시적으로 알 수 있습니다. 값이 구성되면 Active Directory 디렉터리 서비스는 사용자의 유효성 검사 또는 프로비져닝을 시도하지 않고 대신 보안 메시지를 기록하고 사용자 로그인 시도를 체인에서 다음의 ThingWorx 디렉터리 서비스로 넘깁니다.
* 
동일한 사용자가 여러 도메인 서버와 해당 도메인에 있는 경우 도메인 접두사를 사용하는 것이 좋습니다. 이렇게 하면 사용자 유효성 검사를 실패했을 때 "낙수 효과"로 인해 발생할 수 있는 비결정적 동작이 최소화됩니다.
userDefaultDomainPrefix
올바른 엔티티 이름 문자를 포함하는 문자열 또는 빈 문자열
둘 이상의 도메인 서버가 구성되어 있는 경우 이 구성을 사용해야 합니다. 예를 들어, NA 또는 EUR이 도메인 접두사로 사용될 수 있습니다.
* 
Active Directory와의 바인딩을 시도하기 전에 사용자 인증 시 입력된 사용자 이름에서 프로비젼된 사용자의 기본 도메인 접두사가 제거되므로 이 설정으로 인해 동적 사용자 로그인 사용 시 예기치 않은 결과가 발생할 수 있습니다. 예를 들어, ThingWorx로 인증하는 동안 "프로비젼된 사용자의 기본 도메인 접두사"가 "mydomain\"로 설정되어 있고 사용자가 "mydomain\username"을 입력하면 인증을 위해 "username"만 Active Directory에 전송됩니다. "mydomain\username"이 Active Directory 내 해당 사용자의 domain\samAccountName인 경우에도 해당 사용자에 대해 이 인증이 실패할 수 있습니다.
* 
여러 Active Directory 도메인에 동일한 사용자 이름이 있는 경우 로그인 중인 사용자가 Active Directory에서 찾은 실제 사용자가 아니면 인증이 실패합니다. 이는 질의되는 순서를 기반으로 합니다.
프로비젼된 사용자의 기본 설명
프로비젼된 모든 사용자에 대한 설명으로 설정되는 설명 문자열 값입니다. "도메인 서버 Y에 의해 자동 프로비젼됨"과 같이 상황을 설명하는 정보를 사용자가 추가할 수 있는 유용한 설정입니다.
userDefaultDescription
빈 문자열 또는 설명 문자열
이 옵션은 프로비젼된 모든 사용자(예: 자동 생성/업데이트된 사용자)에 대한 기본 설명을 선호하는 경우 사용해야 합니다.
프로비젼된 사용자의 기본 홈 매쉬업
프로비젼된 모든 사용자의 기본 매쉬업으로 설정되는 홈 매쉬업 이름 값입니다. 이 설정을 사용하면 프로비젼된 모든 사용자가 ThingWorx에 로그인할 때 공통 홈 매쉬업에서 시작할 수 있습니다. 이러한 매쉬업의 일부 예에는 게스트 홈 매쉬업, 셀프 서비스 홈 매쉬업, 운영자 홈 매쉬업 등이 있습니다.
userDefaultHomeMashupName
설정 해제할 빈 문자열 또는 유효한 기존 매쉬업 이름
이 옵션은 프로비젼된 모든 사용자(예: 자동 생성/업데이트된 사용자)에 대한 기본 홈 매쉬업을 선호하는 경우 사용해야 합니다.
예를 들어, 모든 사용자가 ThingWorx 응용 프로그램을 시작할 때 함께 시작할 수 있도록 동일한 GuestMashup, SelfServiceMashup 또는 LandingPageMashup을 선호하는 경우 유용합니다.
프로비젼된 사용자의 기본 모바일 매쉬업
모바일 장치에서 사용될 프로비젼된 모든 사용자에 대해 설정되는 모바일 매쉬업 이름 값입니다. 이 설정을 사용하면 프로비젼된 모든 사용자가 ThingWorx에 로그인할 때 공통 모바일 매쉬업에서 시작할 수 있습니다. 이러한 매쉬업의 일부 예에는 게스트 모바일 매쉬업, 셀프 서비스 모바일 매쉬업, 운영자 모바일 매쉬업 등이 있습니다.
userDefaultMobileMashupName
설정 해제할 빈 문자열 또는 유효한 기존 매쉬업 이름
프로비젼된 모든 사용자(예: 자동 생성/업데이트된 사용자)에 대한 기본 모바일 매쉬업을 선호하는 경우 이 옵션을 사용합니다.
예를 들어, 모든 사용자가 ThingWorx 응용 프로그램을 시작할 때 함께 시작할 수 있도록 동일한 GuestMashup, SelfServiceMashup 또는 LandingPageMashup을 선호하는 경우 유용합니다.
프로비젼된 사용자의 기본 태그
프로비젼된 모든 사용자에 설정된 모델 태그 집합입니다. 이 설정을 사용하면 프로비젼된 모든 사용자가 검색 또는 컨텍스트 식별에 사용 가능한 공통 태그를 보유할 수 있습니다. 이러한 태그의 일부 예에는 Operator 태그, ProvisionedByDomainServerY, ProvisionedByDomainServerZ 등이 있습니다.
userDefaultTags
설정 해제할 빈 문자열 또는 유효한 기존 태그 이름
이 옵션은 프로비젼된 모든 사용자(예: 자동 생성/업데이트된 사용자)에 대한 기본 모델 태그 집합을 선호하는 경우 사용해야 합니다.
사용자 프로비져닝 제외 목록
이 구성 테이블을 통해 Active Directory 디렉터리 서비스의 관리자는 특정 ThingWorx 사용자를 Active Directory 디렉터리 서비스의 사용자 프로비져닝 기능 참여에서 제외시킬 수 있습니다.
사용자 프로비져닝 기능에는 사용자 생성, 수정 및 삭제가 포함됩니다. Active Directory 디렉터리 서비스와 함께 ThingWorx를 구성할 때 기존 사용자가 자신의 구성 및 존재가 Active Directory에서 관리되는 것을 원하지 않고 이를 자격 증명의 유효성 검사에만 사용할 수도 있습니다. 이러한 유형의 사용자는 사용자 프로비져닝 제외 목록 구성에 추가되어야 합니다.
* 
관리자 사용자는 이 목록에 자동으로 추가되며 제거되지 않아야 합니다.
관리자 사용자는 만들거나 삭제할 수 없는 ThingWorx 기본 사용자입니다. 관리자 사용자는 자동으로 수정되지 않아야 합니다. 자동으로 수정될 경우 로그인 시 원치 않는 구성 변경이 발생할 수 있습니다.
사용자 로그인 시나리오
다음 표에서는 ThingWorx 내의 Active Directory 디렉터리 서비스에 설정된 구성 옵션별로 ThingWorx에 로그인을 시도할 때 사용자의 사전 및 사후 상태를 제공합니다.
* 
아래 시나리오는 Active Directory 서버 내의 사용자 상태/구성을 변경하지 않습니다.
굵게 표시된 항목은 ThingWorx에서 사용자의 사후 상태에 있는 주요 의사결정자입니다.
AD 서버에서의 사용자 상태
ThingWorx에서의 사용자 사전 상태
구성 옵션
ThingWorx에서의 사용자 사후 상태
없음
없음
모든 구성
없음
로그인하는 데 사용할 수 없음
없음
있음(ThingWorx 관리자에 의해 수동으로 생성됨)
암호가 ThingWorx에 설정되어 있고 존재함
사용자 프로비져닝 생성이 활성화됨
사용자 프로비져닝 수정이 활성화됨
사용자 프로비져닝 삭제가 활성화됨
사용자 프로비져닝 제외 목록에 나열됨
있음
수정 또는 삭제되지 않음
로그인하는 데 사용할 수 있음
없음
있음(ThingWorx 관리자에 의해 수동으로 생성됨)
암호가 ThingWorx에 설정되지 않았거나 존재하지 않음
사용자 프로비져닝 생성이 활성화됨
사용자 프로비져닝 수정이 활성화됨
사용자 프로비져닝 삭제가 활성화됨
사용자 프로비져닝 제외 목록에 나열됨
있음
수정 또는 삭제되지 않음
로그인하는 데 사용할 수 없음
없음
있음(ThingWorx 관리자에 의해 수동으로 생성됨)
사용자 프로비져닝 생성이 활성화됨
사용자 프로비져닝 수정이 활성화됨
사용자 프로비져닝 삭제가 활성화됨
사용자 프로비져닝 제외 목록에 나열되지 않음
없음
로그인하는 데 사용할 수 없음
없음
있음(ThingWorx 관리자에 의해 수동으로 생성됨)
사용자 프로비져닝 생성이 활성화됨
사용자 프로비져닝 수정이 활성화됨
사용자 프로비져닝 삭제가 비활성화됨
사용자 프로비져닝 제외 목록에 나열되지 않음
없음
로그인하는 데 사용할 수 없음
있음
없음
사용자 프로비져닝 생성이 활성화됨
사용자 프로비져닝 수정이 활성화됨
사용자 프로비져닝 삭제가 활성화됨
사용자 프로비져닝 제외 목록에 나열됨
없음
로그인하는 데 사용할 수 없음
있음
사용할 수 없음
없음
사용자 프로비져닝 생성이 활성화됨
사용자 프로비져닝 수정이 활성화됨
사용자 프로비져닝 삭제가 활성화됨
사용자 프로비져닝 제외 목록에 나열되지 않음
없음
로그인하는 데 사용할 수 없음
있음
잠김
없음
사용자 프로비져닝 생성이 활성화됨
사용자 프로비져닝 수정이 활성화됨
사용자 프로비져닝 삭제가 활성화됨
사용자 프로비져닝 제외 목록에 나열되지 않음
없음
로그인하는 데 사용할 수 없음
있음
없음
사용자 프로비져닝 생성이 비활성화됨
사용자 프로비져닝 수정이 활성화됨
사용자 프로비져닝 삭제가 활성화됨
사용자 프로비져닝 제외 목록에 나열되지 않음
없음
로그인하는 데 사용할 수 없음
있음
없음
사용자 프로비져닝 생성이 활성화됨
사용자 프로비져닝 수정이 활성화됨
사용자 프로비져닝 삭제가 활성화됨
사용자 프로비져닝 제외 목록에 나열되지 않음
있음(생성됨)
멤버로 매핑된 그룹에 추가됨
기본 사용자 설정이 추가됨
로그인하는 데 사용할 수 있음
있음
있음
사용자 프로비져닝 생성이 활성화됨
사용자 프로비져닝 수정이 활성화됨
사용자 프로비져닝 삭제가 활성화됨
사용자 프로비져닝 제외 목록에 나열되지 않음
사용자 기본 설정이 구성됨
사용자가 수정됨
멤버로 매핑된 그룹에 추가/제거됨
기본 사용자 설정이 추가됨
로그인하는 데 사용할 수 있음
있음
있음
사용자 프로비져닝 생성이 활성화됨
사용자 프로비져닝 수정이 활성화됨
사용자 프로비져닝 삭제가 활성화됨
사용자 프로비져닝 제외 목록에 나열됨
사용자 기본 설정이 구성됨
사용자가 수정되지 않음
로그인하는 데 사용할 수 있음
있음
잠김
있음
모든 구성
사용자가 잠김
로그인하는 데 사용할 수 없음
있음
사용할 수 없음
있음
모든 구성
사용자가 비활성화됨
로그인하는 데 사용할 수 없음
사용자 잠금 시나리오
계정 잠금 설정은 ThingWorx의 사용자 관리 하위 시스템에서 구성됩니다.
잠금 관리자는 잠금 평가를 기반으로 잠금을 결정하는 시스템(ThingWorx 또는 Active Directory)으로 정의됩니다.
아래 표에 나와 있는 키는 다음과 같습니다.
ThingWorx 잠금 시도 구성: TLA
Active Directory 잠금 시도 구성: ADL
잠금 평가
잠금 관리자
잠금 관리자 최대 시도 횟수 구성의 예
작업
결과
TLA > ADL
ADL
2번 시도
ThingWorx가 Active Directory에 잠겨 있는 사용자를 찾음
ThingWorx 사용자가 즉시 잠김
TLA > ADL
ADL
2번 시도
사용자가 두 번 잘못 로그인함
두 번 시도 후 ThingWorx 사용자가 잠김
TLA = ADL
* 
권장되는 잠금 구성은 ThingWorx와 Active Directory를 일치시키는 것입니다.
ADL
2번 시도
사용자가 두 번 잘못 로그인함
두 번 시도 후 ThingWorx 사용자가 잠김
TLA < ADL
ADL
2번 시도
사용자가 두 번 잘못 로그인함
두 번 시도 후 ThingWorx 사용자가 잠김
Active Directory 또는 ThingWorx 디렉터리 서비스의 변경
사용자가 도메인 서버에서 삭제되거나 업데이트되면 연관된 ThingWorx Active Directory 디렉터리 서비스에서 그룹 매핑이 업데이트됩니다. 사용자 기본 설정이 변경되면 ThingWorx에서 해당 사용자에 대한 CurrentSessionInfo 리소스에서 TerminateUserSessions 서비스를 사용하는 것이 좋습니다.
* 
아래 나열된 구성 변경 중 하나가 적용되고 이전 구성에서 만든 사용자가 존재하는 경우 Active Directory 디렉터리 서비스에서는 이전 사용자를 새 사용자로 마이그레이션할 수 없습니다. 대신 새 사용자는 사용자 ID 속성 이름 및/또는 도메인에 지정된 속성으로 설정된 새 값 또는 다른 값에 따라 생성되고 관리됩니다.
스키마 매핑 구성에서 사용자 ID 속성 이름의 값은 사용자 이름입니다.
도메인 접두사가 변경됩니다.
Active Directory 사용자 속성을 ThingWorx UserExtension 속성에 매핑
새 Active Directory 사용자가 로그인하면 Create User에 대한 Active Directory의 설정에 따라 해당 사용자가 ThingWorx에서 생성되고 해당 사용자가 자동 프로비져닝될 수 있습니다. 아래 표에 설명된 옵션을 사용하면 매핑된 속성이 Active Directory 서버에서 ThingWorx의 해당 사용자에 대한 UserExtension 속성 테이블로 자동 매핑될 수 있습니다. 기존 Active Directory 사용자가 로그인하면 수정된 값을 사용자의 UserExtension 매핑으로 가져옵니다. 새 UserExtension 구성 테이블 행 매핑이 추가되면 새 데이터를 사용자의 UserExtension 속성으로 가져옵니다.
ThingWorx Composer에서 매핑을 설정하려면 다음을 수행하십시오.
1. Composer에서 Active Directory 디렉터리 서비스로 이동합니다(보안 > 디렉터리 서비스 > <Active Directory 서비스 이름>).
2. 구성 페이지를 표시하고 사용자 확장 속성 매핑 구성 테이블 섹션 아래로 스크롤한 다음 추가를 클릭합니다(여기 참조).
3. ThingWorx 속성에 자동으로 매핑할 Active Directory 속성의 이름을 사용자 확장 속성 매핑 창의 Active Directory 속성 이름 필드에 입력합니다. 다음 스크린샷은 ThingWorx 속성을 선택하는 드롭다운 메뉴를 보여줍니다. 이 드롭다운 메뉴는 ThingWorx의 v.8.3.5부터 사용할 수 있습니다. 이 목록의 값 중 하나를 선택합니다.
4. 선택하고 추가를 클릭하면 구성 테이블에 새 행이 나타납니다.
다음 구성 테이블의 옵션은 ThingWorx 8.2.1 이상 버전에서만 사용할 수 있습니다.
속성
설명
activeDirectoryAttributeName
매핑할 수 있는 Active Directory 사용자 속성에 있는 속성의 이름입니다. Active Directory에서 동기화된 모든 사용자에 대해 기본값을 지정하려면 이 필드를 공백으로 두면 됩니다.
* 
속성이 지정되어 있지만 Active Directory에서 사용자에 대해 검색되지 않으면 응용 프로그램 로그에 다음 오류 메시지가 나타납니다.
Attribute: <attribute_name> not found.
userExtensionPropertyName
Active Directory 속성에 매핑해야 하는 ThingWorx 사용자의 UserExtension 테이블에 있는 사용자 확장 속성의 이름입니다.
* 
응용 프로그램 로그에 userExtensionProperty의 이름이 올바르지 않다는 오류 메시지가 나타나면 문제 해결: UserExtension 속성에 대한 잘못된 이름 단원을 참조하십시오.
userExtensionDefaultValue
속성이 AD 서버에서 검색되지 않거나, 잘못되었거나, 비어 있는 경우 UserExtension 속성에 대한 기본값입니다.
여러 도메인에 있는 사용자 및 그룹 매핑
별도의 Active Directory 도메인에 있는 그룹의 멤버인 사용자는 포리스트 이름 식별자 옵션을 사용하여 ThingWorx의 해당 그룹에 매핑될 수 있습니다. 이 필드가 문자열로 채워지면 도메인 컨트롤러의 컬렉션/포리스트가 식별됩니다. 동일한 문자열로 구성된 각 디렉터리 서비스 객체는 해당 그룹 매핑 구성 내 서로의 도메인에서 그룹을 매핑할 수 있습니다.
포리스트 이름 식별자 값
결과
<비어 있음> 또는 빈 문자열
그룹은 해당 그룹이 요청된 특정 디렉터리 서비스 객체에서만 볼 수 있습니다.
다른 디렉터리 서비스 구성과 일치하지 않는 문자열
그룹은 해당 그룹이 요청된 특정 디렉터리 서비스 객체에서만 볼 수 있습니다.
하나 이상의 디렉터리 서비스 구성과 일치하는 문자열
그룹은 해당 그룹이 요청된 특정 디렉터리 서비스 객체에서 또는 일치하는 포리스트 이름 식별자가 있는 다른 디렉터리 서비스 객체에서만 볼 수 있습니다.
예 1: 그룹이 요청된 특정 디렉터리 서비스 객체에서 또는 일치하는 포리스트 이름 식별자가 있는 다른 디렉터리 서비스 객체에서 표시됨
도메인 이름
구성된 그룹
포리스트 이름 식별자 값
매핑을 위해 표시되는 그룹
Domain1
Group1, Group2
<비어 있음>
Group1, Group2
Domain2
Group3, Group4
<비어 있음>
Group3, Group4
Domain3
Group5, Group6
<비어 있음>
Group5, Group6
예 2: 모든 디렉터리 서비스 객체의 포리스트 이름 식별자가 다름
도메인 이름
구성된 그룹
포리스트 이름 식별자 값
매핑을 위해 표시되는 그룹
Domain1
Group1, Group2
"domainForest1"
Group1, Group2
Domain2
Group3, Group4
"DomainForest"
Group3, Group4
Domain3
Group5, Group6
"DomainForest"
Group5, Group6
예 3: 세 개의 디렉터리 서비스 객체 중 두 개의 포리스트 이름 식별자가 동일함
도메인 이름
구성된 그룹
포리스트 이름 식별자 값
매핑을 위해 표시되는 그룹
Domain1
Group1, Group2
"domainForest"
Group1, Group2, Group3, Group4
Domain2
Group3, Group4
"domainForest"
Group1, Group2, Group3, Group4
Domain3
Group5, Group6
<비어 있음>
Group5,Group6
예 4: 세 개의 디렉터리 서비스 객체 모두 포리스트 이름 식별자가 동일함
도메인 이름
구성된 그룹
포리스트 이름 식별자 값
매핑을 위해 표시되는 그룹
Domain1
Group1, Group2
"domainForest"
Group1, Group2, Group3, Group4, Group5, Group6
Domain2
Group3, Group4
"domainForest"
Group1, Group2, Group3, Group4, Group5, Group6
Domain3
Group5, Group6
"domainForest"
Group1, Group2, Group3, Group4, Group5, Group6
가져오기 검증 실패
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
가져오기 검증 성공
필수 필드가 누락되었거나 구성이 잘못되어 검증이 실패하는 경우 디렉터리 서비스 엔티티는 계속 가져올 수 있지만 해당 엔티티는 비활성화된 상태로 표시됩니다. 엔티티를 활성화하려면 잘못된 필드를 업데이트해야 합니다.
* 
디렉터리 서비스 엔티티는 활성화될 때까지 인증을 위해 사용할 수 없습니다. 비활성화된 상태로 가져온 디렉터리 서비스 엔티티를 활성화하는 프로세스는 수동입니다. 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 연결 테스트
v.8.3.5부터 디렉터리 서비스 구성 페이지의 연결 설정 섹션에서 연결 테스트 아래의 확인 버튼을 통해 현재 구성을 기준으로 Active Directory 서버에 대한 연결을 테스트할 수 있습니다. 구성의 연결 설정 섹션에서 다음 필드는 Active Directory 연결을 테스트하는 데 사용됩니다.
URI 스키마
서버 FQDN 또는 IP 주소
서버 네트워크 포트
관리 주체 이름
관리 암호
확인 버튼을 클릭하면 다음 매개 변수를 사용하는 TestConnection 서비스가 시작됩니다.
TestConnection 서비스에 대한 매개 변수
매개 변수
기본 유형
설명
userName
STRING
Active Directory의 사용자 이름입니다.
password
STRING
Active Directory 사용자의 암호화된 암호입니다.
protocol
STRING
사용된 스키마(LDAP 또는 LDAPS)입니다.
server
STRING
Active Directory 인스턴스의 호스트 또는 IP 주소입니다.
port
INTEGER
Active Directory 인스턴스의 포트입니다.
연결 테스트의 결과가 result에서 반환됩니다. 이는 다음 정보를 포함하는 INFOTABLE입니다.
status: (부울) Active Directory에 성공적으로 연결했는지 여부를 나타냅니다.
message: (문자열) 테스트가 실패한 원인과 같은 유용한 정보를 제공하는 메시지입니다.
* 
동적 사용자 로그인이 활성화되면 "관리 주체 이름" 및 "관리 암호"가 사용되지 않으며 확인 버튼이 숨겨집니다.
문제 해결: 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에서 디렉터리 서비스 엔티티의 구성 페이지에 있는 사용자 확장 속성 매핑의 테이블에서 잘못된 엔트리를 제거할 수 있습니다.