第13章 外部認証の設定

外部認証を使用して、外部 ID プロバイダーのユーザーグループメンバーシップからユーザーとユーザーグループのパーミッションを派生させることができます。外部認証を使用する場合には、このようなユーザーを作成したり、グループメンバーシップを Satellite Server で手動で保守したりする必要はありません。

重要なユーザーおよびグループアカウント情報

ユーザーおよびグループアカウントはすべて、ローカルアカウントである必要があります。これにより、Satellite Server 上のローカルアカウントと Active Directory ドメイン内のアカウントによる認証競合が避けられます。

ユーザーおよびグループアカウントが /etc/passwd/etc/group ファイルの両方に存在すれば、この競合によってシステムが影響を受けることはありません。たとえば、puppetapacheforeman および 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 を CAC カードを使用する Satellite への外部認証用の OpenID プロバイダーとして使用するシナリオ。詳細は、「外部認証用の Satellite と Red Hat Single Sign On の統合」 を参照してください。

Satellite でプロビジョニングしたホストは、Satellite Server にアクセスできるだけでなく、Red Hat Identity Management レルムと統合することもできます。Red Hat Satellite には、レルムまたはドメインプロバイダーに登録されたシステムのライフサイクルを自動的に管理するレルム機能があります。詳細については、「プロビジョンされたホストの外部認証」 を参照してください。

表13.1 認証の概要

Type認証ユーザーグループ

Red Hat Identity Management

Kerberos または LDAP

あり

Active Directory

Kerberos または LDAP

あり

POSIX

LDAP

あり

13.1. LDAP の使用

Red Hat Satellite で TLS を使用してセキュアな LDAP 接続 (LDAPS) を確立する必要がある場合は、まず、接続先の LDAP サーバーで使用する証明書を取得して、以下の説明のように Satellite Server のベースオペレーティングシステムでこの証明書を信頼済みとしてマークします。LDAP サーバーで中間認証局との証明書チェーンを使用する場合は、すべての証明書が取得されるように、チェーン内のすべてのルートおよび中間証明書が信頼済みである必要があります。この時点でセキュアな LDAP を必要としない場合は、「Red Hat Satellite で LDAP を使用するように設定する手順」 に進みます。

SSSD 設定の使用

このセクションでは、LDAP の直接統合について説明しますが、Red Hat では、SSSD を使用して Red Hat Identity Management、AD、または LDAP サーバーに設定することを推奨します。SSSD により、認証プロセスの一貫性が向上されます。推奨設定の詳細は、「Active Directory の使用」 を参照してください。SSSD 認証情報をキャッシュして LDAP 認証に使用することもできます。SSSD の詳細については、『Red Hat Enterprise Linux 7 システムレベルの認証ガイド』の「SSSD の設定」を参照してください。

13.1.1. セキュア LDAP 向けのTLS の設定

Satellite CLI を使用して、セキュア LDAP (LDAPS) 向けに TLS を設定します。

手順

  1. LDAP サーバーから証明書を取得します。

    1. Active Directory 証明書サービスを使用する場合は、ベース 64 エンコード X.509 形式を使用してエンタープライズ PKI CA 証明書をエクスポートします。Active Directory サーバーでの CA 証明書の作成およびエクスポートについては、「How to configure Active Directory authentication with TLS on Red Hat Satellite 6?」を参照してください。
    2. LDAP サーバー証明書は、Satellite Server がインストールされている Red Hat Enterprise Linux システムの一時的な場所にダウンロードし、終了時に削除します。

      たとえば、/tmp/example.crt です。ファイル名の拡張子を .cer.crt にすることが唯一の規則であり、この拡張子は、DER バイナリーまたは PEM ASCII の形式の証明書を参照できます。

  2. LDAP サーバーからの証明書を信頼します。

    Red Hat Satellite Server では、LDAP 認証用の CA 証明書は /etc/pki/tls/certs/ ディレクトリー内の個別ファイルである必要があります。

    1. install コマンドを使用して適切なパーミッションでインポート済みの証明書を /etc/pki/tls/certs/ ディレクトリーにインストールします。

      # install /tmp/example.crt /etc/pki/tls/certs/
    2. root で以下のコマンドを実行して、LDAP サーバーから取得した example.crt 証明書を信頼します。

      # ln -s example.crt /etc/pki/tls/certs/$(openssl \
      x509 -noout -hash -in \
      /etc/pki/tls/certs/example.crt).0
    3. httpd サービスを再起動します。

      # systemctl restart httpd

13.1.2. Red Hat Satellite で LDAP を使用するように設定する手順

Satellite Web UI で、LDAP を使用するように Satellite を設定します。

Satellite の Web UI で Kerberos を使用したシングルサインオン機能が必要な場合は、代わりに Red Hat Identity Management および AD 外部認証を使用する必要があることに注意してください。これらのオプションの詳細については、「Red Hat Identity Management の使用」または「Active Directory の使用」を参照してください。

