Sun OneスキーマをNetIQ eDirectoryに移行するには、次の手順に従ってください。
手順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アクティブディレクトリでは、Root DSEを読み込むための認証が要求されます。
手順 2: エラーを解決するためにエラーLDIFファイルを訂正する
Sun ONEでは、eDirectoryでは定義されていないいくつかのスキーマ定義が公式に定義されています。これらの定義には、objectClasses、attributeTypes、ldapSyntaxesおよびsubschemSubentryなどの属性が含まれます。これらの定義は内部に存在し、スキーマにとって非常に重要です。したがって、これらの定義を変更することはできません。これらの定義を変更しようとすると、次のエラーが発生します。
LDAPエラー: 53 (DSAが動作しません)
これらの定義の参照が含まれるすべてのレコードに対して、次のエラーが表示されます。
LDAPエラー: 16 : (該当する属性はありません)
したがって、これらのオブジェクトへの参照が含まれるレコードまたはこれらの定義の変更を試行するレコードは、LDIFエラーファイル(例ではerr.ldf)にコメントとして記入されている必要があります。
一部のSun ONEのobjectClasses定義にはネーミング属性がありません。これらのobjectClassesを追加すると、eDirectoryで次のエラーが発生することがあります。
LDAPエラー: 80 (NDSエラー: ネーミングがあいまいです(-651)
このエラーは、Sun ONEではeDirectoryとは異なるネーミングルールの決定のメソッドが使用されていることが原因で発生します。
これを解決するには、次の3つのいずれかのオプションを使用できます。
オプション1:
エラーの原因となっている各objectClassesを確認し、それぞれに有効なネーミング属性を追加します。
次に例を示します。
ネーミング属性[cn]をオブジェクトクラスnetscapeMachineDataに追加するには、X-NDS_NAMINGフラグが包含されるようにerr.ldfファイル内のエントリ(次の例で強調表示されている部分)を次のように変更します。
dn: cn=schemachangetype: modifyadd: objectClassesobjectClasses: ( 2.16.840.1.113730.3.2.32 NAME 'netscapeMachineData'
DESC 'iPlanet defined objectclass' SUP top STRUCTURAL MAY c'n ' X-NDS_NAMING 'cn' )-
オプション2:
エラーの原因となっている各objectClassesを確認し、該当するものをすべて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:
eDirectoryのTopの定義にcnを追加すると、すべてのobjectClassesの潜在的なネーミング属性になります。
cnをTopに追加するには2つの方法があります。
方法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インポート/エクスポート変換コマンドラインを使用します。
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. [使用可能なクラス]リストで[トップ]を選択してから、[OK]をクリックします。
4. [使用可能なオプション属性]リストで、[CN]をダブルクリックします。
5. [OK]をクリックします。
一部のobjectClass定義には、必須属性リストとしてuserPasswordが含まれる場合があります。これらのobjectClassesをeDirectoryに追加すると、次のエラーが発生します。
LDAPエラー: 16 (該当する属性はありません)
このエラーを解決するには、objectClass定義を変更して、ndsLoginPropertiesから新しいobjectClassを継承し、必須属性リストからuserPassword属性を削除します。
次に例を示します。
必須属性リストにuserPasswordが含まれるobjectClassの場合:
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)
手順3: LDIFファイルをインポートする
次のNetIQインポート/エクスポート変換コマンドを使用して変更されたスキーマ比較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
ICEを使用して、スキーマをアクティブディレクトリからNetIQ eDirectoryに移行すると、あいまいなネーミングエラー(-651)というエラーメッセージが表示され、スキーマのComputerオブジェクトクラスへの移行が失敗します。
これを解決するには、次の手順を実行します。
手順1: スキーマキャッシュの更新操作を実行する
ICEを使用して、スキーマをアクティブディレクトリからNetIQ eDirectoryへ移行し、次のようにICEのエラーログオプション(-e)が提供されていることを確認します。
ice -e error_file -S ldap -s Active_Directory_server -p Active_Directory_port -d Active_Directory_full_admin_context -w Active_Directory_password -D ldap -s eDirectory_server -p eDirectory_port -d eDirectory_full_admin_context -w eDirectory_password
次に例を示します。
ice -e err.ldf -S ldap -s activesrv1 -p activeport1 -d cn=admin,o=company -w activepwd -D ldap -s edirsrv2 -p edirport2 -d cn=admin,o=company -w edirpwd
手順 2: エラーを解決するためにエラーLDIFファイルを訂正する
失敗したエントリは次のようにerr.ldfファイルに記述されています。
dn: cn=schema
changetype: modify
delete: objectclasses
objectclasses: ( 2.16.840.1.113719.1.1.6.1.4 NAME 'computer' )
-
add: objectclasses
objectclasses: ( 2.16.840.1.113719.1.1.6.1.4 NAME 'computer' SUP (device $ user ) STRUCTURAL MAY (operator $ server $ status $ cn $ networkAddress $ local PolicyFlags $ defaultLocalPolicyObject $ machineRole $ location $ netbootInitialization $ netbootGUID $ netbootMachineFilePath $ siteGUID $ operatingSystem $ operatingSystemVersion $ operatingSystemServicePack $ operatingSystemHotfix $ volumeCount $ physicalLocationObject $ dNSHostName $ policyReplicationFlags $ managedBy $ rIDSetReferences $ catalogs $ netbootSIFFile $ netboot MirrorDataFile ) X-NDS_NOT_CONTAINER '1' X -NDS_NONREMOVABLE '1' X-NDS_NAME 'Computer' )
-
次の例で強調表示されている部分のように、エラーファイル(例ではerr.ldf)でこのエントリを編集して、Computerオブジェクトクラスの定義にあるスーペリアオブジェクトクラスのリストからuserオブジェクトクラスを削除します。
dn: cn=schema
changetype: modify
delete: objectclasses
objectclasses: ( 2.16.840.1.113719.1.1.6.1.4 NAME 'computer' )
-
add: objectclasses
objectclasses: ( 2.16.840.1.113719.1.1.6.1.4 NAME 'computer' SUP device
STRUCTURAL MAY (operator $ server $ status $ cn $ networkAddress $ local
PolicyFlags $ defaultLocalPolicyObject $ machineRole $ location $
netbootInitialization $ netbootGUID $ netbootMachineFilePath $ siteGUID $
operatingSystem $ operatingSystemVersion $ operatingSystemServicePack $
operatingSystemHotfix $ volumeCount $ physicalLocationObject $ dNSHostName
$ policyReplicationFlags $ managedBy $ rIDSetReferences $ catalogs $
netbootSIFFile $ netbootMirrorDataFile ) X-NDS_NOT_CONTAINER '1' X
-NDS_NONREMOVABLE '1' X-NDS_NAME 'Computer' )
手順3: LDIFファイルをインポートする
次のICEコマンドを使用して、変更されたエントリをインポートします。
ice -S ldif -f LDIF_file -D ldap -s Novell_eDirectory_server -p port_number -d full_admin_context -w password
次に例を示します。
ice -S ldif -f err.ldf -D ldap -s edirsrv1 -p edirport1 -d cn=admin,o=company -w pwd1
OpenLDAPサーバから移行したデータは、MD5パスワードを含んでいることがあります。この場合、適切なNetIQモジュラー認証サービス(NMAS)メソッドがインストールされていないと、アプリケーションが中断することがあります。NMASメソッドのSimplePasswordを、次に示すコマンドを使用してNetIQ eDirectory用にインストールする必要があります。
nmasinst -addmethod admin_context treename configfile -h Hostname:port-w password
例: nmasinst -addmethod admin.novell eDir-Tree /Linux/eDirectory/nmas/NmasMethods/Novell/SimplePassword/config.txt -h eDir_srv:524 -w secret
OpenLDAPスキーマをeDirectoryに移行するには、次の手順に従ってください。
手順1: スキーマキャッシュの更新操作を実行する
次のコマンドを使用して、スキーマの比較中に検出されたエラーをエラーファイルに書き込むことができます。
ice -e error_file -C -a -S ldap -s OpenLDAP_server -p Open_LDAP_port - D ldap -s eDirectory_server -p eDirectory_port -d eDirectory_full_admin_context -w eDirectory_password
次に例を示します。
ice -e err.ldf -C -a -SLDAP -s open_srv1 -p open_port1 -DLDAP -s edir_srv2 -p edir_port2 -d cn=admin,o=novell -w secret
スキーマの比較中に検出されたエラーはすべてエラーファイル(例ではerr.ldf)に書き込まれます。
手順 2: エラーを解決するためにエラーLDIFファイルを訂正する
Open LDAPでは、いくつかのスキーマ定義が公式に定義されています。これらの定義には、objectClasses、attributeTypes、ldapSyntaxes、およびsubschemSubentryなどの属性が含まれます。これらの定義は内部に存在し、スキーマにとって非常に重要です。したがって、これらの定義を変更することはできません。これらの定義を変更しようとすると、次のエラーが発生します。
LDAP error : 53 (DSA is unwilling to perform)
これらの定義の参照が含まれるすべてのレコードに対して、次のエラーが表示されます。
LDAP error : 16 ( No such attribute )
したがって、これらのオブジェクトへの参照が含まれるレコードまたはこれらの定義の変更を試行するレコードは、LDIFエラーファイル(例ではerr.ldf)にコメントとして記入されている必要があります。
次のコマンドを実行してデータを移行します。
ice -e error_data.ldif -SLDAP -s OpenLDAP_server -p OpenLDAP_port -d admin_context -w password -t -b dc=blr,dc=novell,dc=com -F objectclass=* -DLDAP -d admin_context -w password -l -F
次に例を示します。
ice -e err_data.ldif -SLDAP -s open_srv1 -p open_port1 -d cn=administrator,dc=blr,dc=novell,dc=com -w secret1 -t -b dc=blr,dc=novell,dc=com -F objectclass=* -DLDAP -d cn=admin,o=novell -w secret2 -l -F
オブジェクトによっては、前方参照やオブジェクトへの内部依存のために失敗するものもありますが、アプリケーションが中断することはほとんどありません。
OpenLDAPからeDirectoryに移行したら、PAMがeDirectoryで動作するようにするため、いくつか変更する必要があります。
/etc/ldap.confファイルの変更
# The distinguished name to bind to the server with. # Optional: default is to bind anonymously. binddn cn=admin,o=acme ... # The credentials to bind with. # Optional: default is no credential. bindpw secret ... # The search scope. scope sub ... # Filter to AND with uid=%s pam_filter objectclass=inetorgperson ... # Remove old password first, then update in # cleartext. Necessary for use with Novell # Directory Services (NDS) pam_password nds ... ssl off ...
ディレクトリ内のデータの変更
この変更は、OpenLDAPのユーザオブジェクトでパスワードのハッシュアルゴリズムとしてCRYPTを使用するシナリオにのみ行います。
iManagerを使用して、規定値のある次の属性を、すべてのユーザオブジェクトを持つコンテナに追加します。
属性: sasDefaultLoginSequence
値: 単純パスワード