Red Hat Training

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

6.5. 同期合意の管理

6.5.1. 同期合意の作成

同期合意は、Active Directory ドメインへの接続を作成するため、ipa-replica-manage connect コマンドを使用して IdM サーバーに作成します。Active Directory への暗号化された接続を確立するには、IdM が Windows CA 証明書を信頼する必要があります。
  1. ルート認証局(CA)証明書を IdM サーバーにコピーします。
    1. Active Directory CA 証明書が自己署名されている場合は、以下のようになります。
      1. Windows サーバーで Active Directory CA 証明書をエクスポートします。
        1. Super キーを押して+ ダイアログを開きます。
        2. certsrv.msc を入力し、OK をクリックします。
        3. ローカル認証局の名前を右クリックし、Properties を選択します。
        4. General タブで、CA certificates フィールドにエクスポートする証明書を選択し、View Certificate をクリックします。
        5. 詳細 タブで ファイルにコピー をクリックして 、証明書のエクスポートウィザードを起動します
        6. Next をクリックして、Base-64 でエンコードされた X.509(.CER)を選択します
        7. エクスポートされたファイルに適切なディレクトリーおよびファイル名を指定します。次へ をクリックして証明書をエクスポートしてから、完了をクリックします
        8. エクスポートした証明書を IdM サーバーマシンにコピーします。
    2. Active Directory CA 証明書が外部 CA によって署名されている場合は、以下を行います。
      1. CA ルート証明書の証明書を確認するには、証明書チェーンを表示します。
        # openssl s_client -connect adserver.example.com:636
        CONNECTED(00000003)
        depth=1 C = US, O = Demo Company, OU = IT, CN = Demo CA-28
        verify error:num=20:unable to get local issuer certificate
        verify return:0
        ---
        Certificate chain
         0 s:/C=US/O=Demo Company/OU=IT/CN=adserver.example.com
           i:/C=US/O=Demo Company/OU=IT/CN=Demo CA-1
         1 s:/C=US/O=Demo Company/OU=IT/CN=Demo CA-1
           i:/C=US/O=Demo Company/OU=IT/CN=Demo Root CA 2
        この例では、Active Directory サーバーの CA 証明書が CN=Demo CA-1 で署名されていることを示しています。これは CN=Demo Root CA 2 で署名されます。これは、CN=Demo Root CA 2 がルート CA であることを意味します。
      2. CA 証明書を IdM サーバーにコピーします。
  2. IdM サーバー上の既存の Kerberos 認証情報を削除します。
    $ kdestroy
  3. ipa-replica-manage コマンドを使用して、Windows の同期合意を作成します。これには --winsync オプションが必要です。パスワードとユーザーアカウントを同期する場合は、--passsync オプションも使用して、パスワードの同期に使用するパスワードを設定します。
    --binddn オプションおよび--bindpw オプションを指定すると、IdM が Active Directory サーバーへの接続に使用する Active Directory サーバーのシステムアカウントのユーザー名およびパスワードを指定します。
    $ ipa-replica-manage connect --winsync \
    	--binddn cn=administrator,cn=users,dc=example,dc=com \
    	--bindpw Windows-secret \
    	--passsync secretpwd \
    	--cacert /etc/openldap/cacerts/windows.cer \
    	adserver.example.com -v
    • --WinSync: これを Windows 同期合意として識別します。
    • --bindDN: IdM はこの DN を使用して、リモートディレクトリーにバインドし、属性を同期します。
    • --bindpw: 同期アカウントのパスワード
    • --cacert: 完全パスおよびファイル名:
      • CA が自己署名されている場合は、Active Directory CA 証明書。
      • Active Directory CA が外部 CA によって署名されている場合の外部 CA 証明書。
    • --win-subtree: 同期するユーザーが含まれる Windows ディレクトリーサブツリーの DN。デフォルト値は cn=Users,$SUFFIX です。
    • AD_server_name: Active Directory ドメインコントローラーの完全修飾ドメイン名(FQDN)
  4. プロンプトが表示されたら、Directory Manager のパスワードを入力します。
  5. 任意。「パスワード同期のセットアップ」。パスワード同期クライアントがないと、ユーザー属性はピアサーバー間で同期されますが、パスワードは同期されません。
    注記
    パスワード同期クライアントはパスワードの変更をキャプチャーし、Active Directory と IdM の間で同期します。つまり、新しいパスワードまたはパスワードの更新を同期します。
    IdM および Active Directory の両方でハッシュ化されたフォームに保存されている既存のパスワードは、パスワード同期クライアントがインストールされていれば、復号化または同期できません。そのため、既存のパスワードは同期されません。ピアサーバー間の同期を開始するために、ユーザーパスワードを変更する必要があります。

