5.6. ワークフローの例: SAML クライアントを使用した Red Hat Single Sign-On での EAP アプリケーションの手動登録

これは、Red Hat Single Sign-On が OpenShift にデプロイされた 「ワークフローの例: Red Hat Single Sign-On for OpenShift イメージの準備とデプロイ」 に続きます。

この例では、EAP プロジェクトの Red Hat Single Sign-On レルム、ロール、およびユーザー認証情報を準備し、OpenShift デプロイメント用の EAP を設定します。デプロイ後、Red Hat Single Sign-On ユーザーを使用して JBoss EAP の認証およびアクセスが可能になります。

注記

この例では、SAML クライアントを使用していますが、OpenID-Connect クライアントも使用できます。SAML と OpenID-Connect クライアントの相違点の詳細は、「Red Hat Single Sign-On Clients」および「Red Hat Single Sign-On Client の自動および手動での登録方法」を参照してください。

5.6.1. Red Hat Single Sign-On 認証情報の準備

Red Hat Single Sign-On デプロイメント時に作成された 管理者アカウント を使用して、https://secure-sso-<project-name>.<hostname>/auth/admin で暗号化された Red Hat Single Sign-On Web サーバーにログインします。

レルムの作成

  1. カーソルをサイドバーの上部にあるレルム名前空間 (デフォルトは Master) の上に置き、Add Realm をクリックします。
  2. レルム名を入力して (この例では saml-demoを使用)、Create をクリックします。

公開鍵のコピー

新規作成された saml-demo レルムで Keys タブをクリックして、生成された公開鍵をコピーします。この例では、簡潔に変数 realm-public-key を使用します。これは後で Red Hat Single Sign-On 対応 JBoss EAP イメージをデプロイする必要があります。

ロールの作成

サンプル EAP アプリケーションの web.xml で定義された JEE ロールに対応する名前で、Red Hat Single Sign-On でロールを作成します。このロールは Red Hat Single Sign-On アプリケーションユーザー に割り当てられ、ユーザーアプリケーションへのアクセスを認証します。

  1. Configure サイドバーの Roles をクリックし、このレルムのロールを一覧表示します。これは新しいレルムであるため、デフォルトの offline_access ロールのみが必要です。
  2. Add Role をクリックします。
  3. ロール名を入力して (この例では、saml-user-role ロールを使用)、Save をクリックします。

ユーザーの作成およびロールの割り当て

レルム管理ユーザーを割り当てrealm-management ロールを割り当て、Red Hat Single Sign-On サーバーで自動 Red Hat Single Sign-On クライアント登録を処理します。アプリケーションユーザー には、前のステップで作成した JEE ロールを割り当て、ユーザーアプリケーションへのアクセスを認証します。

レルム管理ユーザー を作成します。

  1. Manage サイドバーで Users をクリックし、レルムのユーザー情報を表示します。
  2. Add User をクリックします。
  3. 有効なユーザー名 を入力して (この例ではユーザー app-mgmt-user を使用)、Save をクリックします。
  4. ユーザー設定を編集します。ユーザー空間の Credentials タブをクリックし、ユーザーのパスワードを入力します。パスワードを確認した後、Reset Password をクリックしてユーザーパスワードを設定できます。ポップアップウィンドウに追加の確認を求めるプロンプトが表示されます。

アプリケーションユーザー を作成します。

  1. Manage サイドバーで Users をクリックし、レルムのユーザー情報を表示します。
  2. Add User をクリックします。
  3. アプリケーションユーザー の有効な ユーザー名 と任意の追加情報を入力し、Save をクリックします。
  4. ユーザー設定を編集します。ユーザー空間の Credentials タブをクリックし、ユーザーのパスワードを入力します。パスワードを確認した後、Reset Password をクリックしてユーザーパスワードを設定できます。ポップアップウィンドウに追加の確認を求めるプロンプトが表示されます。
  5. Role Mappings をクリックし、レルムおよびクライアントロール設定を一覧表示します。Available Roles で、先に作成したロールを追加します。

SAML クライアントを作成および設定します。

クライアントは、ユーザー認証を要求する Red Hat Single Sign-On エンティティーです。この例では、EAP アプリケーションの認証を処理する SAML クライアントを設定します。本セクションでは、この手順の後半に必要な keystore.jks ファイルおよび keycloak-saml-subsystem.xml ファイルを保存します。

SAML クライアントを作成します。

  1. Configure サイドバーの Clients をクリックし、レルム内のクライアントを一覧表示します。Create をクリックします。
  2. 有効な クライアント ID を入力します。この例では sso-saml-demo を使用しています。
  3. Client Protocol ドロップダウンメニューで、saml を選択します。
  4. アプリケーションの ルート URL を入力します。この例では、https://demoapp-eap-app-demo.openshift32.example.com を使用します。
  5. Save をクリックします。

SAML クライアントを設定します。

Settings タブで、新しい sso-saml-demo クライアントの ルート URL および 有効なリダイレクト URL を設定します。

  1. Root URL には、クライアントの作成時に使用したアドレスと同じアドレスを入力します。この例では、https://demoapp-eap-app-demo.openshift32.example.com を使用します。
  2. Valid Redirect URLs には、ログイン時またはログアウト時にリダイレクトされるユーザーのアドレスを入力します。以下の例では、ルート https://demoapp-eap-app-demo.openshift32.example.com/* に関連してリダイレクトアドレスを使用しています。

SAML 鍵をエクスポートします。

  1. sso-saml-demo クライアント領域の SAML Keys タブをクリックし、Export をクリックします。
  2. この例では、アーカイブ形式JKS のままにします。この例では、デフォルトの キーエイリアス sso-saml-demo と、デフォルトのレルム証明書エイリアス saml-demo を使用しています。
  3. Key PasswordStore Password。この例では、両方の パスワード を使用しています。
  4. 後で使用できるように keystore-saml.jks ファイルを ダウンロード して保存します。
  5. sso-saml-demo クライアントをクリックして、次の手順の準備が整ったクライアント領域に戻ります。

クライアントアダプターをダウンロードします。

  1. Installation をクリックします。
  2. Format Option ドロップダウンメニューを使用してフォーマットを選択します。この例では、Keycloak SAML Wildfly/JBoss Subsystem を使用します。
  3. Download をクリックして keycloak-saml-subsystem.xml ファイルを保存します。

keystore-saml.jks は、次のセクションの他の EAP キーストアとともに使用され、EAP アプリケーションプロジェクトの OpenShift シークレットを作成します。keystore-saml.jks ファイルを OpenShift ノードにコピーします。
keycloak-saml-subsystem.xml は変更され、アプリケーションデプロイメントで使用されます。それを secure-saml-deployments としてアプリケーションの /configuration フォルダーにコピーします。