Access Manager 7 2005Q4 には、設定可能な属性に基づいてAccess Manager がユーザー数を特定の数のアクティブな並行セッションに制限できるようにする、新しいセッション割り当て制限の機能が含まれています。Access Manager 管理者は、セッション割り当て制限を次のレベルで設定できます。
グローバルに。すべてのユーザーに制限が適用されます。
エンティティー (組織またはレルム、ロール、またはユーザー) に対して。そのエンティティーに属する特定のユーザーにのみ、制限が適用されます。
セッション割り当て制限は、次の Access Manager 配備でサポートされています。
Access Manager 単一サーバー配備
このシナリオでは、Access Manager が単一のホストサーバーに配備されます。Access Manager は、ログインしたすべてのユーザーのアクティブなセッション数をメモリー内に保持します。ユーザーがサーバーにログインしようとすると、Access Manager は、そのユーザーの有効なセッション数がセッション制限を超えているかどうかをチェックしたあと、設定されているセッション割り当て制限オプションに基づくアクションを実行します。
Access Manager セッションフェイルオーバー配備
このシナリオでは、Access Manager の複数インスタンスが、異なるホストサーバー上にセッションフェイルオーバー設定で配備されます。Access Manager インスタンスは、Sun Java System Message Queue (Message Queue) を通信ブローカとして、また Sleepycat Software, Inc. の Berkeley DB をセッションストアデータベースとして使用して、セッションフェイルオーバー用に設定されます。Access Manager セッションフェイルオーバーについては、「Access Manager セッションフェイルオーバーの実装」を参照してください。
セッションフェイルオーバー配備では、ユーザーがログインしようとすると、セッション作成要求を受信している Access Manager サーバーは、まず、Access Manager アイデンティティーリポジトリからそのユーザーのセッション制限を取得します。次に、そのユーザーのセッション数をセッションリポジトリから直接フェッチ し (同じサイト内のすべての Access Manager サーバーからすべてのセッションを蓄積)、セッション制限がいっぱいになっているかどうかをチェックします。そのユーザーのセッション制限がいっぱいになっている場合、Access Manager サーバーは、設定されているセッション割り当て制限オプションに基づく操作を実行します。
セッションフェイルオーバー配備でセッション制限が有効になっており、セッションリポジトリが使用できない場合、ユーザー (スーパーユーザーを除く) のログインは許可されません。
セッションフェイルオーバー配備では、Access Manager インスタンスが停止していると、以前にそのインスタンスによってホストされていたすべての有効なセッションがまだ有効であると見なされ、サーバーが特定のユーザーの実際のアクティブなセッション数を判定するときにカウントされます。セッションフェイルオーバー用に設定されていない Access Manager 複数サーバー配備では、セッション割り当て制限はサポートされません。
セッション割り当て制限を設定するには、Access Manager の最上位レベル管理者 (amAdmin など) が Access Manager コンソールでいずれかの Access Manager インスタンスに対して次の属性を設定する必要があります。これらの属性のいずれかをリセットした場合は、サーバーを再起動して新しい値を有効にする必要があります。
「割り当て制限を有効」は、セッション割り当て制限の機能を有効または無効にするためのグローバル属性です。この属性が有効になっていると、ユーザーが新しいクライアント経由でログイン (また、それによって新しいセッションを作成) しようとした場合は常に、Access Manager によってセッション割り当て制限が適用されます。
デフォルトは無効 (「オフ」) です。
「割り当て制限のタイムアウトを読み取り」は、アクティブなユーザーセッション数に対するセッションリポジトリへの問い合わせがタイムアウトになるまでの時間をミリ秒単位で定義します。セッションリポジトリが使用できないために最大待ち時間に到達した場合は、セッション作成要求が拒否されます。
デフォルトは 6000 ミリ秒です。
「セッション制限がいっぱいになった場合に生じる動作」は、ユーザーのセッション割り当て制限がいっぱいになった場合の動作を決定します。この属性は、「割り当て制限を有効」属性が有効になっている場合にのみ有効になります。次のいずれかの値を設定できます。
DENY_ACCESS。Access Manager は、新しいセッションに対するログイン要求を拒否します。
DESTROY_OLD_SESSION。Access Manager は、同じユーザーで次に有効期限切れとなるセッションを破棄して、新しいログイン要求に成功できるようにします。
デフォルトは DESTROY_OLD_SESSION です。
「トップレベルの管理者に制限の確認を免除」は、セッション割り当て制限を、トップレベルの管理者ロールを持つ管理者に適用するかどうかを指定します。 この属性は、「割り当て制限を有効」属性が有効になっている場合にのみ有効になります。
デフォルトは「いいえ」です。
AMConfig.properties ファイル (com.sun.identity.authentication.super.user) で定義された Access Manager のスーパーユーザーは、常にセッション割り当て制限の確認から免除されます。
「アクティブなユーザーセッション」は、ユーザーの並行セッションの最大数を定義します。Access Manager には、同じ属性名を持つ、動的属性とユーザー属性の両方が含まれています。
デフォルトは 5 です。
ユーザーが、異なるレベルで複数のセッション制限を設定している場合、Access Manager は、そのユーザーの実際の割り当て制限を次の優先順位に従って判定します。
ユーザー (最高)
ロール/組織/レルム (競合の解決レベルに基づく)
グローバル (最低)
たとえば、Ken がマーケティングロールと管理ロールの両方のメンバーだとします。セッション制限は、次のように定義されています (競合の解決レベルはすべて同じ)。
組織 - 1
マーケティングロール - 2
管理ロール - 4
ユーザー Ken - 3
Ken の割り当て制限は 3 です。
セッション割り当て制限の属性については、Access Manager コンソールのオンラインヘルプを参照してください。