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 つの手順が含まれます。
- 「AD サーバーへの Satellite Server の登録」 の説明に従って、Active Directory サーバーに Satellite Server を登録します。
- 「GSS-proxy を使用した直接 AD 統合の設定」 の説明に従って、GSS-proxy との直接 Active Directory 統合を設定します。
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. AD サーバーへの Satellite Server の登録
Satellite CLI で、Active Directory サーバーに Satellite Server を登録します。
前提条件
GSS-proxy と nfs-utils がインストールされていること。
GSS-proxy と nfs-utils をインストールします。
# satellite-maintain packages install gssproxy nfs-utils
手順
必要なパッケージをインストールします。
# satellite-maintain packages install sssd adcli realmd ipa-python-compat krb5-workstation samba-common-tools
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 統合を設定します。
前提条件
- Satellite が、Active Directory サーバーに登録されていること。詳細は、「AD サーバーへの Satellite Server の登録」 を参照してください。
手順
/etc/ipa/
ディレクトリーとdefault.conf
ファイルを作成します。# mkdir /etc/ipa # touch /etc/ipa/default.conf
default.conf
ファイルに以下のコンテンツを追加します。[global] server = unused realm = EXAMPLE.ORG
以下の内容で
/etc/net-keytab.conf
ファイルを作成します。[global] workgroup = EXAMPLE realm = EXAMPLE.ORG kerberos method = system keytab security = ads
Apache ユーザーの有効なユーザー ID を特定します。
# id apache
Apache ユーザーには keytab ファイルへのアクセス権を割り当てないでください。
以下の内容で
/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
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
Satellite で IPA 認証を有効にします。
# satellite-installer --foreman-ipa-authentication=true
gssproxy
サービスを起動して、有効にします。# systemctl restart gssproxy # systemctl enable --now gssproxy
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
変更をサービスに適用します。
# systemctl daemon-reload
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 要求を行うユーザーは認証されます。
次のコマンドを使用して、LDAP ユーザーの Kerberos チケットを取得します。
# kinit ldapuser
以下のコマンドを使用して、Kerberos チケットを表示します。
# klist
以下のコマンドを使用して、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
を使用するようにサーバーを設定します。
手順
HBAC を有効にします。
- 外部グループを作成して、この外部グループに AD グループを追加します。
- 新しい外部グループを POSIX グループに追加します。
- HBAC ルールで POSIX グループを使用します。
AD ユーザーの追加属性を転送するよう sssd を設定します。
この AD ユーザー属性を
/etc/sssd/sssd.conf
の nss セクションと 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