4.5. LDAP から IdM への移行のカスタマイズ
ipa migrate-ds
コマンドを使用して、LDAP サーバーから Identity Management (IdM) に認証サービスと認可サービスを移行できます。一番単純な例では移行するディレクトリーの LDAP URL を取得し、共通デフォルト設定をもとにデータをエクスポートします。
別の ipa migrate-ds
コマンドオプションを使用すると、移行プロセスをカスタマイズし、データの識別およびエクスポート方法をカスタマイズできます。LDAP ディレクトリーツリーに一意の構造がある場合、またはエントリー内の特定のエントリーまたは属性を除外する必要がある場合は、移行をカスタマイズします。
4.5.1. LDAP から IdM への移行時にバインド DN およびベース DN をカスタマイズする例
ipa migrate-ds
コマンドを使用して、LDAP から Identity Management (IdM) に移行します。一番単純な例では移行するディレクトリーの LDAP URL を取得し、共通デフォルト設定をもとにデータをエクスポートします。以下に、デフォルト設定を変更する例を示します。
# ipa migrate-ds ldap://ldap.example.com:389
- バインド DN のカスタマイズ
デフォルトでは、DN "
cn=Directory Manager
" は、リモート LDAP ディレクトリーにバインドするために使用されます。--bind-dn
オプションを使用して、カスタムバインド DN を指定します。# ipa migrate-ds ldap://ldap.example.com:389 --bind-dn=cn=Manager,dc=example,dc=com
- 命名コンテキストのカスタマイズ
LDAP サーバーの命名コンテキストが IdM で使用されているものと異なる場合は、オブジェクトのベース DN が変換されます。たとえば、
uid=user,ou=people,dc=ldap,dc=example,dc=com
は、uid=user,ou=people,dc=idm,dc=example,dc=com
に移行されます。--base-dn
を使用して、コンテナーサブツリーのターゲットを変更し、移行にリモート LDAP サーバーで使用するベース DN を設定できます。# ipa migrate-ds --base-dn="ou=people,dc=example,dc=com" ldap://ldap.example.com:389
関連情報
-
ipa migrate-ds --help
4.5.2. 特定のサブツリーの移行
デフォルトのディレクトリー構造の場合、人のエントリーは ou=People
サブツリーに配置され、グループのエントリーは ou=Groups
サブツリーに配置されます。こうしたサブツリーは異なるタイプのディレクトリーデータ用のコンテナーエントリーになります。migrate-ds
コマンドでオプションが渡されていない場合、ユーティリティーは、指定の LDAP ディレクトリーが ou=People
および ou=Groups
構造を使用していることを前提とします。
多くのデプロイメントは完全に異なるディレクトリー構造をしている場合があります。または、元のディレクトリーツリーの特定部分のみをエクスポートする場合もあります。管理者は、以下のオプションを使用して、ソース LDAP サーバーの別のユーザーまたはグループのサブツリーの RDN を指定できます。
-
--user-container
-
--group-container
いずれの場合も、サブツリーは相対識別名 (RDN) でなければならず、ベース DN に相対的である必要があります。たとえば、--user-container=ou=Employees
を使用して、>ou=Employees,dc=example,dc=com
ディレクトリーツリーを移行できます。
以下に例を示します。
[ipaserver ~]# ipa migrate-ds --user-container=ou=employees \ --group-container="ou=employee groups" ldap://ldap.example.com:389
必要に応じて、--scope
オプションを ipa migrate-ds
コマンドに追加して、スコープを設定します。
-
onelevel
: デフォルト。指定したコンテナーのエントリーのみが移行されます。 -
subtree
: 指定したコンテナーおよびすべてのサブコンテナーのエントリーが移行されます。 -
base
: 指定されたオブジェクト自体のみが移行されます。
4.5.3. エントリーの追加と除外
デフォルトでは、ipa migrate-ds
スクリプトは、person
オブジェクトクラスを持つすべてのユーザーエントリーと、groupOfUniqueNames
オブジェクトクラスまたは groupOfNames
オブジェクトクラスを持つすべてのグループエントリーをインポートします。
一部の移行パスでは、特定のタイプのユーザーとグループのみをエクスポートする必要がある場合や、あるいは特定のユーザーとグループを除外する必要がある場合があります。ユーザーまたはグループのエントリーを検索する際に、検索するオブジェクトクラスを設定することで、含めるユーザーとグループのタイプを選択できます。
このオプションは、さまざまなユーザータイプにカスタムオブジェクトクラスを使用する場合にとりわけ役立ちます。たとえば、次のコマンドは、カスタム fullTimeEmployee
オブジェクトクラスを持つユーザーのみを移行します。
[root@ipaserver ~]# ipa migrate-ds --user-objectclass=fullTimeEmployee ldap://ldap.example.com:389
グループの種類が異なるため、これは、ユーザーグループなどの特定の種類のグループのみを移行し、証明書グループなどの他の種類のグループを除外する場合にも非常に役立ちます。以下に例を示します。
[root@ipaserver ~]# ipa migrate-ds --group-objectclass=groupOfNames --group-objectclass=groupOfUniqueNames ldap://ldap.example.com:389
オブジェクトクラスに基づいて移行するユーザーとグループのエントリーを指定すると、他のすべてのユーザーとグループが移行から暗黙的に除外されます。
また、ごく少数のエントリー以外、すべてのユーザーとグループのエントリーを移行する場合にも便利です。そのタイプの他のすべてを移行するときに、特定のユーザーまたはグループアカウントを除外できます。たとえば、これは趣味のグループと 2 人のユーザーのみを除外します。
[root@ipaserver ~]# ipa migrate-ds --exclude-groups="Golfers Group" --exclude-users=idmuser101 --exclude-users=idmuser102 ldap://ldap.example.com:389
exclude ステートメントは、uid
でパターンに一致するユーザーと、cn
属性でパターンに一致するグループに適用されます。
一般的なオブジェクトクラスを移行できますが、そのクラスの特定のエントリーは除外できます。たとえば、これには特に fullTimeEmployee
オブジェクトクラスを持つユーザーが含まれますが、3 つのマネージャーは除外されます。
[root@ipaserver ~]# ipa migrate-ds --user-objectclass=fullTimeEmployee --exclude-users=jsmith --exclude-users=bjensen --exclude-users=mreynolds ldap://ldap.example.com:389
4.5.4. エントリー属性の除外
デフォルトではユーザーやグループエントリーのすべての属性とオブジェクトクラスが移行されます。特定のシナリオでは、帯域幅とネットワークの制約のため、または属性データが関連しなくなったために、これは現実的ではない場合があります。たとえば、ユーザーが Identity Management (IdM) ドメインに参加する際に新しいユーザー証明書が割り当てられる場合は、userCertificate
属性を移行しても意味がありません。
migrate-ds
コマンドで以下のオプションを使用すると、特定のオブジェクトクラスおよび属性を無視できます。
-
--user-ignore-objectclass
-
--user-ignore-attribute
-
--group-ignore-objectclass
-
--group-ignore-attribute
たとえば、ユーザーの userCertificate
属性および strongAuthenticationUser
オブジェクトクラスとグループの groupOfCertificates
オブジェクトクラスを除外するには、次のコマンドを実行します。
[root@ipaserver ~]# ipa migrate-ds --user-ignore-attribute=userCertificate --user-ignore-objectclass=strongAuthenticationUser --group-ignore-objectclass=groupOfCertificates ldap://ldap.example.com:389
必要な属性が無視されていないか必ず確認します。また、オブジェクトクラスを除外する場合は、そのオブジェクトクラスのみがサポートする属性を必ず除外してください。
関連情報
4.5.5. LDAP から IdM への移行時に使用するスキーマとスキーマ互換機能
Identity Management (IdM) は、RFC2307bis スキーマを使用して、ユーザー、ホスト、ホストグループ、およびその他のネットワーク ID を定義します。ただし、移行のソースとして使用する LDAP サーバーが、代わりに RFC2307 スキーマを使用する場合は、ipa migrate-ds
コマンドで --schema
オプションを指定します。
[root@ipaserver ~]# ipa migrate-ds --schema=RFC2307 ldap://ldap.example.com:389
また、IdM には組み込みのスキーマの互換機能 があるため、RFC2307bis に対応していないシステムのデータを IdM が再フォーマットできます。compat プラグインはデフォルトで有効になっています。つまり、ディレクトリーサーバーは、ユーザーとグループの代替ビューを計算し、cn=users,cn=compat,dc=example,dc=com
コンテナーエントリーにこのビューを提供します。これは、システムの起動時にエントリーの内容を事前に計算して、必要に応じてエントリーを更新することで行われます。
システムのオーバーヘッドを低減するために、この機能は移行中に無効にすることが推奨されます。