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

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

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

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

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

JBoss EAP 以外で認証情報ソースを変更すると、基盤のセキュリティーレルムでリッスン機能がサポートされる場合に、この変更内容は JBoss EAP キャッシュレルムだけに伝播されます。特に、ldap-realm はリッスンをサポートしますが、ldap-realm 内では ロール などのフィルターされた属性はサポートされません。

キャッシュレルムにユーザーデータのキャッシュを正しく設定できるようにするには、認証情報ソースではなく、キャッシングレルムを使用してユーザー属性を変更することを推奨します。または、キャッシュを クリア してください。

重要

キャッシュレルムでのユーザーの変更は、テクノロジープレビュー機能としてのみ提供されます。テクノロジープレビューの機能は、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-entriesmaximum-age 属性を使用すると、キャッシュサイズとアイテムの有効期限を制御できます。これらの属性に関する詳細は、サーバーセキュリティーの設定方法 Elytron サブシステムのコンポーネントのリファレンス を参照してください。

caching-realm キャッシュの消去

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

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