手順

  1. Network Information System (NIS) サービスのブール値を true に設定して SELinux により LDAP の送信接続がブロックされないようにします。

    # setsebool -P nis_enabled on
  2. 管理 > LDAP 認証 に移動します。
  3. 認証ソースの作成 をクリックします。
  4. LDAP サーバータブで LDAP サーバーの名前、ホスト名、ポート、およびサーバータイプを入力します。デフォルトポートは 389、デフォルトサーバータイプは POSIX です (認証サーバーのタイプに応じて FreeIPA または Active Directory を選択することもできます)。TLS 暗号化接続に対しては、LDAPS チェックボックスを選択して暗号化を有効にします。ポートは LDAPS のデフォルト値である 636 に変更されるはずです。
  5. アカウント タブで、アカウント情報とドメイン名の詳細を入力します。説明と例については、「LDAP 設定の説明」 を参照してください。
  6. 属性マッピング タブで、LDAP 属性を Satellite 属性にマッピングします。ログイン名、名、姓、メールアドレス、および写真の属性をマッピングできます。例については、「LDAP 接続の設定例」 を参照してください。
  7. ロケーション タブで、左側の表からロケーションを選択します。選択したロケーションは、LDAP 認証ソースから作成されたユーザーに割り当てられ、初回ログイン以降、利用可能となります。
  8. 組織 タブで、左側の表から組織を選択します。選択した組織は、LDAP 認証ソースから作成されたユーザーに割り当てられ、初回ログイン以降、利用可能となります。
  9. 送信 をクリックします。
  10. LDAP ユーザーの新しいアカウントを設定します。

    • Satellite でアカウントを自動作成する のチェックボックスを選択していない場合は、「ユーザーの作成」 を参照してユーザーアカウントを手動で作成してください。
    • Satellite でアカウントを自動作成する のチェックボックスを選択した場合は、LDAP ユーザーは LDAP アカウントおよびパスワードを使用して Satellite にログインできます。初回ログイン後に、Satellite 管理者はロールを手動で割り当てる必要があります。Satellite でユーザーアカウントに適切なロールを割り当てる方法は、「ユーザーへのロールの割り当て」 を参照してください。

13.1.3. LDAP 設定の説明

以下の表は、アカウント タブの各設定の説明を示しています。

表13.2 アカウントタブの設定

設定説明

アカウント

LDAP サーバーへの読み取りアクセス権のある LDAP アカウントのユーザー名。ユーザー名は、サーバーで匿名の読み取りが許可されている場合は必要ありません。許可されていない場合は、ユーザーのオブジェクトへの完全パスを使用します。以下に例を示します。

uid=$login,cn=users,cn=accounts,dc=example,dc=com

$login 変数には、ログインページで入力されたユーザー名がリテラル文字列として格納されます。この値は、変数が展開されたときにアクセスされます。

この変数は、LDAP ソースからの外部ユーザーグループとは使用できません。ユーザーがログインしていない場合、Satellite はグループリストを取得する必要があります。匿名または専用サービスユーザーを使用してください。

アカウントパスワード

アカウント フィールドで定義されたユーザーの LDAP パスワード。アカウント$login 変数を使用している場合は、このフィールドを空白にすることができます。

ベース DN

LDAP ディレクトリーの最上位のドメイン名。

グローバルベース DN

グループが含まれる LDAP ディレクトリーツリーの最上位のドメイン名。

LDAP フィルター

LDAP クエリーを制限するフィルター。

Satellite でアカウントを自動作成する

このチェックボックスを選択した場合には、LDAP ユーザーが Satellite に最初にログインしたときに、Satellite によりユーザーアカウントが作成されます。初回ログイン後に、Satellite 管理者はロールを手動で割り当てる必要があります。Satellite でユーザーアカウントに適切なロールを割り当てる方法は、「ユーザーへのロールの割り当て」 を参照してください。

ユーザーグループの同期

このオプションが選択された場合は、ユーザーのログイン時にユーザーのユーザーグループメンバーシップが自動的に同期されます。これにより、メンバーシップは常に最新の状態になります。このオプションが選択されていない場合は、Satellite で cron ジョブを使用してグループメンバーシップを定期的 (デフォルトでは 30 分ごと) に同期します。詳細については、外部ユーザーグループの設定:を参照してください。

13.1.4. LDAP 接続の設定例

以下の表は、異なる種類の LDAP 接続の設定例を示しています。以下の例では、ユーザーおよびグループのエントリーに対してバインド、読み取り、および検索のパーミッションを持つ redhat という名前の専用サービスアカウントを使用します。LDAP 属性名は、大文字と小文字が区別されることに注意してください。

表13.3 Active Directory、Free IPA または Red Hat Identity Management、POSIX LDAP 接続 の設定例

