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 ファイルの両方に存在すれば、この競合によってシステムが影響を受けることはありません。たとえば、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 では、外部認証を設定する 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 認証の設定:

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

これで 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

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

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

アカウントパスワード

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

ベース DN

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

グローバルベース DN

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

LDAP フィルター

LDAP クエリを制限するフィルター。例については 「LDAP フィルターの例」 を参照してください。

オンザフライ登録

このオプションが選択された場合は、LDAP ユーザーが初めて Satellite にログインしたときに、Satellite ユーザーアカウントが自動的に作成されます。 Permissions Denied の警告が表示されることがあります。その場合は、ユーザーは 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

メールアドレス属性

mail

注記

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

メールアドレス属性

mail

表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

メールアドレス属性

mail

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 認証の設定:

  1. 以下のように、IdM サーバー上で Satellite Server のホストエントリーを作成し、ワンタイムパスワードを生成します。

    # ipa host-add --random hostname
    注記

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

    ホスト設定プロパティーの詳細については、Linux ドメイン ID、認証、およびポリシーガイド[3] を参照してください。

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

    # ipa service-add servicename/hostname

    ホスト設定プロパティーの詳細については、Linux ドメイン ID、認証、およびポリシーガイド[4] を参照してください。

  3. Satellite Server で、IdM 登録を設定するために、root で以下のコマンドを実行します。

    # ipa-client-install --password OTP

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

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

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

    # satellite-installer --foreman-ipa-authentication=true

    このコマンドは、Satellite のフレッシュインストールに限定されません。既存の Satellite インストールを変更するためにも使用できます。

  6. 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 の設定:

  1. 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
  2. サービス 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 ルールにホストグループとユーザーグループを追加します。

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

    $ ipa hbacrule-find satellite-prod
    $ ipa hbactest --user=username --host=the-satellite-fqdn --service=satellite-prod
  4. IdM サーバーで allow_all rule が無効であることを確認します。他のサービスに影響を与えずにこれを行う方法については、Red Hat カスタマーポータル上の記事 How to configure HBAC rules in IdM[6] を参照してください。
  5. 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 の登録:

  1. 必要なパッケージをインストールします。

    # yum install sssd adcli realmd ipa-python-compat krb5-workstation
  2. 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 統合の設定:

  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. 以下の内容で /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
  5. 以下の行を /etc/krb5.conf ファイルの先頭に挿入します。

    includedir /var/lib/sss/pubconf/krb5.include.d/
  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

    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 サーバーで、以下の追加の手順を実行する必要があります。

  1. HBAC 機能を有効にするために、外部グループを作成し、AD グループをその外部グループに追加します。新しい外部グループを POSIX グループに追加します。この POSIX グループを HBAC ルールで使用します。
  2. AD ユーザーの追加属性を転送するよう sssd を設定します。これらの属性を /etc/sssd/sssd.confnss セクションと 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 人のユーザーが存在する必要があります。

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

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

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

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

ユーザーログイン時に自動的に 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 レルムサポートの設定:

  1. Satellite Server または Capsule Server に以下のパッケージをインストールします。

    # yum install ipa-client foreman-proxy ipa-admintools
  2. IdM クライアントとして Satellite Server (または Capsule Server) を設定します。

    # ipa-client-install
  3. 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
  4. /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
  5. 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
  6. ca-certificates パッケージの最新バージョンがインストールされ、IdM 認証局が信頼されていることを確認します。

    # cp /etc/ipa/ca.crt /etc/pki/ca-trust/source/anchors/ipa.crt
    # update-ca-trust enable
    # update-ca-trust
  7. (オプション) すでに存在する Satellite Server または Capsule Server で IdM を設定している場合は、設定の変更を反映するために以下の手順も実行する必要があります。

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

      # service foreman-proxy restart
    2. Satellite Server にログインし、インフラストラクチャー > Capsules (スマートプロキシー) に移動します。
    3. IdM 用に設定した Capsule Server の右側にあるドロップダウンメニューをクリックし、機能の更新 を選択します。
  8. 最後に、Satellite Server ユーザーインターフェースで新規のレルムエントリーを作成します。

    1. インフラストラクチャー > レルム に移動し、メインページの右側にある 新規レルム をクリックします。
    2. 以下のサブタブのフィールドに値を入力します。

      • レルム サブタブで、レルム名、使用するレルムの種類、およびレルムプロキシーを指定します。
      • ロケーション サブタブで、新規レルムを使用する予定のロケーションを選択します。
      • 組織 サブタブで、新規レルムを使用する予定の組織を選択します。
    3. 送信 をクリックします。

これで 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 ホストグループへのホストの追加:

  1. IdM サーバー上で、ホストグループを作成します。

    # ipa hostgroup-add hostgroup_name
    Description: hostgroup_description
    ----------------------------
    Added hostgroup "hostgroup_name"
    ----------------------------
    Host-group: hostgroup_name
    Description: hostgroup_description

    ここで、

    • hostgroup_name はホストグループの名前です。
    • hostgroup_description はホストグループの説明です。
  2. 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 ルールの特定に使用する名前です。
  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 ホストグループに追加されると、そのシステムは、Identity Management サーバーの "hostgroup_name" ホストグループに自動的に追加されます。IdM ホストグループは、HBAC (ホストベースアクセス制御)、sudo ポリシー、およびその他の IdM 機能を許可します。