2.9. コンテナー管理のシングルサインオンを使用するようにアプリケーションを設定する
Elytron FORM
認証を使用して、アプリケーションのコンテナー管理シングルサインオンを使用するよう JBoss EAP を設定できます。これにより、ユーザーは 1 度だけ認証を行い、再認証せずに FORM
認証方法でセキュア化された他のリソースにアクセスできます。
以下の場合には、関連するシングルサインオンセッションが無効になります。
- アクティブなローカルセッションは残っていない。
- アプリケーションからログアウトしている。
これらのインスタンスがクラスター内にある限り、異なる JBoss EAP インスタンスにデプロイされたアプリケーション間でシングルサインオンを使用できます。
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})
注記undertow
サブシステムのapplication-security-domain
は、Configuration → Subsystems → Web (Undertow) → Application Security Domain に移動して管理コンソールで設定できます。SSO 属性とその定義に関する詳細は、「 シングルサインオン属性のリファレンス 」を参照してください。
アプリケーションの
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 に対して、追加設定なしでサポートを提供します。