7.5 Fichiers LDIF

L'utilitaire d'importation, de conversion et d'exportation NetIQ permet d'importer et d'exporter facilement des fichiers LDIF vers et depuis eDirectory. Pour plus d'informations, reportez-vous à la section Utilitaire Importation/Conversion/Exportation NetIQ du Guide d'administration de NetIQ eDirectory.

Pour qu'une importation LDIF se déroule convenablement, vous devez commencer avec un fichier LDIF que l'utilitaire d'importation, de conversion et d'exportation NetIQ peut lire et traiter. Cette section décrit le format et la syntaxe des fichiers LDIF, et propose des exemples de fichiers LDIF corrects.

7.5.1 Comprendre LDIF

LDIF est un format de fichier très répandu qui décrit des informations de répertoire ou des opérations de modification pouvant être réalisées sur un répertoire. LDIF est totalement indépendant du format de stockage utilisé au sein d'une implémentation de répertoire spécifique, et est typiquement utilisé pour exporter des informations de répertoire depuis des serveurs LDAP et pour importer des données vers des serveurs LDAP.

D'une façon générale, la génération de LDIF est simple. Elle vous permet d'utiliser des outils tels que awk ou perl, pour déplacer des données d'un format propriétaire dans un annuaire LDAP. Vous pouvez également écrire des scripts permettant de générer des données de test au format LDIF.

Format de fichier LDIF

