Tema anterior: Cómo configurar la validación a nivel de directorioTema siguiente: Asociación de un conjunto de reglas de validación con un atributo del objeto gestionado


Integración de validación a nivel de directorio con CA IdentityMinder

Las reglas de validación y conjuntos de reglas para CA IdentityMinder se definen mediante el elemento ImsManagedObjectAttrValidation del archivo directory.xml.

El esquema para el elemento ImsManagedObjectAttrValidation es el siguiente:

<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>

Los elementos siguientes se definen:

ValidationRuleSet

Está formado por una o varias reglas de validación predefinidas o personalizadas. Una regla de validación se especifica en el elemento ValidationRule.

Las reglas de validación predefinidas y las personalizadas pueden aparecer en el mismo conjunto de reglas. Además, un conjunto de reglas puede contener cualquier combinación de implementaciones de Java, JavaScript y expresiones regulares.

Las reglas de validación se llevan a cabo en el orden en el que aparecen en ValidationRuleSet. Esto permite posibilita la validación en cascada, en la que la salida de una regla se utiliza como entrada en la siguiente.

ValidationRuleSet está asociado con un atributo del objeto gestionado en el elemento ImsManagedObjectAttr del archivo directory.xml.

ValidationRule

Especifica una regla de validación para utilizarse en ValidationRuleSet.

ValidationRule debe contener solamente uno de los subelementos siguientes:

Atributos clave

La mayor parte de los atributos de los elementos descritos previamente se explica por sí misma. Sin embargo, los siguientes atributos requieren una explicación:

Ejemplo: expresión regular integrada

El siguiente ejemplo muestra la regla de validación predefinida del patrón Teléfono, que está incluida en el formato Teléfono del conjunto de reglas. La regla se implementa de forma integrada como expresión regular:

<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>

En el ejemplo anterior, messageid="4001" se asigna a la siguiente línea en IMSExceptions.properties:

4001=Attribute Validation: {0} value must match regular expression
                                                     nnn-nnn-nnnn.

Ejemplo: referencia al archivo JavaScript

El ejemplo siguiente especifica la regla EndWithZ_js. Esta regla se implementa en JavaScript y el script se encuentra en el archivo EndWithZ.js. El conjunto de reglas que incluye la regla no se muestra en el ejemplo:

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

En el ejemplo anterior, se supone que el archivo de JavaScript está en la siguiente ubicación predeterminada:

iam_im.ear\custom\validationscripts