13.3. Active Directory の使用
このセクションでは、Satellite Server 用の外部認証ソースとして直接 Active Directory (AD) を使用する方法を示します。
シングルサインオンサポートなしで、Active Directory を外部認証ソースとして接続できます。詳細は、「LDAP の使用」 を参照してください。設定例については、How to configure Active Directory authentication with TLS on Satellite 6 を参照してください。
直接 AD 統合では、ID が保存されている AD ドメインに Satellite Server が直接参加します。推奨の設定には、以下の 2 つの手順が含まれます。
- 「Satellite Server の AD サーバーへの登録」 の説明に従って、Active Directory サーバーに Satellite Server を登録します。
- 「GSS-proxy を使用した直接 AD 統合の設定」 の説明に従って、GSS-proxy との直接 Active Directory 統合を設定します。
13.3.1. GSS-Proxy
Apache での Kerberos 認証の従来のプロセスでは、Apache プロセスが keytab ファイルへの読み取りアクセスを持っている必要があります。GSS-Proxy を使用すると、Kerberos 認証機能を保持しつつ keytab ファイルへのアクセスを削除することにより Apache サーバーに対してより厳密な権限の分離を実行できます。AD を Satellite の外部認証ソースとして使用する場合は、keytab ファイルのキーがホストキーと同じであるため、GSS-proxy を実装することが推奨されます。
AD 統合では、Red Hat Satellite Server を Red Hat Enterprise Linux 7.1 以降にデプロイする必要があります。
Satellite Server のベースオペレーティングシステムとして動作する Red Hat Enterprise Linux で以下の手順を実行します。本セクションの例では、EXAMPLE.ORG が AD ドメインの Kerberos レルムです。手順を完了すると、EXAMPLE.ORG レルムに属するユーザーは Satellite Server にログインできます。
13.3.2. Satellite Server の AD サーバーへの登録
Satellite CLI で、Active Directory サーバーに Satellite Server を登録します。
前提条件
GSS-proxy と nfs-utils がインストールされていること。
GSS-proxy と nfs-utils をインストールします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow satellite-maintain packages install gssproxy nfs-utils
# satellite-maintain packages install gssproxy nfs-utils
手順
必要なパッケージをインストールします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow satellite-maintain packages install sssd adcli realmd ipa-python-compat krb5-workstation samba-common-tools
# satellite-maintain packages install sssd adcli realmd ipa-python-compat krb5-workstation samba-common-tools
Satellite Server を AD サーバーに登録します。以下のコマンドを実行するには、管理者パーミッションが必要な場合があります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow realm join -v EXAMPLE.ORG
# realm join -v EXAMPLE.ORG
13.3.3. GSS-proxy を使用した直接 AD 統合の設定
Satellite CLI で、GSS-proxy を使用する直接 Active Directory 統合を設定します。
前提条件
Satellite が、Active Directory サーバーに登録されていること。
詳細は、「Satellite Server の AD サーバーへの登録」 を参照してください。
手順
/etc/ipa/
ディレクトリーとdefault.conf
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow mkdir /etc/ipa touch /etc/ipa/default.conf
# mkdir /etc/ipa # touch /etc/ipa/default.conf
default.conf
ファイルに以下のコンテンツを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow [global] server = unused realm = EXAMPLE.ORG
[global] server = unused realm = EXAMPLE.ORG
以下の内容で
/etc/net-keytab.conf
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow [global] workgroup = EXAMPLE realm = EXAMPLE.ORG kerberos method = system keytab security = ads
[global] workgroup = EXAMPLE realm = EXAMPLE.ORG kerberos method = system keytab security = ads
Apache ユーザーの有効なユーザー ID を特定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow id apache
# id apache
Apache ユーザーには keytab ファイルへのアクセス権を割り当てないでください。
以下の内容で
/etc/gssproxy/00-http.conf
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow [service/HTTP] mechs = krb5 cred_store = keytab:/etc/krb5.keytab cred_store = ccache:/var/lib/gssproxy/clients/krb5cc_%U euid = ID_of_Apache_User
[service/HTTP] mechs = krb5 cred_store = keytab:/etc/krb5.keytab cred_store = ccache:/var/lib/gssproxy/clients/krb5cc_%U euid = ID_of_Apache_User
keytab エントリーを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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 認証を有効にします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow satellite-installer --foreman-ipa-authentication=true
# satellite-installer --foreman-ipa-authentication=true
gssproxy
サービスを起動して、有効にします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart gssproxy.service systemctl enable gssproxy.service
# systemctl restart gssproxy.service # systemctl enable gssproxy.service
Apache サーバーが gssproxy サービスを使用するように設定します。
以下の内容で
/etc/systemd/system/httpd.service
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow .include /lib/systemd/system/httpd.service [Service] Environment=GSS_USE_PROXY=1
.include /lib/systemd/system/httpd.service [Service] Environment=GSS_USE_PROXY=1
変更をサービスに適用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl daemon-reload
# systemctl daemon-reload
httpd
サービスを起動して、有効にします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart httpd.service
# systemctl restart httpd.service
SSO が想定どおりに動作していることを確認します。
Apache サーバーが実行中であり、クライアントに有効な Kerberos チケットがある場合、サーバーに対して HTTP 要求を行うユーザーは認証されます。
次のコマンドを使用して、LDAP ユーザーの Kerberos チケットを取得します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kinit ldapuser
# kinit ldapuser
以下のコマンドを使用して、Kerberos チケットを表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow klist
# klist
以下のコマンドを使用して、SSO 認証に成功時の出力を表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl -k -u : --negotiate https://satellite.example.com/users/extlogin
# curl -k -u : --negotiate https://satellite.example.com/users/extlogin
これにより、以下の応答が返されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <html><body>You are being <a href="https://satellite.example.com/users/4-ldapuserexample-com/edit">redirected</a>.</body></html>
<html><body>You are being <a href="https://satellite.example.com/users/4-ldapuserexample-com/edit">redirected</a>.</body></html>
13.3.4. Web ブラウザーでの Kerberos の設定
Firefox ブラウザーの設定の詳細は、Red Hat Enterprise Linux System-Level Authentication の Configuring Firefox to Use Kerberos for Single Sign-On を参照してください。
Internet Explorer ブラウザーを使用している場合は、Satellite Server をローカルイントラネットまたは信頼済みサイトのリストに追加し、統合 Windows 認証を使用する の設定にチェックを入れます。詳細については、Internet Explorer のマニュアルを参照してください。
直接 AD 統合では、Red Hat Identity Management を介した HBAC は利用できません。代わりに、管理者が AD 環境でポリシーを一元管理することを可能にする Group Policy Objects (GPO) を使用できます。GPO と PAM サービス間の適切なマッピングを行うには、以下の sssd 設定を使用します。
access_provider = ad ad_gpo_access_control = enforcing ad_gpo_map_service = +foreman
access_provider = ad
ad_gpo_access_control = enforcing
ad_gpo_map_service = +foreman
ここでは、foreman は PAM サービスの名前です。GPO の詳細については、Red Hat Enterprise Linux Windows Integration Guide を参照してください。
13.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 Windows Integration ガイドの Creating Cross-forest Trusts with Active Directory and Identity Management を参照してください。
Satellite 側から見ると、設定プロセスは、フォレスト間の信頼を設定せずに Red Hat Identity Management サーバーと統合する場合と同じです。Satellite Server は IPM ドメインに登録し、「Red Hat Identity Management の使用」 で説明されているように統合する必要があります。
13.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 セクションに追加します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [nss] user_attributes=+mail, +sn, +givenname [domain/EXAMPLE] ldap_user_extra_attrs=mail, sn, givenname
[nss] user_attributes=+mail, +sn, +givenname [domain/EXAMPLE] ldap_user_extra_attrs=mail, sn, givenname