4.6. SAML クライアントを使用した Red Hat Single Sign-On への EAP アプリケーションの手動登録


この例では、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 の自動および手動での登録方法 を参照してください。

前提条件

4.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 フォルダーにコピーします。

4.6.2. OpenShift デプロイメント用の Red Hat Single Sign On 認証の準備

cluster:admin ロールを持つユーザーとして OpenShift CLI にログインします。

手順

  1. 新しいプロジェクトを作成します。

    $ oc new-project eap-app-demo
  2. view ロールを デフォルト のサービスアカウントに追加します。これにより、サービスアカウントが eap-app-demo 名前空間のすべてのリソースを表示できるようになります。これは、クラスターの管理に必要です。

    $ oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default
  3. EAP テンプレートには、SSL キーストアと JGroups キーストア が必要です。
    この例では、Java Development Kit に含まれるパッケージの keytool を使用して、これらのキーストアの自己署名証明書を生成します。以下のコマンドはパスワードを要求します。

    1. SSL キーストアのセキュアキーを生成します。

      $ keytool -genkeypair -alias https -storetype JKS -keystore eapkeystore.jks
    2. JGroups キーストアのセキュアキーを生成します。

      $ keytool -genseckey -alias jgroups -storetype JCEKS -keystore eapjgroups.jceks
  4. SSL および JGroup キーストアファイルで EAP for OpenShift シークレットを生成します。

    $ oc create secret generic eap-ssl-secret --from-file=eapkeystore.jks
    $ oc create secret generic eap-jgroup-secret --from-file=eapjgroups.jceks
  5. EAP アプリケーションシークレットを、以前に作成した EAP サービスアカウントに追加します。

    $ oc secrets link default eap-ssl-secret eap-jgroup-secret

4.6.3. secure-saml-deployments ファイルの変更

前提条件

  • 以前のセクションで Red Hat Single Sign-On クライアントからエクスポートされた keycloak-saml-subsystem.xml は、アプリケーションの /configuration フォルダーにコピーされ、secure-saml-deployments に変更されているはずです。EAP は起動時にこのファイルを検索し、Red Hat Single Sign-On SAML アダプター設定内の standalone-openshift.xml ファイルにコピーします。

手順

  1. テキストエディターで /configuration/secure-saml-deployments ファイルを開きます。
  2. secure-deployment name タグの YOUR-WAR.war 値を、アプリケーションの .war ファイルに置き換えます。この例では sso-saml-demo.war を使用します。
  3. logout page タグの SPECIFY YOUR LOGOUT PAGE! の値を url に置き換え、ユーザーがアプリケーションからログアウトしたときにユーザーをリダイレクトします。この例では、/index.jsp を使用します。
  4. <PrivateKeyPem> および <CertificatePem> のタグキーを削除し、これをキーストア情報に置き換えます。

    ...
    <Keys>
      <Key signing="true">
        <KeyStore file= "/etc/eap-secret-volume/keystore-saml.jks" password="password">
          <PrivateKey alias="sso-saml-demo" password="password"/>
          <Certificate alias="sso-saml-demo"/>
        </KeyStore>
      </Key>
    </Keys>

    keystore-saml.jks のマウントパス (この例では /etc/eap-secret-volume/keystore-saml.jks) は、EAP_HTTPS_KEYSTORE_DIR パラメーターを使用してアプリケーションテンプレートで指定できます。
    PrivateKey証明書 のエイリアスおよびパスワードは、SAML キーが Red Hat Single Sign-On クライアントからエクスポートされたときに設定されていました。

  5. 2 番目の <CertificatePem> タグおよびキーを削除し、これをレルム証明書情報に置き換えます。

    ...
    <Keys>
      <Key signing="true">
        <KeyStore file="/etc/eap-secret-volume/keystore-saml.jks" password="password">
          <Certificate alias="saml-demo"/>
        </KeyStore>
      </Key>
    </Keys>
    ...

    証明書エイリアスとパスワードは、SAML キーが Red Hat Single Sign-On クライアントからエクスポートされている場合に設定されます。

  6. /configuration/secure-saml-deployments ファイルを保存し、閉じます。

4.6.4. アプリケーションの web.xml での SAML クライアント登録の設定

クライアントタイプは、アプリケーション web.xml<auth-method> キーでも指定する必要があります。このファイルは、デプロイ時にイメージにより読み取られます。

アプリケーションの web.xml ファイルを開き、以下が含まれることを確認します。

...
<login-config>
  <auth-method>KEYCLOAK-SAML</auth-method>
</login-config>
...

4.6.5. アプリケーションのデプロイ

アプリケーション自体に設定されているため、イメージの Red Hat Single Sign-On 設定を含める必要はありません。アプリケーションのログインページに移動すると、Red Hat Single Sign-On ログインにリダイレクトされます。先に作成した アプリケーションユーザー を使用して、Red Hat Single Sign-On でアプリケーションにログインします。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.