2.8. セキュリティーレルムのキャッシングの設定

Elytron は、セキュリティーレルムからクレデンシャルルックアップの結果をキャッシュできる caching-realm を提供します。たとえば、これを使用して LDAP またはデータベースからの認証情報のキャッシュを設定し、頻繁にクエリーされるユーザーのパフォーマンスを向上することができます。

caching-realmLRU または Leastcently Used キャッシュストラテジーを使用して PasswordCredential の認証情報をキャッシュします。キャッシュストラテジーでは、エントリーの最大数に達すると、アクセスが最も少ないエントリーが破棄されます。

caching-realm は以下のセキュリティーレルムで使用できます。

  • filesystem-realm
  • jdbc-realm
  • ldap-realm
  • カスタムセキュリティーレルム

JBoss EAP 以外で認証情報ソースを変更する場合は、それらの変更は基盤のセキュリティーレルムがリッスンに対応している場合にのみ JBoss EAP キャッシングレルムに伝搬されます。特に ldap-realm はリスニングをサポートしますが、roles 内の roles などのフィルターされた属性は対応しません。

キャッシュレルムでユーザーデータのキャッシュが正しいことを確認するには、認証情報のソースではなく、キャッシュレルムを使用してユーザー属性を変更することが推奨されます。また、キャッシュの消去を行うことも可能です。

重要

キャッシュレルムを使用してユーザーに変更を加えることは、テクノロジープレビューとしてのみ提供されます。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。

テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。

caching-realm を設定して使用するには、以下を実行します。

  1. 既存のセキュリティーレルムを作成します。

    caching-realm で使用するには、既存のセキュリティーレルムが必要です。たとえば、ファイルシステムベースのアイデンティティーストアを使用した認証の設定手順と同様の filesystem-realm を作成できます。

    Filesystem-realm の例

    /subsystem=elytron/filesystem-realm=exampleFsRealm:add(path=fs-realm-users, relative-to=jboss.server.config.dir)
    
    /subsystem=elytron/filesystem-realm=exampleFsRealm:add-identity(identity=user1)
    
    /subsystem=elytron/filesystem-realm=exampleFsRealm:set-password(identity=user1, clear={password="password123"})
    
    /subsystem=elytron/filesystem-realm=exampleFsRealm:add-identity-attribute(identity=user1,name=Roles,value=["Admin","Guest"])
    
    /subsystem=elytron/simple-role-decoder=from-roles-attribute:add(attribute=Roles)

  2. caching-realm を作成します。

    キャッシュする既存のレルムがあることを確認したら、そのレルムを参照する caching-realm を作成します。

    exampleFsRealm を使用する caching-realm の例

    /subsystem=elytron/caching-realm=exampleCacheRealm:add(realm=exampleFsRealm)

  3. caching-realm を使用します。

    caching-realm を作成したら、他のセキュリティーレルムと同じように、セキュリティー設定で使用できます。たとえば、ファイルシステムベースのアイデンティティーストアを使用した認証の設定filesystem-realm を使用するのと同じ場所で使用できます。

    Caching-realm を使用した設定例

    /subsystem=elytron/security-domain=exampleFsSD:add(realms=[{realm=exampleCacheRealm, role-decoder=from-roles-attribute}], default-realm=exampleCacheRealm, permission-mapper=default-permission-mapper)
    
    /subsystem=elytron/http-authentication-factory=example-fs-http-auth:add(http-server-mechanism-factory=global, security-domain=exampleFsSD, mechanism-configurations=[{mechanism-name=BASIC, mechanism-realm-configurations=[{realm-name=exampleApplicationDomain}]}])

caching-realmmaximum-entries および maximum-age 属性を使用すると、キャッシュサイズおよびアイテムの有効期限を制御できます。これらの属性に関する詳細は、『サーバーセキュリティーの設定方法』の「Elytron サブシステムのコンポーネントのリファレンス」を参照してください。

caching-realm キャッシュの削除

clear-cache コマンドを使用すると既存のキャッシュをクリアできます。キャッシュを消去すると、セキュリティーレルムの最新データを使用して強制的に再配置されます。

/subsystem=elytron/caching-realm=exampleCacheRealm:clear-cache