Premiers pas avec ThingWorx > Importations et exportations dans ThingWorx > Importation d'entités dans les versions 9.2+
Importation d'entités dans les versions 9.2+
En raison des améliorations apportées au modèle de permissions et de sécurité ThingWorx, des modifications substantielles ont été apportées au mode de stockage des permissions dans ThingWorx 9.2.0 et versions ultérieures. Ces améliorations affectent le processus d'importation d'entités dans ThingWorx 9.2.0 et versions ultérieures à partir de versions antérieures. Avant ThingWorx 9.2.0, il était possible d'importer des entités avec des permissions à l'aide d'identités (utilisateurs, groupes d'utilisateurs, organisations et unités d'organisation) qui n'étaient pas encore importées sur la plateforme ; les identités pouvaient être importées ultérieurement. Dans 9.2.0 et versions ultérieures, les entités avec des permissions qui comportent des références à des identités non présentes sur la plateforme ou dans le même fichier d'importation perdront les permissions qui leur sont attribuées.
En particulier, l'importation d'entités dans ThingWorx 9.2.0 et versions ultérieures à partir de versions antérieures peut échouer dans les scénarios suivants d'identités manquantes :
Identités supprimées qui sont toujours présentes dans les permissions JSON encore associées à l'entité.
Entités importées avec des identités valides qui ne sont pas actuellement dans le système, mais seront importées ultérieurement.
Pour éviter ces problèmes, vous devez d'abord importer tous les utilisateurs, groupes d'utilisateurs et organisations (Principals.xml) référencés dans votre export d'entités, puis importer les entités (Entities.xml). Cela permet de s'assurer que les utilisateurs, groupes d'utilisateurs, unités d'organisation et organisations existent dans la plateforme avant d'importer les entités référençant ces identités dans leurs permissions. Le fichier principals.xml est obtenu en combinant les exports d'utilisateurs, de groupes d'utilisateurs et d'organisations dans un seul et même fichier.
* 
Si vous importez par erreur le fichier Entities.xml avant le fichier Principals.xml, vous pouvez réimporter le fichier Entities.xml après l'importation de Principals.xml pour appliquer les permissions aux entités.
Combinaison d'entités et d'identités dans le même fichier XML
Vous pouvez également combiner les entités et les identités dans le même fichier d'importation. Il n'est pas nécessaire que l'ordre soit conservé dans le même fichier d'importation, car la plateforme importera les identités avant toutes les autres entités. Par exemple, le fichier AllEntities.xml suivant fonctionnera dans les versions 9.2.0 et ultérieures :
//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>
Erreurs d'identités manquantes
Les entités exportées à partir de la plateforme avec les versions antérieures à 9.2.0 peuvent contenir des identités (utilisateurs, groupes d'utilisateurs, organisations et unités d'organisation) qui ne sont plus présentes dans la plateforme. Lorsque ces entités sont importées, des messages d'avertissement signalant des identités manquantes peuvent apparaître dans le journal de sécurité. En tant qu'administrateur, examinez les journaux et assurez-vous que les identités manquantes sont effectivement des identités supprimées et qu'aucune permission légitime n'est ignorée.
* 
L'administrateur doit examiner les journaux et ajouter des permissions légitimes qui ont été ignorées parce qu'il manquait l'identité.
* 
Même si l'identité supprimée avec l'accès refusé, autorisé ou hérité s'affiche dans le message du journal d'avertissement, les permissions de l'utilisateur, du groupe d'utilisateurs et de l'organisation sont supprimées. Chaque fois qu'un utilisateur, un groupe d'utilisateurs ou une organisation est recréé sur la plateforme, les permissions sont affectées conformément à la permission de la collection (sauf indication contraire). Assurez-vous que les permissions refusées, autorisées et héritées sont affectées manuellement chaque fois que l'utilisateur, le groupe d'utilisateurs ou l'organisation est ajouté au système.
Est-ce que cela a été utile ?