10.1 Миграция схемы Sun ONE в NetIQ eDirectory

Порядок выполнения миграции схемы Sun ONE в NetIQ eDirectory.

10.1.1 Этап 1. Выполните операцию обновления кэша схемы

Можно записать ошибки, возникшие при сравнении схемы с файлом ошибок. Для этого выполните следующую команду:

ice -e LDIF error file name -C -a -SLDAP -s Sun ONE server -p Sun ONE port -DLDAP -s eDirectory server -p eDirectory port

Например:

ice -e err.ldf -C -a -SLDAP -s sun_srv1 -p sun_port1 -DLDAP -s edir_srv2 -p edir_port2

Все ошибки, возникшие при сравнении схемы записываются в файл ошибок (в данном примере — err.ldf). Для выполнения этой операции необязательно входить в систему. Исключение составляют те случаи, когда серверы требуют аутентификации для чтения Root DSE. Microsoft Active Directory требует аутентификации для чтения Root DSE.

10.1.2 Этап 2. Исправьте файл ошибок LDIF для устранения ошибок

  • В Sun ONE некоторые схемы определены публично, чего нет в eDirectory. Это справедливо для атрибутов, таких как objectClasses, attributeTypes, ldapSyntaxes и subschemSubentry. Эти определения существуют внутри и очень важны для схемы, поэтому их невозможно изменить. Операции, направленные на изменение этих определений, приводят к следующей ошибке:

    LDAP error : 53 (DSA is unwilling to perform)

    Любые записи, содержащие ссылки на эти определения, приводят к следующей ошибке:

    LDAP error : 16 : ( No such attribute )

    Поэтому записи, которые содержат любую ссылку на эти объекты или пытаются изменить эти определения, необходимо закомментировать в файле ошибок LDIF (в данном примере это файл err.ldf).

  • Некоторые определения классов объекта не имеют атрибутов наименования. Добавление этих классов объекта приведет к возврату следующей ошибки в eDirectory:

    LDAP error : 80 (NDS error: ambiguous naming (-651)

    Эта ошибка происходит, поскольку в Sun ONE и eDirectory используются разные методы определения правил наименования.

    Для разрешения этой проблемы можно использовать любую из трех указанных ниже возможностей.

    Вариант 1.

    Просмотрите все нарушенные классы объекта и добавьте действительный атрибут наименования в каждый из них.

    Например:

    Чтобы добавить атрибут наименования [ cn ] в класс объекта netscapeMachineData, измените запись (которая выделена в примере ниже) в файле err.ldf для включения флага X-NDS_NAMING как показано ниже:

    dn: cn=schemachangetype: modifyadd: objectClassesobjectClasses: ( 2.16.840.1.113730.3.2.32 NAME ’netscapeMachineData’ 
        DESC ’iPlanet defined objectclass’ SUP top STRUCTURAL MAY ’cn’     X-NDS_NAMING ’cn’ )-
    

    Вариант 2.

    Просмотрите все нарушенные классы объекта и измените их определение на AUXILIARY или ABSTRACT.

    Например:

    Чтобы изменить определение класса объекта netscapeMachineData с STRUCTURAL на AUXILIARY, измените запись файла err.ldf (которая выделена в примере ниже) как показано ниже:

    dn: cn=schemachangetype: modifyadd: objectClassesobjectClasses: ( 2.16.840.1.113730.3.2.32 NAME ’netscapeMachineData’ 
       DESC ’iPlanet defined objectclass’ SUP top AUXILIARY )-
    

    Чтобы изменить определение класса объекта netscapeMachineData с STRUCTURAL на ABSTRACT, измените запись файла err.ldf (которая выделена в примере ниже) как показано ниже:

    dn: cn=schemachangetype: modifyadd: objectClassesobjectClasses: ( 2.16.840.1.113730.3.2.32 NAME ’netscapeMachineData’ 
       DESC ’iPlanet defined objectclass’ SUP top ABSTRACT )-
    

    Вариант 3.

    Добавьте cn в определение Top в eDirectory, в результате чего потенциальные атрибуты наименования будут добавлены во все классы объекта.

    Есть два способа добавить cn в Top.

    • Метод 1:

      Создайте файл, как показано ниже, и назовите его topsch.ldf.

      version : 1
      
      dn:cn=schema
      
      changetype :modify
      
      delete : objectclasses
      
      objectclasses : ( 2.5.6.0 NAME ’top’ STRUCTURAL )
      
      -
      
      add:objectclasses
      
      objectclasses : (2.5.6.0 NAME ’top’ STRUCTURAL MAY cn)
      

      Выполните следующую команду NetIQ Import Conversion Export:

      ice -SLDIF -f LDIF_file_name -DLDAP -s eDirectory_server -p eDirectory_port -d eDirectory_Admin_DN -w eDirectory_password
      

      Например:

      ice -SLDIF -f topsch.ldf -DLDAP -s edir_srv2 -p edir_port2 -d cn=admin,o=org -w pwd1
      
    • Метод 2:

      1. В NetIQ iManager нажмите кнопку Функции и задачи кнопка "Функции и задачи".

      2. Последовательно выберите пункты Схема > Добавить атрибут.

      3. В списке Доступные классы выберите Top и нажмите кнопку ОК.

      4. В списке Доступные необязательные атрибуты дважды щелкните CN.

      5. Нажмите кнопку ОК.

  • В некоторых определениях класса объекта имеется атрибут userPassword, который входит в список обязательных атрибутов. Добавление таких классов объекта в eDirectory приведет к возврату следующей ошибки:

    LDAP error : 16 (No such attribute)

    Чтобы устранить эту ошибку, измените определение класса объекта таким образом, чтобы он наследовал новый класс объекта из ndsLoginProperties, и удалите атрибут userPassword из списка обязательных атрибутов.

    Например:

    Класс объекта, содержащий атрибут userPassword из списка обязательных атрибутов:

    version : 1
    dn: cn=schemaz
    changetype: modify
    add: objectClasses
    objectClasses: ( 0.9.2342.19200300.100.4.19 NAME ’simpleSecurityObject’ DESC ’
     Standard LDAP objectClass’ SUP top STRUCTURAL MUST userPassword )
    

    Необходимо внести указанные ниже изменения (обратите внимание на изменения в последней строке):

    version : 1
    dn: cn=schema
    changetype: modify
    add: objectClasses
    objectClasses: ( 0.9.2342.19200300.100.4.19 NAME ’simpleSecurityObject’ DESC ’
     Standard LDAP objectClass’ SUP (ndsLoginProperties $ top) STRUCTURAL )
    

10.1.3 Этап 3. Импорт файла LDIF

Воспользуйтесь следующей командой NetIQ Import Conversion Export для импорта измененного файла сравнения схемы LDIF (err.ldf в данном примере):

ice -e error_file -SLDIF -f modified_LDIF_file -DLDAP -s eDirectory_server -p eDirectory_port -d eDirectory_Admin_DN -w eDirectory_password

Например:

ice -e errors.ldf -SLDIF -f err.ldf -DLDAP -s edir_srv2 -p edir_port2 -d cn=admin,o=org -w pwd1