設定Active DirectoryFreeIPA または Red Hat Identity ManagementPOSIX (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

メールアドレス属性

mail

mail

mail

注記

userPrincipalName では、ユーザー名に空白文字を使用できます。ログイン名属性 sAMAccountName (上記の表にはリストされていない) は、レガシーの Microsoft システムとの後方互換性を提供します。sAMAccountName では、ユーザー名に空白文字を使用できません。

13.1.5. LDAP フィルターの例

管理者は LDAP フィルターを作成することで、特定のユーザーの Satellite へのアクセスを制限することができます。

表13.4 特定ユーザーのログインを許可するフィルターの例

ユーザーフィルター

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))

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

13.2. Red Hat Identity Management の使用

本項では、Red Hat Satellite Server と Red Hat Identity Management サーバーを統合する方法とホストベースアクセス制御を有効にする方法を示します。

注記

Red Hat Identity Management は、外部認証ソースとして、シングルサインオンサポートなしで接続できます。詳細については、「LDAP の使用」 を参照してください。

前提条件

  • Satellite Server は Red Hat Enterprise Linux 7.1 または Red Hat Enterprise Linux 6.6 以降で実行されていること。
  • Satellite Server のベースオペレーティングシステムが、組織の Red Hat Identity Management 管理者によって Red Hat Identity Management ドメインに登録されていること。

この章の例では、Red Hat Identity Management と Satellite の設定が分離されていることを前提としています。ただし、両方のサーバーの管理者権限がある場合は、『Red Hat Enterprise Linux 7 Linux ドメイン ID、認証、およびポリシーガイド』の説明に従って Red Hat Identity Management を設定できます。

13.2.1. Satellite Server でのRed Hat Identity Management 認証の設定

Satellite CLIで、まず Red Hat Identity Management サーバーにホストエントリーを作成して、Red Hat Identity Management 認証を設定します。

手順

  1. Red Hat Identity Management サーバーで、次のコマンドを入力し、プロンプトが表示されたら、パスワードを入力して、認証します。

    # kinit admin
  2. 認証されたことを確認するには、次のコマンドを入力します。

    # klist
  3. 以下のように、Red Hat Identity Management サーバー上で Satellite Server のホストエントリーを作成し、ワンタイムパスワードを生成します。

    # ipa host-add --random hostname
    注記

    Red Hat Identity Management 登録を完了するには、生成されたワンタイムパスワードをクライアントで使用する必要があります。

    ホスト設定プロパティーの詳細は、『Red Hat Enterprise Linux 7 Linux ドメイン ID、認証、およびポリシーガイド』の「ホストエントリー設定のプロパティー」を参照してください。

  4. 以下のように、Satellite Server 向けの HTTP サービスを作成します。

    # ipa service-add servicename/hostname

    サービス管理の詳細については、『Red Hat Enterprise Linux 7 Linux ドメイン ID、認証、およびポリシーガイド』の「サービスの管理」を参照してください。

  5. Satellite Server で、IPA クライアントをインストールします。

    警告

    このコマンドは、パッケージのインストール中に Satellite サービスを再起動する可能性があります。Satellite でのパッケージのインストールと更新に関する詳細は、「Satellite Server のベースオペレーティングシステムでのパッケージの管理」 を参照してください。

    # satellite-maintain packages install ipa-client
  6. Satellite Server で、以下のコマンドを root として入力し、Red Hat Identity Management 登録を設定します。

    # ipa-client-install --password OTP

    OTP を、Red Hat Identity Management 管理者により提供されたワンタイムパスワードに置き換えます。

  7. 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 リポジトリーに含まれます。

  8. 以下のコマンドを使用して、foreman-ipa-authentication を true に設定します。

    # satellite-installer --foreman-ipa-authentication=true
  9. satellite-maintain サービスを再起動します。

    # satellite-maintain service restart

この時点で、外部ユーザーは Red Hat Identity Management 認証情報を使用して Satellite にログインできます。ユーザー名とパスワードを使用して直接 Satellite Server にログインするか、設定済みの Kerberos シングルサインオンを活用してクライアントマシンでチケットを取得し、自動的にログインするかを選択できます。また、ワンタイムパスワードを使用した二要素認証 (2FA OTP) もサポートされます。Red Hat Identity Management 内のユーザーが 2FA 向けに設定され、Satellite Server が Red Hat Enterprise Linux 7 で実行されている場合には、このユーザーは OTP を使用して Satellite に対して認証することもできます。

13.2.2. ホストベースの認証制御の設定

HBAC ルールでは、Red Hat Identity Management ユーザーがドメイン内のどのマシンにアクセスできるかを定義します。一部のユーザーが Satellite Server にアクセスできないように、Red Hat Identity Management サーバーで HBAC を設定できます。この方法では、ログインが許可されていないユーザーのデータベースエントリーを、Satellite で作成できないようにします。HBAC の詳細については、『Red Hat Enterprise Linux 7 Linux ドメイン ID、認証、およびポリシーガイド』の「ホストベースのアクセス制御の設定」を参照してください。

