RADIUSセッション永続化

項目

セッション永続化

可能な場合、セッション永続化を使用します

ロードバランサーを使用してOkta RADIUS Serverエージェントをデプロイする際に、特に二要素認証チャレンジでユーザー入力をオフバンドで待機する状況(Okta Verifyのプッシュなど)では、パフォーマンス最適化のため、エンドユーザーのVPNクライアントまたはIPに基づき、セッション永続化(別名「スティッキーセッション」)を使用することを推奨します。Okta RADIUS Server Aエージェントは発信元のRADIUSクライアントからのリクエストの重複除去を実施します。ただし、複数のエージェント間でリクエストが分散されていると、Oktaサービス側でのみ重複除去が行われ、結果としてRADIUS ServerエージェントとOktaサービスの両方にとって不要な負荷となります。この過剰な負荷はOktaサービスのレート制限にもカウントされます。 スティッキネスの推奨構成は、通常 Calling-Station-IDとFramed-IPを組み合わせて使用することです。多くのVPNでは、Calling-Station-IDは発信元クライアントのクライアントIPアドレスです。別のRADIUS属性がクライアントIPアドレスを格納している場合、代わりにその属性を使用するようロードバランサーを設定します。

セッション永続化の警告

高い可用性と水平スケーリングを提供するロードバランサーを推奨しますが、永続化なしでロードバランサーの背後にRADIUS Serverエージェントをデプロイすることも可能です。これはロードバランサーを全く使用しない方法よりも望ましいのですが、このモデルではOkta RADIUS Serverエージェントがエージェントレベルで実施する重複除去のメリットがほとんどなくなることにご注意ください。

RADIUSはコネクションレスUDPプロトコルを使用し、ほとんどのクライアントは、RADIUS Serverエージェントから応答を受信するまで自動的に一定間隔でリクエストを再送信します。これらの「再試行」が異なるRADIUS Serverエージェント間で負荷分散される場合、各エージェントは同時に同じ作業(同じRADIUSリクエストの処理)を実行しようとし、Oktaから最初に応答を受信してクライアントに応答を返したものが「ウィン」します。

通常、最初にオリジナルリクエストを受信したRADUIS Serverエージェントが最初に応答します。なぜなら、クライアントからの再試行が発行される前にOktaへの呼び出しを作成し、応答を返すためです。ただし、Okta Verifyのプッシュ要素を使用する場合、RADUIS Serverエージェントはリクエストを受信すると、ユーザーが電話でプッシュリクエストを確認/拒否するまでOktaにとどまりポーリングを行います。この間、RADUISクライアントは同じプッシュMFAリクエストの再試行を送信することがあります。このシナリオでは、再試行が同じRADUIS Serverエージェントに送られると、エージェントはこれを重複パケットと認識し、直ちにドロップします。しかし、再試行が異なるRADUIS Serverエージェントに負荷分散されると、エージェントはそのリクエストを正規の新しいリクエストとして処理し、再びプッシュ通知を開始します。この動作の影響を最小限に抑えるため、持続性をサポートせず負荷分散された環境にデプロイする場合、OktaはRADUISクライアントの再試行間隔を30秒以上に設定することを推奨します。こうすることで、エンドユーザーがプッシュ通知を受信し、RADIUSクライアントが再試行の送信を開始する前にプッシュ通知に応答するのに十分な時間が与えられます。

別の競合状態として(ロードバランサーの永続性がない場合)、特定のRADIUS Serverエージェントが大量のリクエストのキューでデバックログされた場合もあります。これは十分なワーカースレッドがエージェントで構成されていない場合、またこれらのスレッドが長時間実行中のリクエスト(Okta Verifyのプッシュなど)ですべて消費されている場合やOktaサービスからの応答が遅い場合に発生します。例えば、Oktaサービスがユーザーを認証するためにオンプレミスのActive DirectoryエージェントにラウンドトリップしてからRADIUSサーバーエージェントに応答し、次にRADIUSサーバーエージェントがRADIUSクライアントに応答する場合などです。この場合、再試行は他のエージェントに負荷分散され、どのエージェントが最初iにリクエストを処理するかによって異なるため、再度問題となります。これはどのエージェントが「ウィン」したとしても一般的には安全ですが、システム全体のデバッグは難しくなります。