Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第39章 LDAP ディレクトリーから IdM への移行

管理者は、以前に認証およびアイデンティティーの検索のために LDAP サーバーをデプロイしたため、バックエンドを Identity Management に移行します。IdM 移行ツールを使用すると、データを損失せずにパスワードやグループを含むユーザーアカウントを転送できます。また、クライアントで非常にコストの高い設定の更新を回避する必要があります。
ここで説明する移行プロセスでは、LDAP と IdM の 1 つの名前スペースがある単純なデプロイメントシナリオを想定しています。複数の名前スペースやカスタムスキーマなどのより複雑な環境については、Red Hat サポートサービスにお問い合わせください。

39.1. LDAP から IdM への移行の概要

LDAP サーバーから Identity Management に移動する実際の移行部分はかなり単純です。データ、パスワード、クライアントの移動は単純なプロセスです。
移行の最も高価な部分は、クライアントが Identity Management を使用するようどのように設定するかを決定することです。インフラストラクチャーのクライアントごとに、どのサービス(Kerberos、SSSD など)を使用して最終的な IdM デプロイメントで使用可能なサービスを決定する必要があります。
セカンダリーですが、パスワードの移行方法の計画です。Identity Management では、パスワードに加えて、すべてのユーザーアカウントに Kerberos ハッシュが必要になります。パスワードの移行パスおよび留意事項がある点については、いくつか 「パスワード移行のプランニング」

39.1.1. クライアント設定のプランニング

Identity Management はさまざまなレベルの機能、柔軟性、セキュリティーにより、多数の異なるクライアント設定をサポートできます。オペレーティングシステム、機能領域(開発用マシン、実稼働サーバー、ユーザーのラップトップ)、IT メンテナンスの優先順位に基づいて、個々のクライアントで最も適した設定を決定します
重要
異なるクライアント設定は相互に排他的ではありません。ほとんどの環境でクライアントが IdM ドメインへの接続に使用する方法はクライアントによって異なっています。管理者は各クライアント別に最適となるシナリオを決定しなければなりません。

39.1.1.1. クライアント初期設定(移行前)

Identity Management でのクライアント設定を決定する前にまず移行前の状態を確認します。
移行される LDAP デプロイメントの初期状態は、ほとんど全てに ID および認証サービスを提供する LDAP サービスがあることです。

図39.1 基本的な LDAP ディレクトリーとクライアント設定

基本的な LDAP ディレクトリーとクライアント設定
Linux および Unix のクライアントは PAM_LDAP および NSS_LDAP ライブラリーを使用して LDAP サービスに直接接続します。これらのライブラリーにより、クライアントは /etc/passwd または /etc/shadow にデータが格納されているかのように LDAP ディレクトリーからユーザー情報を取得できます。(現実的には ID 検索に LDAP、認証に Kerberos、その他の設定の場合、インフラストラクチャーはもう少し複雑になる場合があります。)
LDAP ディレクトリーと IdM サーバーの間には特にスキーマサポートとディレクトリーツリーの構造の違いがあります。「Identity Management と標準 LDAP ディレクトリーの比較」。 これらの違いはデータ(特にエントリー名に影響するディレクトリーツリー) には影響する可能性がありますが、クライアント設定にはほとんど影響しないため、Identity Management にクライアントを移行させる上では実際にはほとんど影響がありません。

39.1.1.2. Red Hat Enterprise Linux クライアントの推奨設定

