2.9. コンテナー管理のシングルサインオンを使用するようにアプリケーションを設定する

Elytron FORM 認証を使用して、アプリケーションのコンテナー管理シングルサインオンを使用するよう JBoss EAP を設定できます。これにより、ユーザーは 1 度だけ認証を行い、再認証せずに FORM 認証方法でセキュア化された他のリソースにアクセスできます。

以下の場合には、関連するシングルサインオンセッションが無効になります。

  • アクティブなローカルセッションは残っていない。
  • アプリケーションからログアウトしている。
重要

これらのインスタンスがクラスター内にある限り、異なる JBoss EAP インスタンスにデプロイされたアプリケーション間でシングルサインオンを使用できます。

  1. key-store を作成します。

    SSO に参加している異なるサーバー間でセキュアな通信チャネルを設定するには、key-store が必要です。このチャネルは、シングルサインオンセッションが作成されたり破棄されたときに発生するイベントに関するメッセージを、ログイン中およびログアウト時に交換するために使用されます。

    elytron サブシステムで key-store を作成するには、以下のように Java KeyStore を作成します。

    keytool -genkeypair -alias localhost -keyalg RSA -keysize 1024 -validity 365 -keystore keystore.jks -dname "CN=localhost" -keypass secret -storepass secret

    keystore.jks ファイルが作成されたら、以下の管理 CLI コマンドを実行して Elytron に key-store 定義を作成します。

    /subsystem=elytron/key-store=example-keystore:add(path=keystore.jks, relative-to=jboss.server.config.dir, credential-reference={clear-text=secret}, type=JKS)
  2. セキュリティーレルムを追加します。

    以下の管理 CLI コマンドを使用して、ユーザーがローカルファイルシステムに保存されるアイデンティティーストアの FileSystem レルムを作成します。

    /subsystem=elytron/filesystem-realm=example-realm:add(path=/tmp/example-realm)
  3. 以下の管理 CLI コマンドを使用して security-domain を作成します。

    /subsystem=elytron/security-domain=example-domain:add(default-realm=example-realm,permission-mapper=default-permission-mapper,realms=[{realm=example-realm,role-decoder=groups-to-roles}]
    注記

    SSO を使用するアプリケーションは、通常はユーザーのログインページを提供する必要があるため、HTTP FORM 認証を使用する必要があります。

  4. undertow サブシステムでアプリケーションセキュリティーを設定します。

    注記

    すでに undertow サブシステムで定義されている application-security-domain があり、アプリケーションへのシングルサインオンを有効にするためにこれを使用する場合は、この手順を省略できます。

    /subsystem=undertow/application-security-domain=other:add(security-domain=example-domain)
    注記

    デフォルトでは、アプリケーションが jboss-web.xml ファイルで特定のセキュリティドメインを定義しない場合、アプリケーションサーバーは other という名前でこれを選択します。

  5. undertow サブシステムを更新してシングルサインオンを有効にし、キーストアを使用します。

    シングルサインオンは undertow サブシステムの特定の application-security-domain 定義に対して有効化されます。アプリケーションのデプロイに使用するサーバーが同じ設定を使用していることが重要になります。

    シングルサインオンを有効にするには、以下のように undertow サブシステムの既存の application-security-domain を変更します。

    /subsystem=undertow/application-security-domain=other/setting=single-sign-on:add(key-store=example-keystore, key-alias=localhost, domain=localhost, credential-reference={clear-text=secret})
    注記

    undertow サブシステムの application-security-domain は、ConfigurationSubsystemsWeb (Undertow)Application Security Domain に移動して管理コンソールで設定できます。

    SSO 属性とその定義に関する詳細は、「 シングルサインオン属性のリファレンス 」を参照してください。

  6. アプリケーションの web.xml および jboss-web.xml ファイルを設定します。

    JBoss EAP で設定したapplication-security-domain 使用するように、アプリケーションの web.xml およびjboss-web.xml を更新する必要があります。この例については、Configure Web Applications to Use Elytron or Legacy Security for Authentication で参照できます。

JBoss EAP は、 undertow および infinispan サブシステムを使用する クラスター化された SSO とクラスター化されていない SSO に対して、追加設定なしでサポートを提供します。