5.9. Red Hat Single Sign-On 認証を使用した Satellite の設定
Red Hat Single Sign On を外部認証用の OpenID プロバイダーとして使用するように Satellite を設定するには、以下のセクションを使用します。
5.9.1. Red Hat Single Sign-On 認証を使用して Satellite を設定するための前提条件
Red Hat Single Sign-On 外部認証を使用して Satellite を設定する前に、以下の要件を満たすようにしてください。
- HTTP ではなく、HTTPS を使用する Red Hat Single Sign On サーバーを正常にインストールしている。
- 管理者権限を持つ Red Hat Single Sign-On アカウント。
- Red Hat Single Sign-On で作成した Satellite ユーザーアカウントのレルム。
- 証明書または CA が自己署名されている場合は、それらがエンドユーザー証明書トラストストアに追加されていることを確認する。
ユーザーが Red Hat Single Sign-On にインポートまたは追加されている。
LDAP や Kerberos などの既存のユーザーデータベースが設定されている場合は、ユーザーのフェデレーションを設定することでユーザーをインポートできます。詳細は、Red Hat Single Sign On サーバー管理ガイドの ユーザーストレージフェデレーション を参照してください。
既存のユーザーデータベースが設定されていない場合は、Red Hat Single Sign-On でユーザーを手作業で作成できます。詳細は、Red Hat Single Sign On サーバー管理ガイドの 新規ユーザーの作成 を参照してください。
5.9.2. Satellite を Red Hat Single Sign-On クライアントとして登録する
以下の手順を使用して、Satellite をクライアントとして Red Hat Single Sign-On に登録し、認証ソースとして Red Hat Single Sign-On を使用するように Satellite を設定します。
Satellite と Red Hat Single Sign-On は、2 つの異なる認証方法で設定できます。
- Satellite Web UI を使用した Satellite への認証。
- Satellite CLI を使用した Satellite への認証。
どちらの方法でも、異なる Satellite クライアントを Red Hat Single Sign-On に登録して設定する必要があるため、ユーザーの認証方法を事前に決定する必要があります。この手順では、Red Hat Single Sign-On の Satellite クライアントの登録および設定方法が区別されています。
両認証方法を使用して、どちらのクライアントも適宜設定する場合には、Red Hat Single Sign-On に異なる Satellite クライアントを 2 つ登録することも可能です。
手順
Satellite Server で、以下のパッケージをインストールします。
# satellite-maintain packages install mod_auth_openidc keycloak-httpd-client-install python3-lxml
Satellite をクライアントとして Red Hat Single Sign-On に登録します。Web UI と CLI とでログインの登録プロセスが異なる点に注意してください。Red Hat Single Sign-On に 2 つの Satellite クライアントを登録すると、Web UI と CLI から Satellite にログインできます。
Web UI で Satellite への認証を行う場合は、以下のようにクライアントを作成します。
# keycloak-httpd-client-install --app-name foreman-openidc \ --keycloak-server-url "https://RHSSO.example.com" \ --keycloak-admin-username "admin" \ --keycloak-realm "Satellite_Realm" \ --keycloak-admin-realm master \ --keycloak-auth-role root-admin \ -t openidc -l /users/extlogin --force
プロンプトが表示されたら、管理アカウントのパスワードを入力します。このコマンドは、Red Hat Single Sign On で Satellite のクライアントを作成します。
次に、認証ソースとして Red Hat Single Sign On を使用するように Satellite を設定します。
# satellite-installer --foreman-keycloak true \ --foreman-keycloak-app-name "foreman-openidc" \ --foreman-keycloak-realm "Satellite_Realm"
CLI で Satellite への認証を行う場合は、以下のようにクライアントを作成します。
# keycloak-httpd-client-install --app-name hammer-openidc \ --keycloak-server-url "https://RHSSO.example.com" \ --keycloak-admin-username "admin" \ --keycloak-realm "Satellite_Realm" \ --keycloak-admin-realm master \ --keycloak-auth-role root-admin \ -t openidc -l /users/extlogin --force
プロンプトが表示されたら、管理アカウントのパスワードを入力します。このコマンドは、Red Hat Single Sign On で Satellite のクライアントを作成します。
httpd
サービスを再起動します。# systemctl restart httpd
5.9.3. Red Hat Single Sign-On での Satellite クライアントの設定
以下の手順を使用して、Red Hat Single Sign-On Web UI で Satellite クライアントを設定し、Satellite クライアントのグループおよびオーディエンスマッパーを作成します。
手順
- Red Hat Single Sign-On Web UI で、クライアント に移動し、Satellite クライアントをクリックします。
アクセスタイプを設定します。
- Satellite web UI を使用して Satellite への認証を行うには、アクセスタイプ リストから 機密 を選択します。
- CLI を使用して Satellite への認証を行うには、アクセスタイプ リストから 公開 を選択します。
有効なリダイレクト URI フィールドに有効なリダイレクト URI を追加します。
Satellite web UI を使用して Satellite への認証を行うには、
https://satellite.example.com/users/extlogin
の形式で URI を入力します。Satellite FQDN の後に/users/extlogin
の文字列を追加する必要があります。この手順の完了後に、Satellite クライアントが Satellite web UI を使用してログインするには以下の 有効なリダイレクト URI が必要です。
https://satellite.example.com/users/extlogin/redirect_uri https://satellite.example.com/users/extlogin
CLI を使用してユーザーが Satellite への認証を行うには、既存の URI の下の空白フィールドに urn:ietf:wg:wg:oauth:2.0:oob を入力します。
この手順の完了後に、Satellite クライアントが CLI を使用してログインするには以下の 有効なリダイレクト URI が必要です。
https://satellite.example.com/users/extlogin/redirect_uri urn:ietf:wg:oauth:2.0:oob
- Save をクリックします。
- マッパー タブ、作成 の順にクリックし、オーディエンスマッパーを追加します。
- 名前 フィールドに、オーディエンスマッパーの名前を入力します。
- マッパータイプ リストから、オーディエンス を選択します。
- 組み込み済みクライアントオーディエンス リストから、Satellite クライアントを選択します。
- Save をクリックします。
- 作成 をクリックして、グループメンバーシップをもとに Satellite の認証を指定できるようにグループマッパーを追加します。
- 名前 フィールドにグループマッパーの名前を入力します。
- マッパータイプ リストから、グループメンバーシップ を選択します。
- トークンクレーム名 に groups と入力します。
- フルグループパス のトグルを OFF に設定します。
- Save をクリックします。
5.9.4. Red Hat Single Sign-On 認証用の Satellite の設定
このセクションでは、Satellite Web UI または CLI を使用して Red Hat Single Sign-On 認証用に Satellite を設定します。
5.9.4.1. Web UI を使用した Red Hat Single Sign-On 認証用の Satellite の設定
以下の手順に従って、Satellite Web UI を使用して Red Hat Single Sign-On 認証向けに Satellite を設定します。
レルム内の https://RHSSO.example.com/auth/realms/Satellite_Realm/.well-known/openid-configuration
の URL に移動し、値を取得して Satellite を設定できる点に留意してください。
前提条件
- Red Hat Single Sign-On Web UI の Satellite クライアントでの アクセスタイプ 設定が 機密 に設定されていることを確認します。
手順
- Satellite Web UI で、管理 > 設定 に移動して、認証 タブをクリックします。
- ログイン委任の認証 の行を見つけ、値 コラムで Yes に値を設定します。
- Authorize login delegation auth source user autocreate 行を見つけ、値 コラムで External に値を設定します。
- Login delegation logout URL の行を見つけ、Value 列で、値を https://satellite.example.com/users/extlogout に設定します。
- OIDC アルゴリズム の行を見つけ、値 コラムで、Red Hat Single Sign On のエンコーティングのアルゴリズムを設定します (例: RS256)。
- OIDC オーディエンス 行を見つけ、値 コラムで、値を Red Hat Single Sign On のクライアント ID に設定します。
- OIDC Issuer 行を見つけ、Value 列で、値を https://RHSSO.example.com/auth/realms/Satellite_Realm に設定します。
- OIDC JWKs URL 行を見つけ、Value 列で、値を https://RHSSO.example.com/auth/realms/Satellite_Realm/protocol/openid-connect/certs に設定します。
- Satellite Web UI で、Administer > Authentication Sources に移動し、External カードの垂直省略記号をクリックして、Edit を選択します。
- 場所 タブをクリックして、Red Hat Single Sign-On 認証ソースを使用できる場所を追加します。
- 組織 タブをクリックして、Red Hat Single Sign-On 認証ソースを使用できる組織を追加します。
- Submit をクリックします。
5.9.4.2. CLI を使用した Red Hat Single Sign-On 認証用の Satellite の設定
以下の手順に従って、Satellite CLI を使用して Red Hat Single Sign-On 認証向けに Satellite を設定します。
レルム内の https://RHSSO.example.com/auth/realms/Satellite_Realm/.well-known/openid-configuration
の URL に移動し、値を取得して Satellite を設定できる点に留意してください。
前提条件
- Red Hat Single Sign-On Web UI の Satellite クライアントでの アクセスタイプ 設定が 公開 に設定されていることを確認します。
手順
Satellite で、ログイン委任を
true
に設定し、ユーザーが Open IDC プロトコルを使用して認証できるようにします。# hammer settings set --name authorize_login_delegation --value true
ログイン委任のログアウト URL を以下のように設定します。
# hammer settings set --name login_delegation_logout_url \ --value https://satellite.example.com/users/extlogout
Red Hat Single Sign On のエンコーティングのアルゴリズムを設定します (例:
RS256
)。# hammer settings set --name oidc_algorithm --value 'RS256'
-
URL
RHSSO.example.com/auth/realms/RHSSO_REALM/.well-known/openid-configuration
を開いて値をメモし、以下のステップのオプションに入力します。 Open IDC オーディエンスに Hammer クライアントの値を追加します。
# hammer settings set --name oidc_audience \ --value "['satellite.example.com-hammer-openidc']"
注記複数の Red Hat Single Sign-On クライアントを Satellite に登録する場合は、以下のように、アレイに全オーディエンスを必ず追加してください。以下に例を示します。
# hammer settings set --name oidc_audience \ --value "['satellite.example.com-foreman-openidc', 'satellite.example.com-hammer-openidc']"
Open IDC 発行者の値を設定します。
# hammer settings set --name oidc_issuer \ --value "RHSSO.example.com/auth/realms/RHSSO_Realm"
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"
Red Hat Single Sign-On 認証ソースの ID を取得します。
# hammer auth-source external list
ロケーションと組織を設定します。
# hammer auth-source external update --id Authentication Source ID \ --location-ids Location ID --organization-ids Organization ID
5.9.5. Red Hat Single Sign-On を使用した Satellite Web UI へのログイン
以下の手順に従って、Red Hat Single Sign-On を使用して Satellite Web UI にログインします。
手順
- ブラウザーで Satellite にログインし、認証情報を入力します。
5.9.6. Red Hat Single Sign-On を使用した Satellite CLI へのログイン
以下の手順に従って、コード付与タイプを使用して Satellite CLI への認証を行います。
手順
コード付与タイプを使用して Satellite CLI への認証を行うには、以下のコマンドを入力します。
# 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 に移動し、必要な情報を提供します。
- Web UI が返すサクセスコードをコピーします。
-
hammer auth login oauth
のコマンドプロンプトに、サクセスコードを入力して Satellite CLI に対して認証を行います。
5.9.7. Red Hat Single Sign-On 認証用のグループマッピングの設定
必要に応じて、ロールベースのアクセス制御 (RBAC) を実装するには、Satellite でグループを作成し、このグループにロールを割り当ててから Active Directory グループを Satellite グループにマッピングします。これにより、Red Hat Single Sign-On の指定のグループに所属する場合には、該当する Satellite グループでログインします。この例では、Active Directory の Satellite-admin ユーザーグループのユーザーを設定し、Satellite で管理者権限を持つユーザーとして認証されるようにします。
手順
- Satellite Web UI で、Administer > User Groups に移動します。
- Create User Group をクリックします。
- 名前 フィールドにユーザーグループの名前を入力します。名前は Active Directory と同じにしないでください。
- 右側の列には、ユーザーおよびユーザーグループを追加しないでください。ロール タブをクリックします。
- 管理 チェックボックスを選択します。
- 外部グループ タブをクリックします。
- 外部ユーザーグループの追加 をクリックします。
- 名前 フィールドに、Active Directory の名前を入力します。
- リストから 外部 を選択します。