Red Hat Training
A Red Hat training course is available for Red Hat Satellite
第12章 外部認証の設定
外部認証を使用することにより、外部 ID プロバイダーのユーザーグループメンバーシップからユーザーとユーザーグループのパーミッションを派生させることができます。したがって、これらのユーザーを作成したり、グループメンバーシップを Satellite Server で手動で保守したりする必要はありません。
ユーザーおよびグループアカウントはすべて、ローカルアカウントである必要があります。これにより、Satellite Server 上のローカルアカウントと Active Directory ドメイン内のアカウントによる認証競合が避けられます。
ユーザーおよびグループアカウントが /etc/passwd
と /etc/group
ファイルの両方に存在すれば、この競合によってシステムが影響を受けることはありません。たとえば、puppet
、apache
、foreman
および foreman-proxy
グループのエントリーが /etc/passwd
と /etc/group
の両ファイルに存在することを確認するには、以下のコマンドを実行します。
# cat /etc/passwd | grep 'puppet\|apache\|foreman\|foreman-proxy' # cat /etc/group | grep 'puppet\|apache\|foreman\|foreman-proxy'
Red Hat Satellite では、外部認証を設定する 4 つの一般的なシナリオがサポートされます。
- Lightweight Directory Access Protocol (LDAP) サーバーを外部 ID プロバイダーとして使用するシナリオ。LDAP は、一元的に保存された情報にネットワークを介してアクセスするために使用されるオープンプロトコルセットです。詳細については、「LDAP の使用」 を参照してください。LDAP を使用して IdM または AD サーバーに接続できますが、セットアップでは、Satellite の Web UI でのサーバー検出、フォレスト間信頼、または Kerberos を使用したシングルサインオンはサポートされません。
- Red Hat Enterprise Linux Identity Management (IdM) サーバーを外部 ID プロバイダーとして使用するシナリオ。IdM は、ネットワーク環境で使用される個別 ID、認証情報、および権限を管理します。詳細については、「 Identity Management の使用」 を参照してください。
- フォレスト間 Kerberos 信頼を介して IdM に統合された Active Directory (AD) を外部 ID プロバイダーとして使用するシナリオ。詳細については、「フォレスト間信頼での Active Directory の使用」 を参照してください。
- 直接 AD を外部 ID プロバイダーとして使用するシナリオ。詳細については、「Active Directory の使用」 を参照してください。
上記のシナリオでは、Satellite Server にアクセスを提供します。また、Satellite でプロビジョニングされたホストを IdM レルムと統合することもできます。Red Hat Satellite には、レルムまたはドメインプロバイダーに登録されたシステムのライフサイクルを自動的に管理するレルム機能があります。詳細については、「プロビジョンされたホストの外部認証」 を参照してください。
12.1. LDAP の使用
12.1.1. TLS での セキュア LDAP (LDAPS) の設定
本セクションでは直接 LDAP 統合について説明しますが、Red Hat では SSSD を使用し、IdM、AD、または LDAP サーバーに対して SSSD を設定することを推奨しています。これらの設定については、本書の他の箇所で説明しています。
Red Hat Satellite で TLS
を使用してセキュアな LDAP 接続 (LDAPS) を確立する必要がある場合は、最初に、接続する LDAP サーバーで使用された証明書を使用し、以下で説明しているように Satellite Server のベースオペレーティングシステムでそれらの証明書を信頼済みとして指定します。LDAP サーバーで中間認証局との証明書チェーンが使用される場合は、すべての証明書を取得するためにチェーンのすべてのルートおよび中間証明書が信頼済みである必要があります。この時点でセキュアな LDAP を必要としない場合は、LDAP 認証の設定: に進みます。
LDAP サーバーから証明書を取得する
Active Directory 証明書サービスを使用する場合は、ベース 64 エンコード X.509 形式を使用してエンタープライズ PKI CA 証明書をエクスポートします。Active Directory サーバーでの CA 証明書の作成およびエクスポートについては、How to configure Active Directory authentication with TLS
on Satellite 6 を参照してください。
LDAP サーバー証明書を、Satellite Server がインストールされた Red Hat Enterprise Linux システム上の一時的な場所にダウンロードし、作業が終了したら削除します (たとえば、/tmp/example.crt
)。ファイル名拡張子 .cer
と .crt
は慣習にすぎず、DER バイナリーまたは PEM ASCII 形式の証明書を示すことがあります。
LDAP サーバーから証明書を信頼する
Red Hat Satellite Server では、LDAP 認証用の CA 証明書は /etc/pki/tls/certs/
ディレクトリー内の個別ファイルである必要があります。
install
コマンドを使用して適切なパーミッションでインポート済み証明書を /etc/pki/tls/certs/
ディレクトリーにインストールします。
# install /tmp/example.crt /etc/pki/tls/certs/
root
で以下のコマンドを実行して、LDAP サーバーから取得した example.crt 証明書を信頼します。
# ln -s example.crt /etc/pki/tls/certs/$(openssl x509 -noout -hash -in /etc/pki/tls/certs/example.crt).0
httpd
サービスを再起動します。
Red Hat Enterprise Linux 6 の場合:
# service httpd restart
Red Hat Enterprise Linux 7 の場合:
# systemctl restart httpd
12.1.2. LDAP を使用するよう Red Hat Satellite を設定する
Web UI を使用して LDAP 認証を設定するには以下の手順を実行します。Satellite の Web UI で Kerberos を使用したシングルサインオン機能が必要な場合は、代わりに IdM および AD 外部認証を使用する必要があることに注意してください。これらのオプションの詳細については、Using Identity Management または Using Active Directory を参照してください。
LDAP 認証の設定:
allow Network Information System (NIS) サービスブール値を true に設定して SELinux により送信 LDAP 接続が中止されるのを防ぎます。
Red Hat Enterprise Linux 6 の場合:
# setsebool -P allow_ypbind on
Red Hat Enterprise Linux 7 の場合:
# setsebool -P nis_enabled on
- 管理 > LDAP 認証 に移動します。
- 新規認証ソース をクリックします。
-
LDAP サーバータブで LDAP サーバーの名前、ホスト名、ポート、およびサーバータイプを入力します。デフォルトポートは 389、デフォルトサーバータイプは POSIX です (認証サーバーのタイプに応じて FreeIPA または Active Directory を選択することもできます)。
TLS
暗号化接続に対しては、LDAPS チェックボックスを選択して暗号化を有効にします。ポートは LDAPS のデフォルト値である 636 に変更されるはずです。 - アカウント タブでアカウント情報とドメイン名の詳細を入力します。説明と例については、「LDAP 設定の説明と例」 を参照してください。
- マッピング属性 タブで LDAP 属性を Satellite 属性にマップします。ログイン名、名、姓、E メールアドレス、および写真の属性をマップできます。例については、「LDAP 設定の説明と例」 を参照してください。
- ロケーション タブで、左側の表からロケーションを選択します。選択したロケーションは、LDAP 認証ソースから作成されたユーザーに割り当てられ、初回ログイン以降、利用可能となります。
- 組織 タブで、左側の表から組織を選択します。選択した組織は、LDAP 認証ソースから作成されたユーザーに割り当てられ、初回ログイン以降、利用可能となります。
- 送信 をクリックします。
これで Satellite Server は LDAP サーバーを使用するように設定されました。
Satellite でアカウントを自動作成する を選択していない場合は、「ユーザーの作成」 を参照してユーザーアカウントを手動で作成してください。
このオプションを選択した場合、LDAP ユーザーは LDAP アカウントおよびパスワードを使用して Satellite にログインできます。最初にログインした後に、Satellite 管理者はロールを手動で割り当てる必要があります。Satellite でユーザーアカウントに適切なロールを割り当てるには、「ユーザーへのロールの割り当て」 を参照してください。
12.1.3. LDAP 設定の説明と例
以下の表は、Account タブの各設定の説明を示しています。
表12.1 アカウントタブの設定
設定 | 説明 |
---|---|
アカウント |
LDAP サーバーへの読み取りアクセスを持つ LDAP ユーザー。ユーザー名は、サーバーで匿名の読み取りが許可されている場合は必要ありません。許可されていない場合は、ユーザーのオブジェクトへの完全パスを使用します。以下に例を示します。 uid=$login,cn=users,cn=accounts,dc=example,dc=com
この変数は、LDAP ソースからの外部ユーザーグループとは使用できません。ユーザーがログインしていない場合、Satellite はグループリストを取得する必要があります。匿名または専用サービスユーザーを使用してください。 |
アカウントパスワード |
アカウント フィールドで定義されたユーザーの LDAP パスワード。アカウント が |
ベース DN |
LDAP ディレクトリーの最上位のドメイン名。 |
グローバルベース DN |
グループが含まれる LDAP ディレクトリーツリーの最上位のドメイン名。 |
LDAP フィルター |
LDAP クエリを制限するフィルター。例については 「LDAP フィルターの例」 を参照してください。 |
オンザフライ登録 |
このオプションが選択された場合は、LDAP ユーザーが初めて Satellite にログインしたときに、Satellite ユーザーアカウントが自動的に作成されます。 |
Usergroup sync |
このオプションが選択された場合は、ユーザーがログインしたときにユーザーのユーザーグループメンバーシップが自動的に同期されます。これにより、メンバーシップは常に最新の状態になります。このオプションが選択されない場合は、Satellite で Cron ジョブを使用してグループメンバーシップを定期的 (デフォルトでは 30 分ごと) に同期します。詳細については、外部ユーザーグループの設定: を参照してください。 |
以下の表は、異なる種類の LDAP 接続の設定例を示しています。以下のすべての例では、ユーザーおよびグループのエントリーに対してバインド、読み取り、および検索のパーミッションを持つ redhat という名前の専用サービスアカウントを使用します。LDAP 属性名では大文字と小文字が区別されることに注意してください。
表12.2 Active Directory LDAP 接続の設定例
設定 | 値例 |
---|---|
アカウントユーザー名 |
DOMAIN\redhat |
アカウントパスワード |
P@ssword |
ベース DN |
DC=example,DC=COM |
グループベース DN |
CN=Users,DC=example,DC=com |
ログイン名属性 |
userPrincipalName |
名属性 |
givenName |
ラストネーム属性 |
sn |
メールアドレス属性 |
|
userPrincipalName では、ユーザー名にスペースを使用できます。ログイン名属性 sAMAccountName (上記の表にはリストされていない) は、レガシー Microsoft システムとの後方互換性を提供します。sAMAccountName では、ユーザー名にスペースを使用できません。
表12.3 FreeIPA または Red Hat Identity Management LDAP 接続の設定例
設定 | 値例 |
---|---|
アカウントユーザー名 |
uid=redhat,cn=users,cn=accounts,dc=example,dc=com |
ベース DN |
dc=example,dc=com |
グループベース DN |
cn=groups,cn=accounts,dc=example,dc=com˙ |
ログイン名属性 |
uid |
名属性 |
givenName |
ラストネーム属性 |
sn |
メールアドレス属性 |
|
表12.4 POSIX (OpenLDAP) LDAP 接続の設定例
設定 | 値例 |
---|---|
アカウントユーザー名 |
uid=redhat,ou=users,dc=example,dc=com |
ベース DN |
dc=example,dc=com |
グループベース DN |
cn=employee,ou=userclass,dc=example,dc=com˙ |
ログイン名属性 |
uid |
名属性 |
givenName |
ラストネーム属性 |
sn |
メールアドレス属性 |
|
12.1.3.1. LDAP フィルターの例
管理者は LDAP フィルターを作成することで、特定のユーザーの Satellite へのアクセスを制限することができます。
表12.5 特定ユーザーのログインを許可するフィルターの例
ユーザー | フィルター |
---|---|
User1、User3 |
(memberOf=cn=Group1,cn=Users,dc=domain,dc=example) |
User2、User3 |
(memberOf=cn=Group2,cn=Users,dc=domain,dc=example) |
User1、User2、User3 |
(&(objectClass=user)((memberOf=cn=Group1,cn=Users,dc=domain,dc=example)(memberOf=cn=Group2,cn=Users,dc=domain,dc=example))) |
LDAP ディレクトリー構造
上記の例のフィルターで使用される LDAP ディレクトリー構造
DC=Domain,DC=Example | |----- CN=Users | |----- CN=Group1 |----- CN=Group2 |----- CN=User1 |----- CN=User2 |----- CN=User3
LDAP グループメンバーシップ
上記の例のフィルターで使用されるグループメンバーシップ
グループ | メンバー |
---|---|
Group1 |
User1、User3 |
Group2 |
User2、User3 |
12.2. Identity Management の使用
以下の方法のいずれかを選択します。
12.2.1. Identity Management の直接的な使用
本項では、Red Hat Satellite Server と IdM サーバーを統合する方法とホストベースアクセス制御を有効にする方法を示します。
前提条件
Satellite Server は Red Hat Enterprise Linux 7.1 または Red Hat Enterprise Linux 6.6 以降で実行する必要があります。
本章の例では、IdM と Satellite の設定が分かれていることを前提とします。ただし、両方のサーバーに対して管理者権限を持っている場合は、Linux ドメイン ID、認証、およびポリシーガイド[2] で説明されているように、IdM を設定できます。
Satellite Server のベースオペレーティングシステムは、組織の IdM 管理者によって IdM ドメインに登録されている必要があります。
Satellite Server での IdM 認証の設定:
以下のように、IdM サーバー上で Satellite Server のホストエントリーを作成し、ワンタイムパスワードを生成します。
# ipa host-add --random hostname
注記IdM 登録を完了するには、生成されたワンタイムパスワードをクライアントで使用する必要があります。
ホスト設定プロパティーの詳細については、Linux ドメイン ID、認証、およびポリシーガイド[3] を参照してください。
以下のように、Satellite Server 向けの HTTP サービスを作成します。
# ipa service-add servicename/hostname
ホスト設定プロパティーの詳細については、Linux ドメイン ID、認証、およびポリシーガイド[4] を参照してください。
Satellite Server で、IdM 登録を設定するために、root で以下のコマンドを実行します。
# ipa-client-install --password OTP
OTP を、IdM 管理者により提供されたワンタイムパスワードに置き換えます。
Satellite Server が Red Hat Enterprise Linux 7 上で実行されている場合は、以下のコマンドを実行します。
# subscription-manager repos --enable rhel-7-server-optional-rpms
インストーラーは、オプションのリポジトリー
rhel-7-server-optional-rpms
(Red Hat Enterprise Linux 7 の場合) に含まれるパッケージに依存します。Red Hat Enterprise Linux 6 の場合、必要なすべてのパッケージはbase
リポジトリーに含まれます。以下のコマンドを実行します。
# satellite-installer --foreman-ipa-authentication=true
このコマンドは、Satellite のフレッシュインストールに限定されません。既存の Satellite インストールを変更するためにも使用できます。
Satellite サービスを再起動します。
# foreman-maintain service restart
この時点で、外部ユーザーは IdM 認証情報を使用して Satellite にログインできます。この場合、ユーザー名とパスワードを使用して直接 Satellite Server にログインするか、設定された Kerberos シングルサインオンを利用し、クライアントマシンでチケットを取得して、自動的にログインすることを選択できます。また、ワンタイムパスワードを使用した 2 要素認証 (2FA OTP) もサポートされます。IdM 内のユーザーが 2FA 向けに設定され、Satellite Server が Red Hat Enterprise Linux 7 上で実行されている場合、このユーザーは OTP で Satellite に対して認証することもできます。オプションで、次の手順に進んでホストベースアクセス制御 (HBAC) を設定します。
HBAC ルールでは、IdM ユーザーがアクセスすることを許可されたドメイン内のマシンを定義します。選択されたユーザーが Satellite Server にアクセスすることを防ぐよう IdM サーバー上で HBAC を設定できます。この方法では、ログインが許可されないユーザーのデータベースエントリーを Satellite が作成することを防ぐことができます。HBAC の詳細については、Linux ドメイン ID、認証、およびポリシーガイド[5] を参照してください。
HBAC の設定:
HBAC サービスおよびルールを IdM サーバーで作成し、リンクします。以下の例では、satellite-prod という PAM サービス名を使用しています。IdM サーバー上で以下のコマンドを実行してください。
$ ipa hbacsvc-add satellite-prod $ ipa hbacrule-add allow_satellite_prod $ ipa hbacrule-add-service allow_satellite_prod --hbacsvcs=satellite-prod
サービス satellite-prod へのアクセスを持つユーザーと Satellite Server のホスト名を追加します。
$ ipa hbacrule-add-user allow_satellite_prod --user=username $ ipa hbacrule-add-host allow_satellite_prod --hosts=the-satellite-fqdn
または、allow_satellite_prod ルールにホストグループとユーザーグループを追加します。
ルールのステータスを確認するために、以下のコマンドを実行します。
$ ipa hbacrule-find satellite-prod $ ipa hbactest --user=username --host=the-satellite-fqdn --service=satellite-prod
- IdM サーバーで allow_all rule が無効であることを確認します。他のサービスに影響を与えずにこれを行う方法については、Red Hat カスタマーポータル上の記事 How to configure HBAC rules in IdM[6] を参照してください。
Satellite Server での IdM 認証の設定: で説明されているように、Satellite Server で IdM 統合を設定します。Satellite Server で、root として PAM サービスを定義します。
# satellite-installer --foreman-pam-service=satellite-prod
12.2.2. LDAP 認証での Identity Management の使用
シングルサインオンサポートなしで外部認証ソースとして Identity Management を使用する場合の詳細については、「LDAP の使用」 を参照してください。
12.3. Active Directory の使用
以下の方法のいずれかを選択します。
12.3.1. Active Directory の使用
本セクションでは、直接 Active Directory (AD) を Satellite Server の外部認証ソースとして使用する方法を示します。直接 AD 統合は、ID が格納された AD ドメインに Satellite Server が直接参加することを意味します。推奨されるセットアップは 2 つの手順から構成され、最初に AD サーバーを使用した Satellite Server の登録 で説明されているように AD を使用して Satellite を登録し、次に GSS-proxy との直接 AD 統合の設定 で説明されているように GSS-proxy を使用して AD 統合を完了します。
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 にログインできます。
前提条件
GSS-proxy と nfs-utils がインストールされていることを確認します。
# yum install gssproxy nfs-utils
AD サーバーを使用した Satellite Server の登録:
必要なパッケージをインストールします。
# yum install sssd adcli realmd ipa-python-compat krb5-workstation
AD サーバーを使用して Satellite Server を登録します。以下のコマンドを実行するには、管理者パーミッションが必要な場合があります。
# realm join -v EXAMPLE.ORG
AD サーバーを使用して Satellite を登録したら、satellite-installer
コマンドを使用して GSS-proxy との直接 AD 統合を設定できます。これは、すでにインストールされた Satellite に対して行ったり、Satellite のインストール中に行ったりすることができます。Apache ユーザーは keytab ファイルへのアクセスを持たない必要があることに注意してください。また、Apache ユーザーの実効ユーザー ID (id apache
を実行して確認可能) をメモしてください。以下の手順では、例として UID 48 を使用します。
GSS-proxy との直接 AD 統合の設定:
/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
以下の内容で
/etc/gssproxy/00-http.conf
ファイルを作成します。[service/HTTP] mechs = krb5 cred_store = keytab:/etc/krb5.keytab cred_store = ccache:/var/lib/gssproxy/clients/krb5cc_%U euid = 48
以下の行を
/etc/krb5.conf
ファイルの先頭に挿入します。includedir /var/lib/sss/pubconf/krb5.include.d/
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.service # systemctl enable gssproxy.service
Apache サーバーが gssproxy サービスを使用するように設定します。
以下の内容で
/etc/systemd/system/httpd.service
ファイルを作成します。.include /lib/systemd/system/httpd.service [Service] Environment=GSS_USE_PROXY=1
変更をサービスに適用します。
# systemctl daemon-reload
httpd
サービスを起動して、有効にします。# systemctl restart httpd.service
Apache サーバーが実行中であり、クライアントに有効な Kerberos チケットがある場合、サーバーに対して HTTP 要求を行うユーザーは認証されます。
SSO が Satellite Server で動作していることを確認するには、以下のコマンドを入力して 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>
この時点でユーザーは Satellite UI でアクセス認証情報を入力せずにブラウザーの Kerberos SSO がログインできるよう設定できます。Firefox ブラウザーの設定の詳細については、システムレベルの認証ガイド を参照してください。Internet Explorer ブラウザーを使用している場合は、ローカルイントラネットまたは信頼できるサイトのリストに Satellite Server を追加し、Enable Integrated Windows Authentication (統合 Windows 認証を使用する) 設定を有効にします。詳細については、Internet Explorer のドキュメンテーションを参照してください。
直接 AD 統合では、IdM を介した HBAC は利用できません。代わりに、管理者が AD 環境でポリシーを一元管理することを可能にする Group Policy Objects (GPO) を使用できます。GPO と PAM サービス間の適切なマッピングを行うには、以下の sssd 設定を使用します。
access_provider = ad ad_gpo_access_control = enforcing ad_gpo_map_service = +foreman
ここでの、foreman は PAM サービス名です。GPO の詳細については、Windows 統合ガイド[7] を参照してください。
12.3.2. フォレスト間信頼での Active Directory の使用
Kerberos を使用すると、2 つの異なるドメインフォレスト間の関係を定義するフォレスト間信頼を作成できます。ドメインフォレストはドメインの階層構造です。フォレストは AD と IdM によって形成されます。AD と IdM との間での有効な信頼関係により、AD のユーザーは一連の認証情報を使用して Linux ホストおよびサービスにアクセスできます。フォレスト間信頼の詳細については、Windows 統合ガイド[8] を参照してください。
Satellite 側から見ると、設定プロセスは、フォレスト間信頼を設定せずに IdM サーバーと統合することと同じです。Satellite Server は IPM ドメインで登録し、「 Identity Management の使用」 で説明されているように統合する必要があります。IdM サーバーで、以下の追加の手順を実行する必要があります。
- HBAC 機能を有効にするために、外部グループを作成し、AD グループをその外部グループに追加します。新しい外部グループを POSIX グループに追加します。この POSIX グループを HBAC ルールで使用します。
AD ユーザーの追加属性を転送するよう sssd を設定します。これらの属性を
/etc/sssd/sssd.conf
の nss セクションと domain セクションに追加します。[nss] user_attributes=+mail, +sn, +givenname [domain/EXAMPLE] ldap_user_extra_attrs=mail, sn, givenname
12.3.3. LDAP 認証での Active Directory の使用
シングルサインオンサポートなしで外部認証ソースとして Active Directory に接続する場合の詳細については、「LDAP の使用」 を参照してください。設定例については、How to configure Active Directory authentication with TLS on Satellite 6 を参照してください。
12.4. 外部ユーザーグループの設定
外部ソースを介して認証されたユーザーは、最初にログインしたときに Satellite Server で自動的に作成されます。これは、Satellite GUI で手動で作成されたユーザーグループにマップする必要がある外部ユーザーグループには適用されません。外部ユーザーグループのメンバーは、自動的に Satellite ユーザーグループのメンバーになり、関連するパーミッションを受け取ります。
前提条件
外部ユーザーグループの設定は、外部認証の種類によって異なります。
- LDAP ソースを使用している場合は、LDAP 認証が適切に設定されていることを確認します。管理 > LDAP 認証 に移動して、既存のソースを参照および変更します。LDAP ソースの作成手順については、「LDAP の使用」 を参照してください。使用する LDAP グループ名をメモします。
LDAP ソースから外部ユーザーグループを使用している場合は、アカウントユーザー名の代わりに $login
変数を使用できません。匿名または専用サービスユーザーを使用する必要があります。
12章外部認証の設定 の説明のように Satellite が IdM または AD サーバーで登録されている場合は、使用する外部ユーザーグループをメモします。外部ユーザーのグループメンバーシップを見つけるには、Satellite で
id
コマンドを実行します。# id username
ここでの username は、外部グループメンバーの名前です。Satellite では、外部グループを設定する前に、少なくとも 1 人の外部ユーザーが初めて認証する必要があります。また、外部認証ソースには少なくとも 1 人のユーザーが存在する必要があります。
外部ユーザーグループの設定:
- 管理 > ユーザーグループ に移動して、新規ユーザーグループ をクリックします。
- ユーザーグループ タブで、新規ユーザーグループの名前を指定します。ユーザーは、外部ユーザーグループの更新時に自動的に追加されるため、選択しないでください。
- ロール タブで、ユーザーグループに割り当てるロールを選択します。または、管理者 チェックボックスを選択して利用可能なすべてのパーミッションを割り当てます。
外部グループ タブで、外部ユーザーグループの追加 をクリックして、認証ソース ドロップダウンメニューから認証ソースを選択します。
名前 フィールドに LDAP または外部グループの名前を指定します。
- 送信 をクリックします。
ユーザーログイン時に自動的に LDAP ソースがユーザーグループメンバーシップを同期するように設定することができます。このオプションが設定されていない場合、LDAP ユーザーグループは、LDAP 認証ソースを (デフォルトでは 30 分ごとに) 同期するスケジュールされたタスク (cron ジョブ) により自動的に更新されます。LDAP 認証ソースのユーザーグループがスケジュールされたタスクの間の時間に変更された場合、ユーザーは間違った外部ユーザーグループに割り当てられる可能性があります。この問題は、スケジュールされたタスクが実行されたときに自動的に修正されます。また、foreman-rake ldap:refresh_usergroups
を実行したり、Web UI で外部ユーザーグループを更新したりすることにより LDAP ソースを手動で更新することもできます。
IdM または AD に基づいた外部ユーザーグループは、グループメンバーが Satellite にログインした場合のみ更新されます。Satellite GUI で外部ユーザーグループのユーザーメンバーシップを変更することはできません。このような変更はグループの次回更新時に上書きされます。外部ユーザーに追加パーミッションを割り当てるには、外部マッピングが指定されていない内部ユーザーグループにそのユーザーを追加します。次に、必要なロールをそのグループに割り当てます。
12.5. プロビジョンされたホストの外部認証
本項では、プロビジョニングされたホストを認証するために IdM 統合を設定する方法について説明します。最初に Satellite または Capsule Server で IdM レルムサポートを設定し、次にホストを IdM レルムグループに追加します。
12.5.1. Red Hat Satellite Server または Capsule Server での IdM レルムサポートの設定
プロビジョニングされたホストに対して IdM を使用するには、最初に Red Hat Satellite Server または Red Hat Satellite Capsule Server を設定します。
前提条件
- Satellite Server がコンテンツ配信ネットワークに登録されているか、または独立した Capsule Server が Satellite Server に登録されている。
- Red Hat Identity Management などのレルムまたはドメインプロバイダーが設定されている。
Red Hat Satellite Server または Capsule Server での IdM レルムサポートの設定:
Satellite Server または Capsule Server に以下のパッケージをインストールします。
# yum install ipa-client foreman-proxy ipa-admintools
IdM クライアントとして Satellite Server (または Capsule Server) を設定します。
# ipa-client-install
Satellite Server または Capsule Server の Red Hat Identity Management で realm-capsule ユーザーと関連ロールを作成します。
# foreman-prepare-realm admin realm-capsule
foreman-prepare-realm を実行して、Capsule Server と使用するよう IdM サーバーを準備します。これにより、Satellite に必要なパーミッションを持つ専用ロールと、そのロールを持つユーザーが作成され、keytab ファイルが取得されます。この手順では Identity Management サーバー設定の詳細が必要になります。
コマンドが正常に実行されると、以下の出力が表示されます。
Keytab successfully retrieved and stored in: freeipa.keytab Realm Proxy User: realm-capsule Realm Proxy Keytab: /root/freeipa.keytab
/root/freeipa.keytab
を/etc/foreman-proxy
ディレクトリーに移動し、ユーザーの foreman-proxy に所有者設定を行います。# mv /root/freeipa.keytab /etc/foreman-proxy # chown foreman-proxy:foreman-proxy /etc/foreman-proxy/freeipa.keytab
Satellite Server または Capsule Server のどちらを使用しているかに応じてレルムを設定します。
Satellite Server で統合された Capsule Server を使用している場合は、レルムを設定するために
satellite-installer
を使用します。# satellite-installer --foreman-proxy-realm true \ --foreman-proxy-realm-keytab /etc/foreman-proxy/freeipa.keytab \ --foreman-proxy-realm-principal realm-capsule@EXAMPLE.COM \ --foreman-proxy-realm-provider freeipa
注記これらのオプションは、Red Hat Satellite Server を初めて設定する場合にも実行できます。
外部の Capsule Server を使用している場合は、レルムを設定するために
satellite-installer --scenario capsule
を使用します。# satellite-installer --scenario capsule \ --foreman-proxy-realm true \ --foreman-proxy-realm-keytab /etc/foreman-proxy/freeipa.keytab \ --foreman-proxy-realm-principal realm-capsule@EXAMPLE.COM \ --foreman-proxy-realm-provider freeipa
ca-certificates パッケージの最新バージョンがインストールされ、IdM 認証局が信頼されていることを確認します。
# cp /etc/ipa/ca.crt /etc/pki/ca-trust/source/anchors/ipa.crt # update-ca-trust enable # update-ca-trust
(オプション) すでに存在する Satellite Server または Capsule Server で IdM を設定している場合は、設定の変更を反映するために以下の手順も実行する必要があります。
foreman-proxy サービスを再起動します。
# service foreman-proxy restart
- Satellite Server にログインし、インフラストラクチャー > Capsules (スマートプロキシー) に移動します。
- IdM 用に設定した Capsule Server の右側にあるドロップダウンメニューをクリックし、機能の更新 を選択します。
最後に、Satellite Server ユーザーインターフェースで新規のレルムエントリーを作成します。
- インフラストラクチャー > レルム に移動し、メインページの右側にある 新規レルム をクリックします。
以下のサブタブのフィールドに値を入力します。
- レルム サブタブで、レルム名、使用するレルムの種類、およびレルムプロキシーを指定します。
- ロケーション サブタブで、新規レルムを使用する予定のロケーションを選択します。
- 組織 サブタブで、新規レルムを使用する予定の組織を選択します。
- 送信 をクリックします。
これで Satellite Server または Capsule Server は、IdM に自動的に登録されるホストをプロビジョニングできるようになりました。次のセクションでは、ホストを IdM ホストグループに自動的に追加する手順について説明します。
12.5.2. IdM ホストグループへのホストの追加
Red Hat Enterprise Linux Identity Management (IdM) では、システムの属性に基づいて自動メンバーシップルールをセットアップできます。Red Hat Satellite のレルム機能は、管理者に対し、Red Hat Satellite ホストグループを IdM パラメーター「userclass」にマップする機能を提供します。これにより、管理者は automembership を設定することができます。
ネスト化されたホストグループが使用される場合、それらは Red Hat Satellite ユーザーインターフェースに表示され、IdM サーバーに送信されます。たとえば、"Parent/Child/Child" のように表示されます。
Satellite Server または Capsule Server はアップデートを IdM サーバーに送信しますが、automembership のルールは、初期登録時にのみ適用されます。
IdM ホストグループへのホストの追加:
IdM サーバー上で、ホストグループを作成します。
# ipa hostgroup-add hostgroup_name Description: hostgroup_description ---------------------------- Added hostgroup "hostgroup_name" ---------------------------- Host-group: hostgroup_name Description: hostgroup_description
ここで、
- hostgroup_name はホストグループの名前です。
- hostgroup_description はホストグループの説明です。
automembership のルールを作成します。
# ipa automember-add --type=hostgroup automember_rule ---------------------------------- Added automember rule "automember_rule" ---------------------------------- Automember Rule: automember_rule
ここで、
-
automember-add
は automember グループとしてグループにフラグを立てます。 -
--type=hostgroup
は、ターゲットグループがユーザーグループではなく、ホストグループであることを特定します。 - automember_rule は、automember ルールの特定に使用する名前です。
-
userclass 属性に基づいて automembership の条件を定義します。
# ipa automember-add-condition --key=userclass --type=hostgroup --inclusive-regex=^webserver hostgroup_name ---------------------------------- Added condition(s) to "hostgroup_name" ---------------------------------- Automember Rule: automember_rule Inclusive Regex: userclass=^webserver ---------------------------- Number of conditions added 1 ----------------------------
ここで、
-
automember-add-condition
により、グループメンバーを特定するための正規表現の条件を追加することができます。 -
--key=userclass
はキー属性を userclass に指定します。 -
--type=hostgroup
は、ターゲットグループがユーザーグループではなく、ホストグループであることを特定します。 -
--inclusive-regex=
^webserver は、一致する値を特定するための正規表現パターンです。 - hostgroup_name はターゲットホストグループの名前です。
-
システムが Satellite Server の hostgroup_name ホストグループに追加されると、そのシステムは、Identity Management サーバーの "hostgroup_name" ホストグループに自動的に追加されます。IdM ホストグループは、HBAC (ホストベースアクセス制御)、sudo ポリシー、およびその他の IdM 機能を許可します。