1.4. AD に直接接続

System Security Services Daemon (SSSD) は、Red Hat Enterprise Linux (RHEL) システムを Active Directory (AD) に接続するために推奨されるコンポーネントです。本セクションでは、SSSD のデフォルトである ID マッピングを使用するか、POSIX 属性を使用して、AD と直接統合する方法を説明します。

1.4.1. AD との統合オプション: 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 は、ID マッピングまたは POSIX 属性のいずれかを使用して AD と統合するオプションを提供します。デフォルトでは、ID マッピングを使用します。

AD ユーザー用に新規 UID および GID を自動的に生成

SSSD は、AD ユーザーの SID を使用して、ID マッピング と呼ばれるプロセスにおいてアルゴリズムで POSIX ID を生成できます。ID マッピングは、AD の SID と Linux の ID との間にマップを作成します。

  • SSSD が新しい AD ドメインを検出すると、利用可能な ID の範囲を新しいドメインに割り当てます。
  • AD ユーザーが SSSD クライアントマシンに初めてログインすると、SSSD は、ユーザーの SID およびそのドメインの ID 範囲を基にした UID など、SSSD キャッシュにユーザーのエントリーを作成します。
  • AD ユーザーの ID は、同じ SID から一貫した方法で生成されるため、Red Hat Enterprise Linux システムにログインする場合は、そのユーザーに同じ UID と GID が使用されます。

SSSD を使用した AD ドメインの検出および参加 を参照してください。

注記

全クライアントシステムが SSSD を使用して SID を Linux ID にマッピングすると、マッピングは一貫性を維持します。一部のクライアントが別のソフトウェアを使用する場合は、以下のいずれかを選択します。

  • すべてのクライアントで同じマッピングアルゴリズムが使用されていることを確認します。
  • AD に定義されている明示的な POSIX 属性を使用します。

AD で定義されている POSIX 属性の使用

AD は、uidNumbergidNumberunixHomeDirectoryloginShell などの POSIX 属性を作成して保存できます。

上記の ID マッピングを使用すると、SSSD は新しい UID と GID を作成し、AD で定義された値を上書きします。AD 定義の値を維持するには、SSSD で ID マッピングを無効にする必要があります。

Active Directory で定義された POSIX 属性を使用した AD への接続 を参照してください。

1.4.2. SSSD を使用した AD ドメインの検出および参加

この手順に従って、AD ドメインを検出し、SSSD を使用して RHEL システムをそのドメインに接続します。

前提条件

  • AD ドメインコントローラーの以下のポートが開いており、RHEL ホストからアクセス可能であることを確認します。

    表1.1 SSSD を使用した Linux システムの AD への直接統合に必要なポート

    サービスポートプロトコル備考

    DNS

    53

    UDP および TCP

     

    LDAP

    389

    UDP および TCP

     

    Samba

    445

    UDP および TCP

    AD グループポリシーオブジェクト (GPO) の場合

    Kerberos

    88

    UDP および TCP

     

    Kerberos

    464

    UDP および TCP

    パスワードを設定または変更するために、kadmin により使用されます。

    LDAP グローバルカタログ

    3268

    TCP

    id_provider = ad オプションが使用されている場合

    NTP

    123

    UDP

    任意

  • DNS に AD ドメインコントローラーサーバーが使用されていることを確認します。
  • 両方のシステムのシステム時刻が同期していることを確認します。これにより、Kerberos が正常に機能できるようになります。

手順

  1. 以下のパッケージをインストールします。

    # dnf install samba-common-tools realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
  2. 特定のドメインの情報を表示するには、realm detect を実行して、検出するドメイン名を追加します。

    # 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

    realmd システムは DNS SRV ルックアップを使用して、このドメイン内のドメインコントローラーを自動検索します。

    注記

    realmd システムは、Active Directory ドメインと Identity Management ドメインの両方を検出できます。両方のドメインが環境に存在する場合は、特定タイプのサーバーに検出結果を絞り込むには --server-software=active-directory オプションを使用します。

  3. realm join コマンドを使用して、ローカルの RHEL システムを設定します。realmd スイートは、必要なすべての設定ファイルを自動的に編集します。たとえば、ad.example.com ドメインの場合は、次のコマンドを実行します。

    # realm join ad.example.com

検証手順

  • 管理者ユーザーなど、AD ユーザーの詳細を表示します。

    # getent passwd administrator@ad.example.com
    administrator@ad.example.com:*:1450400500:1450400513:Administrator:/home/administrator@ad.example.com:/bin/bash

関連情報

  • man ページの realm(8) を参照してください。
  • man ページの nmcli(1) を参照してください。

1.4.3. Active Directory で定義された POSIX 属性を使用した AD への接続

最適なパフォーマンスを得るには、POSIX 属性を AD グローバルカタログに公開します。POSIX 属性がグローバルカタログにない場合、SSSD は LDAP ポート上の個々のドメインコントローラーに直接接続します。

前提条件

  • RHEL ホストの以下のポートが開放され、AD ドメインコントローラーからアクセスできることを確認している。

    表1.2 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

    任意

  • DNS に AD ドメインコントローラーサーバーが使用されていることを確認します。
  • 両方のシステムのシステム時刻が同期していることを確認します。これにより、Kerberos が正常に機能できるようになります。

手順

  1. 以下のパッケージをインストールします。

    # dnf install realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
  2. realm join コマンドに --automatic-id-mapping=no オプションを付けて実行して、ローカルの RHEL システムで ID マッピングを無効にします。realmd スイートは、必要な設定ファイルをすべて自動的に編集します。たとえば、ad.example.com ドメインの場合は、次のコマンドを実行します。

    # realm join --automatic-id-mapping=no ad.example.com
  3. ドメインに参加している場合は、SSSD で ID マッピングを手動で無効にできます。

    1. /etc/sssd/sssd.conf ファイルを開きます。
    2. AD ドメインセクションで、ldap_id_mapping = false 設定を追加します。
    3. SSSD キャッシュを削除します。

      rm -f /var/lib/sss/db/*
    4. SSSD を再起動します。

      systemctl restart sssd

SSSD は、ローカルで作成するのではなく、AD の POSIX 属性を使用するようになりました。

注記

AD のユーザーに関連する POSIX 属性 (uidNumbergidNumberunixHomeDirectory、および loginShell) を設定する必要があります。

検証手順

  • 管理者ユーザーなど、AD ユーザーの詳細を表示します。

    # getent passwd administrator@ad.example.com
    administrator@ad.example.com:*:10000:10000:Administrator:/home/Administrator:/bin/bash

関連情報

  • ID マッピングおよび ldap_id_mapping パラメーターの詳細は、man ページの sssd-ldap(8) を参照してください。

1.4.4. SSSD を使用したさまざまな AD フォレストでの複数ドメインへの接続

Active Directory (AD) Managed Service Account (MSA) を使用して、信頼関係のないさまざまなフォレストの AD ドメインにアクセスできます。

Accessing AD with a Managed Service Account を参照してください。