Windows 統合ガイド
Linux システムの Active Directory 環境との統合
概要
『Linux ドメイン ID、認証、およびポリシーガイド』 では、Linux ベースのドメイン内における認証および承認ポリシーに加え、ID ストアを集中管理するソリューションである Red Hat Identity Management について説明しています。
『システムレベルの認証ガイド』 では、 authconfigユーティリティーや System Security Services Daemon (SSSD) サービス、プラグ可能な認証モジュール (PAM) フレームワーク、Kerberos、certmonger ユーティリティー、アプリケーション用のシングルサインオン (SSO) など、ローカルシステム上で認証設定に使用可能な異なるアプリケーションやサービスについて説明しています。
第1章 Active Directory と Linux 環境の統合方法
1.1. Windows 統合の定義
ユーザー識別子および認証
- ユーザーアカウントが置かれる場所: Windows (AD ドメイン) 上で実行される中央の認証システムか、または Linux 上で実行される中央のアイデンティティーおよび認証サーバーか?
- Linux システムのユーザーの認証方法: ローカル Linux 認証システムか、または Window 上で実行される中央認証システムか?
- ユーザーのグループメンバーシップの設定方法: グループメンバーシップの判別方法は?
- ユーザーの認証方法: ユーザー名/パスワードのペア、Kerberos チケット、証明書、またはこれらのメソッドの組み合わせが使用されるのか?
- Linux マシンのサービスへのアクセスに必要な POSIX 属性の保存方法: これらの属性は Windows ドメインで設定されるか、Linux システムでローカルに設定されるか、または動的にマップされるか (UID/GID 番号と Windows SID)?
- どのユーザーがどのリソースにアクセスするか: Windows で定義されたユーザーは Linux リソースにアクセスできるか? Linux で定義されたユーザーは Windows リソースにアクセスできるか?
ホストおよびサービスプリンシパル
- どのリソースがアクセスされるか?
- どの認証プロトコルが必要か?
- Kerberos チケットはどのように取得されるか? SSL 証明書はどのように要求され、検証されるか?
- ユーザーは単一ドメイン、または Linux ドメインと Windows ドメインの両方にアクセスする必要があるか?
DNS ドメイン、クエリーおよび名前解決
- DNS 設定をどのように行うか?
- 単一 DNS ドメインがあるか? 複数のサブドメインがあるか?
- システムのホスト名はどのように解決されるか?
- サービス検出はどのように設定されるか?
セキュリティーポリシー
- アクセス制御の指示が設定される場所は?
- 各ドメインに設定される管理者は?
変更管理
- システムがドメインに追加される頻度はどの程度か?
- DNS サービスなど、Windows 統合の関連要素についての基礎的な設定が変更される場合、それらの変更はどのように伝播されるか?
- 設定はドメイン関連のツールまたはプロビジョニングシステムで維持されるか?
- 統合パスには Windows サーバー上のアプリケーションまたは設定が追加で必要か?
1.2. 直接的な統合
- ネイティブ LDAP と Kerberos PAM および NSS モジュール
- これらのモジュールには、
nss_ldap、pam_ldap、およびpam_krb5が含まれます。PAM および NSS モジュールはすべてのアプリケーションプロセスにロードされるので、それらは実行環境に直接影響を与えます。キャッシュやオフラインサポート、またはアクセス資格情報の保護などがない場合は、NSS および PAM 用に基本的な LDAP および Kerberos モジュールを使用することは、機能的に制限があるために推奨されません。 - Samba Winbind
- Samba Winbind の使用は、Linux システムを AD に接続する従来の方法でした。Winbind は Linux システム上で Windows クライアントをエミュレートし、AD サーバーに通信できます。System Security Services Daemon (SSSD) の最新バージョンでは Samba Winbind と SSSD 間に機能的なキャップはなくなり、SSSD は Winbind の置き換えとして使用できるようになりました。Winbind を依然として使用する必要があるケースも稀にありますが、一般的には Winbind が第一のオプションとして使用されることはなくなりました。以下の点に留意してください。
- マルチフォレスト AD 設定における Winbind との直接統合は、双方向の信頼が必要になります。
idmap_adプラグインがリモートフォレストユーザーを正常に処理するには、リモートフォレストがローカルフォレストを信頼する必要があります。
- System Security Services Daemon (SSSD)
- SSSD の主な機能は、システムにキャッシュおよびオフラインサポートを提供する共通フレームワークから、リモートのアイデンティティーおよび認証リソースにアクセスすることです。SSSD は詳細な設定が可能で、PAM および NSS 統合を提供するだけでなく、中央サーバーから取得されるコアおよび拡張ユーザーデータと共にローカルユーザーを保存するデータベースを提供します。SSSD は、 Active Directory、Red Hat Enterprise Linux の Identity Management (IdM)、または汎用的な LDAP または Kerberos サーバーのいずれでも、ユーザーが選択するアイデンティティーサーバーに Linux システムを接続する際に推奨されるコンポーネントです。以下の点に留意してください。
- SSSD との直接統合は、デフォルトでは単一の AD フォレスト内でのみ機能します。マルチフォレスト環境では、以下のナレッジベースソリューションを参考にして手動でドメイン列挙を設定します: Joining SSSD to domains in different forests。
idmap_adプラグインがリモートフォレストユーザーを正常に処理するには、リモートフォレストがローカルフォレストを信頼する必要があります。
realmd サービスを使用することができます。このサービスを使用することにより、呼び出し元は、標準的な方法でネットワークの認証およびドメインのメンバーシップを設定することができます。realmd サービスは、アクセス可能なドメインおよびレルムについての情報を自動的に検出し、ドメインまたはレルムに参加するために詳細な設定を必要としません。
1.3. 間接的な統合
- 信頼ベースのソリューション
- 推奨されるアプローチとしては、Red Hat Enterprise Linux の Identity Management (IdM) を Linux システムを制御する中央サーバーとして利用し、AD とのクロスレルム Kerberos 信頼を設定し、AD のユーザーがログオンおよびシングルサインオンを使用して Linux システムおよびリソースにアクセスできるようにする方法があります。このソリューションでは、Kerberos 機能を使用して異なるアイデンティティーソース間の信頼を設定します。IdM は自らを別個のフォレストとして AD に表示し、AD でサポートされるフォレストレベルの信頼の利点を活用します。複雑な環境では、単一の IdM フォレストは複数の AD フォレストに接続することができます。このセットアップにより、組織内の異なる業務/機能をより効果的に分離することができます。AD 管理者はユーザーおよびユーザー関連のポリシーに焦点を当て、Linux 管理者は Linux インフラストラクチャーを全面的に管理します。このケースでは、IdM で制御される Linux レルムは AD リソースドメインまたはレルムに類似しますが、Linux システムがこれに組み込まれています。
注記
Windows では、すべてのドメインが Kerberos レルムであると同時に DNS ドメインになります。ドメインコントローラーで管理されるすべてのドメインには、独自の専用 DNS ゾーンが設定されている必要があります。IdM がフォレストとして AD によって信頼される場合にも同じことが当てはまります。AD は IdM に独自の DNS ドメインがあることを期待します。信頼のセットアップが機能するには、DNS ドメインを Linux 環境の専用ドメインとして設定する必要があります。信頼環境では、IdM により ID views を使用して、IdM サーバー上の AD ユーザーの POSIX 属性を設定できる点に注意してください。詳細は以下を参照してください。- 『システムレベル認証ガイド』 の 「SSSD クライアント側のビュー」
- 同期ベースのソリューション
- これは信頼ベースソリューションの代替ソリューションで、IdM または Red Hat Directory Server (RHDS) でも利用できるユーザー同期機能を使用します。ユーザーアカウント (RHDS の場合はグループアカウントも含む) を AD から IdM または RHDS に同期させることができますが、反対方向ではできません。ただし、ユーザー同期には以下のような制約があります。
- ユーザーの重複
- パスワード同期の必要性。これには AD ドメインのすべてのドメインコントローラーで特殊なコンポーネントが必要になります。
- パスワード取得が可能になるには、全ユーザーが最初にパスワードを手動で変更する必要があります。
- 同期は単一ドメインにのみ対応。
- IdM または RHDS の 1 つのインスタンスへのデータ同期には、AD 内で 1 つのドメインコントローラーのみが使用可能。
パート I. 単一の Linux システムの Active Directory ドメインへの追加
第2章 SSSD のアイデンティティープロバイダーとしての Active Directory の使用
2.1. SSSD 用の AD プロバイダーの設定
2.1.1. 統合オプションの概要
- Linux は、ユーザー ID (UID) および グループ ID (GID) を使用します。『システム管理者のガイド 』の「ユーザーとグループの管理 を参照してください。 Linux UID と GID は、POSIX 標準に準拠します。
- Windows は セキュリティー ID (SID) を使用します。
- AD ユーザーに対する新規 UID と GID の自動生成
- SSSD は、AD ユーザーの SID を使用して、ID マッピング と呼ばれるプロセスで POSIX ID をアルゴリズム的に生成できます。ID マッピングにより、AD の SID と Linux の ID 間のマッピングを作成します。
- SSSD により新しい AD ドメインが検出されると、この新規ドメインに利用可能な ID 範囲を割り当てます。そのため、すべての SSSD クライアントマシンの各 AD ドメインには同じ ID 範囲が設定されます。
- AD ユーザーが SSSD クライアントマシンに初めてログインすると、SSSD により、ユーザーの SID やそのドメインの ID 範囲をベースにした UID など、ユーザーのエントリーが SSSD キャッシュに作成されます。
- AD ユーザーの ID は、同じ SID をもとに 、一貫したかたちで生成されるので、ユーザーはどの Red Hat Enterprise Linux システムにログインする場合も同じ UID と GID を使用します。
注記
全クライアントシステムが SSSD を使用して SID を Linux ID にマッピングする場合には、マッピングは一貫性が保たれますが、一部のクライアントが異なるソフトウェアを使用する場合には、以下のいずれかを選択してください。- 同じマッピングアルゴリズムが全クライアントで使用されていることを確認します。
- AD に定義されている POSIX 属性の使用 で説明されているように、明示的な POSIX 属性を使用します。
- AD に定義されている POSIX 属性の使用
- AD は、
uidNumber、gidNumber、unixHomeDirectory、またはloginShellなどの POSIX 属性を作成して保存します。AD ユーザーに対する新規 UID と GID の自動生成 で説明されている ID マッピングを使用する場合には、SSSD は新しい UID および GID を作成し、AD で定義されている値を上書きします。AD で定義された値を保持するには、SSSD の ID マッピングを無効にします。「SSSD が AD で定義されている POSIX 属性を使用するように設定」を参照してください。
2.1.2. SSSD のプロバイダーとして ID マッピングを使用した AD ドメインの設定
前提条件
- 名前解決の設定を確認します。特に、DNS SRV レコードを検証します。たとえば、
ad.example.comという名前のドメインの場合には、以下を実行してください。- DNS SRV の LDAP レコードを検証します。
# dig -t SRV _ldap._tcp.ad.example.com
- AD レコードを検証します。
# dig -t SRV _ldap._tcp.dc._msdcs.ad.example.com
後ほど、特定の AD ドメインコントローラーに SSSD を接続する場合には、DNS SRV レコードを検証する必要はありません。 - 両システムのシステム時刻が同期されていることを確認します。これで、Kerberos が正しく機能できるようになります。
- Linux システムとすべての AD ドメインコントローラー両方で 必要とされるポート を、Linux システムから AD ドメインコントローラー、AD ドメインコントローラーから Linux システムの両方向で開放します。
表2.1 SSSD を使用して Linux と AD を直接統合するのに必要なポート
サービス ポート プロトコル 備考 DNS 53 UDP および TCP LDAP 389 UDP および TCP Kerberos 88 UDP および TCP Kerberos 464 UDP および TCP パスワードの設定や変更に kadminにより使用されます LDAP グローバルカタログ 3268 TCP id_provider = adオプションを使用する場合NTP 123 UDP オプション
ローカルシステムの設定
realm join コマンドを使用して、システムを設定することを推奨します。3章realmd を使用した Active Directory ドメインへの接続を参照してください。realmd スイートは、自動的に必要な設定すべてを編集します。以下に例を示します。
# realm join ad.example.com
realmd, を使用しない場合には、手動でシステムを設定できます。Red Hat ナレッジベースの 「Manually Connecting an SSSD Client to an Active Directory Domain 」 を参照してください。
オプション: ユーザーのホームディレクトリーおよびシェルの設定
pam_oddjob_mkhomedir.so ライブラリーは、ユーザーが Linux システムに初回ログインした時に、自動的にホームディレクトリーを作成します。デフォルトでは、SSSD は AD アイデンティティープロバイダーからホームディレクトリーの形式を取得します。Linux クライアントでディレクトリーの形式をカスタマイズするには、以下を実行します。
/etc/sssd/sssd.confファイルを開きます。[domain]セクションで、以下のオプションのいずれかを使用します。fallback_homedirは、フォールバックするホームディレクトリー形式を設定し、ホームディレクトリーが AD に定義されていない場合のみ使用されます。override_homedirはホームディレクトリーを設定して、AD に定義されているホームディレクトリーを常に上書きします。
たとえば、/home/domain_name/user_nameの形式を常に使用するようにします。[domain/EXAMPLE] [... file truncated ...]
override_homedir = /home/%d/%u詳細は、sssd.conf(5) man ページを参照してください。
loginShell パラメーターからユーザーシェルに関する情報を取得します。Linux クライアントでユーザーシェルの設定をカスタマイズするには、以下を実行します。
/etc/sssd/sssd.confファイルを開きます。- 以下のオプションを使用して、必要なユーザーシェルの設定を定義します。
shell_fallbackはフォールバック値を設定し、シェルが AD で定義されていない場合にのみ使用されます。override_shellは、AD で定義したシェルを常に上書きする値を設定します。default_shellはデフォルトのシェル値を設定します。allowed_shellsおよびvetoed_shellsは、許可するシェルまたはブラックリストに追加するシェルの一覧を設定します。
詳細は、sssd.conf(5) man ページを参照してください。
新規設定の読み込み
- 設定ファイルを変更した後に SSSD を再起動します。
# systemctl restart sssd.service
その他のリソース
- LDAP および Kerberos プロバイダーの他の設定オプションについては、sssd-ldap(5) および sssd-krb5(5) man ページを参照してください。
- AD プロバイダーの他の設定オプションについては、sssd-ad(5) man ページを参照してください。
2.1.3. SSSD が AD で定義されている POSIX 属性を使用するように設定
注記
推奨情報
AD ドメインへの Linux システムの参加
SSSD での ID マッピングの無効化
/etc/sssd/sssd.confファイルを開きます。- ADドメインのセクションで、
ldap_id_mapping = falseの設定を追加します。注記
realmユーティリティーを使用してドメインと結合し、--automatic-id-mapping=noスイッチを追加した場合には、realmユーティリティーにより SSSD はldap_id_mapping = falseですでに設定されています。 - 以前にデフォルトの ID マッピング設定が指定されたユーザーを要求した場合には、SSSD キャッシュを削除します。
rm -f /var/lib/sss/db/*
2.2. Kerberos ホストキータブの自動更新
/etc/sssd/sssd.confファイルで、AD プロバイダーに対して以下のパラメーターを追加します。ad_maximum_machine_account_password_age = value_in_days
- SSSD を再起動します。
# systemctl restart sssd
ad_maximum_machine_account_password_age = 0 を設定します。
2.3. ダイナミック DNS 更新の有効化
- アイデンティティープロバイダーがオンラインになる時点 (常時)
- Linux システムが再起動する時点 (常時)
- 指定された間隔 (任意の設定)。デフォルトでは、AD プロバイダーは 24 時間ごとに DNS レコードを更新します。この動作は、DHCP リースと同じ間隔を設定することができます。このように設定した場合には、Linux クライアントはリースの更新後に更新されます。
[domain/ad.example.com] id_provider = ad auth_provider = ad chpass_provider = ad access_provider = ad ldap_schema = addyndns_update = truedyndns_refresh_interval = 43200dyndns_update_ptr = truedyndns_ttl = 3600
2.4. SSSD での範囲取得検索の使用
重要
2.5. グループポリシーオブジェクトのアクセス制御
2.5.1. SSSD と GPO アクセス制御の連携
重要
2.5.2. SSSD がサポートする GPO 設定
表2.2 SSSD が取得する GPOアクセス制御オプション
| GPO オプション [a] | 対応の sssd.conf オプション [b] |
|---|---|
|
ローカルでのログインを許可します
ローカルでのログインを拒否します。
| ad_gpo_map_interactive |
|
リモートデスクトップサービスを使ったログオンを許可します
リモートデスクトップサービスを使ったログオンを拒否します
| ad_gpo_map_remote_interactive |
|
ネットワークから対象のコンピューターにアクセスします
ネットワークから対象のコンピューターへのアクセスを拒否します
| ad_gpo_map_network |
|
バッチジョブとしてログオンを許可します
バッチジョブとしてログオンを拒否します
| ad_gpo_map_batch |
|
サービスとしてログオンを許可します
サービスとしてログオンを拒否します
| ad_gpo_map_service |
[a]
Windows のグループポリシーマネージメントエディターで指定されています。
[b]
これらのオプションに関する詳細および、デフォルトで GPO オプションがマッピングされている、プラグ可能な認証モジュール (PAM) サービスについては、sssd-ad(5) man ページを参照してください。
| |
2.5.3. SSSD 用の GPO ベースのアクセス制御設定
/etc/sssd/sssd.conf ファイルで設定します。ad_gpo_access_control オプションは、GPO ベースのアクセス制御を実行するモードを指定します。以下の値を使用できます。
ad_gpo_access_control = permissivepermissiveの場合は、GPO ベースのアクセス制御は評価されますが、強制されません。アクセスが拒否されると、syslogメッセージが記録されます。これがデフォルト設定です。ad_gpo_access_control = enforcingenforcingの場合は、GPO ベースのアクセス制御は評価され、強制されます。ad_gpo_access_control = disableddisabledの場合は、GPO ベースのアクセス制御は評価も強制もされません。
重要
ad_gpo_access_control を enforcing モードに設定する前に、ad_gpo_access_control を permissive モードに設定してログを検証することが推奨されます。syslog メッセージを見直すことで現行の GPO 設定をテスト、調節してからその後で enforcing モードに設定することができます。
sssd.conf ファイルで指定することができます。
ad_gpo_map_*オプションとad_gpo_default_rightでは、どの PAM サービスを特定の Windows ログイン権限にマッピングするかを設定します。PAM サービスを、固有の GPO 設定にマッピングされている PAM サービスのデフォルトリストに追加するか、リストからサービスを削除するには、ad_gpo_map_*オプションを使用します。たとえば、対話ログインにマッピングされた PAM サービスの一覧 (ローカルでのログオンを許可および拒否する GPO 設定) からsuサービスを削除するには、以下を実行します。ad_gpo_map_interactive = -su
ad_gpo_cache_timeoutオプションでは、後続のアクセス制御リクエストが DC から新たに取得するのではなく、キャッシュに保存されているファイルを再利用可能な間隔を指定します。
2.5.4. その他のリソース
- SSSD と GPO を連携させるように設定する方法は、Red Hat ナレッジベースの 「Configure SSSD to respect Active Directory SSH or Console/GUI GPO」 を参照してください。
2.6. SSSD を使用したユーザープライベートグループの自動作成
2.6.1. AD ユーザー用にユーザーのプライベートグループの自動作成を有効化する手順
/etc/sssd/sssd.confファイルを編集して、[domain/LDAP]セクションに以下を追加します。auto_private_groups = true
- sssd サービスを再起動して、sssd データベースを削除します。
# service sssd stop ; rm -rf /var/lib/sss/db/* ; service sssd start
# id ad_user1 uid=121298(ad_user1) gid=121298(ad_user1) groups=121298(ad_user1),10000(Group1) # id ad_user2 uid=121299(ad_user2) gid=121299(ad_user2) groups=121299(ad_user2),10000(Group1)
2.6.2. AD ユーザー用のユーザーのプライベートグループの自動作成を無効化する手順
/etc/sssd/sssd.confファイルを編集して、[domain/LDAP]セクションに以下を追加します。auto_private_groups = false
- sssd サービスを再起動して、sssd データベースを削除します。
# service sssd stop ; rm -rf /var/lib/sss/db/* ; service sssd start
# id ad_user1 uid=121298(ad_user1) gid=10000(group1) groups=10000(Group1) # id ad_user2 uid=121299(ad_user2) gid=10000(group1) groups=10000(Group1)
2.7. SSSD クライアントおよび Active Directory DNS サイトの自動検出
- SSSD は、AD フォレストの DNS サーバーからの SRV レコードにクエリーを送信します。返されるレコードには、フォレスト内の DC 名が含まれています。
- SSSD は、これらの各 DC に LDAP の ping を送信します。DC が設定した間隔内に応答しない場合には、要求がタイムアウトし、SSSD は次の DC に LDAP の ping を送信します。接続に成功すると、応答には、SSSD クライアントが所属する AD サイトに関する情報が含まれます。
- SSSD は次に、DNS サーバーからの SRV レコードにクエリーを送信し、所属するサイト内の DC を特定し、そのうちの 1 つに接続します。
注記
/etc/sssd/sssd.conf ファイルの [domain] セクションの ad_site オプションを使用して、クライアントを接続する AD サイトを指定します。
その他のリソース
ad_siteに関する詳細は、sssd-ad(5) man ページを参照してください。- Identity Management と Active Directory の間に信頼関係がある環境については、「Identity Management または SSSD を信頼された Active Directory ドメインの中から選択された Active Directory サーバーやサイトに制限する手順」 を参照してください。
第3章 realmd を使用した Active Directory ドメインへの接続
realmd システムは、アイデンティティードメインを検出してドメインに参加し、直接のドメイン統合を達成する明確で簡単な方法を提供します。SSSD や Winbind といった基礎となる Linux システムサービスがドメインに接続できるように設定します。
realmd はこの設定を単純化します。利用可能な AD および Identity Management ドメインを識別する検索を実行し、システムをドメインに参加させるとともに、指定された ID ドメインに接続してユーザーアクセスを管理するために必要となるクライアントサービスを設定します。また、SSSD は基礎となるサービスとして複数のドメインをサポートするため、realmd も複数のドメインを検出し、サポートすることができます。
3.1. サポートされるドメインタイプおよびクライアント
realmd システムは、以下のドメインタイプに対応しています。
- Microsoft Active Directory
- Red Hat Enterprise Linux Identity Management
realmd は、以下のドメインクライアントに対応しています。
- Red Hat Enterprise Linux Identity Management および Microsoft Active Directory の SSSD
- Microsoft Active Directory の Winbind
3.2. realmd 使用の前提条件
realmd システムを使用するには、realmd パッケージをインストールします。
# yum install realmd
realmd を使用するシステムの管理に必要となります。
注記
realmd を使用してインストールするパッケージを確認できます。
3.3. realmd コマンド
realmd システムには、以下の 2 つの主要タスクがあります。
- ドメインにおけるシステム登録の管理
- ドメインユーザーのローカルシステムリソースへのアクセス設定
realmd の中心となるのは realm というユーティリティーです。realm のほとんどのコマンドでは、実行するアクションと、ドメインやユーザーアカウントなどのアクションの実行対象となるエンティティーを指定する必要があります。
realm command arguments
realm join ad.example.com realm permit user_name
表3.1 realmd コマンド
| コマンド | 説明 |
|---|---|
| Realm コマンド | |
| discover | ネットワーク上のドメインの検出スキャンを実行します。 |
| join | システムを指定されたドメインに追加します。 |
| leave | 指定されたドメインからシステムを削除します。 |
| list | システム用に設定されたすべてのドメイン、または検出され、設定されたすべてのドメインを一覧表示します。 |
| ログインコマンド | |
| permit | 設定されたドメイン内の指定ユーザーまたはすべてのユーザーによるローカルシステムへのアクセスを有効にします。 |
| deny | 設定されたドメイン内の指定ユーザーまたはすべてのユーザーによるローカルシステムへのアクセスを制限します。 |
realm コマンドについての詳細は、realm(8) man ページを参照してください。
3.4. ID ドメインの検出および参加
realm discover コマンドは完全なドメイン設定と、システムをドメインに登録するためにインストールが必要となるパッケージの一覧を返します。
realm join コマンドは、ローカルシステムのサービスと ID ドメイン内のエントリーの両方を設定することにより、指定されたドメインで使用するローカルマシンを設定します。realm join が実行するプロセスは以下のようになります。
- 指定されたドメインについて検出スキャンを実行します。
- システムがドメインに参加するために必要となるパッケージを自動的にインストールします。これには、SSSD および PAM ホームディレクトリーのジョブパッケージが含まれます。パッケージの自動インストールでは
PackageKitスイートが実行中である必要があることに注意してください。注記
PackageKitが無効な場合は、システムが不足しているパッケージを要求します。このため、それらのパッケージをyumユーティリティーを使用して手動でインストールする必要があります。 - ディレクトリー内にシステムのアカウントエントリーが作成されて、ドメインに参加します。
/etc/krb5.keytabホストキータブファイルを作成します。- SSSD 内でドメインを設定し、サービスを再起動します。
- PAM 設定および
/etc/nsswitch.confファイルでシステムサービスに対してドメインユーザーを有効にします。
ドメインの検出
realm discover コマンドをオプションなしで実行すると、デフォルトの DNS ドメインについての情報が表示されます。これは、Dynamic Host Configuration Protocol (DHCP) で割り当てられるドメインになります。
# realm discover ad.example.com type: kerberos realm-name: AD.EXAMPLE.COM domain-name: ad.example.com configured: no server-software: active-directory client-software: sssd required-package: oddjob required-package: oddjob-mkhomedir required-package: sssd required-package: adcli required-package: samba-common
realm discover に検出するドメイン名を追記します。
# realm discover ad.example.com
realmd システムは DNS SRV ルックアップを使ってこのドメイン内のドメインコントローラーを自動的に見つけます。
注記
realm discover コマンドの使用には NetworkManager が実行中である必要があります。特に NetworkManager の D-Bus インターフェースに依存しています。システムが NetworkManager を使用していない場合は、realm discover コマンドで常にドメイン名を指定してください。
realmd システムは、Active Directory と Identity Management の両方のドメインを検出します。環境内に両方のドメインがある場合は、以下のように --server-software オプションを使用することで検出結果を特定のサーバータイプにしぼることができます。
# realm discover --server-software=active-directory
login-policy があります。これは、参加の完了後にすぐにドメインユーザーログインできるかどうかを示します。ログインがデフォルトで許可されていない場合は、realm permit コマンドで手動で許可することができます。詳細は、「ドメインユーザーのログインパーミッションの管理」 を参照してください。
realm discover コマンドについての詳細は、realm(8) man ページを参照してください。
ドメインへの参加
重要
realm join コマンドでドメイン名を指定します。
# realm join ad.example.com realm: Joined ad.example.com domain
Administrator、IdM の場合は、 admin と呼ばれます。別のユーザーで接続するには、-U オプションを使用します。
# realm join ad.example.com -U user
-U オプションを使用します。
# kinit user # realm join ad.example.com -U user
realm join コマンドではいくつか他のオプションも受け付けます。realm join コマンドについての詳細は、realm(8) man ページを参照してください。
例3.1 システムをドメインに登録するサンプル手順
realm discoverコマンドを実行してドメインについての情報を表示します。# realm discover ad.example.com ad.example.com type: kerberos realm-name: AD.EXAMPLE.COM domain-name: ad.example.com configured: no server-software: active-directory client-software: sssd
realm joinコマンドでドメイン名を渡します。システムが要求する場合は、管理者パスワードを入力します。# realm join ad.example.com Password for Administrator: password
realmd が DNS SRV レコードをチェックすることに留意してください。
- Identity
_ldap._tcp.domain.example.com.Management レコードの場合は - Active
_ldap._tcp.dc._msdcs.domain.example.com.Directory レコードの場合は
ドメイン参加後のシステム設定のテスト
id user@domain_nameコマンドを実行してドメインからユーザー情報を表示します。# id user@ad.example.com uid=1348601103(user@ad.example.com) gid=1348600513(domain group@ad.example.com) groups=1348600513(domain group@ad.example.com)
sshユーティリティーを使用して、同じユーザーでログインします。# ssh -l user@ad.example.com linux-client.ad.example.com user@ad.example.com@linux-client.ad.example.com's password: Creating home directory for user@ad.example.com.
pwdでユーザーのホームディレクトリーがプリントされることを確認します。$ pwd /home/ad.example.com/user
idを実行して、最初のステップのid user@domain_nameコマンドと同じ情報がプリントされることを確認します。$ id uid=1348601103(user@ad.example.com) gid=1348600513(domain group@ad.example.com) groups=1348600513(domain group@ad.example.com) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
kinit ユーティリティーも有効です。このユーティリティーを使用するには krb5-workstation パッケージがインストールされている必要があります。
3.5. ID ドメインからのシステムの削除
realm leave コマンドを使用します。このコマンドは、SSSD とローカルシステムからドメイン設定を削除します。
# realm leave ad.example.com
Administrator になります。IdM の場合は、admin になります。ドメインへの参加に別のユーザーを使用していた場合は、そのユーザーとして削除を実行する必要がある場合があります。別のユーザーを指定するには、-U オプションを使用します。
# realm leave ad.example.com -U 'AD.EXAMPLE.COM\user'
--remove オプションを指定してコマンドを実行します。
realm leave コマンドについての詳細は、realm(8) man ページを参照してください。
3.6. ドメインの一覧表示
realm list コマンドは、システムのすべての設定済みドメイン、およびそのドメインの詳細およびデフォルトの設定を一覧表示します。この内容は、すでにシステム設定内にあるドメインの場合のみ、realm discovery コマンドで返される情報と同じものになります。
# realm list --all --name-only ad.example.com
realm list が受け付ける重要なオプションは以下の通りです。
--all--allオプションを使用すると、設定済みおよび未設定の両方の検出されたドメインすべてを一覧表示します。--name-only--name-onlyオプションを使用すると、表示結果がドメイン名のみとなり、設定の詳細は表示されません。
realm list コマンドについての詳細は、realm(8) man ページを参照してください。
3.7. ドメインユーザーのログインパーミッションの管理
realmd システムを使ってそのドメインにおけるユーザーの基本的な allow or deny アクセスルールを設定することができます。このアクセスルールはシステム上の全サービスに対するアクセスを許可または拒否することに注意してください。特定のアクセスルールは、特定のシステムリソースもしくはドメインで設定する必要があります。
realm denyrealm denyコマンドは、単にドメイン内のすべてのユーザーにアクセスを拒否します。このコマンドは--allオプションと使用します。realm permitrealm permitコマンドは、以下を可能にします。--allオプションを使用して全ユーザーにアクセスを付与します。$ realm permit --all
- 以下のように指定したユーザーにアクセスを付与します。
$ realm permit user@example.com $ realm permit 'AD.EXAMPLE.COM\user'
-xオプションを使用して指定したユーザーにアクセスを拒否します。$ realm permit -x 'AD.EXAMPLE.COM\user'
realmd に利用可能なサブドメインの情報を提供できないためです。
重要
realm permit -x で指定されたユーザーにアクセスを拒否するというやり方は推奨されません。Red Hat で推奨しているのは、デフォルトで全ユーザーにアクセスを拒否し、realm permit で選択したユーザーにのみアクセスを許可するという方法です。
realm deny および realm permit コマンドについての詳細は、realm(8) man ページを参照してください。
3.8. デフォルトユーザー設定の変更
realmd システムは、デフォルトのユーザーホームディレクトリーや shell POSIX 属性の変更に対応しています。例えば、POSIX 属性が Windows のユーザーアカウントで設定されていなかったり、これらの属性がローカルシステム上の他のユーザーの POSIX 属性と異なる場合などにこれが必要になることがあります。
重要
realm join コマンドを実行していない場合のみになります。システムが既に参加している場合は、デフォルトのホームディレクトリーと shell は /etc/sssd/sssd.conf に記載の 「オプション: ユーザーのホームディレクトリーおよびシェルの設定」 ファイルで変更します。
[users] ファイルの /etc/realmd.conf セクションで以下のオプションを指定します。
default-homedefault-homeオプションは、ホームディレクトリーが明示的に設定されていないアカウントのホームディレクトリーを作成するテンプレートを設定します。一般的な形式は/home/%d/%uとなり、ここでの%dはドメイン名、%uはユーザー名になります。default-shelldefault-shellオプションはデフォルトのユーザーシェルを定義します。サポートされるシステムシェルを受け付けます。
[users] default-home = /home/%u default-shell = /bin/bash
3.9. Active Directory ドメインエントリーの追加設定
/etc/realmd.conf 設定ファイルで定義することができます。各ドメインには、独自の設定セクションを設けることができ、このセクション名はドメイン名に一致する必要があります。例を示します。
[ad.example.com] attribute = value attribute = value
重要
realm join コマンドを実行していない場合のみになります。システムが既に参加している場合は、これらの設定を変更しても反映されません。そのような場合は、「ID ドメインからのシステムの削除」 にあるように一旦ドメインを離れ、「ドメインへの参加」 の説明に従って再度参加します。参加にはドメイン管理者の認証情報が必要になることに注意してください。
/etc/realmd.conf の対応セクションを編集します。以下の例では ad.example.com ドメインの ID マッピングを無効にし、ホストプリンシパルを設定して、システムを指定されたサブツリーに追加しています。
[ad.example.com] computer-ou = ou=Linux Computers,DC=domain,DC=example,DC=com user-principal = host/linux-client@AD.EXAMPLE.COM automatic-id-mapping = no
realm join にある 「ドメインへの参加」 コマンドで最初にシステムをドメインに参加させる際にも以下のようにセットアップすることができます。
# realm join --computer-ou="ou=Linux Computers,dc=domain,dc=com" --automatic-id-mapping=no --user-principal=host/linux-client@AD.EXAMPLE.COM
/etc/realmd.conf のドメインのデフォルトセクションで設定可能な最重要オプションを一覧表示しています。利用可能な設定オプションについての完全一覧は、realmd.conf(5) man ページを参照してください。
表3.2 レルム設定オプション
| オプション | 説明 |
|---|---|
computer-ou | コンピューターアカウントをドメインに追加するためのディレクトリーの場所を設定します。これは、root エントリーに関連する完全 DN または RDN にすることができます。サブツリーはすでに存在している必要があります。 |
user-principal | コンピューターアカウントの userPrincipalName の属性値を提供された Kerberos プリンシパルに設定します。 |
automatic-id-mapping | 動的 ID マッピングを有効にするか、またはマッピングを無効にして Active Directory で設定済みの POSIX 属性を使用するかを設定します。 |
第4章 Active Directory 統合での Samba の使用
4.1. ドメインユーザー認証での winbindd の使用
winbindd サービスでは、Name Service Switch (NSS) へのインターフェースを提供し、ドメインユーザーがローカルシステムにログインする時に AD に対して認証できるようにします。
winbindd を使用すると、追加のソフトウェアをインストールすることなしにディレクトリーを共有するなど設定を強化するという利点があります。詳しい情報は、『Red Hat システム管理者ガイド』を参照してください。
4.1.1. AD ドメインへの参加
Winbind サービスを使用する場合には、realm join --client-software=winbind domain_name コマンドを使用します。 realm ユーティリティーは、Samba、Kerberos および PAM などの設定ファイルを自動的に更新します。
4.2. SSSD および winbind での SMB 共有の使用
注記
重要
4.2.1. SSSD と SMB との連携方法
4.2.2. SMB 共有に SSSD または Winbind を使用するかどうかの判断
- Identity Management クライアントは、デフォルトで SSSD を使用して、Active Directory ユーザーを UNIX ユーザーにマッピングします。SMB ID マッピングに、SSSD の代わりに Winbind を使用すると、マッピングで整合性が取られなくなります。
- Active Directory が直接統合されている環境では、クライアントが一般的な Active Directory ユーザーマッピングに SSSD を使用しますが、このような環境で SSSD の代わりに、SMB ID マッピングの Winbind を使用すると、マッピングに一貫性がなくなる可能性があります。
重要
4.2.3. SSSD クライアントからの SMB 共有のアクセス
alternatives ユーティリティーを使用します。このユーティリティーは、現在使用するライブラリーを表示します。以下の例では、このシステムは、SSSD ライブラリーを使用します。
# alternatives --list | grep -E cifs\|libwbclient
cifs-idmap-plugin auto /usr/lib64/cifs-utils/cifs_idmap_sss.so
libwbclient.so.0.11-64 auto /usr/lib64/sssd/modules/libwbclient.so.0.11.04.2.4. SMB 共有アクセス用の SSSD と Winbind の切り替え
$ rpm -q cifs-utils
- オプション: SSSD クライアントから SMB 共有にアクセスするのに SSSD または Winbind のいずれを使用しているかを確認します。
# alternatives --display cifs-idmap-plugincifs-idmap-plugin - status is auto. link currently points to /usr/lib/cifs-utils/cifs_idmap_sss.so /usr/lib/cifs-utils/cifs_idmap_sss.so - priority 20 /usr/lib/cifs-utils/idmapwb.so - priority 10 Current `best' version is /usr/lib/cifs-utils/cifs_idmap_sss.so.SSSD プラグイン (cifs_idmap_sss.so) がインストールされている場合、このプラグインはデフォルトで Winbind プラグイン (idmapwb.so) よりも優先されます。 - Windbind プラグインに切り替える前に、Winbind がシステムで実行されていることを確認します。
# systemctl is-active winbind.serviceactiveSSSD プラグインに切り替える前に、SSSD がシステムで実行されていることを確認します。# systemctl is-active sssd.serviceactive - 異なるプラグインに切り替えるには、
alternatives --set cifs-idmap-pluginコマンドを使用し、必要なプラグインへのパスを指定します。たとえば、Winbind に切り替えるには以下を実行します。# alternatives --set cifs-idmap-plugin /usr/lib/cifs-utils/idmapwb.so
4.3. その他のリソース
パート II. Linux ドメインと Active Directoryドメインの統合: フォレスト間信頼
第5章 Active Directory および Identity Management によるフォレスト間の信頼作成
5.1. フォレスト間の信頼について
5.1.1. 信頼関係のアーキテクチャー
Active Directory の信頼、フォレスト、およびフォレスト間の信頼
信頼のフローと一方向の信頼

図5.1 一方向の信頼
推移的および非推移的な信頼

図5.2 推移的な信頼
Active Directory と Identity Management におけるフォレスト間の信頼

図5.3 信頼の方向
5.1.2. Active Directory セキュリティーオブジェクトおよび信頼
Active Directory グローバルカタログ
グローバルカタログと POSIX 属性
5.1.3. IdM における信頼アーキテクチャー
- SSSD は、Active Directory 上の ID 検索を実行し、認可のためにユーザーおよびグループセキュリティー識別子 (SID) を取得します。さらに SSSD は、ユーザー、グループ、およびユーザーのチケット情報をキャッシュし、Kerberos および DNS ドメインをマップします。
- Identity Management (Linux ドメイン管理) は、Active Directory ユーザーを、an IdM ポリシーおよびアクセスのために IdM グループと関連付けます。
注記
SELinux、sudo、およびホストベースのアクセス制御など、Linux ドメイン管理のアクセス制御ルールおよびポリシーは Identity Management で定義され、適用されます。Active Directory 側で設定されるいずれのアクセス制御ルールも IdM では評価または使用されます。関連する Active Directory 設定はグループメンバーシップのみになります。
異なる Active Directory フォレストとの信頼
5.1.3.1. Active Directory PAC および IdM チケット
- サービスのリクエストにはユーザーの PAC が含まれます。IdM KDC は、Active Directory グループ一覧と IdM グループ内のメンバーシップを比較して PAC を分析します。
- MS-PAC 内で定義されている Kerberos プリンシパルの SID の場合、IdM KDC が IdM LDAP で定義されている外部のグループメンバーシップを評価します。SID の新たなマッピングが利用可能な場合、MS-PAC レコードは SID が属する IdM グループの他の SID で拡張されます。この拡張された MS-PAC は IdM KDC で署名されます。
- IdM KDC で署名された更新済み PAC のあるサービスチケットがユーザーに返されます。IdM に既知の AD グループに属するユーザーは、これでサービスチケットの MS-PAC コンテンツをベースにした IdM クライアント上で実行している SSSD に認識されます。これにより、IdM クライアントによるグループメンバーシップを検索するアイデンティティートラフィックを抑制することができます。
- 評価プロセスで使用される Kerberos クライアントライブラリーが PAC データを SSSD PAC レスポンダーに送信します。
- PAC レスポンダーが PAC 内のグループ SID を確認し、ユーザーを SSSD キャッシュ内の対応するグループに追加します。SSSD は、新規サービスがアクセスされるたびに複数の TGT と各ユーザーのチケットを保存します。
- 確認されたグループに所属するユーザーは、IdM 側にある必要なサービスにアクセスできるように なります。
5.1.3.2. Active Directory ユーザーと Identity Management グループ
非 POSIX の外部グループおよび SID マッピング
ID の範囲
注記
ipa trust-add コマンドに渡すことで手動で選択することもできます。
- ipa-ad-trust
- この範囲のオプションは、SID をベースに IdM がアルゴリズムで生成した ID に使用します。IdM が SID-to-POSIX ID マッピングを使用して SID を生成している場合は、AD および IdM ユーザーおよびグループの ID 範囲は一意で、重複しない ID 範囲が利用可能になっている必要があります。
- ipa-ad-trust-posix
- この範囲のオプションは、AD エントリー内の POSIX 属性で定義された ID に使用されます。IdM は、
uidNumberおよびgidNumberなどを含む POSIX 属性を AD のグローバルカタログまたはディレクトリーコントローラーから取得します。AD ドメインが適切に管理されており、かつ ID の競合がなければ、この方法で生成された ID 番号は一意のものになります。この場合、ID の検証や範囲は必要ありません。
[root@ipaserver ~]# ipa trust-add name_of_the_trust --range-type=ipa-ad-trust-posix
他の ID 範囲でのトラストの再作成
--range-type オプションを使用してトラストを再作成します。
- 現在使用している ID 範囲をすべて表示します。
[root@ipaserver ~]# ipa idrange-find
ipa trust-addコマンドで作成した ID 範囲名を、リストの中から特定します。ID 範囲名の最初の部分は、トラストの名前 (name_of_the_trust_id_range) です。例: ad.example.com。 - (オプション) トラストの作成時に、どの
--range-typeオプション (ipa-ad-trustまたはipa-ad-trust-posix) を使用したか分からない場合には、以下のコマンドを使用してオプションを特定します。[root@ipaserver ~]# ipa idrange-show name_of_the_trust_id_range
タイプをメモし、ステップ 5 で新しいトラストには、もう一方のタイプを選択します。 ipa trust-addコマンドで作成された範囲を削除します。[root@ipaserver ~]# ipa idrange-del name_of_the_trust_id_range
- トラストを削除します。
[root@ipaserver ~]# ipa trust-del name_of_the_trust
- 正しい
--range-typeオプションで新規トラストを作成します。以下に例を示します。[root@ipaserver ~]# ipa trust-add name_of_the_trust --range-type=ipa-ad-trust
5.1.3.3. Active Directory ユーザーと IdM ポリシーおよび設定

図5.4 Active Directory ユーザーと IdM グループおよびポリシー
5.1.4. 一方向および双方向の信頼
- 一方向の信頼
- 一方向の信頼では、AD ユーザーとグループは IdM 内のリソースにアクセスできますが、その逆は可能ではありません。IdM ドメインは AD フォレストを信頼しますが、AD フォレストは IdM ドメインを信頼しません。一方向の信頼は、信頼の作成におけるデフォルトのモードです。
- 双方向の信頼
- 双方向の信頼では、AD ユーザーとグループは IdM 内のリソースにアクセスできます。IdM の双方向信頼では、AD における一方向の信頼ソリューションと比較した場合、ユーザーに新たな権限が与えられるわけではありません。デフォルトのフォレスト間信頼の フィルター設定により、両方のソリューションの安全性は同等なものと考えられます。
ipa trust-add コマンドを再度実行してください。これにより既存の信頼を削除し、新規の信頼を確立することができます。
5.1.5. Active Directory への外部の信頼
5.1.6. 信頼コントローラーおよび信頼エージェント
- 信頼エージェント
- Active Directory ドメインコントローラーに対してアイデンティティー検索を実行可能な IdM サーバー
- 信頼コントローラー
- Samba スイートも実行する信頼エージェントの機能を持つ IdM サーバー。Active Directory ドメインコントローラーは、Active Directory への信頼を確立し、検証する場合には信頼コントローラーに問い合わせます。最初の信頼コントローラーは、「信頼向けに IdM サーバーを準備する」 で記載されているように信頼の設定時に作成されます。信頼コントローラーは信頼エージェントと比較するとネットワークに接続されているサービスを多く実行するので、侵入者が攻撃できる範囲が大きくなります。
表5.1 信頼コントローラーおよび信頼エージェントが提供する機能の比較
| 機能 | 信頼エージェント | 信頼コントローラー |
|---|---|---|
| Active Directory ユーザーとグループの解決 | はい | はい |
| IdM クライアントを登録して、信頼済みの Active Directory フォレストからのユーザーがアクセスできるサービスを実行します | はい | はい |
| 信頼を管理します(たとえば、信頼合意の追加) | いいえ | はい |
- 最低でもアイデンティティー管理のデプロイメントごとに、信頼コントローラーは 2 台設定してください。
- 最低でも各データセンターごとに信頼コントローラーは 2 台設定してください。
ipa-adtrust-install ユーティリティーを使用してください。
重要
その他のリソース
- 信頼コントローラーの追加については、「信頼の作成」 に記載されています。
- 信頼エージェントの追加については、「信頼エージェントの設定」 に記載されています。
5.2. フォレスト間の信頼作成
5.2.1. 環境およびマシン要件
5.2.1.1. サポートされる Windows プラットフォーム
- フォレスト機能レベルの範囲: Windows Server 2008 - Windows Server 2016 R2
- ドメイン機能レベルの範囲: Windows Server 2008 - Windows Server 2016 R2
- Windows Server 2012 R2
- Windows Server 2016
5.2.1.2. DNS およびレルム設定
- 一意のプライマリー DNS ドメイン
- 各システムは、一意のプライマリー DNS ドメインを設定する必要があります。例えば、
- AD の場合は
ad.example.com、IdM の場合はidm.example.com - AD の場合は
example.com、IdM の場合はidm.example.com
注記
IdM のexample.comや、AD のad.example.comなど、IdM ドメインが AD ドメインの親ドメインの場合には、バグがあるため (BZ#1421869 で追跡)、IdM は正しく機能しません。最も便利な管理ソリューションは、各 DNS ドメインが統合 DNS サーバーで管理されている環境ですが、標準準拠の DNS サーバーであればいずれのものでも使用できます。AD または IdM では、アイデンティティー管理目的でプライマリー DNS ドメインを別のシステムと共有することはできません。詳細については、 Linux ドメイン ID、認証、およびポリシーガイド のホスト名および DNS 設定要件のセクションを参照してください。 - Kerberos レルム名をプライマリー DNS ドメイン名の大文字バージョンとする
- Kerberos レルム名はプライマリー DNS ドメイン名と同一のものにし、すべて大文字にする必要があります。例えば、AD のドメイン名が
ad.example.com、IdM のドメイン名がidm.example.comである場合、Kerberos レルム名はAD.EXAMPLE.COMおよびIDM.EXAMPLE.COMとします。 - DNS レコードが信頼内の全 DNS ドメインから解決可能であること
- 信頼関係内で関連するすべての DNS ドメインからの DNS レコードをすべてのマシンが解決可能である必要があります。
- IdM DNS を設定する際には、Linux ドメイン ID、認証、およびポリシーガイド の IdM ドメイン内での DNS サービスの設定 および 『DNS 転送の管理』 セクションに記載の指示に従います。
- 統合 DNS なしで IdM を使用している場合は、Linux ドメイン ID、認証、およびポリシーガイド の 『統合 DNS なしでサーバーをインストールする』 セクションにある指示に従ってください。
- IdM と AD DNS ドメイン間で重複しないこと
- IdM に参加したマシンは複数の DNS ドメインに分配することができます。IdM クライアントを含んでいる DNS ドメインは、AD に参加しているマシンを含んでいる DNS ドメインと重複することはできません。AD 信頼をサポートするには、プライマリー IdM DNS ドメインに適切な SRV レコードがある必要があります。
$ ipa dns-update-system-records --dry-runコマンドを実行して、お使いのシステム設定に固有の必須 SRV レコード一覧を取得できます。生成されたリストは、以下のような形式になっています。$ ipa dns-update-system-records --dry-run IPA DNS records: _kerberos-master._tcp.example.com. 86400 IN SRV 0 100 88 server.example.com. _kerberos-master._udp.example.com. 86400 IN SRV 0 100 88 server.example.com. _kerberos._tcp.example.com. 86400 IN SRV 0 100 88 server.example.com. _kerberos._udp.example.com. 86400 IN SRV 0 100 88 server.example.com. _kerberos.example.com. 86400 IN TXT "EXAMPLE.COM" _kpasswd._tcp.example.com. 86400 IN SRV 0 100 464 server.example.com. _kpasswd._udp.example.com. 86400 IN SRV 0 100 464 server.example.com. _ldap._tcp.example.com. 86400 IN SRV 0 100 389 server.example.com. _ntp._udp.example.com. 86400 IN SRV 0 100 123 server.example.com.
同じ IdM レルムの一部である他の DNS ドメインでは、AD への信頼設定時に SRV レコードを設定する必要がありません。これは、AD ドメインコントローラーが KDC の検索に SRV レコードを使用せず、KDC の検索には信頼の名前サフィックスルーティング情報を使用するためです。
DNS 設定の確認
ipconfig /flushdns コマンドを実行するとキャッシュが削除できます。
- IdM でホストされているサービスが信頼確立に使用される IdM ドメインサーバーから解決可能であることを確認する
- TCP サービスレコードに対する LDAP と UDP による Kerberos の DNS クエリを実行します。
[root@ipaserver ~]# dig +short -t SRV _kerberos._udp.ipa.example.com. 0 100 88 ipamaster1.ipa.example.com. [root@ipaserver ~]# dig +short -t SRV _ldap._tcp.ipa.example.com. 0 100 389 ipamaster1.ipa.example.com.
このコマンドでは、全 IdM サーバーが一覧表示されるはずです。 - IdM Kerberos レルム名で TXT レコードの DNS クエリーを実行します。取得される値は、IdM インストール時に指定した Kerberos レルムと一致することが期待されます。
[root@ipaserver ~]# dig +short -t TXT _kerberos.ipa.example.com. IPA.EXAMPLE.COM
ipa-adtrust-installにあるように 「信頼向けに IdM サーバーを準備する」 ユーティリティーを実行した後、TCP サービスレコードに対する LDAP と UDP による MS DC Kerberos の DNS クエリを実行します。[root@ipaserver ~]# dig +short -t SRV _kerberos._udp.dc._msdcs.ipa.example.com. 0 100 88 ipamaster1.ipa.example.com. [root@ipaserver ~]# dig +short -t SRV _ldap._tcp.dc._msdcs.ipa.example.com. 0 100 389 ipamaster1.ipa.example.com.
このコマンドでは、ipa-adtrust-installを実行した全 IdM サーバーが一覧表示されるはずです。ipa-adtrust-installを IdM サーバーで実行していない場合は、出力は空白になることに留意してください。最初の信頼関係を確立していない場合は、これはよくあることです。
- IdM が AD のサービスレコードを解決可能であることを確認する
- TCP サービスレコードに対する LDAP と UDP による Kerberos の DNS クエリを実行します。
[root@ipaserver ~]# dig +short -t SRV _kerberos._udp.dc._msdcs.ad.example.com. 0 100 88 addc1.ad.example.com. [root@ipaserver ~]# dig +short -t SRV _ldap._tcp.dc._msdcs.ad.example.com. 0 100 389 addc1.ad.example.com.
このコマンドでは、AD ドメインコントローラーの名前が返されるはずです。 - IdM でホストされているサービスが AD サーバーから解決可能であることを確認する
- AD サーバーでサービスレコードを検索する
nslookup.exeユーティリティーをセットアップします。C:\>nslookup.exe > set type=SRV
- TCP サービスレコードに対する LDAP と UDP による Kerberos のドメイン名を入力します。
> _kerberos._udp.ipa.example.com. _kerberos._udp.ipa.example.com. SRV service location: priority = 0 weight = 100 port = 88 svr hostname = ipamaster1.ipa.example.com > _ldap._tcp.ipa.example.com _ldap._tcp.ipa.example.com SRV service location: priority = 0 weight = 100 port = 389 svr hostname = ipamaster1.ipa.example.com予測される出力には IdM でホストされているサービスが信頼確立に使用される IdM ドメインサーバーから解決可能であることを確認する で表示される IdM サーバーと同じものが含まれます。 - サービスタイプを TXT に変更し、IdM Kerberos レルム名を使って TXT レコードの DNS クエリを実行します。
C:\>nslookup.exe > set type=TXT > _kerberos.ipa.example.com. _kerberos.ipa.example.com. text = "IPA.EXAMPLE.COM"出力は IdM でホストされているサービスが信頼確立に使用される IdM ドメインサーバーから解決可能であることを確認する で表示される値と同じものが含まれるはずです。 ipa-adtrust-installにあるように 「信頼向けに IdM サーバーを準備する」 ユーティリティーを実行した後、TCP サービスレコードに対する LDAP と UDP による MS DC Kerberos の DNS クエリを実行します。C:\>nslookup.exe > set type=SRV > _kerberos._udp.dc._msdcs.ipa.example.com. _kerberos._udp.dc._msdcs.ipa.example.com. SRV service location: priority = 0 weight = 100 port = 88 svr hostname = ipamaster1.ipa.example.com > _ldap._tcp.dc._msdcs.ipa.example.com. _ldap._tcp.dc._msdcs.ipa.example.com. SRV service location: priority = 0 weight = 100 port = 389 svr hostname = ipamaster1.ipa.example.comこのコマンドでは、ipa-adtrust-installユーティリティーを実行した全 IdM サーバーが一覧表示されるはずです。ipa-adtrust-installを IdM サーバーで実行していない場合は、出力は空白になることに留意してください。最初の信頼関係を確立していない場合は、これはよくあることです。
- AD サービスが AD サーバーから解決可能であることを確認する
- AD サーバーでサービスレコードを検索する
nslookup.exeユーティリティーをセットアップします。C:\>nslookup.exe > set type=SRV
- TCP サービスレコードに対する LDAP と UDP による Kerberos のドメイン名を入力します。
> _kerberos._udp.dc._msdcs.ad.example.com. _kerberos._udp.dc._msdcs.ad.example.com. SRV service location: priority = 0 weight = 100 port = 88 svr hostname = addc1.ad.example.com > _ldap._tcp.dc._msdcs.ad.example.com. _ldap._tcp.dc._msdcs.ad.example.com. SRV service location: priority = 0 weight = 100 port = 389 svr hostname = addc1.ad.example.com予測される出力には IdM が AD のサービスレコードを解決可能であることを確認する で表示される AD サーバーと同じものが含まれます。
5.2.1.3. NetBIOS 名
注記
linux.example.com であれば NetBIOS 名は linux になり、ドメイン名が example.com であれば NetBIOS 名は example になります。
5.2.1.4. ファイアウォールおよびポート
- AD 信頼に必要なポート と AD 信頼内の IdM サーバーに必要なポート を IdM サーバーと全 AD ドメインコントローラーで開きます。これらは、IdM サーバーから AD ドメインコントローラーおよびその逆の両方向で開きます。
- AD 信頼内の IdM クライアントで必要なポート を信頼される AD フォレストの全 AD ドメインコントローラーで開きます。IdM クライアント上では、ポートが発信方向で開いていることを確認します (Linux ドメイン ID、認証、およびポリシーガイド の 『クライアントインストールの前提条件』 を参照してください)。
表5.2 AD 信頼に必要なポート
表5.3 信頼内の IdM サーバーに必要なポート
| サービス | ポート | プロトコル | 備考 |
|---|---|---|---|
| Kerberos | Linux ドメイン ID、認証、およびポリシーガイド の 『ポート要件』 を参照してください。 | ||
| LDAP | |||
| DNS | |||
表5.4 AD 信頼内の IdM クライアントに必要なポート
| サービス | ポート | プロトコル | 備考 |
|---|---|---|---|
| Kerberos | 88 | UDP および TCP |
KDC (キー配布センター) プロキシを設定済みの場合は、このポートは必要ありません。その場合、IdM クライアントは Kerberos リクエストを IdM サーバー経由で送信します。
|
その他のリソース
- 必要なポートを開く方法に関しては、Linux ドメイン ID、認証、およびポリシーガイド の 『ポート要件』 を参照してください。
5.2.1.5. IPv6 設定
5.2.1.6. 時計の設定
5.2.1.7. サポートされるユーザー名の形式
name@domain です。Active Directory は username、username@DOMAIN.NAME、および DOMAIN\username といったいくつかの異なる形式をサポートします。
re_expression オプションで定義される正規表現を使用します。この正規表現は IdM バックエンドおよび AD バックエンドで使用され、上記の形式すべてをサポートします。
re_expression = (((?P<domain>[^\\]+)\\(?P<name>.+$))|((?P<name>[^@]+)@(?P<domain>.+$))|(^(?P<name>[^@\\]+)$))
5.2.2. 信頼の作成
5.2.2.1. コマンドラインからの信頼作成
- 「信頼向けに IdM サーバーを準備する」 にあるように、信頼向けに IdM サーバーを準備します。
- 「信頼合意の作成」 にあるように、信頼の合意を作成します。
- 「Kerberos 設定の確認」 にあるように、Kerberos 設定を確認します。
5.2.2.1.1. 信頼向けに IdM サーバーを準備する
- 必要な IdM、信頼、および Samba パッケージをインストールします。
[root@ipaserver ]# yum install ipa-server ipa-server-trust-ad samba-client
- IdM サーバーで信頼サービスを有効に設定します。
ipa-adtrust-installユーティリティーを実行します。このユーティリティーは AD 信頼に必要な DNS サービスレコードを追加します。これらのレコードは、IdM が統合 DNS サーバーでインストールされた場合に自動的に作成されます。IdM が統合 DNS なしでインストールされた場合は、ipa-adtrust-installはこの後の手順を進める前に手動で DNS に追加する必要のあるサービスレコード一覧をプリントします。重要
Red Hat では、「DNS 設定の確認」 の説明にあるように、ipa-adtrust-installの実行後は毎回 DNS 設定を確認することを強く推奨します。IdM もしくは AD が統合 DNS サーバーを使用しない場合は特にこれが該当します。- このスクリプトは、古い Linux クライアントが信頼されるユーザーと作業可能にする互換性プラグインである
slapi-nisプラグインの設定を以下のように求めます。Do you want to enable support for trusted domains in Schema Compatibility plugin? This will allow clients older than SSSD 1.9 and non-Linux clients to work with trusted users. Enable trusted domains support in slapi-nis? [no]: y
- ディレクトリーの初回作成時には少なくとも 1 人のユーザー (IdM 管理者) が存在します。SID 生成タスクでは既存ユーザー向けに SID を作成し、信頼環境をサポートします。これはリソース集約型タスクです。ユーザー数が多い場合は、これは別個に実行できます。
Do you want to run the ipa-sidgen task? [no]: yes
- 「DNS およびレルム設定」 にあるように、DNS が正常に設定されていることを確認します。
smbデーモンを起動し、smbclientユーティリティーを使って Samba が IdM 側から Kerberos 認証に応答していることを確認します。[root@ipaserver ~]# systemctl start smb [root@ipaserver ~]# smbclient -L ipaserver.ipa.example.com -k lp_load_ex: changing to config backend registry Domain=[IDM] OS=[Windows 6.1] Server=[Samba 4.2.10] Sharename Type Comment --------- ---- ------- IPC$ IPC IPC Service (Samba 4.2.10) Domain=[IDM] OS=[Windows 6.1] Server=[Samba 4.2.10] Server Comment --------- ------- Workgroup Master --------- -------
5.2.2.1.2. 信頼合意の作成
ipa trust-addDirectory ドメインと IdM ドメインの信頼合意を作成します。
# ipa trust-add --type=type ad_domain_name --admin ad_admin_username --password
ipa trust-add は、デフォルトで一方向の信頼を設定します。双方向の信頼を確立するには、--two-way=true オプションを渡します。詳細は、「一方向および双方向の信頼」 を参照してください。
--external=true オプションを ipa trust-add コマンドに渡します。詳細は、「Active Directory への外部の信頼」 を参照してください。
注記
ipa trust-add コマンドはデフォルトで、サーバーを信頼コントローラーとして設定します。詳細は、「信頼コントローラーおよび信頼エージェント」 を参照してください。
--two-way=true オプションを使用して双方向の信頼を確認します。
[root@ipaserver ~]# ipa trust-add --type=ad ad.example.com --admin Administrator --password --two-way=true
Active Directory domain administrator's password:
-------------------------------------------------------
Added Active Directory trust for realm "ad.example.com"
-------------------------------------------------------
Realm-Name: ad.example.com
Domain NetBIOS name: AD
Domain Security Identifier: S-1-5-21-796215754-1239681026-23416912
SID blacklist incoming: S-1-5-20, S-1-5-3, S-1-5-2, S-1-5-1, S-1-5-7, S-1-5-6, S-1-5-5, S-1-5-4, S-1-5-9, S-1-5-8, S-1-5-17, S-1-5-16, S-1-5-15, S-1-5-14, S-1-5-13, S-1-5-12, S-1-5-11, S-1-5-10, S-1-3, S-1-2, S-1-1, S-1-0, S-1-5-19,
S-1-5-18
SID blacklist outgoing: S-1-5-20, S-1-5-3, S-1-5-2, S-1-5-1, S-1-5-7, S-1-5-6, S-1-5-5, S-1-5-4, S-1-5-9, S-1-5-8, S-1-5-17, S-1-5-16, S-1-5-15, S-1-5-14, S-1-5-13, S-1-5-12, S-1-5-11, S-1-5-10, S-1-3, S-1-2, S-1-1, S-1-0, S-1-5-19,
S-1-5-18
Trust direction: Two-way trust
Trust type: Active Directory domain
Trust status: Established and verified5.2.2.1.3. Kerberos 設定の確認
- IdM ユーザーのチケットをリクエストします。
[root@ipaserver ~]# kinit user
- IdM ドメイン内のサービスのサービスチケットをリクエストします。
[root@ipaserver ~]# kvno -S host ipaserver.example.com
- AD ドメイン内のサービスのサービスチケットをリクエストします。
[root@ipaserver ~]# kvno -S cifs adserver.example.com
AD サービスチケットが正常に付与されると、レルム間のチケット保証チケット (TGT) にリクエストされた他のチケットすべてが記載されます。この TGT はkrbtgt/AD.DOMAIN@IPA.DOMAINという名前になります。[root@ipaserver ]# klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: user@IPA.DOMAIN Valid starting Expires Service principal 06/15/12 12:13:04 06/16/12 12:12:55 krbtgt/IPA.DOMAIN@IPA.DOMAIN 06/15/12 12:13:13 06/16/12 12:12:55 host/ipaserver.ipa.example.com@IPA.DOMAIN 06/15/12 12:13:23 06/16/12 12:12:55 krbtgt/AD.DOMAIN@IPA.DOMAIN 06/15/12 12:14:58 06/15/12 22:14:58 cifs/adserver.ad.example.com@AD.DOMAIN
- Active Directory ユーザーのチケットをリクエストします。
[root@ipaserver ~]# kinit user@AD.DOMAIN
- IdM ドメイン内のサービスのサービスチケットをリクエストします。
[root@ipaserver ~]# kvno -S host ipaserver.example.com
AD サービスチケットが正常に付与されると、レルム間のチケット保証チケット (TGT) にリクエストされた他のチケットすべてが記載されます。この TGT はkrbtgt/IPA.DOMAIN@AD.DOMAINという名前になります。[root@ipaserver ]# klist Ticket cache: KEYRING:persistent:0:krb_ccache_hRtox00 Default principal: user@AD.DOMAIN Valid starting Expires Service principal 03.05.2016 18:31:06 04.05.2016 04:31:01 host/ipaserver.ipa.example.com@IPA.DOMAIN renew until 04.05.2016 18:31:00 03.05.2016 18:31:06 04.05.2016 04:31:01 krbtgt/IPA.DOMAIN@AD.DOMAIN renew until 04.05.2016 18:31:00 03.05.2016 18:31:01 04.05.2016 04:31:01 krbtgt/AD.DOMAIN@AD.DOMAIN renew until 04.05.2016 18:31:00
localauth プラグインが Kerberos プリンシパルをローカルの SSSD ユーザー名にマッピングします。これにより AD ユーザーは Kerberos 認証を使用し、GSSAPI 認証を直接サポートする Linux サービスにアクセスできるようになります。
注記
5.2.2.3. 既存の IdM インスタンス上での信頼の作成
- 「信頼向けに IdM サーバーを準備する」 にあるように、信頼向けに IdM サーバーを準備します。
- 「信頼合意の作成」 にあるように、信頼の合意を作成します。
- 各 IdM ユーザーに SID を生成します。
注記
ipa-adtrust-installユーティリティーを使用した信頼の確立時に SID が生成されている場合は、このステップを実行しないでください。- バックエンドの LDAP ディレクトリーで、
ipa-sidgen-task操作を実行して、各エントリーごとに、SID を含む、新しいipaNTSecurityIdentifier属性を自動的に追加します。[root@ipaserver ]# ldapmodify -x -H ldap://ipaserver.ipa.example.com:389 -D "cn=directory manager" -w password dn: cn=sidgen,cn=ipa-sidgen-task,cn=tasks,cn=config changetype: add objectClass: top objectClass: extensibleObject cn: sidgen nsslapd-basedn: dc=ipadomain,dc=com delay: 0 adding new entry "cn=sidgen,cn=ipa-sidgen-task,cn=tasks,cn=config"
- このタスクが正常に完了すると、SID 生成タスク (
Sidgen task) がステータスゼロ (0) で終了したというメッセージがエラーログに記録されます。[root@ipaserver ]# grep "sidgen_task_thread" /var/log/dirsrv/slapd-IDM-EXAMPLE-COM/errors [20/Jul/2012:18:17:16 +051800] sidgen_task_thread - [file ipa_sidgen_task.c, line 191]: Sidgen task starts ... [20/Jul/2012:18:17:16 +051800] sidgen_task_thread - [file ipa_sidgen_task.c, line 196]: Sidgen task finished [0].
- 「Kerberos 設定の確認」 にあるように、Kerberos 設定を確認します。
5.2.2.4. 2 つ目の信頼の追加
- 「DNS およびレルム設定」 にあるように、DNS が正常に設定されていることを確認します。
- 「信頼合意の作成」 にあるように、信頼の合意を作成します。
5.2.2.5. Web UI 内での信頼の作成
- IdM web UI を開きます。
https://ipaserver.example.com
- IPA Server メインタブを開いてから、Trusts サブタブを選択します。
- Trusts サブタブで Add をクリックし、新規信頼設定ウィンドウを開きます。
- 信頼についての必須情報を入力します。
- Domain フィールドに AD ドメイン名を記入します。
- 信頼を双方向にするには、Two-way trust チェックボックスを選択します。信頼を一方向にするには、Two-way trust を選択しないでください。一方向および双方向の信頼に関する詳細情報は、「一方向および双方向の信頼」 を参照してください。
- 別のフォレストにあるドメインへの外部の信頼を確立するには、External Trust チェックボックスを選択します。詳細は、「Active Directory への外部の信頼」 を参照してください。
- Establish using セクションでは、信頼の確立方法を定義します。
- AD 管理者のユーザー名とパスワードを使って信頼を確立する場合は、Administrative account を選択して必要な認証情報を入力します。
- 共有パスワードを使って信頼を確立する場合は、Pre-shared password を選択して信頼パスワードを入力します。
- 信頼の ID 設定を定義します。
- Range type オプションでは、ID 範囲のタイプを選択できます。IdM が自動的に使用する ID 範囲のタイプを検出するようにするには、Detect を選択します。
- ID 範囲の最初の ID を定義するには、Base ID フィールドを使用します。ID 範囲のサイズを定義するには、Range size フィールドを使用します。これらのオプションを指定しないと、IdM は ID 範囲のデフォルト値を使用します。
ID 範囲についての詳細は、「ID の範囲」 を参照してください。

図5.5 Web UI での信頼の追加
- をクリックして新規の信頼を保存します。
5.2.3. フォレスト間の信頼のインストール後の検討事項
5.2.3.1. Active Directory 信頼における動作の潜在的問題
5.2.3.1.1. Active Directory ユーザーと IdM 管理
5.2.3.1.2. 削除された Active Directory ユーザーの認証
5.2.3.1.3. 認証情報キャッシュコレクションおよび Active Directory プリンシパルの選択
- サービス名
- ホスト名
- レルム名
kinit ユーティリティーを使用してチケットを取得し、SSH を使って an IdM リソースに接続すると、プリンシパルはこのリソースチケットに選択されません。an IdM プリンシパルがリソースのレルム名と一致することから、IdM プリンシパルが使用されます。
Administrator でドメインが ADEXAMPLE.ADREALM の場合、プリンシパルは Administrator@ADEXAMPLE.ADREALM になります。
[root@server ~]# kinit Administrator@ADEXAMPLE.ADREALM Password for Administrator@ADEXAMPLE.ADREALM: [root@server ~]# klist Ticket cache: KEYRING:persistent:0:0 Default principal: Administrator@ADEXAMPLE.ADREALM Valid starting Expires Service principal 27.11.2015 11:25:23 27.11.2015 21:25:23 krbtgt/ADEXAMPLE.ADREALM@ADEXAMPLE.ADREALM renew until 28.11.2015 11:25:16
admin など) も持っている場合、IdM デフォルトプリンシパルと共に別の an IdM 認証情報キャッシュも存在することになります。その IdM デフォルトプリンシパルは、Active Directory ユーザーが SSH を使用してリソースに接続する場合にホストチケットに選択されます。
[root@vm-197 ~]# ssh -l Administrator@adexample.adrealm ipaclient.example.com Administrator@adexample.adrealm@ipaclient.example.com's password: [root@vm-197 ~]# klist -A Ticket cache: KEYRING:persistent:0:0 Default principal: Administrator@ADEXAMPLE.ADREALM Valid starting Expires Service principal 27.11.2015 11:25:23 27.11.2015 21:25:23 krbtgt/ADEXAMPLE.ADREALM@ADEXAMPLE.ADREALM renew until 28.11.2015 11:25:16 Ticket cache: KEYRING:persistent:0:0Default principal: admin@EXAMPLE.COM>>>>> IdM user Valid starting Expires Service principal 27.11.2015 11:25:18 28.11.2015 11:25:16 krbtgt/EXAMPLE.COM@EXAMPLE.COM27.11.2015 11:25:48 28.11.2015 11:25:16 host/ipaclient.example.com@EXAMPLE.COM>>>>> host principal
5.2.3.1.4. グループ SID の解決
Kerberos チケットの失効
net getlocalsid または net getdomainsid などの、Samba サービスから SID を取得するためのコマンドを実行すると、Kerberos キャッシュから既存の admin チケットが削除されます。
注記
net getlocalsidDirectory 信頼を使用するために getdomainsid や といったコマンドを実行する必要はありません。
ユーザーのグループメンバーシップを確認できない
Active Directory ユーザーの (リモート) Active Directory グループメンバーシップを表示できない
重要
id ユーティリティーを使うと、Linux システムユーザーのローカルグループの関連付けが表示できます。ただし、Samba ツールでは ActiveidDirectory ユーザーの Active Directory グループメンバーシップは表示できますが、 ではこれは表示されません。
ssh ユーティリティーを使って指定された AD ユーザーとして an IdM クライアントマシンにログインします。この AD ユーザーログインが最初に成功すると、id では AD グループメンバーシップを検出して表示します。
[root@ipaserver ~]# id ADDOMAIN\user uid=1921801107(user@ad.example.com) gid=1921801107(user@ad.example.com) groups=1921801107(user@ad.example.com),129600004(ad_users),1921800513(domain users@ad.example.com)
5.2.3.2. 信頼エージェントの設定
- 信頼コントローラー上で
ipa-adtrust-install --add-agentsコマンドを実行します。これで対話式の設定セッションになり、エージェント設定に必要な情報の入力が求められます。--add-agentsオプションについての詳細情報は、ipa-adtrust-install(1) man ページを参照してください。 - LDAP サービスを再起動します。
5.3. フォレスト間信頼環境の管理および設定
5.3.1. 信頼されるドメイン環境でのユーザープリンシパル名
username@KERBEROS-REALM という形式になっています。Active Directory フォレストでは、追加の UPN 接尾辞を設定することができます。これらのエンタープライズプリンシパル名は、デフォルトの UPN の代替ログインとして使用できます。
AD.EXAMPLE.COM を使っているとすると、ユーザーのデフォルトの UPN は user@ad.example.com になります。しかし、 企業ではユーザーが user@example.com といったメールアドレスを使用してログインできるようにする場合がよくあります。この場合、管理者は追加の UPN 接尾辞 example.com を Active Directory フォレストに追加し、ユーザーアカウントのプロパティーでこの新たな接尾辞を設定します。
[root@ipaserver ~]# ipa trust-fetch-domains Realm-Name: ad.example.com ------------------------------- No new trust domains were found ------------------------------- ---------------------------- Number of entries returned 0 ----------------------------
[root@ipaserver ~]# ipa trust-show
Realm-Name: ad.example.com
Realm-Name: ad.example.com
Domain NetBIOS name: AD
Domain Security Identifier: S-1-5-21-796215754-1239681026-23416912
Trust direction: Two-way trust
Trust type: Active Directory domain
UPN suffixes: example.comipaNTAdditionalSuffixes サブツリー内の複数値の属性 cn=trusted_domain_name,cn=ad,cn=trusts,dc=idm,dc=example,dc=com に保存されます。
5.3.2. IdM DNS ドメイン内の Active Directory クライアント
重要
5.3.2.1. IdM クライアントへの Kerberos シングルサインオンが不要
- クライアント上の System Security Service Daemon (SSSD) が IdM サーバーと通信できることを確認するために、IdM オプションを使って
--domain=IPA_DNS_Domainクライアントをインストールします。[root@idm-client.ad.example.com ~]# ipa-client-install --domain=idm.example.com
このオプションを使用すると、Active Directory DNS ドメインの SRV レコードの自動検出が無効になります。 - Active Directory 設定ファイル内の
[domain_realm]セクションで/etc/krb5.confドメインの既存のマッピングを見つけます。.ad.example.com = IDM.EXAMPLE.COM ad.example.com = IDM.EXAMPLE.COM
この両方の行を以下のような Active Directory DNS ゾーン内の Linux クライアントの完全修飾ドメイン名 (FQDN) から IdM レルムへのマッピングエントリーで置き換えます。idm-client.ad.example.com = IDM.EXAMPLE.COM
デフォルトのマッピングを置換することで、Kerberos が Active Directory ドメインのリクエストを IdM Kerberos Distribution Center (KDC) に送信できなくなります。Kerberos は代わりに SRV DNS レコードによる自動検出を使用して KDC を見つけます。追加されたホストのidm-client.ad.example.comに対してのみ、IdM KDC は設定されます。
注記
SSL 証明書の処理
certmonger がこの名前の証明書をリクエストできます。
[root@idm-client.ad.example.com ~]# ipa-getcert request -r \
-f /etc/httpd/alias/server.crt \
-k /etc/httpd/alias/server.key \
-N CN=ipa-client.ad.example.com \
-D ipa-client.ad.example.com \
-K host/idm-client.ad.example.com@IDM.EXAMPLE.COM \
-U id-kp-serverAuthcertmonger サービスは /etc/krb5.keytab ファイルに保存されているデフォルトのホストキーを使用して IdM Certificate Authority (CA) に対して認証を行います。
5.3.2.2. IdM クライアントへの Kerberos シングルサインオンが必要
idm-client.idm.example.com DNS ドメイン内にある必要があります。CNAME レコード idm-client.ad.example.com を Active Directory DNS ドメイン内に作成し、IdM クライアントの A/AAAA レコードを指す必要があります。
[libdefaults] 設定ファイルの /etc/krb5.conf セクションに設定します。
ignore_acceptor_hostname = true
SSL 証明書の処理
certmonger がこの名前の証明書をリクエストできます。
- 新規ホストオブジェクトを作成します。
[root@idm-server.idm.example.com ~]# ipa host-add idm-client.ad.example.com --force
ホスト名が A/AAAA レコードではなく CNAME であることから、--forceオプションを使用します。 - IdM DNS ホスト名が Active Directory データベースの IdM ホストエントリーを管理できるようにします。
[root@idm-server.idm.example.com ~]# ipa host-add-managedby idm-client.ad.example.com \ --hosts=idm-client.idm.example.com
[root@idm-client.idm.example.com ~]# ipa-getcert request -r \
-f /etc/httpd/alias/server.crt \
-k /etc/httpd/alias/server.key \
-N CN=`hostname --fqdn` \
-D `hostname --fqdn` \
-D idm-client.ad.example.com \
-K host/idm-client.idm.example.com@IDM.EXAMPLE.COM \
-U id-kp-serverAuth5.3.3. IdM ユーザー用の Active Directory グループの作成
注記
- これはオプションです。 IdM レルムで IdM ユーザー管理に使用する AD ドメインのグループを作成または選択します。複数のグループを使用して、 側の異なるグループに追加することができます。
- IdM オプションを Active Directory に追加して、
--externalユーザー用にipa group-addドメインの外部グループを作成します。--externalオプションは、このグループに IdM ドメイン外からのメンバーが含まれることを示します。例を示します。[root@ipaserver ~]# ipa group-add --desc='AD users external map' ad_users_external --external ------------------------------- Added group "ad_users_external" ------------------------------- Group name: ad_users_external Description: AD users external map
- IdM ポリシーの管理用に新規の IdM POSIX グループを作成するか既存のものを選択します。例えば、新規グループを作成するには、以下を実行します。
[root@ipaserver ~]# ipa group-add --desc='AD users' ad_users ---------------------- Added group "ad_users" ---------------------- Group name: ad_users Description: AD users GID: 129600004
- AD ユーザーまたはグループを外部メンバーとして IdM 外部グループに追加します。AD メンバーは、
DOMAIN\group_nameやDOMAIN\usernameなどのその完全修飾名で識別されます。その後、AD のアイデンティティーがユーザーまたはグループの Active Directory SID にマッピングされます。例えば AD グループの場合は、以下のようになります。[root@ipaserver ~]# ipa group-add-member ad_users_external --external "AD\Domain Users" [member user]: [member group]: Group name: ad_users_external Description: AD users external map External member: S-1-5-21-3655990580-1375374850-1633065477-513 SID_DOM_GROUP (2) ------------------------- Number of members added 1 -------------------------
- 外部 IdM グループを POSIX IdM グループにメンバーとして追加します。以下が例になります。
[root@ipaserver ~]# ipa group-add-member ad_users --groups ad_users_external Group name: ad_users Description: AD users GID: 129600004 Member groups: ad_users_external ------------------------- Number of members added 1 -------------------------
5.3.4. 信頼の維持
5.3.4.1. グルーバル信頼設定の編集
ipa-adtrust-install は、IdM ドメインとの信頼作成に必要な Active Directory ドメインのバックグランド情報を自動的に設定します。
- Windows スタイルのセキュリティー ID (SID): 自動生成され、変更できません。
- ドメイン GUID: 自動生成され、変更できません。
- Kerberos ドメイン名: IdM 設定から取得され、変更できません。
- IdM ユーザーを追加するデフォルトのグループ: 変更可能です。
- NetBIOS 名: この属性を変更することは推奨されません。
cn=domain,cn=ad,cn=etc,dc=example,dc=com サブツリーに保存されます。
5.3.4.1.1. NetBIOS 名の変更
重要
ipa-adtrust-installDirectory トポロジー内で互換性のある NetBIOS 名が IdM サーバー向けに設定されます。これを後で変更するには、ipa-adtrust-install オプションを使用して --netbios-name を再度実行し、新しい NetBIOS 名を指定します。
[root@ipaserver ]# ipa-adtrust-install --netbios-name=NEWBIOSNAME
5.3.4.1.2. Windows ユーザーのデフォルトグループの変更
ipa-adtrust-install ユーティリティーが自動作成するフォールバックのグループです。デフォルトグループは削除することはできませんが、グローバル信頼設定を使用して別の IdM グループを指定し、これを IdM ユーザーのプライマリーグループのフォールバックとして使用することができます。
ipa trustconfig-mod コマンドを使用します。
[root@server ~]# kinit admin [root@server ~]# ipa trustconfig-mod --fallback-primary-group="Example Windows Group"
- IdM web UI を開きます。
https://ipaserver.example.com
- IPA Server メインタブから Trusts サブタブを選択し、Global Configuration セクションを開きます。
- IdMFallback primary group グループから新規グループを選択します。

図5.6 Windows ユーザーのデフォルトグループの設定
- をクリックして新規設定を保存します。
5.3.4.2. 信頼ドメインの検出、有効化、および無効化
cn=subdomain,cn=trust_name,cn=ad,cn=trusts,dc=example,dc=com に保存されます。
trust-fetch-domains コマンドで実行されます。
[root@ipaserver ~]# kinit admin [root@ipaserver ~]# ipa trust-fetch-domains ad.example.com -------------------------------------------- List of trust domains successfully refreshed -------------------------------------------- Realm name: test.ad.example.com Domain NetBIOS name: TEST Domain Security Identifier: S-1-5-21-87535643-5658642561-5780864324 Realm name: users.ad.example.com Domain NetBIOS name: USERS Domain Security Identifier: S-1-5-21-91314187-2404433721-1858927112 Realm name: prod.ad.example.com Domain NetBIOS name: PROD Domain Security Identifier: S-1-5-21-46580863-3346886432-4578854233 ---------------------------- Number of entries returned 3 ----------------------------
注記
ipa trust-add ad.domain --trust-secret コマンドを実行した後に AD Domains and Trusts ツールでフォレスト信頼プロパティーを使用し、AD 側での着信信頼を検証します。次に ipa trust-fetch-domains ad.domain コマンドを実行します。IdM は使用可能になる信頼についての情報を受信します。
[root@ipaserver ~]# kinit admin [root@ipaserver ~]# ipa trustdomain-disable test.ad.example.com ------------------------------------------ Disabled trust domain "test.ad.example.com" ------------------------------------------
trustdomain-enable コマンドを使用して再度有効にできます。
[root@ipaserver ~]# kinit admin [root@ipaserver ~]# ipa trustdomain-del prod.ad.example.com ------------------------------------------------------------------- Removed information about the trusted domain " "prod.ad.example.com" -------------------------------------------------------------------
5.3.4.3. DNS レルムの表示および管理
cn=Realm Domains,cn=ipa,cn=etc,dc=example,dc=com ディレクトリーの IdM サブツリーに保存されます。
realmdomains-show コマンドを使用して表示することができます
[root@ipaserver ~]# kinit admin [root@ipaserver ~]# ipa realmdomains-show Domain: ipa.example.org, ipa.example.com, example.com
--add-domain オプションを使用して実行できます。
[root@ipaserver ~]# kinit admin [root@ipaserver ~]# ipa realmdomains-mod --add-domain=ad.example.com Domain: ipa.example.org, ipa.example.com, example.com, ad.example.com
--del-domain オプションを使用して削除することができます。
--domain オプションを使用して一覧自体を変更し、置き換えることができます。
[root@ipaserver ~]# ipa realmdomains-mod --domain={ipa.example.org,ad.example.com}5.3.4.4. 推移的な信頼における UID および GID 番号範囲の追加
ipa idrange-add コマンドを実行します。
--base-idオプションは POSIX 範囲のベース ID を設定します。これが最初の番号になります。--range-sizeオプションは範囲のサイズを設定します。--rid-baseオプションは RID の開始番号を設定します。これは SID の右端にある番号です。この値は、ベース ID に追加して競合を避ける範囲を表します。--dom-sidオプションはドメイン SID を設定します。これは、信頼に対して複数のドメインが設定される場合があるからです。
[root@server ~]$ kinit admin [root@server ~]$ ipa idrange-add --base-id=1200000 --range-size=200000 --rid-base=0 --dom-sid=S-1-5-21-123-456-789 trusted_dom_range
重要
5.3.4.5. サービスおよびホスト向けの Kerberos フラグ
OK_AS_DELEGATE が必要になります。
5.3.5. サービスの PAC タイプの設定
5.3.5.1. デフォルト PAC タイプの設定
- IPA Server タブを開きます。
- Configuration サブタブを選択します。
- Service Options 領域にスクロールします。

図5.7 Service Options 領域
- PAC を使用するには、MS-PAC チェックボックスを選択します。これで AD サービスで使用可能な証明書が追加されます。チェックボックスが選択されないと、PAC は Kerberos チケットに追加されません。nfs:NONE チェックボックスを選択すると、MS-PAC レコードは NFS サーバーに対して発行されたサービスチケットに追加されません。
注記
PAD チェックボックスは無視して構いません。この機能はまだ IdM では利用可能になっていません。 - 変更を保存するには、ページの上部にある Update リンクをクリックします。
5.3.5.2. サービスの PAC タイプの設定
ipa service-mod コマンドに --pac-type オプションを付けて実行します。このコマンドに関する詳細情報は、このコマンドに --help オプションを付けて実行してください。
$ ipa service-mod --help Usage: ipa [global-options] service-mod PRINCIPAL [options] Modify an existing IPA service. Options: -h, --help show this help message and exit ...
- Identity タブを開き、Services サブタブを選択します。
- 編集するサービスの名前をクリックします。
- Service Settings 領域で Override inherited settings オプションを選択し、MS-PAC チェックボックスを選択して AD サービスが使用可能な証明書を追加します。

図5.8 Service Settings 領域
チェックボックスが選択されない場合、PAC は Kerberos チケットに追加されません。注記
PAD チェックボックスは無視して構いません。この機能はまだ IdM では利用可能になっていません。 - 変更を保存するには、ページの上部にある Update リンクをクリックします。
5.3.6. Active Directory で定義された POSIX 属性の使用
5.3.6.1. Active Directory ユーザーの UID および GID 属性の定義
5.3.6.2. ログインシェルとホームディレクトリー属性の送信
重要
loginShell属性。これは AD ユーザーのシェルを指定します。unixHomeDirectory属性。これは AD ユーザーのホームディレクトリーを指定します。
/etc/sssd/sssd.conf ファイルの [domain] セクション内の subdomain_homedir オプションが %o に設定されている必要があります。%o の値は、ID プロバイダーから取得してホームディレクトリーを表します。例を示します。
[domain/example.com] subdomain_homedir = %o
loginShell や unixHomeDirectory を変更した場合は、この変更は IdM 側で自動的に反映されます。属性が AD サーバーで定義されていない場合は、SSSD はテンプレートのデフォルト値を使用します。このデフォルト値は IdM クライアントにも表示されます。
5.3.7. Active Directory リソースのために IdM マシンから SSH を使用
5.3.7.1. パスワードなしでの SSH の使用
localauth Kerberos プラグインは、Kerberos プリンシパルが自動的にローカルの SSSD ユーザー名にマッピングされるようにします。この localauth を使うことで、信頼される AD からの Windows ユーザーは Kerberos を使用したログイン時にパスワードが求められず、パスワードなしで SSH を使用できるようになります。
sssd が Kerberos ライブラリーに接続してプリンシパルを POSIX ID にマッピングする際には、SSSD プラグインは IdM で定義された信頼合意に従ってこれらをマッピングします。
Red Hat Enterprise Linux 7.1 およびそれ以降のシステムにおける AD ユーザーの Kerberos 認証
localauth Kerberos プラグインを自動設定します。
user@AD.DOMAIN, ad.domain\user および AD\user 形式でのユーザー名を許可します。
注記
localauth のあるシステムでは、/etc/krb5.confファイルの auth_to_local オプションを設定したり、.k5loginファイルに Kerberos プリンシパルを記載する必要がありません。localauth プラグインにより、パスワードなしのログインに使用されていたこの設定は不要になります。
AD ユーザーの Kerberos 認証の手動設定
localauth プラグインがないシステムでは、ユーザーが適切な Kerberos チケットを取得した場合でも、SSH は Active Directory ドメインユーザーのユーザーパスワードを要求します。
/etc/krb5.conf ファイル内で auth_to_local オプションを設定するか、ユーザーのホームディレクトリーで .k5login ファイルにユーザー Kerberos プリンシパルを記載します。
/etc/krb5.confの設定- 以下の手順では、Kerberos 設定ファイルにレルムマッピングを設定する方法を説明しています。
/etc/krb5.confファイルを開きます。[realms]セクションで IdM レルムを名前で識別し、auth_to_localを 2 行追加して Kerberos プリンシパル名マッピングを定義します。- 1 つ目のルールでは、異なる Active Directory ユーザー名形式と特定の Active Directory ドメインをマッピングするルールを定義します。
- 2 つ目では、
DEFAULTの値を標準 Unix ユーザー名に設定します。
例:[realms] IDM = { .... auth_to_local = RULE:[1:$1@$0](^.*@ADDOMAIN$)s/@ADDOMAIN/@addomain/ auth_to_local = DEFAULT }- KDC サービスを再起動します。
[root@server ~]# systemctl restart krb5kdc.service
auth_to_localオプションを使用して Kerberos 認証を設定する場合は、SSH アクセスに使用するユーザー名は以下の基準を満たす必要があります。- ユーザー名が
ad_user@ad_domain形式になっていること。 - ドメイン名が小文字であること。
- ユーザー名の大文字/小文字が Active Directory 内のユーザー名と一致していること。例えば、
userとUserは文字の大きさが異なるので、別のユーザー名とみなされます。
auth_to_localの設定に関する詳細情報は、krb5.conf(5) man ページを参照してください。 .k5loginの設定- 以下の手順では、システムがローカルユーザー名の Kerberos プリンシパル名を見つける設定を行います。
- ユーザーのホームディレクトリーに
.k5loginファイルを作成します。 - 作成したファイルにユーザーが使用する Kerberos プリンシパルを記載します。
認証しているユーザーが既存 Kerberos チケットのプリンシパルと一致する場合、ユーザーはパスワードを求められることなく、そのチケットを使用してログインできます。.k5login設定を使用して Kerberos 認証を設定する場合は、SSH アクセスに使用しするユーザー名はad_user@ad_domainの形式を取る必要があります。.k5loginファイルの設定に関する詳細情報は、.k5login(5) man ページを参照してください。
5.3.8. Kerberos 対応 Web アプリケーションでの信頼の使用
注記
[root@ipaserver ~]# systemctl restart httpd.service
KrbAuthRealmsKrbAuthRealmsオプションはアプリケーションの場所を IdM ドメインの名前に指定します。これは必須です。Krb5KeytabKrb5Keytabオプションは IdM サーバーキータブの場所を指定します。これは必須です。KrbServiceNameKrbServiceNameオプションはキータブで使用する Kerberos サービス名を設定します (HTTP)。これは推奨オプションです。KrbMethodK5PasswdおよびKrbMethodNegotiateKrbMethodK5PasswdKerberos メソッドオプションは、有効なユーザーのパスワードベースの認証を有効にします。KrbMethodNegotiateオプションは、有効な Kerberos チケットが利用可能な場合にシングルサインオン (SSO) を有効にします。ユーザーが多い場合は、これらのオプションの使用が推奨されます。KrbLocalUserMappingKrbLocalUserMappingオプションは、通常の web ログイン (通常はアカウントの UID または共通名) を完全修飾ユーザー名 ( user@REALM.COM 形式) にマップできるようにします。このオプションの使用は強く推奨されます。ドメイン名/ログイン名のマッピングがないと、web ログインにはドメインユーザーとは異なるユーザーアカウントが表示され、ユーザーには予測しないデータが表示されてしまいます。サポートされるユーザー名形式の詳細については、「サポートされるユーザー名の形式」 を参照してください。
例5.1 Apache Web アプリケーションの Kerberos 設定
<Location "/mywebapp"> AuthType Kerberos AuthName "IPA Kerberos authentication" KrbMethodNegotiate on KrbMethodK5Passwd on KrbServiceName HTTPKrbAuthRealms IDM_DOMAINKrb5Keytab /etc/httpd/conf/ipa.keytabKrbLocalUserMapping onKrbSaveCredentials off Require valid-user </Location>
5.4. 信頼された Active Directory ドメインのユーザーおよびグループの LDAP 検索ベースを変更する手順
5.4.1. 前提条件
- ユーザーが所属する全グループを SSSD が解決しないように、Active Directory 側の
tokenGroups属性のサポートを無効にすることを検討してください。tokenGroupsが有効な場合には、属性に、SID のフラットリストが含まれるため、SSSD はユーザーが所属する全グループを解決します。この属性に関する詳細は、Microsoft Developer Network の Token-Groups attribute を参照してください。
5.4.2. 検索を制限する LDAP 検索ベースの設定
/etc/sssd/sssd.conf ファイルを編集して、固有のサブツリーに、SSSD の検索を制限する方法について説明します。
留意事項
- お使いの SSSD クライアントが直接 Active Directory どメインに結合されている場合には、全クライアントで以下の手順を実行してください。
- お使いの SSSD クライアントが Active Directory との信頼関係がある Identity Management ドメインにある場合には、Identity Management サーバーで以下の手順を実行します。
手順
- 信頼されたドメインの
sssd.confに別の[domain]セクションがあることを確認します。信頼されたドメインの見出しは、以下のテンプレートに従うようにしてください。[domain/main_domain/trusted_domain]
例:[domain/idm.example.com/ad.example.com]
sssd.confファイルを編集して、特定の組織単位 (OU) に検索ベースを制限します。たとえば、ldap_search_baseオプションは、全タイプのオブジェクトの検索ベースを変更します。[domain/idm.example.com/ad.example.com]
ldap_search_base = ou=finance,dc=ad,dc=example,dc=comldap_user_search_baseldap_group_search_base、ldap_netgroup_search_base、 およびldap_service_search_baseオプションも使用できます。これらのオプションに関する詳細は、sssd-ldap(5) man ページを参照してください。- SSSD を再起動します。
#
systemctl restart sssd.service - 確認するには、SSSD クライアント上の複数の Active Directory ユーザーを解決します。たておば、ユーザーの検索ベースとグループの検索ベースへの変更をテストするには、以下を実行します。
# getent passwd ad_user@ad.example.com# getent group ad_group@ad.example.comSSSD が正しく設定されている場合は、設定した検索ベースからのオブジェクトだけを解決できます。
- SSSD キャッシュを失効させます。
#
sss_cache --everything sssd.confの一般の[domain]セクションで、debug_levelオプションを10に設定します。- ユーザーを解決するためのコマンドを繰り返します。
/var/log/sssd/の SSSD ログで、sdap_get_generic_*関数からのメッセージを探します。この関数は、ユーザー検索に使用したフィルターおよび検索ベースをログに記録します。
その他のリソース
sssd.confの信頼されたドメインセクションで使用可能なオプション一覧については、sssd.conf(5) man ページのTrusted domain sectionを参照してください。
5.5. Identity Management または SSSD を信頼された Active Directory ドメインの中から選択された Active Directory サーバーやサイトに制限する手順
5.5.1. SSSD が特定の Active Directory サーバーに問い合わせするための設定
/etc/sssd/sssd.conf ファイルを編集して、SSSD が接続する Active Directory サーバーを手動で設定する方法について説明します。
留意事項
- お使いの SSSD クライアントが直接 Active Directory どメインに結合されている場合には、全クライアントで以下の手順を実行してください。この設定では、Active Directory ドメインコントローラー (DC) またはサイトを制限することで、SSSD が特定のサーバーまたはサイトに接続して認証されるように設定します。
- お使いの SSSD クライアントが Active Directory との信頼関係がある Identity Management ドメインにある場合には、Identity Management サーバーで以下の手順を実行します。この設定では、Active Directory DC またはサイトを制限しても、Identity Management クライアントが特定のサーバーまたはサイトに接続して認証されるようには設定されません。信頼された Active Directory ユーザーおよびグループは、 Identity Management サーバーを使用して解決されますが、認証は、直接 Active Directory DC に対して行われます。Red Hat Enterprise Linux 7.4 の時点では、クライアント上の
/etc/krb5.confファイルで、必要とされる Active Directory DC を定義して、認証を制限することができます。
手順
- 信頼されたドメインの
sssd.confに別の[domain]セクションがあることを確認します。信頼されたドメインの見出しは、以下のテンプレートに従うようにしてください。[domain/main_domain/trusted_domain]
例:[domain/idm.example.com/ad.example.com]
sssd.confファイルを編集して、SSSD を接続する Active Directory サーバーまたはサイトのホスト名をリストします。ad_serverオプションと任意で Active Directory サーバーにad_server_backupオプションを使用します。Active Directory サイトにはad_siteオプションを使用します。これらのオプションに関する詳細は、 sssd-ad(5) man ページを参照してください。例:[domain/idm.example.com/ad.example.com]
ad_server = dc1.ad.example.com- SSSD を再起動します。
#
systemctl restart sssd.service - 確認するには、SSSD クライアントで、設定したサーバーまたはサイトからの Active Directory ユーザーとして解決または認証を行います。以下に例を示します。
#
id ad_user@ad.example.com
sssd.confの一般の[domain]セクションで、debug_levelオプションを10に設定します。/var/log/sssd/で SSSD ログを毛九人して、どのサーバーに SSSD が問い合わせたかを確認します。
その他のリソース
sssd.confの信頼されたドメインセクションで使用可能なオプション一覧については、sssd.conf(5) man ページのTrusted domain sectionを参照してください。
5.6. レガシー Linux クライアントでの Active Directory 信頼
nss_ldap、nss-pam-ldapd、またはバージョン 1.8 以前の SSSD などの他のユーティリティーを使用します。以下のバージョンの Red Hat Enterprise Linux を稼働しているクライアントは SSSD 1.9 を使用しないため、レガシークライアントとみなされます。
- Red Hat Enterprise Linux 5.7 およびそれ以降
- Red Hat Enterprise Linux 6.0 – 6.3
重要
- Kerberos 認証
- ホストベースのアクセス制御 (HBAC)
- SELinux ユーザーマッピング
sudoルール
- 情報検索
- パスワード認証
5.6.1. レガシークライアントでの AD 信頼向けのサーバー側設定
- IdM 用の ipa-server パッケージと IdM 信頼アドオン用の ipa-server-trust-ad パッケージがインストール済みであること。
ipa-server-installユーティリティーを実行して IdM サーバーが設定されていること。ipa-adtrust-install --enable-compatコマンドが実行済みで、IdM サーバーが AD ドメインとの信頼をサポートしており、compat LDAP ツリーが利用可能であること。これまでにipa-adtrust-installを--enable-compatオプションなしで実行している場合は、--enable-compatオプションを追加して再度実行してください。ipa trust-add ad.example.orgコマンドを実行して AD 信頼が確立されていること。
allow_all ルールが無効になっている場合は、IdM サーバー上で system-auth サーバーを有効にして AD ユーザーの認証を許可します。
allow_all コマンドを使用すると、コマンドラインから ipa hbacrule-show の現行ステータスを直接決定できます。このルールが無効になっている場合は、出力に Enabled: FALSE が表示されます。
[user@server ~]$ kinit admin
[user@server ~]$ ipa hbacrule-show allow_all
Rule name: allow_all
User category: all
Host category: all
Service category: all
Description: Allow all users to access any host from any host
Enabled: FALSE注記
system-auth を有効にするには、system-auth という名前の HBAC サービスを作成し、このサービスを使用して IdM マスターへのアクセスを付与する HBAC ルールを追加します。HBAC サービスおよびルールの追加については、Linux ドメイン ID、認証、およびポリシーガイド で説明しています。HBAC サービスは PAM サービス名であることに注意してください。新規 PAM サービスを追加する場合は、同一名の HBAC サービスを作成し、HBAC ルールでこのサービスへのアクセスを付与します。
5.6.2. ipa-advise ユーティリティーを使用したクライアント側の設定
ipa-advise ユーティリティーは、AD 信頼向けにレガシークライアントを設定する方法の指示を提供します。
ipa-advise が設定指示を提供可能なすべてのシナリオを一覧表示するには、ipa-advise をオプションなしで実行します。これで利用可能な全設定指示のセットの名前と各セットの実行内容、推奨される実行時期がプリントされます。
[root@server ~]# ipa-advise config-redhat-nss-ldap : Instructions for configuring a system with nss-ldap as a IPA client. This set of instructions is targeted for platforms that include the authconfig utility, which are all Red Hat based platforms. config-redhat-nss-pam-ldapd : Instructions for configuring a system (...)
ipa-advise ユーティリティーを実行します。
[root@server ~]# ipa-advise config-redhat-nss-ldap #!/bin/sh # ---------------------------------------------------------------------- # Instructions for configuring a system with nss-ldap as a IPA client. # This set of instructions is targeted for platforms that include the # authconfig utility, which are all Red Hat based platforms. # ---------------------------------------------------------------------- # Schema Compatibility plugin has not been configured on this server. To # configure it, run "ipa-adtrust-install --enable-compat" # Install required packages via yum yum install -y wget openssl nss_ldap authconfig # NOTE: IPA certificate uses the SHA-256 hash function. SHA-256 was # introduced in RHEL5.2. Therefore, clients older than RHEL5.2 will not # be able to interoperate with IPA server 3.x. # Please note that this script assumes /etc/openldap/cacerts as the # default CA certificate location. If this value is different on your # system the script needs to be modified accordingly. # Download the CA certificate of the IPA server mkdir -p -m 755 /etc/openldap/cacerts wget http://idm.example.com/ipa/config/ca.crt -O /etc/openldap/cacerts/ca.crt (...)
ipa-advise ユーティリティーを使用して Linux クライアントを設定するには、表示された指示をシェルスクリプトとして実行するか、指示を手動で実行します。
- スクリプトファイルを作成します。
[root@server ~]# ipa-advise config-redhat-nss-ldap > setup_script.sh
chmodユーティリティーを使用して実行パーミッションをファイルに追加します。[root@server ~]# chmod +x setup_script.sh
scpユーティリティーを使用してスクリプトをクライアントにコピーします。[root@server ~]# scp setup_script.sh root@client
- クライアント上でスクリプトを実行します。
[root@client ~]# ./setup_script.sh
重要
クライアント上でスクリプトを実行する前に、必ずスクリプトファイルを読み、注意深く見なおしてください。
ipa-advise で表示される指示をコマンドラインから実行します。
パート III. Linux ドメインと Active Directory ドメインの統合: 同期
第6章 Active Directory と Identity Management ユーザーの同期
6.1. サポートされる Windows プラットフォーム
- フォレスト機能レベルの範囲: Windows Server 2008 - Windows Server 2012 R2
- ドメイン機能レベルの範囲: Windows Server 2008 - Windows Server 2012 R2
- Windows Server 2012 R2
- Windows Server 2016
6.2. Active Directory および Identity Managementについて

図6.1 Active Directory および IdM の同期
表6.1 同期合意内の情報
| Windows 情報 | IdM 情報 |
|---|---|
|
|

図6.2 同期トポロジー
- 同期操作は 5 分ごとに実行されます。この頻度を変更するには、Active Directory ピア DN の
winSyncInterval属性を設定します。cn=meTowinserver.ad.example.com,cn=replica,cn=dc\3Didm\,dc\3Dexample\,dc\3Dcom,cn=mapping tree,cn=config
- 同期が設定できるのは、Active Directory ドメイン 1 つのみとなっています。
- また、同期は 1 つの Active Directory ドメインコントローラーでしか設定できません。
- ユーザー情報のみが同期され、グループ情報は同期されません。
- ユーザー属性とパスワードの両方を同期することができます。
- 変更は双方向 (Active Directory から IdM および IdM から Active Directory の両方向) で行われますが、アカウントの作成は、Active Directory から Identity Management の一方向でのみ行われます。新しいアカウントが Active Directory に作成されると、自動的に IdM に対して同期されます。ただし、ユーザーアカウントを IdM で作成した場合には、同期の前に Active Directory にも作成する必要があります。このような場合には、同期プロセスは、Active Directory の
sAMAccountName属性ではなく、IdM のuid属性と同じ値のアカウントを検索使用とします。IdMntUserDomainId属性が Active DirectoryobjectGUIDの値に設定されます。これらの属性は、グローバルで一意かつ不変の値で、移動または名前の変更があった場合でもエントリーはそのまま同期されます。 - アカウントロック情報はデフォルトで同期され、1 つのドメインで無効にされているユーザーアカウントは他方のドメインでも無効にされます。
- パスワードの変更は即時に有効になります。ユーザーパスワードが 1 つのピアで追加または変更される場合、その変更は他のピアサーバーに即時に伝播します。パスワード同期クライアントは、新規パスワードまたはパスワード更新を同期します。パスワード同期クライアントがインストールされている場合には、IdM と Active Directory の両方のハッシュ化形式で保存されている既存のパスワードについては、暗号化を解除したり、同期したりすることができないため、既存のパスワードは同期されません。ピアサーバー間の同期を開始するにはユーザーパスワードを変更する必要があります。
- 合意は 1 つしか使用できませんが、PassSync サービスは各 Active Directory サーバーにインストールする必要があります。
6.3. 同期された属性について
注記
Identity Management および Windows サーバーで同一のユーザースキーマ
- cn[1]
- physicalDeliveryOfficeName
- 説明
- postOfficeBox
- destinationIndicator
- postalAddress
- facsimileTelephoneNumber
- postalCode
- givenname
- registeredAddress
- homePhone
- sn
- homePostalAddress
- st
- initials
- street
- l
- telephoneNumber
- mail
- teletexTerminalIdentifier
- mobile
- telexNumber
- o
- title
- ou
- userCertificate
- pager
- x121Address
表6.2 Identity Management と Active Directory 間でマップされるユーザースキーマ
| Identity Management | Active Directory |
|---|---|
| cn[a] | name |
| nsAccountLock | userAccountControl |
| ntUserDomainId | sAMAccountName |
| ntUserHomeDir | homeDirectory |
| ntUserScriptPath | scriptPath |
| ntUserLastLogon | lastLogon |
| ntUserLastLogoff | lastLogoff |
| ntUserAcctExpires | accountExpires |
| ntUserCodePage | codePage |
| ntUserLogonHours | logonHours |
| ntUserMaxStorage | maxStorage |
| ntUserProfile | profilePath |
| ntUserParms | userParameters |
| ntUserWorkstations | userWorkstations |
[a]
cn は、Identity Management から Active Directory に同期される場合には、cn から cn に直接マッピングされます。Active Directory から同期する場合には、cn は Active Directory の name 属性から Identity Management のcn 属性にマッピングされます。
| |
6.3.1. Identity Management と Active Directory 間のユーザースキーマの相違点
6.3.1.1. cn 属性の値
cn 属性に複数の値を設定できますが、Active Directory ではこの属性には単一の値しか設定できせん。Identity Management の cn 属性が同期されると、単一の値のみが Active Directory ピアに送信されます。
cn 値が Active Directory エントリーに追加され、その値が Identity Management の cn の値のいずれでもない場合には、Identity Management の cn 値はすべて単一の Active Directory 値で上書きされます。
cn 属性をその命名属性として使用するのに対し、Identity Management は uid を使用する点があります。つまり、cn 属性が Identity Management で編集する可能性がある場合には、エントリーの名前が完全に (および間違って) 変更されてしまう可能性があります。
6.3.1.2. street および streetAddress の値
streetAddress 属性を使用します。これは 389 Directory Server が street 属性を使用する方法に相当します。Active Directory および Identity Management が streetAddress および street 属性を使用する方法には 2 つの重要な相違点があります。
- 389 Directory Server では、
streetAddressはstreetのエイリアスです。Active Directory にもstreet属性がありますが、streetAddressのエイリアスではなく、別の属性で個別の値を保持することができます。 - Active Directory は
streetAddressとstreetを単一値の属性として定義しますが、389 Directory Server は RFC 4519 に指定されているようにstreetを複数値の属性として定義します。
streetAddress および street 属性を処理する方法が異なるため、Active Directory と Identity Management で address 属性を設定する場合には以下の 2 つのルールに従う必要があります。
- 同期プロセスでは、Active Directory エントリーの
streetAddressを Identity Management のstreetにマッピングします。競合を避けるために、street属性は Active Directory では使用しないようにしてください。 - Identity Management
street属性値 1 つのみが Active Directory に同期されます。streetAddress属性が Active Directory で変更され、新しい値が Identity Management に存在しない場合には、Identity Management のstreet属性値が新しい Active Directory の値に置き換えられます。
6.3.2. Active Directory エントリーおよび POSIX 属性
uidNumber と gidNumber 属性値が含まれる場合には、WinSync はこの値を Identity Management には同期せず、Identity Management に新しい UID と GID の値を作成します。
uidNumber と gidNumber の値は Active Directory と Identity Management では異なります。
6.4. 同期用の Active Directory の設定
6.4.1. 同期用の Active Directory ユーザーの作成
- 同期用のユーザーアカウントには、同期先の Active Directory サブツリーに対して ディレクトリーに加えられた変更を複製する 権限を付与します。同期用のユーザーが同期操作を行うには、レプリケーターの権限が必要です。レプリケーターの権限は、http://support.microsoft.com/kb/303972 で説明されています。
- 同期ユーザーを Account Operators および Enterprise Read-only Domain Controllers グループのメンバーとして追加します。このユーザーは、Domain Admins グループに所属する必要はありません。
6.4.2. Active Directory 証明局の設定
6.5. 同期合意の管理
6.5.1. 同期合意の作成
ipa-replica-manage connect コマンドを使用して作成します。Active Directory に対して暗号化された接続を確立するには、IdM は Windows CA 証明書を信頼する必要があります。
- root 証明局 (CA) の証明書は IdM サーバーにコピーします。
- Active Directory CA 証明書が自己署名されている場合は、以下の手順を実行します。
- Windows サーバー上の Active Directory CA 証明書をエクスポートします。
- Super key+R のキーボードの組み合わせを押して、実行 ダイアログを開きます。
certsrv.mscを入力して をクリックします。- ローカルの証明局の名前を右クリックして、プロパティー を選択します。
- 全般 タブの CA 証明局 でエクスポートする証明書を選択し、 をクリックします。
- 詳細 タブで、 をクリックして 証明書のエクスポートウィザード を起動します。
- をクリックしてから、base-64 でエンコードされた X.509 (.CER) を選択します。

- エクスポートされたファイルに適切なディレクトリーおよびファイル名を指定します。 をクリックして証明書をエクスポートしてから、をクリックします。
- エクスポートされた証明書を IdM サーバーマシンにコピーします。
- Active Directory CA 証明書が外部の CA で署名されている場合は、以下の手順を実行します。
- どの証明書が CA root 証明書かを見つけるには、証明書チェーンを表示します。
# 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 Root CA 2で署名されたCN=Demo CA-1で署名されています。つまり、CN=Demo Root CA 2が root CA であることが分かります。 - CA 証明書を IdM サーバーにコピーします。
- IdM サーバー上の既存の Kerberos 資格情報を削除します。
$ kdestroy
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 は Active Directory アカウントのこの 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)。
- プロンプトが出されたら、Directory Manager のパスワードを入力します。
- これはオプションです。「パスワード同期のセットアップ」 に説明されているようにパスワードの同期を設定します。パスワード同期クライアントがない場合には、ユーザー属性はピアサーバー間で同期されますが、パスワードは同期されません。
注記
パスワード同期クライアントはパスワードの変更を取り込み、Active Directory と IdM 間でこれらの変更を同期します。つまり、そのクライアントは新規パスワードまたはパスワード更新を同期します。パスワード同期クライアントがインストールされている場合には、IdM と Active Directory の両方のハッシュ化形式で保存されている既存のパスワードについては、暗号化を解除したり、同期したりすることができないため、既存のパスワードは同期されません。ピアサーバー間の同期を開始するにはユーザーパスワードを変更する必要があります。
6.5.2. ユーザーアカウント属性の同期動作の変更
ldapmodify コマンドを使用して LDAP サーバーエントリーを直接変更します。
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: 新規ユーザーエントリーに追加するオブジェクトクラスの一覧が実際に含まれる設定エントリーの属性を設定します。デフォルト値:ipauserobjectclassesipaWinSyncHomeDirAttr: POSIX ホームディレクトリーのデフォルトの場所を含むエントリー内の属性を識別します。デフォルト値:ipaHomesRootDiripaWinSyncUserAttr: Active Directory ユーザーが Active Directory ドメインから同期される場合に AD ユーザーに追加する特定の値で追加の属性を設定します。この属性が複数値の属性の場合は、これを複数回設定でき、同期プロセスは値のすべてをエントリーに追加します。例:ipaWinSyncUserAttr: attributeName attributeValue注記
これにより、エントリーに属性が存在しない場合に属性値のみが設定されます。属性が存在する場合はエントリーの値は Active Directory エントリーの同期時に使用されます。ipaWinSyncForceSync: 既存の AD ユーザーに一致する既存の IdM ユーザーが強制的に同期されるかどうかを設定します。trueに設定すると、一致する IdM ユーザーが自動的に編集され、同期されます。使用可能な値:true | falsean IdM ユーザーに、既存の Active Directory ユーザーのsAMAccountNameと同一のuidパラメーターがある場合には、そのアカウントはデフォルトでは同期 されません。この属性は、同期サービスに対して、ntUserおよびntUserDomainIdを IdM ユーザーエントリーに自動的に追加し、同期されるように指示します。
ユーザーアカウントのロックパラメーター
ipaWinSyncAcctDisable: アカウントロックアウト属性を同期する方法を設定します。有効にするアカウントロックアウト設定を制御することができます。たとえば、to_adは、アカウントロックアウト属性が IdM に設定される場合に、その値が Active Directory に対して同期され、ローカルの Active Directory 値を上書きすることを意味します。デフォルトでは、アカウントロックアウト属性は両方のドメインから同期されます。使用可能な値:both(デフォルト)、to_ad、to_ds、noneipaWinSyncInactivatedFilter: 非アクティブ化された (無効にされた) ユーザーを保持するために使用されるグループの DN 検索用のフィルターを設定します。これは、ほとんどの実装では変更する必要はありません。デフォルト値:(&(cn=inactivated)(objectclass=groupOfNames))
グループのパラメーター
ipaWinSyncDefaultGroupAttr: ユーザーのデフォルトグループを確認するために参照する新規ユーザーアカウントの属性を設定します。その後、エントリーのグループ名がユーザーアカウントのgidNumberの検索に使用されます。デフォルト値:ipaDefaultPrimaryGroupipaWinSyncDefaultGroupFilter: ユーザーのデフォルトグループを確認するために参照する新規ユーザーアカウントの属性を設定します。その後、エントリーのグループ名がユーザーアカウントのgidNumberの検索に使用されます。デフォルト値:ipaDefaultPrimaryGroup
レルムのパラメーター
ipaWinSyncRealmAttr: レルムエントリーにレルム名を含む属性を設定します。デフォルト値:cnipaWinSyncRealmFilter: IdM レルム名を含むエントリーの検索に使用する検索フィルターを設定します。デフォルト値:(objectclass=krbRealmContainer)
6.5.3. 同期された Windows サブツリーの変更
cn=users,cn=accounts,$SUFFIX となり、Active Directory の場合は、デフォルトは CN=Users,$SUFFIX となります。
--win-subtree オプションを使用して同期合意が作成される場合はデフォルト以外の値に設定できます。この合意の作成後に、ldapmodify コマンドを使用し、同期合意エントリー内の nsds7WindowsReplicaSubtree値を編集して Active Directory サブツリーを変更できます。
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< ...
- 同期合意を変更します。
[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. 一方向同期の設定
oneWaySync パラメーターを設定します。許容値は、fromWindows (Active Directory から Identity Management への同期) および toWindows (Identity Management から Active Directory への同期) です。
[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
重要
6.5.5. 同期合意の削除
ipa-replica-manage disconnect コマンドおよび Active Directory サーバーのホスト名が使用されます。
- 同期合意を削除します。
# ipa-replica-manage disconnect adserver.ad.example.com
- 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 - Active Directory サーバーデータベースから IdM CA 証明書を削除します。
# certutil -D -d /etc/dirsrv/slapd-IDM-EXAMPLE-COM/ -n "CN=adserver,DC=ad,DC=example,DC=com"
6.5.6. Winsync 契約のエラー
同期合意における最も一般的なエラーの 1 つは、IdM サーバーが Active Directory サーバーに接続できないことです。
"Update failed! Status: [81 - LDAP error: Can't contact LDAP server]
/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
# certutil -d /etc/dirsrv/slapd-DOMAIN-NAME -D -n "Imported CA"
ユーザーデータベースの一部のエントリーについて、エントリーがすでに存在するためにパスワードはリセットされないという情報のエラーメッセージが表示される可能性があります。
"Windows PassSync entry exists, not resetting password"
6.6. パスワード同期の管理
注記
6.6.1. パスワード同期のための Windows Server のセットアップ
- Active Directory が SSL で実行されていること。
注記
Enterprise Root Mode で Microsoft 証明書システムをインストールします。次に Active Directory はその SSL サーバー証明書を取得するために自動的に登録されます。 - パスワード同期サービスが 各 Active Directory ドメインコントローラーでインストールされていること。Windows からのパスワードを同期するには、PassSync サービスが暗号化されていないパスワードにアクセスし、安全な IdM 接続上でこれを同期する必要があります。ユーザーはパスワードを各ドメインコントローラー上で変更することができるため、PassSync サービスを各ドメインコントローラーにインストールする必要があります。
- IdM と Active Directory 側でパスワードポリシーが同様に設定されていること。同期先で更新済みパスワードを受け取る際には、ソース上のポリシーに対してのみ検証が行われます。同期先での再検証は行われません。
> dsquery * -scope base -attr pwdProperties
pwdProperties
1pwdProperties が 1 に設定されていれば、そのドメインのパスワード複雑性が有効になっています。
注記
- コマンドラインから
gpmc.mscを実行します。 - を選択します。
- → → を開きます。
- エントリーを右クリックして、 を選択します。

Group Policy Management Editorが自動的に開きます。- → → → → → を開きます。
Password must meet complexity requirementsオプションを有効にし、保存します。
6.6.2. パスワード同期のセットアップ
PassSync.msiファイルを Active Directory マシンにダウンロードします。- カスタマーポータルにログインします。
- 左上の ダウンロード リンクをクリックします。
- Red Hat Enterprise Linux を選択します。
- Red Hat Enterprise Linux 6 または Red Hat Enterprise Linux 7 のバージョンとアーキテクチャーを選択します。
- 「今すぐダウンロードする」ボタンをクリックして PassSync Installer をダウンロードします。
注記
Red Hat Enterprise Linux アーキテクチャーの種類を問わず、利用できる 2 つの PassSync パッケージがあります。1 つは 32-bit Windows サーバー用で、もう 1 つは 64-bit 用です。お使いの Windodws プラットフォームに適したパッケージを選択するようにしてください。- Password Synchronization MSI ファイルをダブルクリックして、これをインストールします。
- Password Synchronrization Setup 画面が表示されます。Next を押して、インストールを開始します。
- 以下の情報を入力し、IdM サーバーへの接続を設定します。
- ホスト名およびセキュアなポート番号を含む IdM サーバー接続情報。
- Active Directory マシンに接続するために IdM が使用するシステムユーザーのユーザー名。このアカウントは、同期が IdM サーバー上に設定される場合に自動的に設定されます。デフォルトのアカウントは
uid=passsync,cn=sysaccounts,cn=etc,dc=example,dc=comです。 - 同期合意の作成時に
--passsyncオプションに設定されるパスワード。 - IdM サーバー上の People サブツリーの検索ベース。Active Directory サーバーは、IdM またはレプリケーション操作の場合と同様に
ldapsearchサーバーに接続します。そのため、IdM サブツリーのどこでユーザーアカウントを検索できるかを認識している必要があります。ユーザーサブツリーはcn=users,cn=accounts,dc=example,dc=comです。 - 証明書トークンはこの時点では使用されないため、このフィールドは空白にする必要があります。
を押してから を押し、Password Synchronization をインストールします。 - IdM サーバーの CA 証明書を PassSync 証明書ストアにインポートします。
- IdM サーバーの CA 証明書を
http://ipa.example.com/ipa/config/ca.crtからダウンロードします。 - IdM CA 証明書を Active Directory サーバーにコピーします。
- IdM CA 証明書をパスワード同期データベースにインストールします。以下が例になります。
cd "C:\Program Files\Red Hat Directory Password Synchronization" certutil.exe -d . -A -n "IPASERVER.EXAMPLE.COM IPA CA" -t CT,, -a -i ipaca.crt
- Windows マシンを再起動して、Password Synchronization を開始します。
注記
Windows マシンは再起動されている必要があります。再起動しないとPasswordHook.dllは有効にされず、パスワードの同期は機能しません。 - 既存のアカウントのパスワードを同期する必要がある場合、ユーザーパスワードをリセットします。
注記
パスワード同期クライアントはパスワードの変更を取り込み、Active Directory と IdM 間でこれらの変更を同期します。つまり、そのクライアントは新規パスワードまたはパスワード更新を同期します。パスワード同期クライアントがインストールされている場合には、IdM と Active Directory の両方のハッシュ化形式で保存されている既存のパスワードについては、暗号化を解除したり、同期したりすることができないため、既存のパスワードは同期されません。ピアサーバー間の同期を開始するにはユーザーパスワードを変更する必要があります。
.msi でインストールされます。
admin グループのメンバーのパスワードは同期できません。これは、例えば、パスワード同期エージェントや低レベルのユーザー管理者によるトップレベルの管理者のパスワードを変更できないようにするためのものです。
注記
cn は他の同期属性とは異なる処理がされます。Identity Management から Active Directory に同期される場合には、cn から cn に直接同期されますが、Active Directory から Identity Management の場合は、cn は Windows の name 属性から Identity Management の cn 属性にマッピングされます。
第7章 同期から信頼への既存環境の移行
7.1. ipa-winsync-migrate を使用した同期から信頼への自動移行
重要
ipa-winsync-migrate ユーティリティーは、Red Hat Enterprise Linux 7.2 およびそれ以降を稼働中のシステムでのみ利用可能です。
7.1.1. ipa-winsync-migrate を使った移行の仕組み
ipa-winsync-migrate ユーティリティーは、同期済みユーザーすべてを AD フォレストから移行します。この間、既存の Winsync 環境は維持され、これが AD 信頼に送信されます。Winsync 合意で作成された各 AD ユーザーには、ipa-winsync-migrate がデフォルト信頼ビュー内に ID 上書きを作成します (「Active Directory のデフォルト信頼ビュー」 を参照)。
- AD ユーザーの ID 上書きに、Winsync 内のオリジナルのエントリーから以下の属性がコピーされます。
- ログイン名 (
uid) - UID 番号 (
uidnumber) - GID 番号 (
gidnumber) - ホームディレクトリー (
homedirectory) - GECOS エントリー (
gecos)
- AD 信頼内のユーザーアカウントは、以下を含む IdM 内の元の設定を保持します。
- POSIX 属性
- ユーザーグループ
- ロールベースのアクセス制御ルール
- ホストベースのアクセス制御ルール
- SELinux メンバーシップ
sudoルール
- 新規 AD ユーザーが外部 IdM グループのメンバーとして追加されます。
- 元の Winsync レプリケーション合意、元の同期済みユーザーアカウント、ユーザーアカウントのローカルコピーすべてが削除されます。
7.1.2. ipa-winsync-migrate を使用した移行方法
ipa-backupユーティリティーを使って IdM 設定をバックアップする。Linux ドメイン ID、認証、およびポリシーガイド の 『Backing Up and Restoring Identity Management』 を参照してください。理由: 移行は、IdM 設定および多くのユーザーアカウントに多大な影響を及ぼします。バックアップを作成することで、必要な場合は元の設定を復元することができます。
- 同期されたドメインで信頼を作成します。5章Active Directory および Identity Management によるフォレスト間の信頼作成 を参照してください。
ipa-winsync-migrateを実行して、AD レルムと、AD ドメインコントローラーのホスト名を指定してください。# ipa-winsync-migrate --realm example.com --server ad.example.com
ipa-winsync-migrateが作成した上書き内で競合が発生した場合は、この競合についての情報が表示されますが、移行は継続されます。- ADサーバーからのパスワード同期サービスをアンインストールします。これにより、AD ドメインコントローラーから同期合意が削除されます。
7.2. ID ビューを使用した同期から信頼への手動での移行
- 元の同期したユーザーまたはグループエントリーのバックアップを作成します。
- 同期されたドメインで信頼を作成します。信頼を作成する方法についての詳細は、5章Active Directory および Identity Management によるフォレスト間の信頼作成 を参照してください。
- 同期されたすべてのユーザーまたはグループについては、IdM で生成される UID および GID を保持するために以下のいずれかを実行します。
- 特定のホストに適用される ID ビューを個別に作成し、ユーザー ID 上書きを view に追加する。
- デフォルト信頼ビューでユーザー ID 上書きを作成する。
詳細は、「ホスト毎にユーザーアカウントで異なる属性値を定義する」を参照してください。注記
ID ビューを管理できるのは IdM ユーザーのみで、AD ユーザーは管理できません。 - 元の同期したユーザーまたはグループエントリーを削除します。
第8章 Active Directory 環境での ID ビューの使用
注記
- POSIX 属性や SSH ログイン詳細といった AD ユーザー属性の上書き
- 詳細は、「ID ビューを使った AD ユーザー属性の定義」 を参照してください。
- 同期ベースから信頼ベースの統合への移行
- 詳細は、「ID ビューを使用した同期から信頼への手動での移行」 を参照してください。
- IdM ユーザー属性のホストごとのグループ上書きの実行
- 詳細は、「NIS ドメインの IdM への移行」 を参照してください。
8.1. Active Directory のデフォルト信頼ビュー
8.1.1. デフォルト信頼ビューとは
ipa-adtrust-install を使用して信頼を確立すると自動で作成され、削除することはできません。
表8.1 デフォルト信頼ビューの適用
| AD 内の値 | デフォルト信頼ビュー | 結果 | ||
|---|---|---|---|---|
| ログイン | ad_user | ad_user | → | ad_user |
| UID | 111 | 222 | → | 222 |
| GID | 111 | (値なし) | → | 111 |
注記
8.1.2. 他の ID ビューによるデフォルト信頼ビューの上書き
- ホスト固有の ID ビューで属性が定義されている場合は、IdM はこのビューからの値を適用します。
- ホスト固有の ID ビューで属性が定義されていない場合は、IdM はデフォルト信頼ビューからの値を適用します。
表8.2 デフォルト信頼ビューの上にホスト固有の ID ビューを適用する
| AD 内の値 | デフォルト信頼ビュー | ホスト固有のビュー | 結果 | ||
|---|---|---|---|---|---|
| ログイン | ad_user | ad_user | (値なし) | → | ad_user |
| UID | 111 | 222 | 333 | → | 333 |
| GID | 111 | (値なし) | 333 | → | 333 |
8.1.3. クライアントのバージョンに基づいたクライアントでの ID オーバーライド位
- レガシークライアント: RHEL 6.3 以前 (SSSD 1.8 以前)
- このクライアントは、固有の ID ビューを要求して適用することができます。レガシークライアントでホスト固有の ID ビューを使用するには、クライアントのベース DN を
cn=id_view_name,cn=views,cn=compat,dc=example,dc=comに変更します。 - RHEL 6.4 から 7.0 (SSSD 1.9 から 1.11)
- このクライアントでのホスト固有の ID ビューはサポートされていません。
- RHEL 7.1以降 (SSSD 1.12以降)
- 完全サポート
8.2. ID 競合の解決
8.3. ID ビューを使った AD ユーザー属性の定義
注記
- 新規 ID ビューを作成します。
- ID ビューにユーザー ID 上書きを追加し、必要な属性値を指定します。
- ID ビューを特定のホストに適用します。
8.4. NIS ドメインの IdM への移行
- IdMドメインにユーザーおよびグループを作成します。詳細は以下を参照してください。
- ID ビューを既存ホストに使用して、ユーザー作成中に IdM が生成した ID を上書きします。
- 個別の ID ビューを作成します。
- ユーザーおよびグループの ID 上書きを ID ビューに追加します。
- ID ビューを特定のホストに割り当てます。
詳細は、「ホスト毎にユーザーアカウントで異なる属性値を定義する」を参照してください。 - 『Linux ドメイン ID、認証、およびポリシーガイド』に従い、「LinuxのドメインID、認証、およびポリシーガイドのインストールとアンインストール」 をします。
- NIS ドメインの使用を停止します。
8.5. ショートネームを使用したユーザーやグループの解決/認証に対する設定オプション
user_name@domain や domain\user_name の完全修飾名形式ではなく、略式のユーザーまたはグループ名を使用して、Active Directory (AD) 環境のユーザーやグループを解決し、認証できるような設定オプションについて説明します。これは、以下のいずれかで設定できます。
- AD を信頼するアイデンティティ管理 (IdM)
- SSSD で AD が連携された Red Hat Enterprise Linux
8.5.1. ドメイン解決の概要
domain resolution order オプションを使用してドメイン一覧の検索順を指定し、特定のユーザー名に一致するアイテムを返すことができます。以下のいずれかにオプションを設定できます。
- サーバー上の設定方法は、以下を参照してください。
- クライアント上の設定方法は、「「IdM クライアントでのドメイン解決順の設定」」を参照してください。
domain resolution order オプションを設定できます。クライアントが 3 つの場所を参照する順番は、以下のとおりです。
- ローカルの
sssd.conf設定 - ID ビューの設定
- グローバルの IdM 設定
注記
- ユーザー名が複数のドメインに存在する場合
- SSSD 設定に
default_domain_suffixオプションが含まれており、このオプションで指定していないドメインに要求を送信する場合
8.5.2. Identity Managment サーバー上でのドメイン解決順の設定
8.5.2.1. ドメイン解決順のグローバル設定
ipa config-mod コマンドを使用します。たとえば、複数のサブドメインを使用する AD フォレストを信頼する IdM ドメインでは、以下を実行します。
$ ipa config-mod --domain-resolution-order='idm.example.com:ad.example.com:subdomain1.ad.example.com:subdomain2.ad.example.com' Maximum username length: 32 Home directory base: /home ... Domain Resolution Order: idm.example.com:ad.example.com:subdomain1.ad.example.com:subdomain2.ad.example.com ...このような方法でドメイン解決順を設定した場合には、IdM ドメイン、信頼済みの AD フォレストのどちらからのユーザーであっても、ショートネームだけを使用してログインできます。
8.5.2.2. ID ビューのドメイン解決順の設定
domain resolution orderオプションセットで ID ビューを作成します。$ ipa idview-add example_view --desc "ID view for custom shortname resolution on server.idm.example.com" --domain-resolution-order subdomain2.ad.example.com:subdomain1.ad.example.com --------------------------------- Added ID View "example_view" --------------------------------- ID View Name: example_view Description: ID view for custom shortname resolution on server.idm.example.com Domain Resolution Order: subdomain2.ad.example.com:subdomain1.ad.example.com
- 以下のように、クライアントにこのビューを適用します。
$ ipa idview-apply example_view --hosts server.idm.example.com ----------------------------------- Applied ID View "example_view" ----------------------------------- hosts: server.idm.example.com --------------------------------------------- Number of hosts the ID View was applied to: 1 ---------------------------------------------
8.5.3. IdM クライアントでのドメイン解決順の設定
/etc/sssd/sssd.conf ファイルの [sssd] セクションで、domain_resolution_order オプションを設定します。
domain_resolution_order = subdomain1.ad.example.com, subdomain2.ad.example.com
domain_resolution_order オプションの詳細情報は、sssd.conf(5) man ページを参照してください。
付録A 改訂履歴
| 改訂履歴 | |||
|---|---|---|---|
| 改訂 7.0-46.1 | Thu Sep 20 2018 | ||
| |||
| 改訂 7.0-46 | Mon Oct 29 2018 | ||
| |||
| 改訂 7.0-45 | Mon Jun 25 2018 | ||
| |||
| 改訂 7.0-44 | Thu Apr 5 2018 | ||
| |||
| 改訂 7.0-43 | Wed Feb 28 2018 | ||
| |||
| 改訂 7.0-42 | Mon Feb 12 2018 | ||
| |||
| 改訂 7.0-41 | Mon Jan 29 2018 | ||
| |||
| 改訂 7.0-40 | Fri Dec 15 2017 | ||
| |||
| 改訂 7.0-39 | Mon Dec 6 2017 | ||
| |||
| 改訂 7.0-38 | Mon Dec 4 2017 | ||
| |||
| 改訂 7.0-37 | Mon Nov 20 2017 | ||
| |||
| 改訂 7.0-36 | Mon Nov 6 2017 | ||
| |||
| 改訂 7.0-35 | Mon Oct 23 2017 | ||
| |||
| 改訂 7.0-34 | Mon Oct 9 2017 | ||
| |||
| 改訂 7.0-33 | Tue Sep 26 2017 | ||
| |||
| 改訂 7.0-32 | Tue Jul 18 2017 | ||
| |||
| 改訂 7.0-31 | Tue May 23 2017 | ||
| |||
| 改訂 7.0-30 | Mon Apr 24 2017 | ||
| |||
| 改訂 7.0-29 | Mon Apr 10 2017 | ||
| |||
| 改訂 7.0-28 | Mon Mar 27 2017 | ||
| |||
| 改訂 7.0-27 | Mon Feb 27 2017 | ||
| |||
| 改訂 7.0-26 | Wed Nov 23 2016 | ||
| |||
| 改訂 7.0-25 | Tue Oct 18 2016 | ||
| |||
| 改訂 7.0-24 | Thu Jul 28 2016 | ||
| |||
| 改訂 7.0-23 | Thu Jun 09 2016 | ||
| |||
| 改訂 7.0-22 | Tue Feb 09 2016 | ||
| |||
| 改訂 7.0-21 | Fri Nov 13 2015 | ||
| |||
| 改訂 7.0-20 | Thu Nov 12 2015 | ||
| |||
| 改訂 7.0-19 | Fri Sep 18 2015 | ||
| |||
| 改訂 7.0-18 | Thu Sep 10 2015 | ||
| |||
| 改訂 7.0-17 | Mon Jul 27 2015 | ||
| |||
| 改訂 7.0-16 | Thu Apr 02 2015 | ||
| |||
| 改訂 7.0-15 | Fri Mar 13 2015 | ||
| |||
| 改訂 7.0-13 | Wed Feb 25 2015 | ||
| |||
| 改訂 7.0-11 | Fri Dec 05 2014 | ||
| |||
| 改訂 7.0-7 | Mon Sep 15 2014 | ||
| |||
| 改訂 7.0-5 | June 27, 2014 | ||
| |||
| 改訂 7.0-4 | June 13, 2014 | ||
| |||
| 改訂 7.0-3 | June 11, 2014 | ||
| |||