6.5.2. ユーザーアカウント属性を同期する動作の変更

同期合意が作成されると、同期プロセスでのユーザーアカウント属性の処理方法に関して特定のデフォルト動作が定義されます。動作のタイプには、ロックアウト属性の処理方法や異なる DN 形式の処理方法などが含まれます。この動作は、同期合意を編集することで変更できます。
同期合意は LDAP サーバーの特殊なプラグインエントリーとして存在し、それぞれの属性動作は LDAP 属性で設定されます。同期の動作を変更するには、ldapmodify コマンドを使用して LDAP サーバーのエントリーを直接変更します。
たとえば、デフォルトで IdM と Active Directory の間でアカウントロックアウト属性が同期されますが、ipaWinSyncAcctDisable 属性を編集すると無効にできます。(この設定を変更すると、Active Directory でアカウントが無効な場合でも、IdM で引き続き有効な状態となり、その逆も同様です)。
[jsmith@ipaserver ~]$ ldapmodify -x -D "cn=directory manager" -w password

dn: cn=ipa-winsync,cn=plugins,cn=config
changetype: modify
replace: ipaWinSyncAcctDisable
ipaWinSyncAcctDisable: none

modifying entry "cn=ipa-winsync,cn=plugins,cn=config"
同期設定属性の概要を以下に示します。

一般ユーザーアカウントのパラメーター

  • ipaWinSyncNewEntryFilter: 新しいユーザーエントリーに追加するオブジェクトクラスの一覧を含むエントリーの検索に使用する検索フィルターを設定します。
    デフォルト値: (cn=ipaConfig)
  • ipaWinSyncNewUserOCAttr: 新規ユーザーエントリーに追加するオブジェクトクラスの一覧が実際に含まれる設定エントリーの属性を設定します。
    デフォルト値: ipauserobjectclasses
  • ipaWinSyncHomeDirAttr: エントリーのどの属性に POSIX ホームディレクトリーのデフォルトの場所が含まれているかを特定します。
    Default value: ipaHomesRootDir
  • ipaWinSyncUserAttr: Active Directory ドメインから同期する場合に Active Directory ユーザーに追加する特定の値を持つ追加の属性を設定します。複数値の属性の場合は、属性を複数回設定でき、同期プロセスで、値のすべてがエントリーに追加されます。
    例: ipaWinSyncUserAttr: attributeName attributeValue
    注記
    エントリーに属性が存在しない場合に属性値のみが設定されます。属性が存在する場合は、Active Directory エントリーの同期時にエントリーの値が使用されます。
  • ipaWinSync : 既存の AD ユーザーに一致する既存の IdM ユーザーが強制的に同期されるべきかどうかを設定します。true に設定すると、このような IdM ユーザーは自動的に編集され、同期されます。
    使用できる値は true | falseです。
    IdM ユーザーアカウントに、既存の Active Directory ユーザーの sAMAccountName と同じ uid パラメーターがある場合に、アカウントはデフォルトでは同期されません。この属性は、同期サービスに対して、ntUser および ntUserDomainId を IdM ユーザーエントリーに自動的に追加し、同期されるように指示します。

