5.3. Active Directory の使用

このセクションでは、Satellite Server 用の外部認証ソースとして直接 Active Directory (AD) を使用する方法を示します。

注記

シングルサインオンサポートなしで、Active Directory を外部認証ソースとして接続できます。詳細は、「LDAP の使用」 を参照してください。設定例については、How to configure Active Directory authentication with TLS on Satellite を参照してください。

直接 AD 統合では、ID が保存されている AD ドメインに Satellite Server が直接参加します。推奨の設定には、以下の 2 つの手順が含まれます。

5.3.1. GSS-Proxy

Apache での Kerberos 認証の従来のプロセスでは、Apache プロセスが keytab ファイルへの読み取りアクセスを持っている必要があります。GSS-Proxy を使用すると、Kerberos 認証機能を保持しつつ keytab ファイルへのアクセスを削除することにより Apache サーバーに対してより厳密な権限の分離を実行できます。AD を Satellite の外部認証ソースとして使用する場合は、keytab ファイルのキーがホストキーと同じであるため、GSS-proxy を実装することが推奨されます。

Satellite Server のベースオペレーティングシステムとして動作する Red Hat Enterprise Linux で以下の手順を実行します。本セクションの例では、EXAMPLE.ORG が AD ドメインの Kerberos レルムです。手順を完了すると、EXAMPLE.ORG レルムに属するユーザーは Satellite Server にログインできます。

5.3.2. Satellite Server の AD サーバーへの登録

Satellite CLI で、Active Directory サーバーに Satellite Server を登録します。

前提条件

  • GSS-proxy と nfs-utils がインストールされていること。

    GSS-proxy と nfs-utils をインストールします。

    # satellite-maintain packages install gssproxy nfs-utils

手順

  1. 必要なパッケージをインストールします。

    # satellite-maintain packages install sssd adcli realmd ipa-python-compat krb5-workstation samba-common-tools
  2. Satellite Server を AD サーバーに登録します。以下のコマンドを実行するには、管理者パーミッションが必要な場合があります。

    # realm join -v EXAMPLE.ORG --membership-software=samba -U Administrator
    注記

    「GSS-Proxy を使用した直接 AD 統合の設定」 で HTTP キータブを作成できるようにするには、Samba クライアントソフトウェアを使用して AD サーバーに登録する必要があります。

5.3.3. GSS-Proxy を使用した直接 AD 統合の設定

Satellite CLI で、GSS-proxy を使用する直接 Active Directory 統合を設定します。

前提条件

手順

  1. /etc/ipa/ ディレクトリーと default.conf ファイルを作成します。

    # mkdir /etc/ipa
    # touch /etc/ipa/default.conf
  2. default.conf ファイルに以下のコンテンツを追加します。

    [global]
    server = unused
    realm = EXAMPLE.ORG
  3. 以下の内容で /etc/net-keytab.conf ファイルを作成します。

    [global]
    workgroup = EXAMPLE
    realm = EXAMPLE.ORG
    kerberos method = system keytab
    security = ads
  4. Apache ユーザーの有効なユーザー ID を特定します。

    # id apache

    Apache ユーザーには keytab ファイルへのアクセス権を割り当てないでください。

  5. 以下の内容で /etc/gssproxy/00-http.conf ファイルを作成します。

    [service/HTTP]
    mechs = krb5
    cred_store = keytab:/etc/httpd/conf/http.keytab
    cred_store = ccache:/var/lib/gssproxy/clients/krb5cc_%U
    euid = ID_of_Apache_User
  6. keytab エントリーを作成します。

    # KRB5_KTNAME=FILE:/etc/httpd/conf/http.keytab net ads keytab add HTTP -U administrator -d3 -s /etc/net-keytab.conf
    # chown root.apache /etc/httpd/conf/http.keytab
    # chmod 640 /etc/httpd/conf/http.keytab
  7. Satellite で IPA 認証を有効にします。

    # satellite-installer --foreman-ipa-authentication=true
  8. gssproxy サービスを起動して、有効にします。

    # systemctl restart gssproxy
    # systemctl enable --now gssproxy
  9. Apache サーバーが gssproxy サービスを使用するように設定するには、systemd ドロップインファイルを作成し、以下の内容を追加します。

    # mkdir -p /etc/systemd/system/httpd.service.d/
    # vi /etc/systemd/system/httpd.service.d/gssproxy.conf
    [Service]
    Environment=GSS_USE_PROXY=1
  10. 変更をサービスに適用します。

    # systemctl daemon-reload
  11. httpd サービスを起動して、有効にします。

    # systemctl restart httpd
