ThingWorx 시작하기 > ThingWorx에서 가져오기 및 내보내기 > 9.2 이상에서 엔티티 가져오기
9.2 이상에서 엔티티 가져오기
ThingWorx 권한 및 보안 모델에 대한 기능 개선으로 인해 ThingWorx 9.2.0 이상에서 권한이 저장되는 방식이 크게 변경되었습니다. 이러한 기능 개선은 엔티티를 이전 릴리즈에서 ThingWorx 9.2.0 이상으로 가져오는 프로세스에 영향을 줍니다. ThingWorx 9.2.0 이전에는 아직 플랫폼으로 가져오지 않은 주체(사용자, 사용자 그룹, 조직 및 조직 단위)를 사용하여 권한이 있는 엔티티를 가져올 수 있었습니다. 주체는 나중에 가져올 수 있었습니다. 9.2.0 이상에서는 현재 플랫폼에 없거나 동일한 가져오기 파일의 일부가 아닌 주체에 대한 참조가 있는 권한을 가진 엔티티는 자신에게 지정된 권한을 잃게 됩니다.
특히, 이전 릴리즈에서 ThingWorx 9.2.0 이상으로 엔티티를 가져오면 다음과 같은 경우의 주체 누락으로 인해 오류가 발생할 수 있습니다.
주체가 삭제되었는데 엔티티와 함께 지속되는 권한 JSON에 여전히 있는 경우
현재 시스템에 없지만 나중에 가져올 유효한 주체를 사용하여 가져온 엔티티
이러한 오류가 발생하지 않도록 하려면 먼저 엔티티 내보내기에서 참조되는 모든 사용자, 사용자 그룹 및 조직(Principals.xml)을 가져온 다음 엔티티(Entities.xml)를 가져와야 합니다. 이렇게 하면 사용자, 사용자 그룹, 조직 단위 및 조직이 해당 권한에서 이러한 주체를 참조하는 엔티티를 가져오기 전에 플랫폼에 존재할 수 있습니다. 사용자, 사용자 그룹 및 조직 내보내기를 단일 파일로 결합하여 principals.xml 파일을 가져옵니다.
* 
principals.xml을 가져오기 전에 실수로 entities.xml을 가져온 경우 principals.xml을 가져온 후 Entities.xml을 다시 가져와 해당 엔티티에 권한을 적용할 수 있습니다.
엔티티 및 주체를 동일한 XML 파일에 결합
엔티티 및 주체를 동일한 가져오기 파일에 결합할 수도 있습니다. 플랫폼에서 다른 엔티티를 가져오기 전에 주체를 가져오기 때문에 동일한 가져오기 파일 내에서 순서를 유지할 필요가 없습니다. 예를 들어, 다음 AllEntities.xml이 9.2.0 이상에서 작동합니다.
//AllEntities.xml
<Entities build="latest" majorVersion="0" minorVersion="0"
revision="0" schemaVersion="940">
<Things>
<Thing effectiveThingPackage="ConfiguredThing" enabled="true" homeMashup=""
identifier="" lastModifiedDate="2017-04-10T14:15:07.346-04:00" name="TestThing-WithPermissions"
projectName="" published="false" tags=""
thingTemplate="GenericThing" valueStream="">
<Owner name="Administrator" type="User" />
<avatar />
<DesignTimePermissions>
<Create />
<Read />
<Update />
<Delete />
<Metadata />
</DesignTimePermissions>
<RunTimePermissions>
<Permissions resourceName="*">
<PropertyRead />
<PropertyWrite />
<ServiceInvoke>
<Principal isPermitted="true" name="New-TestUser"
type="User" />
</ServiceInvoke>
<EventInvoke />
<EventSubscribe />
</Permissions>
</RunTimePermissions>
<VisibilityPermissions>
<Visibility>
<Principal isPermitted="true" name="New-TestOrg"
type="Organization" />
</Visibility>
</VisibilityPermissions>
<ConfigurationTables />
<ConfigurationChanges />
</Thing>
</Things>
<Users>
<User description="" documentationContent="" enabled="true" name="New-TestUser" projectName="" tags="">
<avatar />
<DesignTimePermissions>
<Create />
<Read />
<Update />
<Delete />
<Metadata />
</DesignTimePermissions>
<RunTimePermissions />
<VisibilityPermissions />
</User>
</Users>
<Organizations>
<Organization description="Organization for Visibility Permissios tests"
name="New-SystemOrg" projectName="" tags="">
<avatar />
<DesignTimePermissions>
<Create />
<Read />
<Update />
<Delete />
<Metadata />
</DesignTimePermissions>
<RunTimePermissions />
<VisibilityPermissions>
<Visibility />
</VisibilityPermissions>
<ConfigurationTables />
<loginImage />
<Connections>
<Connection from="" to="New-SystemOrgUnit" />
</Connections>
<OrganizationalUnits>
<OrganizationalUnit description="top of the food chain"
name="New-SystemOrgUnit">
<Members>
<Members>
<Member name="System" type="User" />
</Members>
</Members>
</OrganizationalUnit>
</OrganizationalUnits>
</Organization>
<Organization name="New-TestOrg" projectName="" tags="">
<avatar />
<DesignTimePermissions>
<Create />
<Read />
<Update />
<Delete />
<Metadata />
</DesignTimePermissions>
<RunTimePermissions />
<VisibilityPermissions>
<Visibility />
</VisibilityPermissions>
<ConfigurationTables />
<loginImage />
<Connections>
<Connection from="" to="New-TestOrgUnit" />
</Connections>
<OrganizationalUnits>
<OrganizationalUnit description=""
name="New-TestOrgUnit">
<Members>
<Members>
<Member name="New-TestUser" type="User" />
</Members>
</Members>
</OrganizationalUnit>
</OrganizationalUnits>
<ConfigurationChanges>
</ConfigurationChanges>
</Organization>
</Organizations>
<Menus />
<Resources />
<DataTags />
<ThingShapes />
<Subsystems />
</Entities>
주체 누락 오류
9.2.0 이전 버전의 플랫폼에서 내보낸 엔티티에는 더 이상 플랫폼에 없는 주체(사용자, 사용자 그룹, 조직 및 조직 단위)가 포함될 수 있습니다. 이러한 엔티티를 가져올 때 보안 로그에 "주체 누락" 경고 메시지가 나타날 수 있습니다. 관리자는 로그를 검토하여 누락된 주체가 실제로 삭제된 주체인지 그리고 올바른 권한이 무시되거나 생략되지 않았는지 확인합니다.
* 
관리자는 로그를 검토한 후 주체 누락으로 인해 생략되거나 무시된 올바른 권한을 추가해야 합니다.
* 
거부, 허용 또는 상속된 액세스 권한이 있는 삭제된 주체가 경고 로그 메시지에 표시되는 경우에도 사용자, 사용자 그룹 및 조직 권한이 제거됩니다. 플랫폼에서 사용자, 사용자 그룹 또는 조직이 다시 생성될 때마다 컬렉션 권한에 따라 권한이 지정됩니다(달리 지정하지 않은 경우). 사용자, 사용자 그룹 또는 조직이 시스템에 추가될 때마다 거부, 허용 및 상속된 권한이 수동으로 지정되었는지 확인합니다.
도움이 되셨나요?