5.10. TOTP での Red Hat Single Sign On 認証の設定
TOTP カードを使用した外部認証用の OpenID プロバイダーとして Red Hat Single Sign-On を使用するように Satellite を設定するには、以下のセクションを使用します。
5.10.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.10.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.10.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.10.4. Red Hat Single Sign-On 認証用の Satellite オプションの設定
このセクションでは、Satellite Web UI または CLI を使用して Red Hat Single Sign-On 認証用に Satellite を設定します。
5.10.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.10.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.10.5. TOTP での Red Hat Single Sign On 認証を使用した Satellite の設定
Time-based One-time Password (TOTP) を使用した外部認証用の OpenID プロバイダーとして Red Hat Single Sign-On を使用するように Satellite を設定するには、以下のセクションを使用します。
手順
- Red Hat Single Sign-On Web UI で、Satellite レルムに移動します。
- Authentication に移動し、OTP Policy タブをクリックします。
- サポートされるアプリケーション フィールドに FreeOTP または Google Authenticator が含まれていることを確認します。
- 要件に合わせて OTP を設定します。
- 必要に応じて、すべてのユーザーのデフォルト認証方法として TOTP 認証を使用する場合は、Flows タブをクリックして OTP Form 設定の右側にある REQUIRED を選択します。
- Required Actions タブをクリックします。
- Configure OTP 行の右側にある Default Action チェックボックスを選択します。
5.10.6. Red Hat Single Sign-On TOTP 認証を使用した Satellite web UI へのログイン
以下の手順に従って、Red Hat Single Sign-On TOTP 認証で Satellite Web UI にログインします。
手順
- Satellite にログインすると、Satellite は Red Hat Single Sign-On のログイン画面にリダイレクトします。
- ユーザー名とパスワードを入力し、ログイン をクリックします。
- 初回ログインの場合には、Red Hat Single Sign-On により、バーコードをスキャンし、表示された暗証番号を入力してクライアントを設定するように求められます。
- クライアントを設定して有効な暗証番号を入力すると、Red Hat Single Sign-On で Satellite にリダイレクト後にログインされます。
5.10.7. 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.10.8. Red Hat シングルサインオン認証用のグループマッピングの設定
必要に応じて、ロールベースのアクセス制御 (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 の名前を入力します。
- リストから 外部 を選択します。