Importazione di entità in 9.2+
A causa dei miglioramenti apportati al modello di sicurezza e ai permessi ThingWorx, sono state apportate modifiche sostanziali al modo in cui i permessi vengono memorizzati in ThingWorx 9.2.0 e versioni successive. Questi miglioramenti influiscono sul processo di importazione di entità da versioni precedenti in ThingWorx 9.2.0 e successive. Nelle versioni precedenti a ThingWorx 9.2.0 è possibile importare entità con permessi utilizzando utenti, gruppi di utenti, ruoli, organizzazioni e unità organizzative non ancora importati nella piattaforma e che potrebbero essere importati in seguito. In 9.2.0 e versioni successive le entità con permessi che hanno riferimenti a utenti/gruppi/ruoli attualmente non presenti nella piattaforma, o che non fanno parte dello stesso file di importazione, perdono i permessi loro assegnati.
In particolare, l'importazione di entità dalle release precedenti in ThingWorx 9.2.0 e versioni successive può causare errori dovuti ai seguenti scenari di utenti/gruppi/ruoli mancanti:
Utenti/gruppi/ruoli eliminati ancora presenti nei permessi JSON che vengono resi persistenti con l'entità.
Entità importate con utenti/gruppi/ruoli validi che non sono attualmente presenti nel sistema ma che verranno importati successivamente.
Per evitare questi errori, è necessario innanzitutto importare tutti gli utenti, gruppi di utenti e organizzazioni (Principals.xml) a cui viene fatto riferimento nell'esportazione delle entità e successivamente importare le entità (Entities.xml). Questo garantisce che utenti, gruppi di utenti, unità di organizzazione e organizzazioni siano presenti nella piattaforma prima che vengano importate le entità che fanno riferimento a tali utenti/gruppi/ruoli nei rispettivi permessi. Il file principals.xml è il risultato della combinazione delle esportazioni di utenti, gruppi di utenti e organizzazioni in un singolo file.
* 
Se per errore si importa il file Entities.xml prima di importare il file Principals.xml, è possibile reimportare Entities.xml dopo avere importato Principals.xml per applicare i permessi alle entità.
Combinazione di entità e utenti/gruppi/ruoli nello stesso file XML
È possibile anche combinare entità e utenti/gruppi/ruoli nello stesso file di importazione. Non è necessario che venga mantenuto l'ordine all'interno dello stesso file di importazione, poiché la piattaforma importerà gli utenti/gruppi/ruoli prima di importare altre entità. Ad esempio, il file AllEntities.xml seguente funziona in 9.2.0 e versioni successive:
//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>
Errori di utenti/gruppi/ruoli mancanti
Le entità esportate dalla piattaforma nelle versioni precedenti alla versione 9.2.0 possono contenere utenti/gruppi/ruoli (utenti, gruppi di utenti, organizzazioni e unità di organizzazione) che non sono più presenti nella piattaforma. Quando queste entità vengono importate, nel log di protezione potrebbero essere presenti messaggi di avvertenza relativi a utenti/gruppi/ruoli mancanti. In qualità di amministratore, esaminare i log e assicurarsi che gli utenti/gruppi/ruoli mancanti siano effettivamente gli utenti/gruppi/ruoli eliminati e che non vengano ignorati i permessi validi.
* 
L'amministratore deve esaminare i log e aggiungere permessi validi che sono stati ignorati a causa dell'utente/gruppo/ruolo mancante.
* 
Anche se l'utente/gruppo/ruolo eliminato con permessi di accesso negato, consentito o ereditato viene visualizzato nel messaggio di avvertenza del log, i permessi dell'utente, del gruppo di utenti e dell'organizzazione vengono rimossi. Ogni volta che un utente, un gruppo di utenti o un'organizzazione vengono ricreati sulla piattaforma, i permessi vengono assegnati in base al permesso di raccolta (se non diversamente specificato). Assicurarsi che i permessi di accesso negato, consentito ed ereditato vengano assegnati manualmente ogni volta che l'utente, il gruppo di utenti o l'organizzazione vengono aggiunti al sistema.
È stato utile?