第5章 外部認証の設定
外部認証を使用して、外部 ID プロバイダーのユーザーグループメンバーシップからユーザーとユーザーグループのパーミッションを派生させることができます。外部認証を使用する場合には、このようなユーザーを作成したり、グループメンバーシップを Satellite Server で手動で保守したりする必要はありません。外部ソースでメールが提供されない場合は、Satellite Web UI で最初のログイン時に要求されます。
重要なユーザーおよびグループアカウント情報
ユーザーおよびグループアカウントはすべて、ローカルアカウントである必要があります。これにより、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 では、外部認証の設定において以下の一般的なシナリオがサポートされます。
- Lightweight Directory Access Protocol (LDAP) サーバーを外部 ID プロバイダーとして使用するシナリオ。LDAP は、一元的に保存された情報にネットワークを介してアクセスするために使用されるオープンプロトコルセットです。Satellite では、Satellite Web UI を介して LDAP 全体を管理できます。詳細は、「LDAP の使用」 を参照してください。LDAP を使用して Red Hat Identity Management または AD サーバーに接続できますが、セットアップでは、Satellite の Web UI でのサーバー検出、フォレスト間信頼、または Kerberos を使用したシングルサインオンはサポートされません。
- Red Hat Identity Management サーバーを外部 ID プロバイダーとして使用するシナリオ。Red Hat Identity Management は、ネットワーク環境で使用される個別 ID、認証情報、および権限を管理します。Red Hat Identity Management を使用した設定は、Satellite Web UI のみを使用して完了できず、CLI との対話が必要です。詳細は、「Red Hat Identity Management の使用」 を参照してください。
- フォレスト間 Kerberos 信頼を介して Red Hat Identity Management に統合された Active Directory (AD) を外部 ID プロバイダーとして使用するシナリオ。詳細は、「フォレスト間信頼を使用する Active Directory」 を参照してください。
- Red Hat Single Sign On を Satellite への外部認証用の OpenID プロバイダーとして使用するシナリオ。詳細は、「Red Hat Single Sign-On 認証を使用した Satellite の設定」 を参照してください。
- TOTP を使用した Satellite への外部認証に Red Hat Single Sign-On を OpenID プロバイダーとして使用するシナリオ。詳細は、「TOTP を使用した Red Hat Single Sign On 認証の設定」 を参照してください。
Satellite でプロビジョニングしたホストは、Satellite Server にアクセスできるだけでなく、Red Hat Identity Management レルムと統合することもできます。Red Hat Satellite には、レルムまたはドメインプロバイダーに登録されたシステムのライフサイクルを自動的に管理するレルム機能があります。詳細は、「プロビジョニングされたホストの外部認証」 を参照してください。
型 | 認証 | ユーザーグループ |
---|---|---|
Red Hat Identity Management | Kerberos または LDAP | あり |
Active Directory | Kerberos または LDAP | あり |
POSIX | LDAP | あり |
5.1. LDAP の使用
Satellite は、1 つまたは複数の LDAP ディレクトリーを使用した LDAP 認証をサポートします。
Red Hat Satellite で TLS
を使用してセキュアな LDAP 接続 (LDAPS) を確立する必要がある場合は、まず、接続先の LDAP サーバーで使用する証明書を取得して、以下の説明のように Satellite Server のベースオペレーティングシステムでこの証明書を信頼済みとしてマークします。LDAP サーバーで中間認証局との証明書チェーンを使用する場合は、すべての証明書が取得されるように、チェーン内のすべてのルートおよび中間証明書が信頼済みである必要があります。この時点でセキュアな LDAP を必要としない場合は、「Red Hat Satellite で LDAP を使用する設定」 に進みます。
ユーザーは、Red Hat Identity Management と LDAP の両方を認証方法として使用することはできません。ユーザーが 1 つの方法を使用して認証されると、他の方法を使用することはできません。
ユーザーの認証方法を変更するには、自動的に作成されたユーザーを Satellite から削除する必要があります。
Red Hat Identity Management を認証方法として使用する方法の詳細については、「Red Hat Identity Management の使用」 を参照してください。
5.1.1. セキュア LDAP 向けの TLS の設定
Satellite CLI を使用して、セキュア LDAP (LDAPS) 向けに TLS を設定します。
手順
LDAP サーバーから証明書を取得します。
-
Active Directory 証明書サービスを使用する場合は、ベース 64 エンコード X.509 形式を使用してエンタープライズ PKI CA 証明書をエクスポートします。Active Directory サーバーでの CA 証明書の作成およびエクスポートについては、How to configure Active Directory authentication with
TLS
on Satellite を参照してください。 LDAP サーバー証明書を一時的な場所の Satellite Server にダウンロードし、終了したら削除します。
たとえば、
/tmp/example.crt
です。ファイル名の拡張子を.cer
と.crt
にすることが唯一の規則であり、この拡張子は、DER バイナリーまたは PEM ASCII の形式の証明書を参照できます。
-
Active Directory 証明書サービスを使用する場合は、ベース 64 エンコード X.509 形式を使用してエンタープライズ PKI CA 証明書をエクスポートします。Active Directory サーバーでの CA 証明書の作成およびエクスポートについては、How to configure Active Directory authentication with
LDAP サーバーからの証明書を信頼します。
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
サービスを再起動します。# systemctl restart httpd
5.1.2. Red Hat Satellite で LDAP を使用する設定
Satellite Web UI で、LDAP を使用するように Satellite を設定します。
Satellite web UI で Kerberos を使用したシングルサインオン機能が必要な場合は、代わりに Red Hat Identity Management および AD 外部認証を使用する必要があることに注意してください。詳細は以下を参照してください。
手順
Network Information System (NIS) サービスのブール値を true に設定して SELinux により LDAP の送信接続がブロックされないようにします。
# setsebool -P nis_enabled on
- Satellite Web UI で、Administer > Authentication Sources に移動します。
- Create LDAP Authentication Source をクリックします。
-
LDAP サーバータブで LDAP サーバーの名前、ホスト名、ポート、およびサーバータイプを入力します。デフォルトポートは 389、デフォルトサーバータイプは POSIX です (認証サーバーのタイプに応じて FreeIPA または Active Directory を選択することもできます)。
TLS
暗号化接続に対しては、LDAPS チェックボックスを選択して暗号化を有効にします。ポートは LDAPS のデフォルト値である 636 に変更されるはずです。 - アカウント タブで、アカウント情報とドメイン名の詳細を入力します。説明と例については、「LDAP 設定の説明」 を参照してください。
- 属性マッピング タブで、LDAP 属性を Satellite 属性にマッピングします。ログイン名、名、姓、メールアドレス、および写真の属性をマッピングできます。サンプルについては、「LDAP 接続の設定例」 を参照してください。
- ロケーション タブで、左側の表からロケーションを選択します。選択したロケーションは、LDAP 認証ソースから作成されたユーザーに割り当てられ、初回ログイン以降、利用可能となります。
- 組織 タブで、左側の表から組織を選択します。選択した組織は、LDAP 認証ソースから作成されたユーザーに割り当てられ、初回ログイン以降、利用可能となります。
- Submit をクリックします。
LDAP ユーザーの新しいアカウントを設定します。
- Satellite でアカウントを自動作成する のチェックボックスを選択しなかった場合は、Red Hat Satellite の管理 の ユーザーの 作成 を参照して、ユーザーアカウントを手動で作成します。
- Satellite でアカウントを自動作成する のチェックボックスを選択した場合は、LDAP ユーザーは LDAP アカウントおよびパスワードを使用して Satellite にログインできます。初回ログイン後に、Satellite 管理者はロールを手動で割り当てる必要があります。Satellite でユーザーアカウントに適切なロールを割り当てる方法は、Red Hat Satellite の管理 の ユーザーへのロールの割り当て を参照してください。
5.1.3. LDAP 設定の説明
次の表では、Account タブの各設定について説明します。
設定 | 説明 |
---|---|
アカウント | LDAP サーバーへの読み取りアクセス権のある LDAP アカウントのユーザー名。ユーザー名は、サーバーで匿名の読み取りが許可されている場合は必要ありません。以下に例を示します。 uid=$login,cn=users,cn=accounts,dc=example,dc=com
この変数は、LDAP ソースからの外部ユーザーグループとは使用できません。ユーザーがログインしていない場合、Satellite はグループリストを取得する必要があります。匿名または専用サービスユーザーを使用してください。 |
アカウントパスワード |
アカウント フィールドで定義されたユーザーの LDAP パスワード。アカウント が |
ベース DN | LDAP ディレクトリーの最上位のドメイン名。 |
グローバルベース DN | グループが含まれる LDAP ディレクトリーツリーの最上位のドメイン名。 |
LDAP フィルター | LDAP クエリーを制限するフィルター。 |
Satellite でアカウントを自動作成する | このチェックボックスを選択した場合には、LDAP ユーザーが Satellite に最初にログインしたときに、Satellite によりユーザーアカウントが作成されます。初回ログイン後に、Satellite 管理者はロールを手動で割り当てる必要があります。Red Hat Satellite の管理 の ユーザーへのロールの割り当て を参照して、Satellite でユーザーアカウントに適切なロールを割り当てます。 |
ユーザーグループの同期 | このオプションが選択された場合は、ユーザーのログイン時にユーザーのユーザーグループメンバーシップが自動的に同期され、メンバーシップは常に最新の状態になります。このオプションが選択されていない場合は、Satellite で cron ジョブを使用してグループメンバーシップを定期的 (デフォルトでは 30 分ごと) に同期します。詳細は、「外部ユーザーグループの設定」 を参照してください。 |
5.1.4. LDAP 接続の設定例
以下の表は、異なる種類の LDAP 接続の設定例を示しています。以下の例では、ユーザーおよびグループのエントリーに対してバインド、読み取り、および検索のパーミッションを持つ redhat という名前の専用サービスアカウントを使用します。LDAP 属性名は、大文字と小文字が区別されることに注意してください。
設定 | Active Directory | FreeIPA または Red Hat Identity Management | POSIX (OpenLDAP) |
---|---|---|---|
アカウント | DOMAIN\redhat | uid=redhat,cn=users, cn=accounts,dc=example, dc=com | uid=redhat,ou=users, dc=example,dc=com |
アカウントパスワード | P@ssword | - | - |
ベース DN | DC=example,DC=COM | dc=example,dc=com | dc=example,dc=com |
グループベース DN | CN=Users,DC=example,DC=com | cn=groups,cn=accounts, dc=example,dc=com | cn=employee,ou=userclass, dc=example,dc=com |
ログイン名属性 | userPrincipalName | uid | uid |
名属性 | givenName | givenName | givenName |
姓属性 | sn | sn | sn |
メールアドレス属性 | | | |
写真属性 | thumbnailPhoto | - | - |
userPrincipalName
では、ユーザー名に空白文字を使用できます。ログイン名属性 sAMAccountName
(上記の表にはリストされていない) は、レガシーの Microsoft システムとの後方互換性を提供します。sAMAccountName
では、ユーザー名に空白文字を使用できません。
5.1.5. LDAP フィルターの例
管理者は LDAP フィルターを作成することで、特定のユーザーの Satellite へのアクセスを制限することができます。
ユーザー | フィルター |
---|---|
User1 | (distinguishedName=cn=User1,cn=Users,dc=domain,dc=example) |
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 | (|(memberOf=cn=Group1,cn=Users,dc=domain,dc=example)(memberOf=cn=Group2,cn=Users,dc=domain,dc=example)) |
User1、User2、User3 | (memberOf:1.2.840.113556.1.4.1941:=cn=Users,dc=domain,dc=example) |
グループの Users
は、グループ Group1
と Group2
を含むネストされたグループです。ネストされたグループからすべてのユーザーをフィルターする場合は、ネストされたグループ名の前に memberOf:1.2.840.113556.1.4.1941:=
を追加する必要があります。上の表の最後の例を参照してください。
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 |