ユーザーアカウントのロックパラメーター

  • ipaWinSyncAcctDisable: アカウントロックアウト属性を同期する方法を設定します。有効にするアカウントロックアウト設定を制御できます。たとえば、to_ad は、アカウントロックアウト属性が IdM に設定されていると、その値が Active Directory に同期され、ローカルの Active Directory 値を上書きすることを意味します。デフォルトでは、アカウントロックアウト属性が両方のドメインから同期されます。
    使用できる値 - both (デフォルト)、to_ad、to_ds、none
  • ipaWinSyncInactivatedFilter: 非アクティブ(無効)ユーザーを保持するために使用されるグループの DN を検索するために使用する検索フィルターを設定します。これは、ほとんどの実装では変更する必要はありません。
    default value: (&(cn=inactivated)(objectclass=groupOfNames))

グループのパラメーター

  • ipaWinSyncDefaultGroupAttr: ユーザーのデフォルトグループを確認するために参照する新規ユーザーアカウントの属性を設定します。その後、エントリーのグループ名がユーザーアカウントの gidNumber の検索に使用されます。
    Default value: ipaDefaultPrimaryGroup
  • ipaWinSyncDefaultGroupFilter: ユーザーのデフォルトグループを確認するために参照する新規ユーザーアカウントの属性を設定します。その後、エントリーのグループ名がユーザーアカウントの gidNumber の検索に使用されます。
    Default value: ipaDefaultPrimaryGroup

レルムのパラメーター

  • ipaWinSyncRealmAttr: レルムエントリーにレルム名を含む属性を設定します。
    デフォルト値: cn
  • ipaWinSyncRealmFilter: IdM レルム名を含むエントリーの検索に使用する検索フィルターを設定します。
    デフォルト値: (objectclass=krbRealmContainer)

6.5.3. 同期された Windows サブツリーの変更

同期合意を作成すると、同期されたユーザーデータベースとして使用する 2 つのサブツリーが自動的に設定されます。IdM では、デフォルトは cn=users,cn=accounts,$SUFFIX、および Active Directory の場合、デフォルトは CN=Users,$SUFFIX です。
--win-subtree オプションを使用して同期合意が作成されると、Active Directory サブツリーの値はデフォルト以外の値に設定できます。この合意の作成後に、ldapmodify コマンドを使用して同期合意エントリー内の nsds7WindowsReplicaSubtree 値を編集して Active Directory サブツリーを変更できます。
  1. ldapsearch を使用して同期合意の名前を取得します。この検索は、エントリー全体ではなく、dn および nsds7WindowsReplicaSubtree 属性の値のみを返します。
    [jsmith@ipaserver ~]$ ldapsearch -xLLL -D "cn=directory manager" -w password -p 389 -h ipaserver.example.com -b cn=config objectclass=nsdswindowsreplicationagreement dn nsds7WindowsReplicaSubtree
    
    dn: cn=meToWindowsBox.example.com,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config
    nsds7WindowsReplicaSubtree: cn=users,dc=example,dc=com
    
    ... 8< ...
  2. 同期合意の変更
    [jsmith@ipaserver ~]$ ldapmodify -x -D "cn=directory manager" -W -p 389 -h ipaserver.example.com <<EOF
     dn: cn=meToWindowsBox.example.com,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config
     changetype: modify
     replace: nsds7WindowsReplicaSubtree
     nsds7WindowsReplicaSubtree: cn=alternateusers,dc=example,dc=com
     EOF
    
     modifying entry "cn=meToWindowsBox.example.com,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config"
新規のサブツリー設定は即時に有効になります。同期操作が実行中の場合は、現在の操作が完了するとすぐに有効になります。

6.5.4. 一方向同期の設定