重要

直接 AD 統合では、Red Hat Identity Management を介した HBAC は利用できません。代わりに、管理者が AD 環境でポリシーを一元管理することを可能にする Group Policy Objects (GPO) を使用できます。GPO から PAM サービスへのマッピングが正しいことを確認するには、以下の SSSD 設定を /etc/sssd/sssd.conf に追加します。

access_provider = ad
ad_gpo_access_control = enforcing
ad_gpo_map_service = +foreman

ここでは、foreman は PAM サービスの名前です。GPO の詳細は、RHEL システムと Windows Active Directory を直接統合SSSD が GPO アクセス制御ルールを解釈する方法 を参照してください。

検証

SSO が想定どおりに動作していることを確認します。

Apache サーバーが実行中であり、クライアントに有効な Kerberos チケットがある場合、サーバーに対して HTTP 要求を行うユーザーは認証されます。

  1. 次のコマンドを使用して、LDAP ユーザーの Kerberos チケットを取得します。

    # kinit ldapuser
  2. 以下のコマンドを使用して、Kerberos チケットを表示します。

    # klist
  3. 以下のコマンドを使用して、SSO 認証に成功時の出力を表示します。

    # curl -k -u : --negotiate https://satellite.example.com/users/extlogin

    これにより、以下の応答が返されます。

    <html><body>You are being <a href="https://satellite.example.com/users/4-ldapuserexample-com/edit">redirected</a>.</body></html>

5.3.4. Web ブラウザーでの Kerberos の設定

Firefox の設定は、Red Hat Enterprise Linux RHEL での認証および認可の設定 ガイドの Single Sign-On に Kerberos を使用するための Firefox の設定 を参照してください。

Internet Explorer ブラウザーを使用している場合は、Satellite Server をローカルイントラネットまたは信頼済みサイトのリストに追加し、統合 Windows 認証を使用する の設定にチェックを入れます。詳細については、Internet Explorer のマニュアルを参照してください。

5.3.5. フォレスト間信頼を使用する Active Directory

Kerberos では、cross-forest trust を作成して、2 つの異なるドメインフォレスト間の関係を定義できます。ドメインフォレストとは、ドメインの階層構造のことで、AD と Red Hat Identity Management の両方でフォレストが形成されます。AD と Red Hat Identity Management との間での有効な信頼関係により、AD のユーザーは一連の認証情報を使用して Linux ホストおよびサービスにアクセスできます。フォレスト間の信頼の詳細については、Red Hat Enterprise Linux Identity Management の計画IdM と AD との間のフォレスト間の信頼の計画 を参照してください。

Satellite 側から見ると、設定プロセスは、フォレスト間の信頼を設定せずに Red Hat Identity Management サーバーと統合する場合と同じです。Satellite Server は IdM ドメインに登録し、「Red Hat Identity Management の使用」 で説明されているように統合する必要があります。

5.3.6. フォレスト間信頼を使用するための Red Hat Identity Management サーバーの設定

Red Hat Identity Management サーバーで、cross-forest trust を使用するようにサーバーを設定します。

手順

  1. HBAC を有効にします。

    1. 外部グループを作成して、この外部グループに AD グループを追加します。
    2. 新しい外部グループを POSIX グループに追加します。
    3. HBAC ルールで POSIX グループを使用します。
  2. AD ユーザーの追加属性を転送するよう sssd を設定します。

    • この AD ユーザー属性を /etc/sssd/sssd.confnss セクションと domain セクションに追加します。以下に例を示します。

      [nss]
      user_attributes=+mail, +sn, +givenname
      [domain/EXAMPLE.com]
      ...
      krb5_store_password_if_offline = True
      ldap_user_extra_attrs=email:mail, lastname:sn, firstname:givenname
      
      [ifp]
      allowed_uids = ipaapi, root
      user_attributes=+email, +firstname, +lastname
    • AD 属性値を確認します。

      # dbus-send --print-reply --system --dest=org.freedesktop.sssd.infopipe /org/freedesktop/sssd/infopipe org.freedesktop.sssd.infopipe.GetUserAttr string:ad-user@ad-domain array:string:email,firstname,lastname