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 に対して、追加設定なしでサポートを提供します。