Configuration de User Management pour utiliser Virtual List View (VLV)

Il est très important de synchroniser les annuaires de User Management. Les utilisateurs et les groupes sont synchronisés depuis un annuaire d’entreprise vers la base de données AEM forms afin d’attribuer les rôles et les autorisations. Le nombre d’utilisateurs varie de 100 à plus de 100 000 en fonction des exigences et cela pose un véritable défi technique lorsqu’il s’agit de synchroniser les données efficacement.

Le protocole LDAP fournit un mécanisme destiné à interroger les ensembles de données volumineux. Ce mécanisme utilise une liste paginée et des contrôles de demande. Si vous utilisez Microsoft Active Directory, la synchronisation entre le protocole LDAP et la base de données AEM forms fait appel à PagedResultsControl pour récupérer les données dans des lots de taille particulière. Le serveur d’annuaire Sun ONE ne prend pas en charge ce contrôle. Pour terminer une requête paginée sur le serveur d’annuaire Sun ONE, utilisez le contrôle VLV (Virtual List View). Ce contrôle implique une configuration des annuaires côté serveur et une mise en œuvre côté client.

Remarque : cette section décrit l’utilisation du contrôle VLV pour le serveur d’annuaire Sun ONE. Cependant, vous pouvez utiliser ce type de contrôle pour tout serveur d’annuaire prenant en charge le contrôle VLV.
  1. Lors de la configuration de l’annuaire, sélectionnez Activer le contrôle VLV (Virtual List View) sur les pages Paramètres utilisateur et Paramètres du groupe. Lorsque vous cochez cette case, vous devez également spécifier un nom de tri dans la zone Nom de champ de tri. La valeur par défaut est uid. Voir Ajout d’annuaires ou d’interfaces SPI personnalisées ou Modification d’un annuaire .

  2. Utilisez Sun ONE Administration Console ou un script de ligne de commande pour créer les entrées VLV LDAP des utilisateurs et des groupes. Si vous utilisez un script de ligne de commande, aidez-vous des fichiers LDIF utilisateurs et groupes fournis à titre d’exemple. Voir Configuration du serveur d’annuaire Sun ONE pour VLV .

  3. Arrêtez le serveur et redémarrez l’index requis. Voir Création de l’index du serveur d’annuaire pour VLV .

Configuration du serveur d’annuaire Sun ONE pour VLV

La création d’un contrôle VLV exige une paire d’entrées intégrant les classes d’objet vlvSearch et vlvIndex . L’entrée vlvSearch inclut une base de recherche et l’attribut vlvFilter qui définit la classe d’objet contenant les attributs à trier. La classe d’objet vlvIndex inclut l’attribut vlvSort qui définit un ou plusieurs attributs à trier, ainsi que l’ordre de tri (un signe moins « - » désigne l’ordre alphabétique inverse). L’utilisation du contrôle VLV avec AEM forms exige des entrées séparées pour les utilisateurs et les groupes.

Remarque : il est possible de créer les entrées d’objet au moyen de l’interface utilisateur graphique Sun ONE ou au moyen d’un script de ligne de commande. Pour plus d’instructions sur la création d’entrées d’objet à l’aide de l’interface utilisateur graphique, consultez la documentation de Sun ONE.

Vous trouverez ci-dessous un exemple de script LDIF pour une entrée VLV relative aux utilisateurs :

dn: cn=lcuser,cn=userRoot,cn=ldbm database,cn=plugins,cn=config 
objectclass: top 
objectclass: vlvSearch 
cn: lcuser 
vlvBase: dc=corp,dc=adobe,dc=com 
vlvScope: 2 
vlvFilter: (&(objectclass=inetOrgPerson)) 
aci: (target="ldap:///cn=lcuser,cn=userRoot,cn=ldbm database,cn=plugins,cn=config")(targetattr="*")(version 3.0; acl "Config" 
;allow(read,search,compare) userdn="ldap:///all"; ) 
dn: cn=lcuser,cn=lcuser,cn=userRoot,cn=ldbm database,cn=plugins,cn=config 
cn: lcuser 
vlvSort: cn 
objectclass: top 
objectclass: vlvIndex