Red Hat Enterprise Linux には、SSSD (System Security Services Daemon )と呼ばれるサービスがあります。SSSD は、特別な PAM ライブラリーおよび NSS ライブラリー (pam_sss および nss_sss )を使用して、SSSD を Identity Management と密接に統合し、Identity Management の完全な認証およびアイデンティティー機能を利用できます。SSSD には ID 『情報のキャッシュなどの便利な機能が多数あり、中央サーバーとの接続が失われた場合でもユーザーがログインできるようになります。これらは、『システムレベルの認証ガイド』で説明されています』。
汎用 LDAP ディレクトリーサービス (pam_ldapnss_ldap を使用する)とは異なり、SSSD はドメインを定義することで ID 情報と認証情報間の関係を確立します。SSSD のドメインは認証、ID 検索、アクセス、パスワード変更の 4 つのバックエンド機能を定義します。SSSD ドメインは、プロバイダーを使用して、4 つの機能の 1 つ(またはすべて)の情報を提供するように設定されます。ID プロバイダーはドメイン設定に必ず必要になります。他の 3 つのプロバイダーはオプションです。認証、アクセス、またはパスワードプロバイダーが定義されていない場合は、アイデンティティープロバイダーがその機能に使用されます。
SSSD は、そのバックエンド機能すべてに Identity Management を使用できます。これは、汎用 LDAP アイデンティティープロバイダーや Kerberos 認証とは異なり、さまざまな Identity Management 機能を提供するため、理想の設定です。たとえば、SSSD は日次操作時に Identity Management でホストベースのアクセス制御ルールおよびセキュリティー機能を強制します。
注記
LDAP ディレクトリーから Identity Management への移行プロセス時に、SSSD は追加のユーザーの対話なしにユーザーパスワードをシームレスに移行できます。

図39.2 IdM バックエンドを使用したクライアントおよび SSSD

IdM バックエンドを使用したクライアントおよび SSSD
ipa-client-install スクリプトは、バックエンドサービスの 4 つすべてに IdM を使用するよう SSSD を自動的に設定するため、Red Hat Enterprise Linux クライアントはデフォルトで推奨される設定で設定されます。
注記
このクライアント設定は、最新バージョンの SSSD および ipa-client に対応する Red Hat Enterprise Linux 6.1 以降および Red Hat Enterprise Linux 5.7 以降でのみサポートされています。の説明に従って、Red Hat Enterprise Linux 「推奨設定以外で対応している設定」

39.1.1.3. 推奨設定以外で対応している設定

Mac、Solaris、HP-UX、AIX、Scientific Linux などの UNIX および Linux システムは、IdM が管理するすべてのサービスに対応していますが SSSD は使用しません。同様に、古い Red Hat Enterprise Linux バージョン(6.1 および 5.6)は SSSD をサポートしますが、アイデンティティープロバイダーとして IdM に対応していない古いバージョンがあります。
最近の SSSD バージョンを使用できない場合には、IdM サーバーへの接続は ID 検索用 LDAP ディレクトリーサービスであるかのように IdM サーバーに接続するよう設定できます (nss_ldap を使用)、IdM には通常の Kerberos KDC (pam_krb5を使用)と同じように IdM に接続することができます。

図39.3 LDAP および Kerberos を使用するクライアントおよび IdM

LDAP および Kerberos を使用するクライアントおよび IdM
Red Hat Enterprise Linux クライアントが古いバージョンの SSSD を使用している場合は、引き続き IdM サーバーをアイデンティティープロバイダーとその Kerberos 認証ドメインとして使用するように SSSD 『を設定できます。これは、『System-Level Authentication Guide』の』 「SSSD configuration」セクションを参照してください。
IdM ドメインクライアントは、nss_ldap および pam_krb5 を使用して IdM サーバーに接続するように設定できます。一部のメンテナンス環境や IT の構造では、ID と認証の両方に LDAP を使用すると、一般的なデノミュレーターに収まるシナリオが必要になります(nss_ldappam_ldap)。ただし、通常、クライアントで可能な限り最も安全な設定を使用することはベストプラクティスです。これは、ID の SSSD または LDAP、認証用の Kerberos です。

39.1.2. パスワード移行のプランニング

