1.3. AD への直接接続
System Security Services Daemon (SSSD) は、Red Hat Enterprise Linux (RHEL) システムを Active Directory (AD) に接続するために推奨されるコンポーネントです。SSSD のデフォルトである POSIX ID マッピングを使用するか、AD で定義された POSIX 属性を使用することで、AD と直接統合できます。
システムを AD に参加させる前に、Red Hat ナレッジベースソリューション Basic Prechecks Steps: RHEL Join With Active Directory using 'adcli', 'realm' and 'net' commands の手順に従って、システムが正しく設定されていることを確認してください。
1.3.1. AD との統合オプション: POSIX ID マッピングまたは POSIX 属性の使用
Linux システムおよび Windows システムは、ユーザーおよびグループに異なる識別子を使用します。
- Linux では、ユーザー ID (UID) と グループ ID (GID) が使用されます。基本的なシステム設定 の ユーザーアカウントおよびグループアカウントの管理の概要 を参照してください。Linux の UID および GID は、POSIX 標準に準拠します。
- Windows は、セキュリティー ID (SID) を使用します。
RHEL システムを AD に接続すると、AD のユーザー名とパスワードを使用して認証できます。名前の重複が原因で競合が生じ、認証プロセスが中断される可能性があるため、Windows ユーザーと同じ名前の Linux ユーザーを作成しないでください。
RHEL システムに対して AD ユーザーとして認証するには、UID と GID が割り当てられている必要があります。SSSD を使用すると、POSIX ID マッピングまたは AD の POSIX 属性を使用して AD と統合できます。デフォルトでは、POSIX ID マッピングが使用されます。
1.3.2. POSIX ID マッピングを使用した AD への接続
SSSD は、POSIX ID マッピングと呼ばれるプロセスで、AD ユーザーの SID を使用してアルゴリズムにより POSIX ID を生成します。POSIX ID マッピングでは、AD の SID と Linux 上の ID 間の関連付けを作成します。
- SSSD が新しい AD ドメインを検出すると、利用可能な ID の範囲を新しいドメインに割り当てます。
- AD ユーザーが SSSD クライアントマシンに初めてログインすると、SSSD は、ユーザーの SID およびそのドメインの ID 範囲を基にした UID など、SSSD キャッシュにユーザーのエントリーを作成します。
- AD ユーザーの ID は同じ SID から一貫した方法で生成されます。そのため、ユーザーはどの RHEL システムにログインしても、同じ UID と GID を持ちます。
全クライアントシステムが SSSD を使用して SID を Linux ID にマッピングすると、マッピングは一貫性を維持します。一部のクライアントが別のソフトウェアを使用する場合は、以下のいずれかを選択します。
- すべてのクライアントで同じマッピングアルゴリズムが使用されていることを確認します。
- AD に定義されている明示的な POSIX 属性を使用します。
詳細は、sssd-ad
man ページの ID マッピングに関するセクションを参照してください。
1.3.2.1. SSSD を使用した AD ドメインの検出および参加
この手順に従って、AD ドメインを検出し、SSSD を使用して RHEL システムをそのドメインに接続します。
前提条件
必要なポートが開いていることを確認する。
- DNS に AD ドメインコントローラーサーバーが使用されていることを確認します。
- 両方のシステムのシステム時刻が同期していることを確認します。これにより、Kerberos が正常に機能できるようになります。
手順
以下のパッケージをインストールします。
yum install samba-common-tools realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
# yum install samba-common-tools realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
Copy to Clipboard Copied! 特定のドメインの情報を表示するには、
realm discover
を実行して、検出するドメイン名を追加します。realm discover ad.example.com
# 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 required-package: oddjob required-package: oddjob-mkhomedir required-package: sssd required-package: adcli required-package: samba-common
Copy to Clipboard Copied! realmd
システムは DNS SRV ルックアップを使用して、このドメイン内のドメインコントローラーを自動検索します。注記realmd
システムは、Active Directory ドメインと Identity Management ドメインの両方を検出できます。両方のドメインが環境に存在する場合は、特定タイプのサーバーに検出結果を絞り込むには--server-software=active-directory
オプションを使用します。realm join
コマンドを使用して、ローカルの RHEL システムを設定します。realmd
スイートは、必要なすべての設定ファイルを自動的に編集します。たとえば、ad.example.com
ドメインの場合は、次のコマンドを実行します。realm join ad.example.com
# realm join ad.example.com
Copy to Clipboard Copied!
検証
管理者ユーザーなど、AD ユーザーの詳細を表示します。
getent passwd administrator@ad.example.com
# getent passwd administrator@ad.example.com administrator@ad.example.com:*:1450400500:1450400513:Administrator:/home/administrator@ad.example.com:/bin/bash
Copy to Clipboard Copied!
1.3.3. Active Directory で定義された POSIX 属性を使用した AD への接続
AD は、uidNumber
、gidNumber
、unixHomeDirectory
、loginShell
などの POSIX 属性を作成して保存できます。
POSIX ID マッピングを使用する場合、SSSD によって新しい UID と GID が作成されます。これにより、AD で定義された値がオーバーライドされます。AD で定義された値を保持するには、SSSD で POSIX ID マッピングを無効にする必要があります。
最適なパフォーマンスを得るには、POSIX 属性を AD グローバルカタログに公開します。POSIX 属性がグローバルカタログにない場合、SSSD は LDAP ポート上の個々のドメインコントローラーに直接接続します。
前提条件
必要なポートが開いていることを確認する。
- DNS に AD ドメインコントローラーサーバーが使用されていることを確認します。
- 両方のシステムのシステム時刻が同期していることを確認します。これにより、Kerberos が正常に機能できるようになります。
手順
以下のパッケージをインストールします。
yum install realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
# yum install realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
Copy to Clipboard Copied! --automatic-id-mapping=no
オプションを指定したrealm join
コマンドを使用して、POSIX ID マッピングを無効にしてローカル RHEL システムを設定します。realmd
スイートは、必要な設定ファイルをすべて自動的に編集します。たとえば、ad.example.com
ドメインの場合は、次のコマンドを実行します。realm join --automatic-id-mapping=no ad.example.com
# realm join --automatic-id-mapping=no ad.example.com
Copy to Clipboard Copied! すでにドメインに参加している場合は、SSSD で POSIX ID マッピングを手動で無効にできます。
-
/etc/sssd/sssd.conf
ファイルを開きます。 -
AD ドメインセクションで、
ldap_id_mapping = false
設定を追加します。 SSSD キャッシュを削除します。
rm -f /var/lib/sss/db/*
rm -f /var/lib/sss/db/*
Copy to Clipboard Copied! SSSD を再起動します。
systemctl restart sssd
systemctl restart sssd
Copy to Clipboard Copied!
-
SSSD は、ローカルで作成するのではなく、AD の POSIX 属性を使用するようになりました。
AD のユーザーに関連する POSIX 属性 (uidNumber
、gidNumber
、unixHomeDirectory
、および loginShell
) を設定する必要があります。
検証
管理者ユーザーなど、AD ユーザーの詳細を表示します。
getent passwd administrator@ad.example.com
# getent passwd administrator@ad.example.com administrator@ad.example.com:*:10000:10000:Administrator:/home/Administrator:/bin/bash
Copy to Clipboard Copied!
1.3.4. SSSD を使用したさまざまな AD フォレストでの複数ドメインへの接続
Active Directory (AD) Managed Service Account (MSA) を使用して、信頼関係のないさまざまなフォレストの AD ドメインにアクセスできます。
Accessing AD with a Managed Service Account を参照してください。