Création des entrées d’objet à l’aide d’un script

  1. Le script donné en exemple contient une entrée LDAP appelée lcuser . Cette entrée sert à la configuration du contrôle VLV pour la synchronisation des utilisateurs dans AEM forms. Modifiez les propriétés suivantes en conséquence :

    Nom de l’entrée : le nom de l’entrée dans cet exemple est lcuser . Si lcuser est modifié, il doit l’être dans toutes les zones du script fourni à titre d’exemple.

    vlvBase : ND de base défini dans la page Paramètres utilisateur.

    vlvFilter : filtre de recherche défini dans la page Paramètres utilisateur.

    vlvSort : champ de tri indiqué dans la section des paramètres VLV de la page Paramètres utilisateur. Un contrôle VLV exige la définition d’un contrôle du tri. Ce champ est utilisé comme paramètre de tri pour l’index vlv créé.

    aci : le contrôle d’accès défini dans l’exemple de script accorde à tous les utilisateurs authentifiés l’accès aux index VLV pour des opérations de lecture, de recherche et de comparaison. L’administrateur peut restreindre l’accès à l’utilisateur configuré sur la page des paramètres du serveur d’annuaire défini dans l’interface utilisateur de User Management. Si aucune autorisation n’est accordée, les recherches utilisateur ne peuvent pas utiliser le contrôle VLV et le serveur LDAP envoie une exception d’autorisation.

    Remarque : par convention, le nom de l’entrée vlvIndex est également lcuser , mais vous pouvez le nommer différemment. Utilisez le même nom dans l’outil vlvindex. Voir Création de l’index du serveur d’annuaire pour VLV .
  2. En vous aidant de l’outil ldapmodify fourni par le serveur Sun ONE, créez une entrée similaire pour les groupes en utilisant respectivement le nom distinctif de base du groupe, le filtre de recherche et le champ de tri :

    annuaire serveur\shared\bin>ldapmodify -v -a -h hôte -p port -D "utilisateur admin" -w "mot de passe" -f "emplacement fichier LDIF"

    Par exemple, saisissez le texte suivant :

    D:\tools\ldap\sun\shared\bin> -v -a -h localhost -p 55850 -D "uid=admin,ou=administrators,ou=topologymanagement,o=netscaperoot" -w "admin" -f "D:\tools\ldap\data\vlv feature\users.ldif"

Création de l’index du serveur d’annuaire pour VLV

Après avoir configuré les paramètres d’annuaire et créé les entrées VLV LDAP des utilisateurs et des groupes, arrêtez le serveur et créez l’index requis.

  1. Après avoir créé les entrées d’objet, arrêtez le serveur Sun ONE.

  2. A l’aide de l’outil vlvindex, générez l’index en saisissant :

    instance du serveur d’annuaire \vlvindex.bat -n userRoot -T lcuser .

    La sortie suivante est alors générée :

    D:\tools\ldap\sun\shared\bin>..\..\slapd-chetanmeh-xp3\vlvindex.bat -n userRoot -T livecycle 
    [21/Nov/2007:16:47:26 +051800] - userRoot: Indexing VLV: livecycle 
    [21/Nov/2007:16:47:27 +051800] - userRoot: Indexed 1000 entries (5%). 
    [21/Nov/2007:16:47:27 +051800] - userRoot: Indexed 2000 entries (9%). 
    ... 
    [21/Nov/2007:16:47:29 +051800] - userRoot: Indexed 20000 entries (94%). 
    [21/Nov/2007:16:47:29 +051800] - userRoot: Indexed 21000 entries (99%). 
    [21/Nov/2007:16:47:29 +051800] - userRoot: Finished indexing.

    L’outil vlvindex figure dans le répertoire de l’instance du serveur d’annuaire. Si le serveur Sun ONE possède deux instances exécutant server1 et server2, alors l’outil vlvindex se situe dans le répertoire annuaire serveur Sun ONE \server1. La valeur du paramètre -T correspond à la valeur de l’attribut cn dans l’entrée vlvindex créée ci-dessus dans le fichier LDIF fourni à titre d’exemple. En l’occurrence, il s’agit de lcuser .

  3. Si le contrôle VLV est activé pour les groupes, créez l’index correspondant pour les groupes. Vérifiez que les index ont été créés en exécutant la commande suivante :

    annuaire serveur sun one \shared\bin>ldapsearch -h nom d’hôte -p n° de port -s base -b "" objectclass=*

    Une sortie du type de celle des données fournies à titre d’exemple est générée :

    D:\tools\ldap\sun\shared\bin>ldapsearch.exe -h localhost -p 55850 -s base -b "" objectclass=* 
    ldapsearch.exe: started Tue Nov 27 16:34:20 2007 
    version: 1 
    dn: 
    objectClass: top 
    namingContexts: dc=corp,dc=adobe,dc=com 
    supportedExtension: 2.16.840.1.113730.3.5.7 
    ... 
    vlvsearch: cn=MCC ou=testdata dc=corp dc=adobe dc=com, cn=userRoot,cn=ldbm dat 
        abase,cn=plugins,cn=config 
    vlvsearch: cn=lcuser,cn=userRoot,cn=ldbm database,cn=plugins,cn=config 
    vlvsearch: cn=Browsing ou=testdata,cn=userRoot,cn=ldbm database,cn=plugins,cn= 
        config 
    1 matches