Etape 24. Définir les règles d'initialisation d'objet des étiquettes de sécurité (facultatif)
Il est important que les étiquettes de sécurité soient appliquées aux objets de façon appropriée avant la mise à disposition de ces objets dans le système. Par exemple, les étiquettes de sécurité doivent être appliquées lors de l'intégration initiale de l'objet pour éviter que les informations sensibles ne soient accessibles au public non visé. Si une étiquette de sécurité n'est pas appliquée lors de la création d'un objet, elle prend automatiquement par défaut sa valeur nulle. L'objet n'est alors pas restreint et peut être consulté par tout utilisateur disposant d'un accès en lecture sur cet objet. Il vous appartient de définir des règles d'initialisation d'objet lorsque des valeurs d'étiquette de sécurité non nulles sont nécessaires.
Certains objets ne disposent pas d'une interface utilisateur de création. Par exemple, il n'existe aucune interface pour les avis de promotion et les documents créés à l'aide de l'action Charger les documents à partir d'un fichier compressé. Si ces objets doivent être restreints, il est nécessaire de définir des règles d'initialisation d'objet associées afin de permettre l'application des valeurs d'étiquette de sécurité appropriées lors de la création de ces objets.
Les règles d'initialisation d'objet peuvent également être utilisées pour définir des valeurs d'étiquette de sécurité par défaut pour les types d'objet qui ne disposent pas d'une interface utilisateur de création. Pour connaître la liste des types d'objet pouvant comporter des étiquettes de sécurité, accédez au fichier <Windchill>/conf/exposedSecurityLabelObjects.xml, où <Windchill> représente l'emplacement d'installation de votre solution Windchill.
Les contraintes d'attribut suivantes sont disponibles pour définir des valeurs d'étiquette de sécurité dans une nouvelle fenêtre d'objet :
• GetHiddenConstraint : masque l'étiquette de sécurité et la valeur d'étiquette de sécurité dans la nouvelle fenêtre d'objet.
• GetDiscreteSetConstraint : affiche uniquement les valeurs d'étiquette spécifiées dans la règle d'initialisation d'objet dans la liste déroulante.
|
Si vous utilisez des étiquettes de sécurité personnalisées, la définition d'une règle d'initialisation d'objet avec la contrainte d'attribut GetDiscreteSetConstraint vous permet de limiter les valeurs qu'un utilisateur peut spécifier pour l'étiquette de sécurité personnalisée.
|
• GetImmutableConstraint : empêche l'utilisateur de modifier la valeur affichée.
• GetServerAssignedConstraint : affiche le nom de l'étiquette, mais pas les valeurs d'étiquette. Le texte affiché à la place de la valeur est (Généré).
• GetServerPreGeneratedValue : affiche la valeur spécifiée en tant que valeur par défaut de l'étiquette.
La création et la modification des règles d'initialisation d'objet s'effectuent dans l'utilitaire
Administration des règles d'initialisation d'un objet. La procédure suivante indique les étapes générales de création et de mise à jour d'une règle d'initialisation d'objet d'un type d'objet. Pour plus d'informations sur l'utilisation de l'utilitaire
Administration des règles d'initialisation d'un objet, consultez le
tableau Règles d'initialisation d'un objet.
1. Ouvrez l'utilitaire Administration des règles d'initialisation d'un objet à partir de la page Utilitaires du contexte pour lequel vous souhaitez définir la règle. Il est possible de spécifier des règles d'initialisation d'objet dans n'importe quel niveau de contexte. Ainsi, vous pouvez définir une règle par défaut pour tous les objets d'un type donné dans le contexte du niveau site et spécifier une règle différente dans un contexte d'organisation ou dans un contexte d'application particulier, tel qu'un produit ou un projet. Par exemple, vous pouvez spécifier une règle d'initialisation d'objet selon laquelle la valeur par défaut de l'étiquette de sécurité Propriété de l'entreprise est Privée pour chaque document créé dans le site, mais spécifier que cette valeur est Confidentialité d'entreprise la plus stricte pour tous les documents d'un projet particulier.
2. S'il existe une règle pour le type d'objet, téléchargez-la sur l'ordinateur local et ouvrez le fichier XML dans un éditeur de texte. Si vous créez une règle, PTC vous recommande de télécharger une règle existante et de l'enregistrer dans un nouveau fichier pour l'utiliser comme modèle pour la nouvelle règle.
3. Modifiez le fichier XML pour ajouter la valeur par défaut souhaitée à l'étiquette de sécurité. Bien qu'il ne puisse exister qu'une seule règle d'initialisation pour un objet figurant dans un contexte particulier, cette règle peut contenir plusieurs éléments.
Par exemple, pour spécifier que l'étiquette de sécurité Contrôle de l'exportation doit prendre par défaut la valeur Licence requise - Etat et que cette valeur est sélectionnée par défaut en cas d'affichage d'une liste de valeurs, ajoutez les lignes suivantes :
<!--set default security label values-->
<AttrValue id="EXPORT_CONTROL" algorithm=
"wt.rule.algorithm.StringConstant">
<Arg>LNS</Arg>
</AttrValue>
<AttrConstraint id="EXPORT_CONTROL" algorithm="com.ptc.core.
rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetServerPreGeneratedValue"/>
</AttrConstraint>
L'algorithme à utiliser pour les valeurs d'étiquette de sécurité par défaut doit produire une chaîne contenant le nom de cette valeur comme décrit pour l'élément <Arg>. Par exemple, l'algorithme wt.rule.algorithm.StringConstant peut être utilisé.
La valeur de l'attribut id de l'élément AttrValue correspond au nom de l'étiquette de sécurité défini dans le fichier de configuration des étiquettes de sécurité.
Il est possible d'ajouter un élément AttrValue pour chaque étiquette de sécurité du système.
L'élément Arg doit correspondre au nom de la valeur d'étiquette de sécurité spécifié dans le fichier securityLabelsConfiguration.xml pour une étiquette de sécurité standard, et à la valeur externe de la valeur d'étiquette de sécurité pour une étiquette de sécurité personnalisée.
4. Enregistrez le fichier XML dans un emplacement connu de l'ordinateur. Le cas échéant, vous pouvez donner au fichier un nom significatif.
5. Si vous avez modifié une règle existante, sélectionnez Modifier dans la liste des actions associées à la règle du tableau Administration des règles d'initialisation d'un objet. Accédez au fichier XML que vous venez de modifier.
Si vous créez une règle, cliquez sur l'icône Nouvelle règle d'initialisation d'un objet
. Entrez le nom et l'identificateur de type de l'objet et accédez au fichier XML que vous venez de modifier.
6. Cliquez sur OK. La règle prend effet immédiatement. Il n'est pas nécessaire de redémarrer le serveur de méthodes.
Exemples
Les exemples ci-après illustrent la façon dont vous pouvez appliquer des contraintes d'attribut à la sélection des valeurs d'étiquette de sécurité pour l'exemple d'étiquette de sécurité Propriété de l'entreprise. Pour plus d'informations sur l'exemple d'étiquette et sur les valeurs disponibles, consultez la section
Corporate Proprietary : exemple d'étiquette de sécurité.
• Comportement souhaité : définissez l'étiquette de sécurité sur une valeur par défaut et masquez l'étiquette pour que l'utilisateur ne puisse pas en modifier la valeur. Si une valeur par défaut n'est pas spécifiée, la valeur nulle (sans restriction) est définie.
Contraintes d'attributs : GetHiddenConstraint
Exemple :
<AttrValue id="CORPORATE_PROPRIETARY" algorithm=
"wt.rule.algorithm.StringConstant">
<Arg>INT</Arg>
</AttrValue>
<AttrConstraint id="CORPORATE_PROPRIETARY" algorithm="com.ptc.core.
rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetHiddenConstraint"/>
</AttrConstraint>
• Comportement souhaité : définissez l'étiquette de sécurité sur une valeur par défaut et faites en sorte que la valeur soit visible, mais en lecture seule.
Contraintes d'attributs : GetServerPreGeneratedValue et GetImmutableConstraint
• Comportement souhaité : affichez la chaîne (Généré) et définissez la valeur lors de la création de l'objet.
Contraintes d'attributs : GetServerAssignedConstraint et GetImmutableConstraint
Exemple :
<AttrValue id="CORPORATE_PROPRIETARY" algorithm=
"wt.rule.algorithm.StringConstant">
<Arg>INT</Arg>
</AttrValue>
<AttrConstraint id="CORPORATE_PROPRIETARY" algorithm="com.ptc.core.
rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetServerAssignedConstraint"/>
<Value algorithm="com.ptc.core.rule.server.impl.
GetImmutableConstraint"/>
</AttrConstraint>
• Comportement souhaité : pour les étiquettes de sécurité standard, limitez les valeurs qui figurent dans la liste déroulante aux valeurs spécifiées. Pour les étiquettes de sécurité personnalisées, ne répertoriez que certaines valeurs dans une liste déroulante au lieu d'autoriser n'importe quelle valeur dans une zone de texte.
Contraintes d'attributs : GetDiscreteSetConstraint
Exemple :
<AttrValue id="CORPORATE_PROPRIETARY" algorithm=
"wt.rule.algorithm.StringConstant">
<Arg>NULL</Arg>
<Arg>INT</Arg>
</AttrValue>
<AttrConstraint id="CORPORATE_PROPRIETARY" algorithm="com.ptc.core.
rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetDiscreteSetConstraint">
<Arg>INT</Arg>
</Value>
</AttrConstraint>
• Comportement souhaité : pour les étiquettes de sécurité standard, affichez dans la liste déroulante une valeur par défaut autre que la valeur nulle (sans restriction). Pour les étiquettes de sécurité personnalisées, présentez une valeur par défaut dans la zone de texte.
Contraintes d'attributs : GetServerPreGeneratedValue
Exemple :
<AttrValue id="CORPORATE_PROPRIETARY" algorithm=
"wt.rule.algorithm.StringConstant">
<Arg>INT</Arg>
</AttrValue>
<AttrConstraint id="CORPORATE_PROPRIETARY" algorithm="com.ptc.core.
rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.
GetServerPreGeneratedValue"/>
</AttrConstraint>
• Comportement souhaité : pour une étiquette de sécurité standard prenant en charge plusieurs valeurs, définissez les valeurs par défaut et rendez les valeurs visibles, mais en lecture seule. Notez que les valeurs multiples définies pour une étiquette de sécurité standard sont toujours séparées par une virgule dans la balise d'argument.
Contraintes d'attribut : GetServerPreGeneratedValue et GetImmutableConstraint
Exemple :
<AttrValue algorithm="wt.rule.algorithm.StringConstant" id="Secrecy_Label">
<Arg>Secret,NotSecret</Arg>
</AttrValue>
<AttrConstraint id="Secrecy_Label"
algorithm="com.ptc.core.rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.GetServerPreGeneratedValue"/>
<Value algorithm="com.ptc.core.rule.server.impl.GetImmutableConstraint"/>
</AttrConstraint>
• Comportement souhaité : pour une étiquette de sécurité standard prenant en charge plusieurs valeurs, affichez les valeurs par défaut dans les listes déroulantes autres que la valeur nulle (non restreinte). Notez que les valeurs multiples définies pour une étiquette de sécurité standard sont toujours séparées par une virgule dans la balise d'argument.
Contraintes d'attribut : GetServerPreGeneratedValue
Exemple :
<AttrValue algorithm="wt.rule.algorithm.StringConstant" id="Secrecy_Label">
<Arg>Secret,NotSecret</Arg>
</AttrValue>
<AttrConstraint id="Secrecy_Label"
algorithm="com.ptc.core.rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.GetServerPreGeneratedValue"/>
</AttrConstraint>
• Comportement souhaité : pour une étiquette de sécurité standard prenant en charge plusieurs valeurs, affichez (Généré) et définissez la valeur lors de la création de l'objet. Notez que les valeurs multiples définies pour une étiquette de sécurité standard sont toujours séparées par une virgule dans la balise d'argument.
Contraintes d'attribut : GetServerAssignedConstraint
<AttrValue algorithm="wt.rule.algorithm.StringConstant" id="Secrecy_Label">
<Arg>Secret,NotSecret</Arg>
</AttrValue>
<AttrConstraint id="Secrecy_Label"
algorithm="com.ptc.core.rule.server.impl.GatherAttributeConstraints">
<Value algorithm="com.ptc.core.rule.server.impl.GetServerAssignedConstraint"/>
</AttrConstraint>