9.2+ でのエンティティのインポート
ThingWorx 9.2.0 以降では、ThingWorx のアクセス許可とセキュリティモデルが強化されたことに伴い、アクセス許可の保存方法が大幅に変更されました。これらの機能強化は、以前のリリースから ThingWorx 9.2.0 以降にエンティティをインポートするプロセスに影響を与えます。Thingworx 9.2.0 より前では、プラットフォームにまだインポートされていないプリンシパル (ユーザー、ユーザーグループ、組織、組織単位) がアクセス許可で使用されているエンティティをインポートし、プリンシパルは後でインポートできました。9.2.0 以降では、現在プラットフォームにないか同じインポートファイルの一部ではないプリンシパルをアクセス許可で参照するエンティティは、割り当てられているアクセス許可を失います。
具体的には、以前のリリースから ThingWorx 9.2.0 以降にエンティティをインポートすると、以下のようなプリンシパル欠落のシナリオが原因で失敗する可能性があります。
エンティティで永続化されているアクセス許可 JSON にまだ存在するプリンシパルが削除された。
現在はシステムにないが後でインポートされる有効なプリンシパルを使用するエンティティがインポートされた。
これらのエラーを回避するには、エンティティのエクスポートで参照されているすべてのユーザー、ユーザーグループ、および組織 (Principals.xml) を最初にインポートしてから、エンティティ (Entities.xml) をインポートする必要があります。これにより、ユーザー、ユーザーグループ、組織単位、および組織は、アクセス許可でこれらのプリンシパルを参照するエンティティをインポートする前に、プラットフォームに確実に存在することになります。principals.xml ファイルは、ユーザー、ユーザーグループ、および組織のエクスポートを 1 つのファイルにまとめることによって取得されます。
* 
Principals.xml をインポートする前に Entities.xml を誤ってインポートした場合、Principals.xml をインポートした後で Entities.xml を再インポートすることでアクセス許可をエンティティに適用できます。
同じ XML ファイルへのエンティティとプリンシパルの結合
同じインポートファイルにエンティティとプリンシパルを結合することもできます。プリンシパルがインポートされた後でその他のエンティティがインポートされるので、同じインポートファイル内で順序を維持する必要はありません。たとえば、9.2.0 以降では以下の AllEntities.xml が機能します。
//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 より前のバージョンのプラットフォームからエクスポートされたエンティティには、そのプラットフォームに存在しなくなったプリンシパル (ユーザー、ユーザーグループ、組織、組織単位) が含まれていることがあります。このようなエンティティがインポートされた場合、"プリンシパル欠落" の警告メッセージがセキュリティログに表示されることがあります。管理者はログを調べ、欠落しているプリンシパルが実際に削除されたプリンシパルであり、正当なアクセス許可が無視またはスキップされていないことを確認します。
* 
管理者はログを調べ、プリンシパルが欠落していることが原因でスキップまたは無視された正当なアクセス許可を追加する必要があります。
* 
拒否、許可、または継承のアクセス権を持つ削除されたプリンシパルが警告ログメッセージに表示されている場合でも、ユーザー、ユーザーグループ、および組織のアクセス許可は除去されます。ユーザー、ユーザーグループ、または組織がプラットフォームで再作成された場合は必ず、コレクションのアクセス許可に従ってアクセス許可が割り当てられます (特別の指定がない場合)。ユーザー、ユーザーグループ、または組織がシステムに追加された場合には必ず、拒否、許可、および継承のアクセス許可を必ず手動で割り当てます。
これは役に立ちましたか?