LDAP から Identity Management への移行に影響を及ぼす可能性がある最も注目すべき問題は、ユーザーパスワードの移行です。
Identity Management(デフォルトでは)は認証に Kerberos を使用し、各ユーザーには、標準のユーザーパスワードに加えて、Identity Management Directory Server に保存されている Kerberos ハッシュが必要です。このハッシュを生成するには、IdM サーバーでユーザーパスワードをクリアテキストで利用できるようにする必要があります。ユーザーを作成すると、パスワードはハッシュ化され、Identity Management に保存される前にクリアテキストで利用できるようになります。ただし、ユーザーを LDAP ディレクトリーから移行する場合には関連するユーザーパスワードがすでにハッシュ化されているため、対応する Kerberos キーは生成できません。
重要
ユーザーは、IdM ドメインに対して認証したり、IdM リソースにアクセスしたり、Kerberos ハッシュがなくなるまでできません。
ユーザーが Kerberos ハッシュを持たない場合[6]ユーザーアカウントがある場合でも、そのユーザーは IdM ドメインにログインできません。パスワード移行にはパスワード変更の実施、web ページの使用、SSSD の使用の 3 通りの方法があります。
既存システムからユーザーを移行すると遷移プロセスはスムースですが、移行と遷移期間を通じて LDAP ディレクトリーおよび IdM を平行管理する必要があります。パスワードを維持しない場合は、移行はより迅速に行うことができますが管理者およびユーザーによる手作業が多く必要になります。

39.1.2.1. 方法 1: 一時的なパスワードの使用と変更の再取得

Identity Management でパスワードを変更すると、適切な Kerberos ハッシュでパスワードが作成されます。このため、管理者がユーザーアカウントの移行時にすべてのユーザーパスワードをリセットしてユーザーにパスワードの変更を強制する方法があります。新規ユーザーには、初回ログイン時に変更される一時的なパスワードが割り当てられます。パスワードの移行はありません。
詳細はを参照してください 「ユーザーパスワードの変更およびリセット」

39.1.2.2. 方法 2: 移行用 Web ページの使用

移行モードで実行している場合、Identity Management には web UI に特別な Web ページがあり、クリアテキストのパスワードを取得し、適切な Kerberos ハッシュを作成します。
https://ipaserver.example.com/ipa/migration
管理者はユーザーに対してこの Web ページに一度だけ認証するように指示できます。これにより、パスワードの変更を必要とせずにユーザーアカウントがパスワードと対応する Kerberos ハッシュで適切に更新されます。

39.1.2.3. 方法 3: SSSD の使用 (推奨)

SSSD は IdM と連携し、必要なユーザーキーを生成することで移行時にユーザーに与える影響を軽減できます。大量のユーザーがあるデプロイメントや、ユーザーがパスワード変更に対応すべきでないデプロイメントの場合、これが最善のシナリオになります。
  1. ユーザーが SSSD でマシンにログインします。
  2. SSSD は、IdM サーバーに対して Kerberos 認証の実行を試みます。
  3. ユーザーがシステムに存在していても、Kerberos ハッシュがないため key type is not supported エラーで認証に失敗します。
  4. SSSD は、セキュアな接続でプレーンテキストの LDAP バインドを実行します。
  5. IdM はこのバインド要求をインターセプトします。ユーザーが Kerberos プリンシパルは持っているのに Kerberos ハッシュを持っていない場合、IdM ID プロバイダーはハッシュを生成してユーザーのエンティティーに格納します。
  6. 認証に成功すると SSSD は IdM との接続を切断し Kerberos 認証を再試行します。この場合、エントリーにハッシュが存在しているため要求は成功します。
プロセス全体がユーザーに透過的であることが分かっているので、ユーザーは単にクライアントサービスにログインし、通常通りに動作します。

39.1.2.4. クリアテキスト LDAP パスワードの移行

ほとんどのデプロイメントでは暗号化された LDAP パスワードが格納されますが、ユーザーまたは環境によってユーザーエンティティーにクリアテキストのパスワードが使用される場合があります。
ユーザーが LDAP サーバーから IdM サーバーに接続すると、クリアテキストのパスワードは移行されません。Identity Management はクリアテキストのパスワードを許可しません。代わりに、ユーザーに Kerberos プリンシパルが作成され、キータブは true に設定され、パスワードは期限切れとして設定されます。つまり、Identity Management では、次回ログイン時にパスワードをリセットする必要があります。
注記
パスワードがハッシュ化されると と同様に SSSD および移行用 Web 「方法 2: 移行用 Web ページの使用」