Red Hat Identity Management サーバーで、ホストベースの認証制御 (HBAC) を設定します。

手順

  1. Red Hat Identity Management サーバーで、次のコマンドを入力し、プロンプトが表示されたら、パスワードを入力して、認証します。

    # kinit admin
  2. 認証されたことを確認するには、次のコマンドを入力します。

    # klist
  3. HBAC サービスおよびルールを Red Hat Identity Management サーバーで作成し、リンクします。以下の例では、satellite-prod という PAM サービス名を使用しています。Red Hat Identity Management サーバー上で以下のコマンドを実行してください。

    # ipa hbacsvc-add satellite-prod
    # ipa hbacrule-add allow_satellite_prod
    # ipa hbacrule-add-service allow_satellite_prod --hbacsvcs=satellite-prod
  4. satellite-prod サービスへのアクセス権があるユーザーと Satellite Server のホスト名を追加します。

    # ipa hbacrule-add-user allow_satellite_prod --user=username
    # ipa hbacrule-add-host allow_satellite_prod --hosts=satellite.example.com

    または、allow_satellite_prod ルールにホストグループとユーザーグループを追加できます。

  5. ルールのステータスを確認するために、以下のコマンドを実行します。

    # ipa hbacrule-find satellite-prod
    # ipa hbactest --user=username --host=satellite.example.com --service=satellite-prod
  6. Red Hat Identity Management サーバーで allow_all ルールが無効であることを確認します。他のサービスに影響を与えずにこのルールを無効にする方法については、Red Hat カスタマーポータルのアーティクル「How to configure HBAC rules in IdM to allow specific users to login to clients via ssh」を参照してください。
  7. 「Satellite Server でのRed Hat Identity Management 認証の設定」 で説明されているように、Satellite Server で Red Hat Identity Management 統合を設定します。Satellite Server で、root として PAM サービスを定義します。

    # satellite-installer --foreman-pam-service=satellite-prod

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 つの手順が含まれます。

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 をインストールします。

    # 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

13.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/krb5.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.service
    # systemctl enable gssproxy.service
  9. Apache サーバーが gssproxy サービスを使用するように設定します。

    1. 以下の内容で /etc/systemd/system/httpd.service ファイルを作成します。

      .include /lib/systemd/system/httpd.service
      [Service]
      Environment=GSS_USE_PROXY=1
    2. 変更をサービスに適用します。

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

    # systemctl restart httpd.service
  11. 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>

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

Firefox ブラウザーの設定の詳細は、『Red Hat Enterprise Linux 7 システムレベルの認証ガイド』の「Firefox でシングルサインオンに Kerberos を使用する設定」を参照してください。

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

ここでは、foreman は PAM サービスの名前です。GPO の詳細については、『Red Hat Enterprise Linux 7 Windows 統合ガイド』の「グループポリシーオブジェクトのアクセス制御」を参照してください。

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 7 Windows 統合ガイド』の「Active Directory および 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 を使用するようにサーバーを設定します。

手順

  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]
      ldap_user_extra_attrs=mail, sn, givenname

13.4. 外部ユーザーグループの設定

Satellite は、自動的に、外部ユーザーグループに外部ユーザーを関連付けることはありません。Satellite 上の外部ソースと同じ名前のユーザーグループを作成する必要があります。こうすることで、外部ユーザーグループのメンバーは、自動的に Satellite ユーザーグループのメンバーになり、関連するパーミッションが付与されます。

外部ユーザーグループの設定は、外部認証の種類によって異なります。

外部ユーザーに追加のパーミッションを割り当てるには、外部マッピングが指定されていない内部ユーザーグループに、このユーザーを追加します。次に、このグループに必要なロールを割り当てます。

前提条件

  • LDAP サーバーを使用する場合は、Satellite が LDAP 認証を使用するように設定する。詳細は、「LDAP の使用」 を参照してください。

    LDAP ソースから外部ユーザーグループを使用する場合は、アカウントユーザー名の代わりとして $login 変数を使用できず、匿名または専用サービスユーザーを使用する必要があります。

  • Red Hat Identity Management または AD サーバーを使用する場合は、Satellite が Red Hat Identity Management または AD 認証を使用するように設定する。詳細は、「13章外部認証の設定」を参照してください。
  • 少なくとも 1 人の外部ユーザーが初回認証されることを確認する。
  • 使用する外部グループ名をメモする。外部ユーザーのグループメンバーシップを確認するには、以下のコマンドを入力します。

    # id username

