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)セキュリティーレルムを追加します。
以下の管理 CLI コマンドを使用して
FileSystemレルム (ローカルファイルシステムにユーザーを保存するアイデンティティーストア) を作成します。/subsystem=elytron/filesystem-realm=example-realm:add(path=/tmp/example-realm)
以下の管理 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認証を使用する必要があります。undertowサブシステムでアプリケーションのセキュリティードメインを設定します。注記undertowサブシステムにapplication-security-domainがすでに定義されており、このドメインを使用してアプリケーションへのシングルサインオンを有効にする場合は、この手順を省略できます。/subsystem=undertow/application-security-domain=other:add(security-domain=example-domain)
注記デフォルトでは、お使いのアプリケーションの
jboss-web.xmlファイルで特定のセキュリティードメインが定義されていない場合には、アプリケーションサーバーはotherという名前のセキュリティードメインを選択します。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})注記Configuration → Subsystems → Web (Undertow) → Application Security Domain に移動して、管理コンソールを使用して
undertowサブシステムのapplication-security-domainを設定できます。SSO 属性とその定義に関する詳細は、シングルサインオン属性のリファレンス を参照してください。
アプリケーションの
web.xmlおよびjboss-web.xmlファイルを設定します。アプリケーションの
web.xmlおよびjboss-web.xmlは、JBoss EAP で設定したapplication-security-domainを使用するように更新する必要があります。このサンプルは、Configure Web Applications to use Elytron or Legacy Security for Authentication で確認できます。
JBoss EAP は、 undertow および infinispan サブシステムを使用する クラスター化された SSO とクラスター化されていない SSO に対して、追加設定なしでサポートを提供します。