39.1.2.5. 要件を満たしていないパスワードの自動リセット

オリジナルのディレクトリーにあるユーザーパスワードが Identity Management で定義されたパスワードポリシーに合わない場合は、移行後にパスワードのリセットが必要になります。
パスワードのリセットは、ユーザーが IdM ドメインで kinit を試行したときに自動的に行われます
[jsmith@server ~]$ kinit 
Password for jsmith@EXAMPLE.COM: 
Password expired.  You must change it now.
Enter new password: 
Enter it again:

39.1.3. 移行における考慮事項と要件

LDAP サーバーから Identity Management への移行を計画しているので、LDAP 環境が Identity Management の移行スクリプトで機能できることを確認してください。

39.1.3.1. 移行に対応している LDAP サーバー

LDAP サーバーから Identity Management への移行プロセスは、特別なスクリプト ipa migrate-ds を使用して移行を実行します。このスクリプトは、動作するために LDAP ディレクトリーおよび LDAP エントリーの構造をある程度想定しています。移行に対応しているのは、複数の共通ディレクトリーを含む LDAPv3 準拠のディレクトリーサービスのみになります。
  • Sun ONE Directory Server
  • Apache Directory Server
  • OpenLDAP
LDAP サーバーから Identity Management への移行は Red Hat Directory Server および OpenLDAP でテストされています。
注記
Microsoft Active Directory では、移行スクリプトを使用した移行には対応していません。これは、LDAPv3 に準拠したディレクトリーではないためです。Active Directory からの移行については、Red Hat Professional Services にお問い合わせください。

39.1.3.2. 移行環境に関する要件

Red Hat Directory Server と Identity Management には多くの異なる設定シナリオがあり、これらのシナリオのいずれかが移行プロセスに影響を及ぼす可能性があります。本章の移行例の手順は、以下の環境を想定しています。
  • 1 つの LDAP ディレクトリードメインが、1 つの IdM レルムに移行中です。統合はありません。
  • ユーザーパスワードは、LDAP ディレクトリーのハッシュとして保存されます。サポートされているハッシュのリストは、『Red Hat Directory Server 10 Administration Guide』の「Password Policy Attributes」の表の passwordStorageScheme 属性を参照してください
  • LDAP ディレクトリーインスタンスはアイデンティティーストアと認証方法の両方になります。クライアントマシンは、pam_ldap または nss_ldap を使用して LDAP サーバーに接続するように設定されます。
  • エントリーは標準の LDAP スキーマのみを使用します。カスタムのオブジェクトクラスまたは属性を含むエントリーは Identity Management に移行されません。

39.1.3.3. 移行 - IdM システム要件

中程度のディレクトリー(約 10,000 ユーザーとグループ)では、移行を続行できるように、強力なターゲットシステム(IdM システム)が必要です。移行の最小要件は次のとおりです。
  • 4 コア
  • 4GB の RAM
  • 30 GB のディスク領域
  • 2MB の SASL バッファーサイズ(IdM サーバーのデフォルト)
    移行エラーの場合は、バッファーサイズを増やします。
    [root@ipaserver ~]# ldapmodify -x -D 'cn=directory manager' -w password -h ipaserver.example.com -p 389
    
    dn: cn=config
    changetype: modify
    replace: nsslapd-sasl-max-buffer-size
    nsslapd-sasl-max-buffer-size: 4194304
    
    modifying entry "cn=config"
    バイト単位で nsslapd-sasl-max-buffer-size の値を設定します。

39.1.3.4. 数独ルールに関する留意事項

sudo を LDAP で使用している場合は、LDAP に保存されている sudo ルールを手動で移行する必要があります。Red Hat は、ホストグループとして IdM で netgroup を再作成することを推奨します。IdM は、SSSD sudo プロバイダーを使用しない sudo 設定の従来の netgroups としてホストグループを自動的に表示します。

39.1.3.5. 移行ツール