外部ユーザーグループの設定:

  1. Satellite Web UI で、管理 > ユーザーグループ に移動して、ユーザーグループの作成 をクリックします。
  2. 新規ユーザーグループの名前を指定します。外部ユーザーグループのリフレッシュ時にユーザーが自動的に追加されるのを避けるため、ユーザーを選択しないでください。
  3. ロール タブで、ユーザーグループに割り当てるロールを選択します。または、管理者 のチェックボックスを選択して、利用可能なすべてのパーミッションを割り当てます。
  4. 外部グループ タブで、外部ユーザーグループの追加 をクリックして、認証ソース ドロップダウンメニューから認証ソースを選択します。

    名前 フィールドに外部グループの名前を指定します。

  5. 送信 をクリックします。

13.5. LDAP の外部ユーザーグループのリフレッシュ

ユーザーのログイン時にユーザーのグループメンバーシップを自動的に同期するように LDAP ソースを設定するには、認証ソース ページで、ユーザーグループの同期 オプションを選択します。このオプションが選択されていない場合、デフォルトで、LDAP ユーザーグループは、 30 分ごとに LDAP 認証ソースを同期するようにスケジュールされた cron ジョブで自動的にリフレッシュされます。

LDAP 認証ソースのユーザーグループが、次回のスケジュールタスクが実行されるまでの間に変更された場合に、ユーザーが不正な外部ユーザーグループに割り当てられることがありますが、これはスケジュールされたタスクの実行時に、自動的に修正されます。

以下の手順を使用して、LDAP ソースを手動でリフレッシュします。

手順

  1. 管理 > ユーザーグループ に移動し、ユーザーグループを選択します。
  2. 外部グループ タブに移動し、必要なユーザーグループの右側にある リフレッシュ をクリックします。

CLI をご利用の場合

以下のコマンドを実行します。

# foreman-rake ldap:refresh_usergroups

13.6. Red Hat Identity Management または AD の外部ユーザーグループの更新

Red Hat Identity Management または AD ベースの外部ユーザーグループは、グループメンバーが Satellite にログインしたときのみリフレッシュされます。Satellite Web UI で、外部ユーザーグループのユーザーメンバーシップを変更することはできず、このような変更がされた場合には、次のグループリフレッシュ時に上書きされます。

13.7. プロビジョンされたホストの外部認証

以下のセクションを使用して、Red Hat Identity Management レルムサポート用の Satellite Server または Capsule Server を設定します。続いて、Red Hat Identity Management レルムグループにホストを追加します。

前提条件

プロビジョニングされたホストの外部認証を設定するには、以下を設定していること。

  • Satellite Server をコンテンツ配信ネットワークに登録しておくか、外部の Capsule Server を Satellite Server に登録しておく。
  • Red Hat Identity Management などのレルムまたはドメインプロバイダーがデプロイされていること。

Red Hat Satellite Server または Red Hat Satellite Capsule Server に Red Hat Identity Management パッケージをインストールして設定する手順:

プロビジョニングされたホストに Red Hat Identity Management を使用するには、以下の手順を実行して、Red Hat Satellite Server または Red Hat Satellite Capsule Server に Red Hat Identity Management パッケージをインストールして設定します。

  1. Satellite Server または Capsule Server に ipa-client パッケージをインストールします。

    • Satellite Server で以下のコマンドを入力します。

      # satellite-maintain packages install ipa-client
    • Capsule Server で以下のコマンドを入力します。

      # yum install ipa-client
  2. サーバーを Red Hat Identity Management クライアントとして設定します。

    # ipa-client-install
  3. Red Hat Identity Management でレルムプロキシーユーザー realm-capsule と、関連のロールを作成します。

    # foreman-prepare-realm admin realm-capsule

    以下の手順で必要となるので、返されたプリンシパル名と、Red Hat Identity Management サーバーの設定情報をメモします。

Red Hat Identity Management レルムサポート用の Red Hat Satellite Server または Capsule Server の設定方法

使用する Satellite お よび全 Capsuleで次の手順を実行します。

  1. 同じプリンシパルおよびレルムに追加する Capsule Server に、/root/freeipa.keytab ファイルをコピーします。

    # scp /root/freeipa.keytab root@capsule.example.com:/etc/foreman-proxy/freeipa.keytab
  2. /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
  3. レルムに追加する全 Capsule で、以下のコマンドを入力します。Satelllite に 統合された Capsule を使用する場合には、Satellite Server でこのコマンドを入力します。

    # 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 を初めて設定する場合にも使用できます。

  4. ca-certificates パッケージの最新バージョンがインストールされていることを確認し、Red Hat Identity Management 認証局を信頼します。

    # cp /etc/ipa/ca.crt /etc/pki/ca-trust/source/anchors/ipa.crt
    # update-ca-trust enable
    # update-ca-trust
  5. オプション: 既存の Satellite Server または Capsule Server で Red Hat Identity Management を設定する場合には、以下の手順を実行して、設定の変更が適用されていることを確認します。

    1. foreman-proxy サービスを再起動します。

      # systemctl restart foreman-proxy
    2. Satellite Web UI で、インフラストラクチャー > Capsules (スマートプロキシー) に移動します。
    3. Red Hat Identity Management 用に設定した Capsule の場所を特定して、アクション コラムのリストから リフレッシュ を選択します。