L'utilitaire d'importation/de conversion/d'exportation NetIQ requiert des fichiers au format LDIF 1. Voici les règles de base applicables à un fichier LDIF 1 :

  • La première ligne (autre qu'un commentaire) doit correspondre à la version 1.

  • Une série d'un ou de plusieurs enregistrements suit la version.

  • Chaque enregistrement se compose de champs (un champ par ligne).

  • Les lignes sont séparées par un saut de ligne ou par une paire retour chariot/saut de ligne.

  • Les enregistrements sont séparés par au moins une ligne vide.

  • Il existe deux types d'enregistrements LDIF : enregistrements de contenu et enregistrements de modification. Un fichier LDIF peut comporter un nombre illimité d'enregistrements, mais ceux-ci doivent tous être du même type. Vous ne pouvez pas mélanger des enregistrements de contenu et des enregistrements de changement dans le même fichier LDIF.

  • Toute ligne commençant par le signe dièse (#) est un commentaire et est par conséquent ignorée lors du traitement du fichier LDIF.

Enregistrements de contenu LDIF

Un enregistrement de contenu LDIF représente le contenu de l'ensemble d'une entrée. L'exemple de fichier LDIF ci‑après comprend quatre enregistrements de contenu :

 1  version: 1
 2  dn: c=US
 3  objectClass: top
 4  objectClass: country
 5  
 6  dn: l=San Francisco, c=US
 7  objectClass: top
 8  objectClass: locality
 9  st: San Francisco
10
11 dn: ou=Artists, l=San Francisco, c=US
12 objectClass: top
13 objectClass: organizationalUnit
14 telephoneNumber: +1 415 555 0000
15 
16 dn: cn=Peter Michaels, ou=Artists, l=San Francisco, c=US
17 sn: Michaels
18 givenname: Peter
19 objectClass: top
20 objectClass: person
21 objectClass: organizationalPerson
22 objectClass: iNetOrgPerson
23 telephonenumber: +1 415 555 0001
24 mail: Peter.Michaels@aaa.com
25 userpassword: Peter123
26

Ce fichier LDIF comprend les parties suivantes :

Composant

Description

Spécificateur de version

La première ligne d'un fichier LDIF comporte la version. Vous pouvez ajouter ou non des espaces entre les deux points et le numéro de version, actuellement défini sur 1.

Si la ligne de version est manquante, toute application traitant le fichier LDIF peut supposer que le fichier est de version 0. Il est aussi possible que le fichier LDIF soit rejeté comme étant syntaxiquement incorrect. Les utilitaires NetIQ traitant les fichiers LDIF considèrent que le fichier est de la version 0 en cas d'absence de la ligne de version.

Spécificateur de nom distinctif

La première ligne de chaque enregistrement de contenu (lignes 2, 6, 11 et 16 de l'exemple précédent) spécifie le DN de l'entrée qu'il représente.

Le spécificateur de DN doit revêtir l'une des deux formes suivantes :

  • dn: nom_distinctif_UTF-8_protégé

  • dn: nom_distinctif_codé_Base64

Séparateurs de lignes

Le séparateur de ligne peut être un saut de ligne ou une paire retour chariot/saut de ligne. Cela permet de résoudre une incompatibilité fréquente entre fichiers texte Linux et Solaris, qui utilisent un saut de ligne comme séparateur de ligne, et fichiers texte MS-DOS* et Windows, qui pour ce faire utilisent une paire retour chariot/saut de ligne.

Séparateurs d'enregistrements

Les lignes vides (lignes 5, 10, 15 et 26 de l'exemple précédent) sont utilisées comme séparateurs d'enregistrements.

Chaque enregistrement d'un fichier LDIF, y compris le dernier, doit se terminer par un séparateur d'enregistrement (une ou plusieurs lignes vides). Si certaines implémentations acceptent un fichier LDIF sans séparateur d'enregistrement final, il est impératif pour la spécification LDIF.

Spécificateur de valeur d'attribut

Toutes les autres lignes d'un enregistrement de contenu sont des spécificateurs de valeurs. Les spécificateurs de valeurs doivent revêtir l'une des trois formes suivantes :

  • Description d'attribut : valeur

  • Description d'attribut : valeur_Base64_codée

  • Description d'attribut : < URL

Enregistrements de changement LDIF

Les enregistrements de changement LDIF comportent les modifications à apporter à un répertoire. Toutes les opérations de mise à jour LDAP (add, delete, modify et modify DN) peuvent être représentées dans un enregistrement de changement LDIF.

Les enregistrements de changement LDIF utilisent pour le spécificateur de nom distinctif, le spécificateur de valeur d'attribut et le séparateur d'enregistrement le même format que les enregistrements de contenu LDIF. (Reportez-vous à la section Enregistrements de contenu LDIF pour plus d'informations.) La présence d'un champ changetype est ce qui différencie un enregistrement de changement LDIF d'un enregistrement de contenu LDIF. Le champ changetype identifie l'opération spécifiée par l'enregistrement de changement.

Le champ changetype peut revêtir l'une des cinq formes suivantes :

Formulaire

Description

changetype:ajout

Mot-clé indiquant que l'enregistrement de changement spécifie une opération LDAP d'ajout.

changetype:suppression

Mot-clé indiquant que l'enregistrement de changement spécifie une opération LDAP de suppression.

changetype: moddn

Mot‑clé indiquant que l'enregistrement de changement spécifie une opération LDAP de modification du DN si le processeur LDIF est lié au serveur LDAP en tant que client version 3 ou une opération de modification du RDN si le processeur LDIF est lié au serveur LDAP en tant que client version 2.

changetype: modrdn

Synonyme du type de changement moddn.

changetype:modification

Mot-clé indiquant que l'enregistrement de changement spécifie une opération LDAP de modification.

Changement de type add

Un enregistrement de changement de type add ressemble à un enregistrement de changement de contenu (reportez-vous à la section Enregistrements de contenu LDIF) ; le champ changetype: add figure immédiatement avant les champs de valeur d'attribut.

Tous les enregistrements doivent être de même type. Vous ne pouvez pas mélanger des enregistrements de contenu et des enregistrements de changement.

 1 version: 1
 2 dn: c=US
 3 changetype: add
 4 objectClass: top
 5 objectClass: country
 6 
 7 dn: l=San Francisco, c=US
 8 changetype: add
 9 objectClass: top
10 objectClass: locality
11 st: San Francisco
12
14 dn: ou=Artists, l=San Francisco, c=US
15   changetype: add
16 objectClass: top
17 objectClass: organizationalUnit
18 telephoneNumber: +1 415 555 0000
19 
20 dn: cn=Peter Michaels, ou=Artists, l=San Francisco, c=US
21 changetype: add
22 sn: Michaels
23 givenname: Peter
24 objectClass: top
25 objectClass: person
26 objectClass: organizationalPerson
27 objectClass: iNetOrgPerson
28 telephonenumber: +1 415 555 0001
29 mail: Peter.Michaels@aaa.com
30 userpassword: Peter123
31

Changement de type delete

Étant donné qu'un enregistrement de changement de type delete indique la suppression d'une entrée, les seuls champs nécessaires à ce type d'enregistrement sont le spécificateur de nom distinctif et le changement de type delete.

L'exemple de fichier LDIF suivant est utilisé pour supprimer les quatre entrées créées par le fichier LDIF présenté dans la section Changement de type add.

IMPORTANT :Pour supprimer des entrées précédemment ajoutées, inversez l'ordre des entrées. Si vous n'effectuez pas cette opération, la suppression échoue, car les entrées de conteneur ne sont pas vides.

 1 version: 1
 2 dn: cn=Peter Michaels, ou=Artists, l=San Francisco, c=US
 3 changetype: delete
 4
 5 dn: ou=Artists, l=San Francisco, c=US
 8   changetype: delete
 9
10 dn: l=San Francisco, c=US
11 changetype: delete
12
13 dn: c=US
14 changetype: delete
15

Changement de type modify

Le changement de type modify permet de spécifier l'ajout, la suppression et le remplacement de valeurs d'attribut pour une entrée déjà existante. Les modifications revêtent l'une des trois formes suivantes :

Élément

Description

add: type d'attribut

Mot-clé indiquant que les spécificateurs de valeur d'attribut suivants correspondant au type d'attribut doivent être ajoutés à l'entrée.

delete: attribute type

Mot-clé indiquant que les valeurs correspondant au type d'attribut doivent être supprimées. Si des spécificateurs de valeur d'attribut suivent le champ delete, les valeurs correspondantes sont supprimées.

Si aucun spécificateur de valeur d'attribut ne suit le champ delete, toutes les valeurs sont supprimées. Si aucune valeur n'est associée à l'attribut, cette opération échoue, mais l'effet désiré est quand même obtenu, étant donné que l'attribut n'est associé à aucune valeur à supprimer.

replace: attribute type

Mot-clé indiquant que les valeurs correspondant au type d'attribut doivent être remplacées. Tous les spécificateurs de valeur d'attribut qui suivent le champ replace deviennent les nouvelles valeurs de ce type d'attribut.

Si aucun spécificateur de valeur d'attribut ne suit le champ replace, le jeu de valeurs actuel est remplacé par un jeu de valeurs vide (ce qui entraîne le retrait de l'attribut). À la différence du spécificateur de modification delete, si aucune valeur n'est associée à l'attribut, le remplacement réussira tout de même. L'effet net est le même dans les deux cas.

L'exemple suivant illustre un changement de type modify qui permet d'ajouter un numéro de téléphone supplémentaire à l'entrée cn=Peter Michaels.

 1 version: 1
 2 dn: cn=Peter Michaels, ou=Artists, l=San Francisco, c=US
 3 changetype: modify
 4 # add the telephone number to cn=Peter Michaels
 4 add: telephonenumber
 5 telephonenumber: +1 415 555 0002
 6

De même que vous pouvez combiner un mélange de modifications dans une requête de modification LDAP unique, vous pouvez spécifier plusieurs modifications dans un enregistrement LDIF unique. Une ligne contenant uniquement le caractère tiret (-) est utilisée pour marquer la fin des indications de valeur d'attribut pour chaque spécificateur de modification.

Le fichier LDIF exemple suivant comprend un mélange de modifications :

 1 version: 1
 2
 3 # An empty line to demonstrate that one or more
 4 # line separators between the version identifier 
 5 # and the first record is legal.
 6
 7 dn: cn=Peter Michaels, ou=Artists, l=San Francisco, c=US
 8 changetype: modify
 9 # Add an additional telephone number value.
10 add: telephonenumber
11 telephonenumber: +1 415 555 0002
12 -
13 # Delete the entire fascimiletelephonenumber attribute.
14 delete: facsimileTelephoneNumber
15 -
16 # Replace the existing description (if any exists) 
17 # with two new values.
18 replace: description
19 description: guitar player
20 description: solo performer
21 -
22 # Delete a specific value from the telephonenumber 
23 # attribute.
24 delete: telephonenumber
25 telephonenumber: +1 415 555 0001
26 -
27 # Replace the existing title attribute with an empty 
28 # set of values, thereby causing the title attribute to 
29 # be removed.
30 replace: title
31 -
32

Changement de type modify DN

Le changement de type modify DN permet de renommer une entrée, de la déplacer, ou d'effectuer les deux opérations. Ce type de changement se compose de deux champs obligatoires et d'un champ facultatif.

Champ

Description

newrdn (obligatoire)

Indique le nouveau nom de l'entrée qui sera assignée lors du traitement de cet enregistrement. Le spécificateur « new RDN » doit revêtir l'une des deux formes suivantes :

  • newrdn : nom_distinctif_relatif_UTF-8_sécurisé

  • newrdn : nom_distinctif_relatif_codé_Base64

Le spécificateur « new RDN » est obligatoire dans tous les enregistrements LDIF comportant un changement de type modify DN.

deleteoldrdn (obligatoire)

Le spécificateur delete « old RDN » spécifie si l'ancien RDN doit être remplacé par la valeur newrdn ou s'il doit être conservé. Il revêt l'une des deux formes suivantes :

  • deleteoldrdn: 0

    Indique que l'ancienne valeur RDN doit être conservée dans l'entrée une fois renommée.

  • deleteoldrdn: 1

    Indique que l'ancienne valeur RDN doit être supprimée une fois l'entrée renommée.

newsuperior (facultatif)

Le spécificateur « new superior » indique le nom du nouveau parent qui sera assigné à l'entrée lors du traitement de l'enregistrement modify DN. Le spécificateur new « superior » doit revêtir l'une des deux formes suivantes :

  • newsuperior: nom_distinctif_UTF-8_protégé

  • newsuperior: nom_distinctif_codé_Base64

Le spécificateur « new superior » est facultatif dans les enregistrements LDIF comportant un changement de type modify DN. Il n'est fourni que si vous souhaitez attribuer un autre parent à l'entrée.

L'exemple suivant illustre un changement de type modify DN et montre comment renommer une entrée :

 1 version: 1
 2 
 3 # Rename ou=Artists to ou=West Coast Artists, and leave
 4 # its old RDN value.
 5 dn: ou=Artists,l=San Francisco,c=US
 6 changetype: moddn
 7 newrdn: ou=West Coast Artists
 8 deleteoldrdn: 1
 9

L'exemple suivant illustre un changement de type modify DN et montre comment déplacer une entrée :

 1 version: 1
 2
 3 # Move cn=Peter Michaels from 
 4 # ou=Artists,l=San Francisco,c=US to 
 5 # ou=Promotion,l=New York,c=US and delete the old RDN.
 5 dn: cn=Peter Michaels,ou=Artists,l=San Francisco,c=US
 6 changetype: moddn
 7 newrdn: cn=Peter Michaels
 8 deleteoldrdn: 1
 9 newsuperior: ou=Promotion,l=New York,c=US
10

L'exemple suivant illustre un changement de type modify DN et montre comment déplacer une entrée et la renommer en même temps :

 1 version: 1
 2
 3 # Move ou=Promotion from l=New York,c=US to
 4 # l=San Francisco,c=US and rename it to 
 5 # ou=National Promotion.
 5 dn: ou=Promotion,l=New York,c=US
 6 changetype: moddn
 7 newrdn: ou=National Promotion
 8 deleteoldrdn: 1
 9 newsuperior: l=San Francisco,c=US
10

IMPORTANT :L'opération de modification RDN de LDAP 2 ne prend pas en charge le déplacement des entrées. Si vous tentez de déplacer une entrée en utilisant la syntaxe LDIF newsuperior avec un client LDAP 2, la requête échoue.

Retour à la ligne dans les fichiers LDIF

Pour retourner à la ligne dans un fichier LDIF, il suffit d'insérer un séparateur de ligne (saut de ligne ou paire retour chariot/saut de ligne), suivi d'un espace à l'emplacement auquel vous souhaitez retourner à la ligne. Lorsque l'analyseur syntaxique LDIF rencontre un espace en début de ligne, il sait concaténer le reste des données de la ligne avec les données de la ligne précédente. Il supprime alors l'espace en tête.

Vous ne devez pas aller à la ligne au milieu d'un caractère multi-octets UTF-8.

L'exemple de fichier LDIF suivant illustre une ligne avec retour à la ligne (voir lignes 13 et 14) :

 1 version: 1
 2 dn: cn=Peter Michaels, ou=Artists, l=San Francisco, c=US
 3 sn: Michaels
 4 givenname: Peter
 5 objectClass: top
 6 objectClass: person
 7 objectClass: organizationalPerson
 8 objectClass: iNetOrgPerson
 9 telephonenumber: +1 415 555 0001
10 mail: Peter.Michaels@aaa.com
11 userpassword: Peter123
12 description: Peter is one of the most popular music
13  ians recording on our label. He's a big concert dr
14  aw, and his fans adore him.
15

Représentation du mot de passe haché dans les fichiers LDIF

Un mot de passe haché est représenté au format de données base64 dans le fichier LDIF. Le nom d'attribut userpassword doit être suivi du nom du codage utilisé pour le hachage du mot de passe. Ce nom doit être précédé et suivi d'accolades (« { » et « } »), comme l'illustrent les exemples suivants :

Exemple 1

Pour les mots de passe codés SHA :

1 version: 1 2 dn: cn=Peter Michaels, ou=Artists, l=San Francisco, c=US 3 sn: Michaels 4 userpassword: {SHA}xcbdh46ngh37jsd0naSFDedjAS30dm5 objectclass: inetOrgPerson

Exemple 2

Pour les mots de passe codés SSHA :

1 version: 1 2 dn: cn=Peter Michaels, ou=Artists, l=San Francisco, c=US 3 sn: Michaels 4 userpassword: {SSHA}sGs948DFGkakdfkasdDF34DF4dS3skl5DFS5 objectclass: inetOrgPerson

Exemple 3

Pour les mots de passe codés Digest MD5 :

1 version: 1 2 dn: cn=Peter Michaels, ou=Artists, l=San Francisco, c=US 3 sn: Michaels 4 userpassword: {MD5}a45lkSDF234SDFG62dsfsf2DG2QEvgdmnk4305 objectclass: inetOrgPerson

7.5.2 Débogage des fichiers LDIF

Si vous rencontrez des problèmes avec un fichier LDIF, tenez compte des points suivants :

Activation des références en aval

Il peut arriver de rencontrer des fichiers LDIF dans lesquels un enregistrement permettant d'ajouter une entrée se trouve avant l'enregistrement permettant d'ajouter ses parents. Le cas échéant, une erreur est générée car le parent de la nouvelle entrée n'existe pas au moment où le serveur LDAP tente d'ajouter l'entrée.

Pour résoudre ce problème, il suffit d'activer l'utilisation de références en aval. Lorsque vous activez la création de références en aval et qu'une entrée va être créée alors que son parent n'existe pas encore, une marque de réservation appelée référence en aval est créée pour le parent de l'entrée afin de permettre la création de l'entrée. Si une opération ultérieure crée le parent, la référence en aval se transforme en entrée normale.

Il est possible qu'il reste une ou plusieurs références en aval une fois l'importation LDIF terminée (si le fichier LDIF n'a, par exemple, jamais créé de parent pour cette entrée). Dans ce cas, la référence en aval apparaît en tant qu'objet Inconnu dans iManager. Vous pouvez certes effectuer une recherche sur une entrée de référence en aval, mais vous ne pouvez pas lire les attributs (à l'exception de l'attribut objectClass) depuis l'entrée de référence en aval car elle n'est associée à aucun attribut et à aucune valeur d'attribut. Cependant, toutes les opérations LDAP fonctionnent normalement sur les entrées d'objet situées sous la référence en aval.

Identification des entrées de référence en aval

Les entrées de référence en aval sont associées à une classe d'objet Inconnu et ont également un indicateur d'entrée EF_REFERENCE NDS interne. Dans iManager, les entrées associées à une classe d'objet Inconnu sont représentées par une icône jaune circulaire au centre de laquelle se trouve un point d'interrogation. Vous pouvez utiliser LDAP pour rechercher des objets dont la classe d'objet est Inconnu, bien qu'il n'existe actuellement aucun moyen d'accéder via LDAP aux paramètres de l'indicateur pour vérifier qu'il s'agit bien d'entrées de référence en aval.

Changement des entrées de référence en aval en objets normaux

Vous pouvez changer une entrée de référence en aval en un objet normal en créant ce dernier (à l'aide, par exemple, d'un fichier LDIF ou d'une requête client LDAP). Lorsque vous demandez à eDirectory de créer une entrée qui existe déjà en tant que référence en aval, il remplace l'entrée de référence en aval existante par l'objet dont vous avez demandé la création.

Utilisation de l'Assistant d'importation, de conversion et d'exportation NetIQ eDirectory

Pour activer les références en aval lors d'une importation LDIF :

  1. Dans NetIQ iManager, cliquez sur le bouton Rôles et tâches bouton Rôles et tâches.

  2. Cliquez sur Maintenance  > Assistant Importation/Conversion/Exportation.

  3. Cliquez sur Importer les données depuis un fichier du disque, puis sur Suivant.

  4. Sélectionnez le type de fichier à importer LDIF.

  5. Entrez le nom du fichier qui contient les données à importer, spécifiez les options appropriées, puis cliquez sur Suivant.

  6. Spécifiez le serveur LDAP dans lequel importer les données.

  7. Ajoutez les options appropriées, décrites dans le tableau ci-dessous :

    Option

    Description

    Nom/Adresse IP du serveur DNS

    Nom DNS ou adresse IP du serveur LDAP cible

    Port

    Numéro de port (nombre entier) du serveur LDAP cible

    Fichier DER

    Nom du fichier DER qui contient une clé de serveur utilisée pour l'authentification SSL

    Méthode de connexion

    Connexion authentifiée ou anonyme (pour l'entrée spécifiée dans le champ DN utilisateur)

    DN utilisateur

    Nom distinctif de l'entrée à utiliser lors de la liaison à l'opération de liaison définie sur le serveur

    Mot de passe

    Attribut de mot de passe de l'entrée spécifiée dans le champ DN utilisateur

  8. Dans Paramètres avancés, cliquez sur Autoriser les références en aval.

  9. Cliquez sur Suivant, puis sur Terminer.

Pour activer les références en aval lors d'une migration de données entre serveurs :

  1. Dans NetIQ iManager, cliquez sur le bouton Rôles et tâches bouton Rôles et tâches.

  2. Cliquez sur Maintenance  > Assistant Importation/Conversion/Exportation.

  3. Cliquez sur Migrer les données entre les serveurs, puis sur Suivant.

  4. Sélectionnez le serveur LDAP comportant les entrées à migrer.

  5. Ajoutez les options appropriées, décrites dans le tableau ci-dessous :

    Option

    Description

    Nom/Adresse IP du serveur DNS

    Nom DNS ou adresse IP du serveur LDAP source

    Port

    Numéro de port (nombre entier) du serveur LDAP source

    Fichier DER

    Nom du fichier DER qui contient une clé de serveur utilisée pour l'authentification SSL

    Méthode de connexion

    Connexion authentifiée ou anonyme (pour l'entrée spécifiée dans le champ DN utilisateur)

    DN utilisateur

    Nom distinctif de l'entrée à utiliser lors de la liaison à l'opération de liaison définie sur le serveur

    Mot de passe

    Attribut de mot de passe de l'entrée spécifiée dans le champ DN utilisateur

  6. Dans Paramètres avancés, cliquez sur Autoriser les références en aval.

  7. Cliquez sur Suivant.

  8. Spécifiez les critères de recherche (décrits ci-dessous) relatifs aux entrées à migrer :

    Option

    Description

    DN de base

    Nom distinctif de base pour la requête de recherche

    Si vous laissez ce champ vide, la valeur par défaut du nom distinctif de base est "" (chaîne vide).

    Étendue

    Étendue de la requête de recherche

    Filtre

    Filtre de recherche conforme à la convention RFC 2254

    La valeur par défaut est objectclass=*.

    Attributs

    Attributs qui doivent vous être renvoyés pour chaque entrée de la recherche

  9. Cliquez sur Suivant.

  10. Spécifiez le serveur LDAP vers lequel les données doivent migrer.

  11. Cliquez sur Suivant, puis sur Terminer.

    REMARQUE :vérifiez que le schéma est cohérent dans tous les services LDAP.

Utilisation de l'interface de ligne de commande de l'utilitaire d'importation, de conversion et d'exportation NetIQ

Pour activer les références en aval dans l'interface de ligne de commande, utilisez l'option -F du gestionnaire cible LDAP.

Pour plus d'informations, reportez-vous à la section Options du gestionnaire de destination LDIF du Guide d'administration de NetIQ eDirectory.

Contrôle de la syntaxe des fichiers LDIF

Vous pouvez vérifier la syntaxe d'un fichier LDIF avant de traiter les enregistrements qu'il contient en utilisant l'option du gestionnaire source LDIF Afficher les opérations sans les exécuter.

Le gestionnaire de source LDIF vérifie systématiquement la syntaxe des enregistrements d'un fichier LDIF lorsqu'il les traite. Utilisez cette option pour désactiver le traitement des enregistrements et vérifier la syntaxe.

Utilisation de l'Assistant d'importation, de conversion et d'exportation NetIQ eDirectory

  1. Dans NetIQ iManager, cliquez sur le bouton Rôles et tâches bouton Rôles et tâches.

  2. Cliquez sur Maintenance  > Assistant Importation/Conversion/Exportation.

  3. Cliquez sur Importer les données depuis un fichier du disque, puis sur Suivant.

  4. Sélectionnez le type de fichier à importer LDIF.

  5. Entrez le nom du fichier qui contient les données à importer et sélectionnez les options appropriées.

  6. Dans Paramètres avancés, cliquez sur Afficher les opérations sans les exécuter, puis sur Suivant.

  7. Spécifiez le serveur LDAP dans lequel importer les données.

  8. Ajoutez les options appropriées, décrites dans le tableau ci-dessous :

    Option

    Description

    Nom/Adresse IP du serveur DNS

    Nom DNS ou adresse IP du serveur LDAP cible

    Port

    Numéro de port (nombre entier) du serveur LDAP cible

    Fichier DER

    Nom du fichier DER qui contient une clé de serveur utilisée pour l'authentification SSL

    Méthode de connexion

    Connexion authentifiée ou anonyme (pour l'entrée spécifiée dans le champ DN utilisateur)

    DN utilisateur

    Nom distinctif de l'entrée à utiliser lors de la liaison à l'opération de liaison définie sur le serveur

    Mot de passe

    Attribut de mot de passe de l'entrée spécifiée dans le champ DN utilisateur

  9. Cliquez sur Suivant, puis sur Terminer.

Utilisation de l'interface de ligne de commande de l'utilitaire d'importation, de conversion et d'exportation NetIQ

Pour vérifier la syntaxe d'un fichier LDIF dans l'interface de ligne de commande, utilisez l'option -n du gestionnaire de source LDIF.

Pour plus d'informations, reportez-vous à la section Options du gestionnaire source LDIF du Guide d'administration de NetIQ eDirectory.

Utilisation du fichier d'erreurs LDIF

L'utilitaire d'importation/de conversion/d'exportation NetIQ crée automatiquement un fichier LDIF qui recense tous les enregistrements dont le traitement par le gestionnaire de destination a échoué. Vous pouvez éditer le fichier d'erreurs LDIF généré par l'utilitaire, corriger les erreurs et le réappliquer au serveur pour terminer une importation ou une migration de données contenant des enregistrements erronés.

Utilisation de l'Assistant d'importation/d'exportation NetIQ eDirectory

  1. Dans NetIQ iManager, cliquez sur le bouton Rôles et tâches bouton Rôles et tâches.

  2. Cliquez sur Maintenance  > Assistant Importation/Conversion/Exportation.

  3. Cliquez sur Importer les données depuis un fichier du disque, puis sur Suivant.

  4. Dans les Paramètres avancés, sélectionnez l'option Consigner les enregistrements ayant échoué, puis cliquez sur Suivant.

  5. Sélectionnez le type de fichier à importer LDIF.

  6. Entrez le nom du fichier qui contient les données à importer, spécifiez les options appropriées, puis cliquez sur Suivant.

  7. Spécifiez le serveur LDAP dans lequel importer les données.

  8. Ajoutez les options appropriées, décrites dans le tableau précédent :

  9. Cliquez sur Suivant. Le fichier ice.log est créé. Il s'agit du fichier dans lequel sont consignés les messages de sortie (notamment les messages d'erreur). Les entrées qui échouent sont consignées au format LDIF.

  10. Cliquez sur Terminer.

Utilisation de l'interface de ligne de commande de l'utilitaire d'importation, de conversion et d'exportation NetIQ

Utilisez l'option générale -l pour configurer des options de journal d'erreurs dans l'utilitaire de ligne de commande.

Pour plus d'informations, reportez-vous à la section Options générales du Guide d'administration de NetIQ eDirectory.

Utilisation des indicateurs de débogage SDK LDAP

Pour comprendre certains problèmes LDIF, vous devez connaître le fonctionnement du client LDAP SDK. Vous pouvez définir les indicateurs de débogage suivants pour le gestionnaire de source LDAP, le gestionnaire de destination LDAP, ou les deux.

Valeur

Description

0x0001

Effectue le suivi des appels de fonction LDAP.

0x0002

Imprimez des informations sur les paquets.

0x0004

Imprimez des informations sur les arguments.

0x0008

Imprime des informations sur les connexions.

0x0010

Imprime des informations sur le codage et le décodage BER.

0x0020

Imprime des informations sur les filtres de recherche.

0x0040

Imprime des informations sur la configuration.

0x0080

Imprime des informations sur l'ACL.

0x0100

Imprime des informations sur les statistiques.

0x0200

Imprime des informations supplémentaires sur les statistiques.

0x0400

Imprime des informations sur le shell.

0x0800

Imprime des informations sur l'analyse syntaxique.

0xFFFF (-1 Decimal)

Active toutes les options de débogage.

Pour activer cette fonction, utilisez l'option -e pour les gestionnaires de source et de destination LDAP. Le nombre entier correspondant à l'option -e est un masque binaire qui active différents types d'informations de débogage dans le SDK LDAP.

Pour plus d'informations, reportez-vous aux sections Options du gestionnaire source LDAP et Options du gestionnaire de destination LDAP du Guide d'administration de NetIQ eDirectory.

7.5.3 Utilisation de LDIF pour étendre le schéma

LDIF pouvant représenter des opérations de mise à jour LDAP, vous pouvez l'utiliser pour modifier le schéma.

Ajout d'une nouvelle classe d'objet

Pour ajouter une classe, il suffit d'ajouter une valeur d'attribut correspondant à la spécification de NDSObjectClassDescription à l'attribut objectClasses de subschemaSubentry.

NDSObjectClassDescription = "(" whsp
   numericoid whsp
   [ "NAME" qdescrs ]
   [ "DESC" qdstring ]
   [ "OBSOLETE" whsp ]
   [ "SUP" oids ] 
   [ ( "ABSTRACT" / "STRUCTURAL" / "AUXILIARY" ) whsp ]
   [ "MUST" oids ]    
   [ "MAY" oids ]     
   [ "X-NDS_NOT_CONTAINER" qdstrings ]
   [ "X-NDS_NONREMOVABLE" qdstrings ]
   [ "X-NDS_CONTAINMENT" qdstrings ] 
   [ "X-NDS_NAMING" qdstrings ]
   [ "X-NDS_NAME" qdstrings ] 
   whsp ")"

L'exemple de fichier LDIF suivant ajoute la classe d'objet person (personne) au schéma :

 1 version: 1
 2 dn: cn=schema
 3 changetype: add
 4 objectClasses: ( 2.5.6.6 NAME 'person' DESC 'Standard
 5   ObjectClass' SUP ndsLoginProperties STRUCTURAL MUST
 6   (cn $ sn) MAY (description $ seeAlso $ telephoneNum
 7  ber $ fullName $ givenName $ initials $ uid $ userPa
 8  ssword) X-NDS_NAMING ('cn' 'uid') X-NDS_CONTAINMENT 
 9  ('organization' 'organizationalUnit' 'domain') X-NDS
10  _NAME 'Person' X-NDS_NOT_CONTAINER '1' X-NDS_NONREMO
11  VABLE '1')
12

Attributs obligatoires

Les attributs obligatoires sont listés dans la section MUST de la description de la classe d'objet. Pour la classe d'objet Personne, les attributs obligatoires sont cn et sn.

Attributs facultatifs

Les attributs facultatifs sont répertoriés dans la section MAY de la description de la classe d'objet. Les attributs facultatifs de la classe d'objet Personne sont : description, seeAlso, telephoneNumber, fullName, givenName, initials, uid et userPassword.

REMARQUE :l'attribut userPassword ne peut pas être utilisé comme attribut facultatif (MAY). Si vous essayez de l'employer comme attribut obligatoire (MUST) dans la nouvelle classe d'objet en utilisant ce format LDIF pour étendre le schéma, l'opération échoue.

Règles d'endiguement

Les classes d'objet qui peuvent contenir la classe d'objet définie sont indiquées dans la section X-NDS_CONTAINMENT de la description de la classe d'objet. La classe d'objet person peut être contenue dans les classes d'objets organization (organisation), organizationalUnit (unité organisationnelle) et domain (domaine).

Ajout d'un nouvel attribut

Pour ajouter un attribut, il suffit d'ajouter une valeur d'attribut qui correspond à la spécification de NDSAttributeTypeDescription sur l'attribut attributes de subschemaSubentry.

NDSAttributeTypeDescription = "(" whsp
  numericoid whsp  ; AttributeType identifier
  [ "NAME" qdescrs ]  ; name used in AttributeType
  [ "DESC" qdstring ]  ; description
  [ "OBSOLETE" whsp ]
  [ "SUP" woid ]  ; derived from this other AttributeType
  [ "EQUALITY" woid]  ; Matching Rule name
  [ "ORDERING" woid]  ; Matching Rule name
  [ "SUBSTR" woid ]  ; Matching Rule name
  [ "SYNTAX" whsp noidlen whsp ] ;  Syntax OID
  [ "SINGLE-VALUE" whsp ]  ; default multi-valued
  [ "COLLECTIVE" whsp ]  ; default not collective
  [ "NO-USER-MODIFICATION" whsp ] ;  default user modifiable
  [ "USAGE" whsp AttributeUsage ] ;  default userApplications
  [ "X-NDS_PUBLIC_READ" qdstrings ]
                             ; default not public read ('0')
  [ "X-NDS_SERVER_READ" qdstrings ]
                              ; default not server read ('0')
  [ "X-NDS_NEVER_SYNC" qdstrings ]
                               ; default not never sync ('0') 
  [ "X-NDS_NOT_SCHED_SYNC_IMMEDIATE" qdstrings ]
                            ;  default sched sync immediate ('0')
  [ "X-NDS_SCHED_SYNC_NEVER" qdstrings ]
                                  ;  default schedule sync ('0')
  [ "X-NDS_LOWER_BOUND" qdstrings ]
                              ;  default no lower bound('0')
                                    ;(upper is specified in SYNTAX)
  [ "X-NDS_NAME_VALUE_ACCESS" qdstrings ]
                         ; default not name value access ('0')
  [ "X-NDS_NAME" qdstrings ]  ; legacy NDS name 
  whsp ")"

L'exemple de fichier LDIF suivant ajoute le type d'attribut title au schéma :

 1 version: 1
 2 dn: cn=schema
 3 changetype: add
 4 attributeTypes: ( 2.5.4.12 NAME 'title' DESC 'Standa
 5  rd Attribute' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{
 6  64} X-NDS_NAME 'Title' X-NDS_NOT_SCHED_SYNC_IMMEDIA
 7  TE '1' X-NDS_LOWER_BOUND '1')
 8

Valeur unique et valeurs multiples

Par défaut, un attribut est à valeurs multiples sauf s'il est explicitement défini comme étant à valeur unique. Dans l'exemple de fichier LDIF suivant, title est un attribut à valeur unique, car le mot-clé SINGLE-VALUE est ajouté à la suite de la section SYNTAX :

 1 version: 1
 2 dn: cn=schema
 3 changetype: add
 4 attributeTypes: ( 2.5.4.12 NAME 'title' DESC 'Standa
 5  rd Attribute' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{
 6  64} SINGLE-VALUE X-NDS_NAME 'Title' X-NDS_NOT_SCHED
 7  _SYNC_IMMEDIATE '1' X-NDS_LOWER_BOUND '1')
 8

Ajout d'un attribut facultatif à une classe d'objet existante

Bien que l'ajout de nouveaux éléments de schéma soit une pratique courante, la modification ou l'extension d'éléments de schéma existants est généralement une opération dangereuse. Étant donné que chaque élément de schéma est identifié de façon unique par un OID, lors d'une extension d'un élément de schéma standard, vous créez en fait une seconde définition pour l'élément, bien que celui-ci utilise toujours l'OID d'origine. Ceci peut engendrer des problèmes d'incompatibilité.

Il est parfois approprié de modifier des éléments du schéma. Vous pouvez par exemple avoir besoin d'étendre ou de modifier de nouveaux éléments de schéma à mesure que vous les définissez au cours du développement. Plutôt que d'ajouter de nouveaux attributs à une classe, vous devriez utiliser généralement des classes auxiliaires uniquement pour effectuer les opérations suivantes :

  • Ajouter de nouveaux attributs à une classe d'objet existante.

  • Diviser une classe d'objet existante en sous‑classes.

Ajout ou suppression de classes auxiliaires

L'exemple de fichier LDIF suivant crée deux nouveaux attributs, une classe auxiliaire à partir de ceux-ci, puis ajoute une entrée inetOrgPerson ayant comme classe d'objet la classe auxiliaire et fournit des valeurs pour les attributs de la classe auxiliaire.

version: 1
# Add an attribute to track a bear's hair. The attribute is 
# multi-valued, uses a case ignore string syntax, 
# and has public read rights 
# Values may include: long hair, short, curly, straight, 
# none, black, and brown 
# X-NDS_PUBLIC_READ '1' The 1 allows public read, 
# 0 denies public read 
dn: cn=schema 
changetype: modify 
add: attributeTypes
attributeTypes: ( 2.16.840.1.113719.1.186.4.10 NAME
'bearHair' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
X-NDS_PUBLIC_READ '1' )

# add an attribute to store a bear's picture 
dn: cn=schema 
changetype: modify 
add: attributeTypes 
attributeTypes: ( 2.16.840.1.113719.1.186.4.11 NAME
'bearPicture' SYNTAX 1.3.6.1.4.1.1466.115.121.1.5
SINGLE-VALUE )

# create an Auxiliary class for the bearfeatures 
dn: cn=schema 
changetype: modify 
add: objectclasses 
objectclasses: (2.16.840.1.113719.1.186.6.101 NAME
'bearFeatures' MAY (bearHair $ bearPicture) AUXILIARY)

# now create a user named bobby
dn: cn=bobby,o=bearcave 
changetype: add 
cn: bobby 
sn: bear 
givenName: bobby 
bearHair: Short 
bearHair: Brown 
bearHair: Curly 
bearPicture:< file:///c:/tmp/alien.jpg 
objectClass: top 
objectClass: person 
objectClass: inetOrgPerson 
objectClass: bearFeatures 

# now create a person named john that will later be changed
# into a bear when bearFeatures is added to its objectClass
# list
dn: cn=john,o=bearcave
changetype: add
cn: John
sn: bear
givenName: john
objectClass: top
objectClass: person
objectClass: inetOrgPerson

# now morph john into a bear by adding bearFeatures
dn: cn=john,o=bearcave
changetype: modify
add: objectClass
objectClass: bearFeatures
-
add: bearHair
bearHair: long
bearHair: black
#bearPicture:< file:///c:/tmp/john.jpg>
-

# to morph john back to a person, simply delete the
# objectClass bearFeatures
dn: cn=john,o=bearcave
changetype: modify
delete: objectClass
objectClass: bearFeatures

Lorsque vous supprimez une classe auxiliaire de la liste objectClass, il n'est pas nécessaire de supprimer toutes les valeurs qui y sont associées. eDirectory effectue cette opération automatiquement.

Si la classe auxiliaire possédait des attributs MUST, ils doivent tous être spécifiés dans l'opération de modification qui ajoute la classe auxiliaire à la liste objectClass. Dans le cas contraire, la modification échoue.

Problèmes connus lors de l'analyse XML

Le traitement XML de tout enregistrement LDIF (format LDIF ou enregistrements générés à partir du serveur LDAP) échoue si des enregistrements ne satisfont pas à toutes les règles XML définies dans le fichier XML.

7.5.4 Limitations ldif2dib

Mot de passe simple et LDIF

Sous Windows, lors du téléchargement de LDIF avec un mot de passe simple, ldif2dib risque d'échouer si les clés NICI des dossiers system et administrator ne sont pas synchronisées.

Pour éviter ce problème, accédez aux clés dans le dossier nici/system comme suit :

  1. Accédez au dossier C:\Windows\system32\novell\nici\ (pour NICI 32 bits).

    ou

    Accédez au dossier C:\Windows\SysWOW64\novell\nici\ (pour NICI 64 bits).

  2. Sauvegardez les fichiers du dossier Administrator.

  3. Accédez à l'onglet Sécurité dans la fenêtre Propriétés du dossier System.

  4. Sélectionnez Options avancées et accédez à l'onglet Propriétaire.

  5. Sélectionnez Administrateur.

  6. Retournez à l'onglet Sécurité et ajoutez Administrateur à la liste.

  7. Répétez la procédure de l'Étape 3 à l'Étape 6 pour obtenir un accès en lecture à tous les fichiers du dossier system.

  8. Remplacez les fichiers du dossier Administrator par ceux du dossier system.

  9. Une fois le téléchargement terminé, copiez les fichiers sauvegardés dans le dossier Administrator.

  10. Rétablissez l'accès de l'administrateur au dossier system et aux fichiers qu'il contient.

Schéma

Le fichier LDIF doit mentionner toutes les classes d'objet auxquelles appartient une entrée. Vous devez également inclure les classes auxquelles une entrée appartient en raison d'un héritage. Par exemple, une entrée du type inetOrgPerson a la syntaxe suivante dans le fichier LDIF :

  • objectclass: inetorgperson

  • objectclass: organizationalPerson

  • objectclass: person

  • objectclass: top

Modèles ACL

Les objets chargés en bloc à l'aide de l'utilitaire ldif2dib ne sont pas ajoutés aux listes de contrôle d'accès spécifiées dans les modèles ACL de la classe de l'objet.

Gestionnaire de signal

Vous pouvez suspendre provisoirement l'opération de chargement en bloc hors ligne en appuyant sur la touche s ou S. Vous pouvez utiliser la touche d'échappement (Échap) pour arrêter l'opération de chargement en bloc.