Rubrique précédente: Configuration d'une validation de niveau annuaireRubrique suivante: Association d'une définition de règle de validation avec un attribut d'objet géré


Intégration de la validation de niveau annuaire avec CA IdentityMinder

Définissez des règles de validation et des ensembles de règles dans CA IdentityMinder à l'aide de l'élément ImsManagedObjectAttrValidation du fichier directory.xml.

Le schéma de l'élément ImsManagedObjectAttrValidation est le suivant :

<xs:element name="ImsManagedObjectAttrValidation" minOccurs="0">
   <xs:complexType>
      <xs:sequence>
         <xs:element name="ValidationRule" minOccurs="0"
                                            maxOccurs="unbounded">
            <xs:complexType>
               <xs:choice>
                  <xs:element name="Java">
                     <xs:complexType>
                        <xs:attribute name="class" type="xs:string"
                                                  use="required"/>
                     </xs:complexType>
                            </xs:element>
                  <xs:element name="JavaScript">
                     <xs:complexType>
                        <xs:simpleContent>
                           <xs:extension base="xs:string"/>
                        </xs:simpleContent>
                     </xs:complexType>
                  </xs:element>
                  <xs:element name="JavaScriptFile">
                     <xs:complexType>
                   <xs:attribute name="file" type="xs:string"
                                                use="required"/>
                     </xs:complexType>
                  </xs:element>
                  <xs:element name="RegularExpression">
                     <xs:complexType>
                        <xs:simpleContent>
                           <xs:extension base="xs:string"/>
                        </xs:simpleContent>
                     </xs:complexType>
                  </xs:element>
               </xs:choice>
               <xs:attribute name="name" type="xs:string"
                                                  use="required"/>
               <xs:attribute name="description" type="xs:string"
                                                  use="optional"/>
               <xs:attribute name="messageid" type="xs:string"
                                                  use="required"/>
            </xs:complexType>
         </xs:element>
         <xs:element name="ValidationRuleSet" minOccurs="0"
                                            maxOccurs="unbounded">
            <xs:complexType>
               <xs:sequence>
                  <xs:element name="ValidationRule"
                                            maxOccurs="unbounded">
                     <xs:complexType>
                        <xs:attribute name="name" type="xs:string"
                                                  use="required"/>
                     </xs:complexType>
                  </xs:element>
               </xs:sequence>
               <xs:attribute name="name" type="xs:string"
                                                  use="required"/>
               <xs:attribute name="description" type="xs:string"
                                                  use="optional"/>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
   </xs:complexType>
</xs:element>

Les éléments suivants sont définis :

ValidationRuleSet

Consiste en une ou plusieurs règles de validation personnalisées ou prédéfinies. Une règle de validation est spécifiée dans l'élément ValidationRule.

Les règles de validation prédéfinies et les règles de validation personnalisées peuvent s'afficher dans un même ensemble de règles. Un ensemble de règles peut également contenir une combinaison d'implémentations Java, JavaScript et d'expression régulière.

Les règles de validation sont exécutées dans l'ordre dans lequel elles s'affichent dans l'élément ValidationRuleSet. Cela permet d'effectuer une validation en cascade, c'est-à-dire d'utiliser le résultat d'une règle comme entrée pour la suivante.

ValidationRuleSet est associé à un attribut d'objet géré dans l'élément ImsManagedObjectAttr du fichier directory.xml.

ValidationRule

Spécifie une règle de validation à utiliser dans un ensemble ValidationRuleSet.

ValidationRule doit contenir uniquement l'un des sous-éléments suivants :

Attributs clés

La plupart des attributs des éléments décrits au préalable sont explicites. Toutefois, les attributs suivants requièrent une explication :

Exemple d'expression régulière intégrée

Les exemples suivants contiennent la règle de validation prédéfinie Phone pattern, incluse dans l'ensemble de règles Phone format. La règle est implémentée de manière intégrée sous la forme d'une expression régulière :

<ValidationRule name="Phone pattern" description="+nn nnn-nnn-nnnn"
                                                 messageid="4001">
   <RegularExpression>
      <![CDATA[ ((\+|\d)*+(\s*|\x2D))?\d\d\d-\d\d\d-\d\d\d\d]]>
   </RegularExpression>
</ValidationRule>
<ValidationRuleSet name="Phone format" description=
                                 "Verify format +nn nnn-nnn-nnnn">
   <ValidationRule name="Phone pattern" />
</ValidationRuleSet>

Dans l'exemple précédent, messageid="4001" mappe vers la ligne suivante dans IMSExceptions.properties :

4001=Validation de l'attribut : la valeur {0} doit correspondre à une expression régulière
                                                     nnn-nnn-nnnn.

Exemple de référence au fichier JavaScript

L'exemple suivant spécifie la règle EndWithZ_js. Cette règle est implémentée en JavaScript et le script se trouve dans le fichier EndWithZ.js. L'ensemble de règles qui inclut la règle n'est pas affiché dans l'exemple :

<ValidationRule name="EndWithZ_js" messageid="custom-5001">
   <JavaScriptFile file="EndWithZ.js" />
</ValidationRule>

Dans cet exemple, le fichier JavaScript se trouve dans l'emplacement par défaut suivant :

iam_im.ear\custom\validationscripts