|
① |
ユーザーは、フォワーダの後段にあるWebアプリケーションにアクセスを試みます。 |
② |
フォワーダはユーザーが未認証の場合、ログイン画面を表示します。フォワーダは、このログイン画面にhidden属性で最終目的URL(WebアプリケーションのURL)を埋め込みます。 |
③ |
ユーザーは、ユーザーID・パスワード・OTPをフォームに入力後、「ログイン」ボタンを押します。これらの値と最終目的URLは、VIPログインモジュールに送信されます。 |
④ |
VIPログインモジュールは、受信したユーザーIDを検索キーにしてトークンIDを取得します。 |
⑤ |
VIPログインモジュールは、③で受信したOTPと、④で取得したトークンIDをVIPへ送信します。
VIPはOTPを検証し、その検証結果を返します。 |
⑥ |
VIPログインモジュールは、⑤の検証結果が「Success」の場合、認証モジュールにログイン要求(③で受信したユーザーID、パスワード)を送信します。認証モジュールは、パスワードを検証し、パスワードが正しい場合はセッションIDを発行して返します。 |
⑦ |
OTP検証サーバーは、以下のHTTPレスポンスを返します。
・⑥で取得したセッションIDをSet-Cookieするヘッダー
・③で受信した最終目的URLへリダイレクトするLocationヘッダー |
⑧ |
ブラウザはLocationヘッダーに従い、最終目的URLへリダイレクトします。また、セッションIDを保持するCookieヘッダーを送信します。 |
⑨ |
フォワーダは、受信したセッションIDが有効か、認証モジュールに問い合わせます。認証モジュールは、セッションIDが有効な場合「OK」を返します。 |
⑩ |
フォワーダは、セッションIDが有効な場合、リクエストをWebアプリケーションに転送します。 |