Identity Management は、特定のコマンド ipa migrate-ds を使用して移行プロセスを駆動し、LDAP ディレクトリーのデータが正しくフォーマットされ、IdM サーバーに適切にインポートされるようにします。ipa migrate-ds を使用する場合は、--bind-dn オプションで指定したリモートシステムユーザーで userPassword 属性を読み取る必要があります。その他の場合は、パスワードは移行されません。
Identity Management サーバーは移行モードで実行するように設定してから、移行スクリプトを使用することができます。詳細はを参照してください 「LDAP サーバーの Identity Management への移行」

39.1.3.6. 移行パフォーマンスの改善

LDAP 移行は、基本的に IdM サーバー内の 389 Directory Server インスタンスのインポート操作に特化した操作です。インポート操作のパフォーマンスを改善するために 389 Directory Server インスタンスを調整すると、移行全体のパフォーマンスを向上させることができます。
インポートのパフォーマンスを直接に影響するパラメーターには、以下の 2 つのパラメーターがあります。
  • nsslapd-cachememsize 属性。エントリーキャッシュに許可されるサイズを定義します。これはバッファーで、合計キャッシュメモリーサイズの 80% に設定されます。大規模なインポート操作では、このパラメーター(およびメモリーキャッシュ自体)は、より大きい属性を持つ多数のエントリーまたはエントリーを効率的に処理できるように増やすことができます。
  • system ulimit 設定オプションは、システムユーザーに許可されるプロセスの最大数を設定します。大規模なデータベースの処理は制限を超える可能性があります。その場合は、値を増やします。
    [root@server ~]# ulimit -u 4096
詳細は、『Red Hat Directory Server 『パフォーマンスチューニングガイド』を参照してください https://access.redhat.com/documentation/en-US/Red_Hat_Directory_Server/10/html-single/Performance_Tuning_Guide/index.html 』。

39.1.3.7. 移行順序

Identity Management に移行する場合、主に 4 つの手順があります。ただし、サーバーを先に移行するのかクライアントを先に移行するかによって順序は若干異なります。
クライアントベースの移行では、IdM サーバーの設定時に SSSD を使用してクライアント設定を変更するために使用されます。
  1. SSSD をデプロイします。
  2. クライアントが現在の LDAP サーバーに接続し、IdM にフェールオーバーするように再設定します。
  3. IdM サーバーをインストールします。
  4. IdM ipa migrate-ds スクリプトを使用してユーザーデータを移行します。これによりデータが LDAP ディレクトリーからエクスポートされ、IdM スキーマ用にフォーマット化されて IdM にインポートされます。
  5. LDAP サーバーをオフラインにし、クライアントが Identity Management に透過的にフェイルオーバーできるようにします。
サーバーの移行では、LDAP から Identity Management への移行が最初に行われます。
  1. IdM サーバーをインストールします。
  2. IdM ipa migrate-ds スクリプトを使用してユーザーデータを移行します。これによりデータが LDAP ディレクトリーからエクスポートされ、IdM スキーマ用にフォーマット化されて IdM にインポートされます。
  3. 任意。SSSD をディプロイします。
  4. クライアントが IdM に接続するよう再設定を行います。LDAP サーバーと単純に差し替えることはできません。IdM ディレクトリーツリー — およびユーザーエントリーの DN — は以前のディレクトリーツリーとは異なります。
    クライアントの再設定は必要ですが、直ちに再設定を行う必要はありません。更新したクライアントは IdM サーバーをポイントし、他のクライアントは以前の LDAP ディレクトリーをポイントし、データの移行後に妥当なテストと移行フェーズを可能にします。
    注記
    LDAP ディレクトリーサービスと IdM サーバーの両方を並行して実行しないでください。2 つのサービス間でユーザーデータの整合性が失われる危険を招くことになります。
どちらも一般的な移行手順になりますが、すべての環境では動作しない場合があります。実際の LDAP 環境の移行を試行する前に、テスト用の LDAP 環境を設定して移行プロセスをテストします。


[6] Kerberos 認証の代わりに Identity Management で LDAP 認証を使用できます。つまり、Kerberos ハッシュはユーザーには必要ありません。ただし、これにより Identity Management の機能が制限されるため、推奨されません。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。