Red Hat Identity Management 対応のカプセルのレルムの作成方法

統合型または外部の Capsule に Red Hat Identity Management を設定した後に、レルムを作成して、Red Hat Identity Management が設定された Capsule をレルムに追加する必要があります。

レルムを作成するには、以下の手順を行います。

  1. Satellite Web UI で、インフラストラクチャー > レルム に移動して、レルムの作成 をクリックします。
  2. 名前 フィールドには、レルムの名前を入力します。
  3. レルムのタイプ 一覧から、レルムのタイプを選択します。
  4. Realm Capsule 一覧から、Red Hat Identity Management を設定した Capsule Server を選択します。
  5. ロケーション タブをクリックして、ロケーション 一覧から、新しいレレムを追加するロケーションを選択します。
  6. 組織 タブをクリックして、組織 一覧から、新規レルムを追加する組織を選択します。
  7. 送信 をクリックします。

レルム情報でのホストグループの更新

使用するホストグループを、新しいレルム情報で更新する必要があります。

  1. 設定 > ホストグループ に移動して、更新するホストグループを選択し、ネットワーク タブをクリックします。
  2. レルム 一覧から、この手順の一部で作成するレルムを選択して 送信 をクリックします。

Red Hat Identity Management ホストグループへのホストの追加

Red Hat Identity Management では、システムの属性に基づいて自動メンバーシップルールをセットアップできます。Red Hat Satellite のレルム機能は、管理者に対し、Red Hat Satellite ホストグループを Red Hat Identity Management パラメーター userclass にマップする機能を提供します。これにより、管理者は automembership を設定することができます。

ネスト化されたホストグループが使用される場合、それらは Red Hat Satellite ユーザーインターフェースに表示され、Red Hat Identity Management サーバーに送信されます。たとえば、"Parent/Child/Child" のように表示されます。

Satellite Server または Capsule Server は更新を Red Hat Identity Management サーバーに送信しますが、automembership のルールは、初回登録時にのみ適用されます。

Red Hat Identity Management ホストグループにホストを追加するには、以下を実行します。

  1. Red Hat Identity Management サーバーで、ホストグループを作成します。

    # ipa hostgroup-add hostgroup_name --desc=hostgroup_description
  2. automembership ルールを作成します。

    # ipa automember-add --type=hostgroup hostgroup_name automember_rule

    以下のオプションを使用できる場所:

    • automember-add は automember グループとしてグループにフラグを立てます。
    • --type=hostgroup は、ターゲットグループがユーザーグループではなく、ホストグループであることを特定します。
    • automember_rule は、automember ルールの識別に使用する名前を追加します。
  3. 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 ホストグループに追加されると、そのシステムは、Red Hat Identity Management サーバーの "hostgroup_name" ホストグループに自動的に追加されます。Red Hat Identity Management ホストグループは、HBAC (ホストベースアクセス制御)、sudo ポリシー、およびその他の Red Hat Identity Management 機能を許可します。

13.8. 外部認証用の Satellite と Red Hat Single Sign On の統合

CAC カードを使用した外部認証用の OpenID プロバイダーとして Red Hat Single Sign-On を使用するように Satellite を設定できます。使用できるのは CAC カードのみです。他の認証方法はサポートされていません。

重要

OpenID プロバイダーとして Red Hat Single Sign-On を使用する認証は、テクノロジープレビュー機能のみになります。テクノロジープレビュー機能は、Red Hat の実稼働サービスレベルアグリーメント (SLA) でサポートされておらず、機能的に完全でない可能性があります。Red Hat は、実稼働環境での使用は推奨していません。これらの機能により、近日発表予定の製品機能をリリースに先駆けてご提供でき、お客様は開発プロセス時に機能をテストして、フィードバックをお寄せいただくことができます。

Red Hat テクノロジープレビュー機能のサポート範囲に関する情報は、「テクノロジープレビュー機能のサポート範囲」を参照してください。

前提条件

  • HTTP ではなく、HTTPS を使用する Red Hat Single Sign On サーバーを正常にインストールしている。
  • 証明書または CA が自己署名されている場合は、それらがエンドユーザー証明書トラストストアに追加されていることを確認する。