デフォルトでは、すべての変更および削除は双方向です。Active Directory の変更は Identity Management に同期され、Identity Management のエントリーへの変更が Active Directory に同期されます。これは基本的に、同等のマルチマスターの関係で、Active Directory と Identity Management はどちらも同期時は同等のピアであり、データマスターでもあります。
ただし、データ構造や IT デザインでは、1 つのドメインのみをデータマスターとし、他のドメインでは更新を受け入れる必要があります。これにより、マルチマスターの関係(ピアサーバーが同等)からマスターコンシューマーの関係に同期関係が変更されます。
これには、同期合意に oneWaySync パラメーターを設定します。設定可能な値は、fromWindows (Active Directory から Identity Management への同期)と toWindows (Identity Management から Active Directory の同期)です。
たとえば、Active Directory から Identity Management への変更を同期するには、次のコマンドを実行します。
[jsmith@ipaserver ~]$ ldapmodify -x -D "cn=directory manager" -w password -p 389 -h ipaserver.example.com

dn: cn=meToWindowsBox.example.com,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config
changetype: modify
add: oneWaySync
oneWaySync: fromWindows
重要
一方向同期を有効にしても、同期されていないサーバーで自動的に変更が加えられないようにしないので、同期更新間で同期ピア間で不整合が生じる可能性があります。たとえば、一方向同期は Active Directory から Identity Management に送信されるように設定されるので、Active Directory はデータマスターになります。Identity Management でエントリーを変更または削除すると、Identity Management の情報が異なるため、その変更は Active Directory に引き継がれません。次の同期更新時に、編集内容は Directory Server で上書きされ、削除されたエントリーは再度追加されます。

6.5.5. 同期合意の削除

同期を停止するには、同期合意を削除し、IdM と Active Directory サーバーの接続を切断します。同期合意の作成とは逆で、同期合意の削除では、ipa-replica-manage disconnect コマンドと、Active Directory サーバーのホスト名を使用します。
  1. 同期合意を削除します。
    # ipa-replica-manage disconnect adserver.ad.example.com
  2. IdM ディレクトリー証明書データベースの証明書を一覧表示します。
    # certutil -L -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/
    Certificate Nickname                   Trust Attributes
                                           SSL,S/MIME,JAR/XPI
    
    IDM.EXAMPLE.COM IPA CA                 CT,C,C
    CN=adserver,DC=ad,DC=example,DC=com    C,,
    Server-Cert                            u,u,u
  3. IdM サーバーのデータベースから Active Directory CA 証明書を削除します。
    # certutil -D -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ -n "CN=adserver,DC=ad,DC=example,DC=com"

6.5.6. WinSync Agreement Failures

Active Directory サーバーに接続できないため、同期合意の作成に失敗します。

同期合意での最も一般的なエラーの 1 つは、IdM サーバーが Active Directory サーバーに接続できないことです。

"Update failed! Status: [81  - LDAP error: Can't contact LDAP server]

これは、合意の作成時に正しくない Active Directory CA 証明書が指定される場合に生じる可能性があります。これにより、IdM LDAP データベース (/etc/dirsrv/slapd-DOMAIN/ ディレクトリー)に Imported CA という名前で重複した証明書が作成されます。これは、certutil を使用して確認できます。
$ certutil -L -d /etc/dirsrv/slapd-DOMAIN/

Certificate Nickname                                         Trust Attributes
SSL,S/MIME,JAR/XPI

CA certificate                                               CTu,u,Cu
Imported CA                                                  CT,,C
Server-Cert                                                  u,u,u
Imported CA                                                  CT,,C
この問題を解決するには、証明書データベースから CA 証明書を削除します。
# certutil -d /etc/dirsrv/slapd-DOMAIN-NAME -D -n "Imported CA"

エントリーが存在することを示すため、パスワードが同期されないことを示すエラーがあります

ユーザーデータベースの一部のエントリーについて、エントリーがすでに存在するためにパスワードがリセットされないという情報のエラーメッセージが表示される可能性があります。

"Windows PassSync entry exists, not resetting password"
これはエラーではありません。このメッセージは、適用できないユーザー、パスワード同期ユーザーが変更されていない場合に発生します。パスワード同期ユーザーは、IdM でパスワードを変更するためにサービスで使用される操作上のユーザーです。

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