13.8. 外部認証用の Satellite と Red Hat Single Sign On の統合
CAC カードを使用して Red Hat Single Sign On を外部認証用の OpenID プロバイダーとして使用するように Satellite を設定できます。CAC カードのみを使用できます。他の認証方法はサポートされません。
OpenID プロバイダーとして Red Hat Single Sign-On を使用する認証はテクノロジープレビュー機能です。テクノロジープレビュー機能は Red Hat の実稼働環境でのサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。Red Hat は実稼働環境でこれらを使用することを推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。
Red Hat のテクノロジープレビュー機能のサポート範囲についての詳細は、https://access.redhat.com/ja/support/offerings/techpreview/ を参照してください。
前提条件
- HTTP ではなく、HTTPS を使用する Red Hat Single Sign On サーバーを正常にインストールしている。
- 証明書または CA が自己署名されている場合は、それらがエンドユーザー証明書トラストストアに追加されていることを確認する。
手順
以下のパッケージをインストールします。
# satellite-maintain packages install mod_auth_openidc keycloak-httpd-client-installSatellite 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 のクライアントを登録します。
satellite-installerを使用して Red Hat Single Sign On を有効にします。# satellite-installer --foreman-keycloak true \ --foreman-keycloak-app-name "foreman-openidc" \ --foreman-keycloak-realm "RHSSO_Realm"httpd サービスを再起動します。
# systemctl restart httpd- Red Hat Single Sign-On Web UI で、クライアント に移動し、Satellite クライアントをクリックします。
- アクセスタイプ 設定が 機密 に設定されていることを確認します。
Red Hat Single Sign-On バージョン7.3 以降を使用している場合は、以下の手順を実行します。
- Red Hat Single Sign-On Web UI に移動し、クライアント をクリックして、Satellite に登録されているクライアントをクリックします。
-
デフォルトで 1 つのリダイレクト URI を含む 有効なリダイレクト URI フィールドを見つけます。
https://satellite.example.com/users/extloginの形式で、有効なリダイレクト URI を追加します。 - 保存 をクリックします。
マッパー タブをクリックし、作成 をクリックします。オーディエンスマッパーに以下の値を設定します。
- マッパータイプ リストから、オーディエンス を選択します。
組み込み済みクライアントオーディエンス リストから、Satellite で使用するクライアントを選択します。
詳細は、『Red Hat Single Sign On Server Administration Guide』の「Audience Support」を参照してください。
- 保存 をクリックします。
Mapper タブをクリックして 作成 をクリックし、グループメンバーシップをもとに Satellite の認証を指定できるようにグループマッパーを追加します。グループマッパーに以下の値を設定します。
- マッパータイプ リストから、グループメンバーシップ を選択します。
- トークンクレーム名 リストから グループ を選択します。
フルグループパス のトグルを OFF に設定します。
グループマッパーの詳細は、『Red Hat Single Sign-On Server Administration Guide』の「LDAP Mappers」セクションの Group Mapper を参照してください。
- Save をクリックします。
- Satellite Web UI で、管理 > 設定 に移動して、認証 タブをクリックします。
-
ログイン委任の認証 の行を見つけ、値 コラムで値を
Yesに設定します。 -
Authorize login delegation auth source user autocreate の行を見つけ、値 コラムで値を
Externalに設定します。 ログイン委任のログアウト URL の行を見つけ、値 コラムで、値を
https://satellite.example.com/users/extlogoutに設定します。以下の手順では、URL
RHSSO.example.com/auth/realms/RHSSO_REALM/.well-known/openid-configurationに移動して、必要とする値を取得することができます。-
OIDC アルゴリズム の行を見つけ、値 コラムで、Red Hat Single Sign On のエンコーティングのアルゴリズムを設定します (例:
RS256)。 -
OIDC オーディエンス 行を見つけ、値 コラム で、値を Red Hat Single Sign On のクライアント ID に設定します
(['satellite.example.com'])。 -
OIDC 発行者 の行を見つけ、値 コラムで、値を
RHSSO.example.com/auth/realms/RHSSO_Realmに設定します。 -
OIDC JWKs URL の行を見つけ、値 コラムで、値を
RHSSO.example.com/auth/realms/RHSSO_Realm/protocol/openid-connect/certsに設定します。 BZ#1792131 が解決されるまで、Hammer CLI を使用して組織とロケーションを設定する必要があります。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
これで、https://satellite.example.com/users/extlogin ログイン URL を使用して認証できるようになりました。
CLI をご利用の場合
以下のパッケージをインストールします。
# satellite-maintain packages install keycloak-httpd-client-installSatellite 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 のクライアントを作成します。
satellite-installerを使用して Red Hat Single Sign On を有効にします。# satellite-installer --foreman-keycloak true \ --foreman-keycloak-app-name "foreman-openidc" \ --foreman-keycloak-realm "RHSSO_Realm"httpd サービスを再起動します。
# systemctl restart httpd- Red Hat Single Sign-On Web UI で、クライアント に移動し、Satellite クライアントをクリックします。
- アクセスタイプ 設定を 公開 に設定します。
-
有効なリダイレクト URL フィールドに
urn:ietf:wg:oauth:2.0:oobを入力します。 Red Hat Single Sign-On バージョン7.3 以降を使用している場合は、以下の手順を実行します。
- Red Hat Single Sign-On Web UI に移動し、クライアント をクリックして、Satellite に登録されているクライアントをクリックします。
-
デフォルトで 1 つのリダイレクト URI を含む 有効なリダイレクト URI フィールドを見つけます。
https://satellite.example.com/users/extloginの形式で、有効なリダイレクト URI を追加します。 - 保存 をクリックします。
マッパー タブをクリックし、作成 をクリックします。オーディエンスマッパーに以下の値を設定します。
- マッパータイプ リストから、オーディエンス を選択します。
組み込み済みクライアントオーディエンス リストから、Satellite で使用するクライアントを選択します。
詳細は、『Red Hat Single Sign On Server Administration Guide』の「Audience Support」を参照してください。
- 保存 をクリックします。
Mapper タブをクリックして 作成 をクリックし、グループメンバーシップをもとに Satellite の認証を指定できるようにグループマッパーを追加します。グループマッパーに以下の値を設定します。
- マッパータイプ リストから、グループメンバーシップ を選択します。
- トークンクレーム名 リストから グループ を選択します。
フルグループパス のトグルを OFF に設定します。
グループマッパーの詳細は、『Red Hat Single Sign-On Server Administration Guide』の「LDAP Mappers」セクションの Group Mapper を参照してください。
- 保存 をクリックします。
Satellite で、ログイン委任を
trueに設定し、ユーザーが Open IDC プロトコルを使用して認証できるようにします。# hammer settings set --name authorize_login_delegation --value trueログイン認証を外部ソースに設定します。
# hammer settings set --name authorize_login_delegation_auth_source_user_autocreate --value Externalログイン委任のログアウト URL を以下のように設定します。
# hammer settings set --name login_delegation_logout_url \ --value https://satellite.example.com/users/extlogoutRed 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 settings set --name oidc_audience \ --value "['satellite.example.com']"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"BZ#1792131 が解決されるまで、Hammer CLI を使用して組織とロケーションを設定する必要があります。組織とロケーションを設定するには、まず 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二要素認証を使用して認証するには、以下のコマンドを入力します。
# 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 に移動し、必要な情報を提供します。