手順

  1. 以下のパッケージをインストールします。

    # satellite-maintain packages install mod_auth_openidc keycloak-httpd-client-install
  2. Satellite Server に、Red Hat Single Sign On httpd クライアントをインストールします。

    # keycloak-httpd-client-install --app-name foreman-openidc \
    --keycloak-server-url "RHSSO.example.com" \
    --keycloak-admin-username "RHSSO_User" \
    --keycloak-realm "RHSSO_Realm" \
    --keycloak-admin-realm master \
    --keycloak-auth-role root-admin -t openidc -l /users/extlogin --force

    上記のコマンドは、Red Hat Single Sign On に Satellite のクライアントを登録します。

  3. satellite-installer を使用して Red Hat Single Sign On を有効にします。

    # satellite-installer --foreman-keycloak true \
    --foreman-keycloak-app-name  "foreman-openidc" \
    --foreman-keycloak-realm "RHSSO_Realm"
  4. httpd サービスを再起動します。

    # systemctl restart httpd
  5. Red Hat Single Sign-On Web UI で、クライアント に移動し、Satellite クライアントをクリックします。
  6. アクセスタイプ 設定が 機密 に設定されていることを確認してください。
  7. Red Hat Single Sign-On バージョン7.3 以降を使用している場合は、以下の手順を実行します。

    1. Red Hat Single Sign-On Web UI に移動し、クライアント をクリックして、Satellite に登録されているクライアントをクリックします。
    2. デフォルトで 1 つのリダイレクト URI を含む 有効なリダイレクト URI フィールドを見つけます。https://satellite.example.com/users/extlogin の形式で 有効なリダイレクト URI を追加します。
    3. 保存をクリックします。
    4. マッパー タブをクリックし、作成 をクリックします。オーディエンスマッパーに以下の値を設定します。

      • マッパータイプ リストから、オーディエンス を選択します。
      • 組み込み済みクライアントオーディエンス リストから、Satellite で使用するクライアントを選択します。

        オーディエンスサポートの詳細は、『Red Hat Single Sign On Server Administration Guide』の「Audience Support」を参照してください。

    5. 保存をクリックします。
    6. マッパー タブをクリックし、作成 をクリックしてグループマッパーを追加します。これにより、グループメンバーシップに基づいて Satellite で認証を指定できるようになります。グループマッパーに以下の値を設定します。

      • マッパータイプ リストから、グループメンバーシップ を選択します。
      • トークンクレーム名 リストから、グループ を選択します。
      • フルグループパス トグルを OFF に設定します。

        グループマッパーの詳細は、『Red Hat Single Sign On Server Administration Guide』の「LDAP Mappers 」セクションに記載されている「Group Mapper」を参照してください。

    7. 保存をクリックします。
  8. Satellite Web UI で、管理 > 設定 に移動し、認証 タブをクリックします。
  9. ログイン委任の認証 行を見つけ、 コラムで、値を Yes に設定します。
  10. Authorize login delegation auth source user autocreate 行を見つけ、 コラムで、値を External に設定します。
  11. ログイン委任のログアウト URL 行を見つけ、 コラムで、値を https://satellite.example.com/users/extlogout に設定します。

    以下の手順では、URL RHSSO.example.com/auth/realms/RHSSO_REALM/.well-known/openid-configuration に移動して、必要とする値を取得することができます。

  12. OIDC アルゴリズム 行を見つけ、 コラムで、Red Hat Single Sign On のエンコーティングのアルゴリズムを設定します (例: RS256)。
  13. OIDC オーディエンス 行を見つけ、 コラムで、値を Red Hat Single Sign On のクライアント ID (['satellite.example.com']) に設定します。
  14. OIDC 発行者 行を見つけ、 コラムで、値を RHSSO.example.com/auth/realms/RHSSO_Realm に設定します。
  15. OIDC JWKs URL 行を見つけ、 コラムで、値を RHSSO.example.com/auth/realms/RHSSO_Realm/protocol/openid-connect/certs に設定します。
  16. BZ#1792131 が解決されるまで、Hammer CLI を使用して組織とロケーションを設定する必要があります。Red Hat Single Sign On 認証ソースの ID を取得するには、以下のコマンドを入力します。

    # hammer auth-source external list
  17. 認証元の組織とロケーションを設定します。

    # hammer auth-source external update --id Authentication Source ID \
    --location-ids Location ID --organization-ids Organization ID

https://satellite.example.com/users/extlogin ログイン URL を使用して認証できるようになりました。

