3.5. アクセス制御リスト (ACL) キャッシュの設定
ユーザーにロールを付与または拒否すると、Data Grid は、キャッシュに内部的にアクセスできるユーザーに関する詳細を保存します。この ACL キャッシュは、ユーザーがすべての要求に対して読み取りおよび書き込み操作を実行するための適切なアクセス許可を持っているかどうかを Data Grid が計算する必要をなくすことで、セキュリティー認証のパフォーマンスを向上させます。
ユーザーにロールを付与または拒否するたびに、Data Grid は ACL キャッシュをフラッシュして、ユーザー権限が正しく適用されるようにします。これは、ロールを付与または拒否するたびに、Data Grid がすべてのユーザーのキャッシュ許可を再計算する必要があることを意味します。最高のパフォーマンスを得るには、本番環境でロールの付与と拒否を頻繁にまたは繰り返してはいけません。
手順
- Data Grid 設定を開いて編集します。
cache-size
属性を使用して、ACL キャッシュのエントリーの最大数を指定します。ACL キャッシュ内のエントリーには、
caches * users
のカーディナリティーがあります。エントリーの最大数は、すべてのキャッシュとユーザーの情報を保持できる値に設定する必要があります。たとえば、デフォルトサイズの1000
は、最大 100 のキャッシュとユーザーが 10 個のデプロイメントに適しています。cache-timeout
属性を使用して、ミリ秒単位でタイムアウト値を設定します。Data Grid がタイムアウト期間内に ACL キャッシュ内のエントリーにアクセスしない場合、そのエントリーは削除されます。その後、ユーザーがキャッシュ操作を試みると、Data Grid はユーザーのキャッシュ許可を再計算し、ACL キャッシュにエントリーを追加します。
重要cache-size
またはcache-timeout
属性に値0
を指定すると、ACL キャッシュが無効になります。認証を無効にする場合にのみ、ACL キャッシュを無効にする必要があります。- 変更を設定に保存します。
ACL キャッシュの設定
XML
<infinispan> <cache-container name="acl-cache-configuration"> <security cache-size="1000" cache-timeout="300000"> <authorization/> </security> </cache-container> </infinispan>
JSON
{ "infinispan" : { "cache-container" : { "name" : "acl-cache-configuration", "security" : { "cache-size" : "1000", "cache-timeout" : "300000", "authorization" : {} } } } }
YAML
infinispan: cacheContainer: name: "acl-cache-configuration" security: cache-size: "1000" cache-timeout: "300000" authorization: ~
3.5.1. ACL キャッシュのフラッシュ
JMX 経由でアクセス可能な GlobalSecurityManager
MBean を使用して ACL キャッシュをフラッシュすることが可能です。
関連情報