CLI をご利用の場合

  1. 以下のパッケージをインストールします。

    # satellite-maintain packages install keycloak-httpd-client-install
  2. Satellite Server に、Red Hat Single Sign On httpd クライアントをインストールします。

    # keycloak-httpd-client-install --app-name foreman-openidc \
    --keycloak-server-url "RHSSO.example.com" \
    --keycloak-admin-username "RHSSO_User" \
    --keycloak-realm "RHSSO_Realm" \
    --keycloak-admin-realm master \
    --keycloak-auth-role root-admin -t openidc -l /users/extlogin --force

    このコマンドは、Red Hat Single Sign On で Satellite のクライアントを作成します。

  3. satellite-installer を使用して Red Hat Single Sign On を有効にします。

    # satellite-installer --foreman-keycloak true \
    --foreman-keycloak-app-name  "foreman-openidc" \
    --foreman-keycloak-realm "RHSSO_Realm"
  4. httpd サービスを再起動します。

    # systemctl restart httpd
  5. Red Hat Single Sign-On Web UI で、クライアント に移動し、Satellite クライアントをクリックします。
  6. アクセスタイプ 設定を パブリック に設定します。
  7. 有効なリダイレクト URL フィールドに、urn:ietf:wg:oauth:2.0:oob と入力します。
  8. Red Hat Single Sign-On バージョン7.3 以降を使用している場合は、以下の手順を実行します。

    1. Red Hat Single Sign-On Web UI に移動し、クライアント をクリックして、Satellite に登録されているクライアントをクリックします。
    2. デフォルトで 1 つのリダイレクト URI を含む 有効なリダイレクト URI フィールドを見つけます。https://satellite.example.com/users/extlogin の形式で 有効なリダイレクト URI を追加します。
    3. 保存をクリックします。
    4. マッパー タブをクリックし、作成 をクリックします。オーディエンスマッパーに以下の値を設定します。

      • マッパータイプ リストから、オーディエンス を選択します。
      • 組み込み済みクライアントオーディエンス リストから、Satellite で使用するクライアントを選択します。

        オーディエンスサポートの詳細は、『Red Hat Single Sign On Server Administration Guide』の「Audience Support」を参照してください。

    5. 保存をクリックします。
    6. マッパー タブをクリックし、作成 をクリックしてグループマッパーを追加します。これにより、グループメンバーシップに基づいて Satellite で認証を指定できるようになります。グループマッパーに以下の値を設定します。

      • マッパータイプ リストから、グループメンバーシップ を選択します。
      • トークンクレーム名 リストから、グループ を選択します。
      • フルグループパス トグルを OFF に設定します。

        グループマッパーの詳細は、『Red Hat Single Sign On Server Administration Guide』の「LDAP Mappers 」セクションに記載されている「Group Mapper」を参照してください。

    7. 保存をクリックします。
  9. Satellite で、ログイン委任を true に設定し、ユーザーが Open IDC プロトコルを使用して認証できるようにします。

    # hammer settings set --name authorize_login_delegation --value true
  10. ログイン認証を外部ソースに設定します。

    # hammer settings set --name authorize_login_delegation_auth_source_user_autocreate --value External
  11. ログイン委任のログアウト URL を以下のように設定します。

    # hammer settings set --name login_delegation_logout_url \
    --value https://satellite.example.com/users/extlogout
  12. Red Hat Single Sign On のエンコーティングのアルゴリズムを設定します (例: RS256)。

    # hammer settings set --name oidc_algorithm --value 'RS256'
  13. URL RHSSO.example.com/auth/realms/RHSSO_REALM/.well-known/openid-configuration を開いて値をメモし、以下のステップのオプションに入力します。
  14. Open IDC オーディエンスの値を設定します。

    # hammer settings set --name oidc_audience \
    --value "['satellite.example.com']"
  15. Open IDC 発行者の値を設定します。

    # hammer settings set --name oidc_issuer \
    --value "RHSSO.example.com/auth/realms/RHSSO_Realm"
  16. Open IDC Java Web Token (JWT) の値を設定します。

    # hammer settings set --name oidc_jwks_url \
    --value "RHSSO.example.com/auth/realms/RHSSO_Realm/protocol/openid-connect/certs"
  17. Until BZ#1792131 が解決されるまで、Hammer CLI を使用して組織とロケーションを設定する必要があります。組織とロケーションを設定するには、最初に Red Hat Single Sign On 認証ソースの ID を取得する必要があります。

    # hammer auth-source external list
  18. ロケーションと組織を設定します。

    # hammer auth-source external update --id Authentication Source ID \
    --location-ids Location ID --organization-ids Organization ID
  19. 二要素認証を使用して認証するには、以下のコマンドを入力します。

    # hammer auth login oauth \
    --two-factor \
    --oidc-token-endpoint 'https://RHSSO.example.com/auth/realms/ssl-realm/protocol/openid-connect/token' \
    --oidc-authorization-endpoint 'https://RHSSO.example.com/auth' \
    --oidc-client-id 'satellite.example.com-foreman-openidc' \
    --oidc-redirect-uri urn:ietf:wg:oauth:2.0:oob

    このコマンドは、サクセスコードの入力を要求します。サクセスコードを取得するには、コマンドが返す URL に移動し、必要な情報を提供します。

13.9. Red Hat Single Sign On 認証の無効化

Satellite で Red Hat Single Sign On 認証を無効化するには、以下の手順を実行します。

手順

  • Red Hat Single Sign On 認証を無効化するには、以下のコマンドを入力します。

    # satellite-installer --reset-foreman-keycloak