JP7120033B2 - Webサーバ、ログイン判定方法及びプログラム - Google Patents

Webサーバ、ログイン判定方法及びプログラム Download PDF

Info

Publication number
JP7120033B2
JP7120033B2 JP2019002900A JP2019002900A JP7120033B2 JP 7120033 B2 JP7120033 B2 JP 7120033B2 JP 2019002900 A JP2019002900 A JP 2019002900A JP 2019002900 A JP2019002900 A JP 2019002900A JP 7120033 B2 JP7120033 B2 JP 7120033B2
Authority
JP
Japan
Prior art keywords
session
user
authentication
authentication result
authentication server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019002900A
Other languages
English (en)
Other versions
JP2020113006A (ja
Inventor
敏達 野田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019002900A priority Critical patent/JP7120033B2/ja
Publication of JP2020113006A publication Critical patent/JP2020113006A/ja
Application granted granted Critical
Publication of JP7120033B2 publication Critical patent/JP7120033B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、Webサーバ、ログイン判定方法及びプログラムに関する。
Webアプリケーション(以下、「Webアプリ」という。)に対するログインにおいて、OpenID ConnectやSAML(Security Assertion Markup Language)を使用したシングルサインオンが利用されている。
図1は、Webアプリに対するシングルサインオンの概要を説明するための図である。図1では、Webアプリへのシングルサインオンに対する認証を、認証サーバZが実行する例が示されている。
この場合、ユーザUが利用する端末のWebブラウザは、認証サーバZに対してログイン要求(ユーザID及びパスワード等)を送信する(S1001)。なお、認証サーバZへのログイン要求の送信は、例えば、WebブラウザによるWebアプリへのアクセス要求に対してWebアプリから返信される、認証サーバZへのリダイレクト命令を示す応答に応じて行われる。認証サーバZは、ログイン要求に含まれているユーザID及びパスワード等に基づいてユーザUを認証し(S1002)、認証サーバZによるユーザUの認証結果を含み、Webアプリへのリダイレクト命令を示す応答をWebブラウザに返信する(S1003)。Webブラウザが当該リダイレクト命令に従って当該認証結果をWebアプリに送信すると(S1004)、Webアプリは、当該認証結果に基づいて、ユーザUのログインを許可する(S1005)。
特表2016-511849号公報 特開2015-203947号公報
しかしながら、認証サーバZは、ユーザUの認証結果を生成できるため、認証サーバZがユーザUになりすましてWebアプリにログインする脅威が存在する。
図2は、認証サーバZがユーザUになりすましてWebアプリにログインする脅威を説明するための図である。
認証サーバZは、ユーザUからのログイン要求とは無関係に、不正にユーザUの認証結果を生成し(S1101)、当該認証結果をWebアプリに送信する(S1102)。Webアプリは、当該認証結果に基づいて、ユーザUのログインを許可してしまう(S1103)。
そこで、一側面では、本発明は、Webアプリケーションへのなりすましログインを防ぐことを目的とする。
一つの態様では、Webサーバは、Webアプリケーションの利用を要求するWebブラウザに対して第1のセッションIDを発行する第1の発行部と、前記Webブラウザのユーザについての第1の認証サーバによる第1の認証結果を前記第1のセッションIDと共に受信する第1の受信部と、前記Webブラウザに対して、前記第1のセッションIDに関連付く第2のセッションIDを発行する第2の発行部と、前記ユーザについての第2の認証サーバによる第2の認証結果を前記第2のセッションIDと共に受信する第2の受信部と、前記第2のセッションIDと共に受信した前記第2の認証結果と、前記第2のセッションIDに関連付く前記第1のセッションIDと共に受信した前記第1の認証結果とに基づいて、前記Webブラウザによる前記Webアプリケーションの利用の可否を判定する判定部とを有する。
一側面として、Webアプリケーションへのなりすましログインを防ぐことができる。
Webアプリに対するシングルサインオンの概要を説明するための図である。 認証サーバZがユーザUになりすましてWebアプリにログインする脅威を説明するための図である。 本発明の実施の形態におけるWebシステムの構成例を示す図である。 本発明の実施の形態の基本的なアイデアを説明するための図である。 技術的課題1を説明するための図である。 技術的課題2の第1の解決案を説明するための図である。 第1の解決案の問題点を説明するための図である。 技術的課題2の第2の解決案を説明するための図である。 技術的課題2の第2の解決案の問題点を説明するための図である。 本発明の実施の形態におけるWebサーバ10のハードウェア構成例を示す図である。 本発明の実施の形態におけるWebサーバ10の機能構成例を示す図である。 登録情報の登録処理の処理手順の一例を説明するための図である。 登録情報記憶部111の構成例を示す図である。 WebアプリAへのログイン処理の処理手順の一例を説明するための図である。 ログインの可否の判定処理の処理手順の一例を説明するためのフローチャートである。
以下、図面に基づいて本発明の実施の形態を説明する。図3は、本発明の実施の形態におけるWebシステムの構成例を示す図である。図3において、Webシステム1は、1以上のユーザ端末30、認証サーバ20X及び認証サーバ20Y(以下、それぞれを区別しない場合、単に「認証サーバ20」という。)、並びにWebサーバ10等を含む。Webシステム1において、ユーザ端末30は、インターネット等のネットワークを介して各認証サーバ20及びWebサーバ10と通信可能である。
Webサーバ10は、WebアプリAが実装された1以上のコンピュータである。WebアプリAは、所定のサービスをネットワークを介して提供するWebアプリケーション(Webアプリ)の一例である。
ユーザ端末30は、WebアプリAのユーザインタフェースとしてユーザUが利用する端末である。具体的には、ユーザ端末30は、WebアプリAからダウンロードされるWebページを表示するWebブラウザ(後述の「Webブラウザ31」)を有する。Webページは、例えば、HTML(HyperText Markup Language)、CSS(Cascading Style Sheets)、及びJavaScript(登録商標)等が構成するファイル群である。なお、スマートフォン、タブレット端末、携帯電話、又はPC(Personal Computer)等がユーザ端末30として利用されてもよい。
認証サーバ20は、WebアプリAへのシングルサインオンを実現するために、ユーザUの認証をWebサーバ10に代わって実行する1以上のコンピュータである。本実施の形態では、1つのWebアプリAへのログインに対して2つの認証サーバ20が利用される。
図4は、本発明の実施の形態の基本的なアイデアを説明するための図である。
ユーザUが利用するユーザ端末30のWebブラウザ31は、認証サーバ20Xに対してログイン要求(ユーザID及びパスワード等)を送信する(S110)。なお、認証サーバ20Xへのログイン要求の送信は、例えば、Webブラウザ31によるWebアプリAへのアクセス要求に対してWebアプリAから返信される、認証サーバ20Xへのリダイレクト命令を示す応答に応じて行われる。認証サーバ20Xは、ログイン要求に含まれているユーザID及びパスワード等に基づいてユーザUを認証し(S120)、認証サーバ20Xによる認証結果(例えば、チケット又はトークン)をWebブラウザ31に返信する(S130)。
Webブラウザ31は、また、認証サーバ20Yに対してログイン要求(ユーザID及びパスワード等)を送信する(S140)。認証サーバ20Yは、ログイン要求に含まれているユーザID及びパスワード等に基づいてユーザUを認証し(S150)、認証サーバ20Yによる認証結果をWebブラウザ31に返信する(S160)。
Webブラウザ31が、認証サーバ20X及び認証サーバ20Yのそれぞれからの認証結果をWebアプリAに送信すると(S210)、WebアプリAは、これら2つの認証結果に基づいて、ユーザUのログインの可否(Webブラウザ31によるWebアプリAの実行の可否)を判定する(S220)。すなわち、双方の認証結果が認証の成功を示すものであれば、ユーザUのログイン(Webブラウザ31によるWebアプリAの実行)は許可される。
このような構成によれば、各認証サーバ20は、他の認証サーバ20におけるユーザUのユーザID及びパスワードを知らないため、例えば、認証サーバ20XはユーザUとして認証サーバ20Yログインできず、認証サーバ20YはユーザUとして認証サーバ20Xにログインできない。したがって、WebアプリAにユーザUとしてログインできるのは、認証サーバ20X及び認証サーバ20Yの双方にログインできる(それぞれにおけるユーザUのユーザID/パスワードを知っている)ユーザUに限定することができる。
但し、図4のアイデアに関しては、技術的課題1及び技術的課題2の2つの技術的課題が有る。
技術的課題1は、ユーザUが「認証サーバ20Xに登録している名前(ユーザID)」と「認証サーバ20Yに登録している名前(ユーザID)」と、WebアプリAにおけるユーザUのアカウント(ユーザID)が同じであることは保証されないため、「認証サーバ20Xによる認証結果」と「認証サーバ20Yによる認証結果」の組み合わせが、ユーザUの認証結果の組み合わせとして正しいか否かの判定がWebアプリAにとって困難であるということである。
図5は、技術的課題1を説明するための図である。図5中、図4と同一部分及び同一ステップには同一ステップ番号を付し、その説明は省略する。
図5では、認証サーバ20XにおけるユーザUのユーザIDが「AAA」であり、認証サーバ20YにおけるユーザUのユーザIDが「aaa」である例が示されている。この場合、「AAA」に関する認証結果と、「aaa」に関する認証結果とを受け取ったWebアプリAは、ステップS220において、これらの認証結果がユーザUの認証結果であるか否かを判定するのが困難である。すなわち、WebアプリAは、認証サーバ20XにおけるユーザUのユーザIDと認証サーバ20YにおけるユーザUのユーザIDがいずれであるのかを知らない。したがって、仮に、たまたま認証サーバ20X及び認証サーバ20YにおけるユーザUのユーザIDが「AAA」で共通であったとしても、WebアプリAにとっては、「AAA」に関する認証結果がユーザUに対する認証結果であるのか否かが分からない。
技術的課題2は、ステップS210において、Webブラウザ31が、「認証サーバ20Xによる認証結果」及び「認証サーバ20Yによる認証結果」を一緒に安全に送信することが困難であるということである。具体的には、ステップS210で「認証サーバ20Yによる認証結果」及び「認証サーバ20Xによる認証結果」を同時に送信することは、Webブラウザ31の特性上、困難であることが技術的課題2である。何故なら、Webブラウザ31を経由させて他のオリジンにデータを送信するには、リダイレクト(HTTP Redirect)等の利用が必要であるため、複数のオリジンのデータ(認証サーバ20Yによる認証結果と認証サーバ20Xによる認証結果)をまとめて、異なるオリジン(WebアプリA)に送信することはできないからである。そのため、Webブラウザ31は、ステップS130において取得した認証結果を保存して、ステップS140のリクエストを送信することはできない。
そこで、図4の処理手順において、図6に示されるように認証結果を流通させることが考えられる。図6は、技術的課題2の第1の解決案を説明するための図である。図6中、図4と同一ステップには同一ステップ番号を付している。
図6において、Webブラウザ31は、ステップS140のリクエストに「認証サーバ20Xによる認証結果」を含める。また、ステップS160において、認証サーバ20Yは、「認証サーバ20Yによる認証結果」に加え、Webブラウザ31から受信した「認証サーバ20Xによる認証結果」を含む応答を返信する。その結果、ステップS210において、Webブラウザ31は、「認証サーバ20Yによる認証結果」及び「認証サーバ20Xによる認証結果」をWebアプリAに同時に送信することができる。
しかしながら、第1の解決案は、図7に示されるような問題点を含む。図7は、第1の解決案の問題点を説明するための図である。図7中、図6と同一ステップには同一ステップ番号を付し、その説明は適宜省略する。
図7に示されるように、第1の解決案では、ステップS140において「認証サーバ20Xによる認証結果」を取得した認証サーバ20Yは、「認証サーバ20Yによる認証結果」を生成し、これら2つの認証結果をWebアプリAに送信することで(S250)、ユーザUになりすまして、WebアプリAにログインできてしまう。
そこで、技術的課題2について、図8に示されるような第2の解決案が考えられる。図8は、技術的課題2の第2の解決案を説明するための図である。図8中、図4と同一部分及び同一ステップには同一符号を付し、その説明は省略する。
Webブラウザ31は、まず、WebアプリAとの間でセッション(以下、「セッション(1)」という。)を開設し、当該セッション(1)のセッションID(以下、「セッションID(1)」という。)の発行をWebアプリAから受ける(S105)。例えば、WebアプリAは、Webブラウザ31からのアクセス要求に対して、セッションID(1)を含み、認証サーバ20Xへのリダイレクト命令を示す応答を、ステップS105においてWebブラウザ31に返信する。その結果、Webブラウザ31に対し、WebアプリAへのリクエストの送信時に含める情報としてセッションID(1)が設定又は付与される。なお、セッションIDとしては、例えば、Cookie(クッキー)が用いられてもよい。ステップS105に応じて、ステップS110~S130が実行される。ステップS130におけるリダイレクト命令に従い、Webブラウザ31は、「認証サーバ20Xによる認証結果」をセッションID(1)と共にWebアプリAへ送信する(S131)。
WebアプリAは、「認証サーバ20Xによる認証結果」及び当該セッションID(1)を受信すると、認証サーバ20Yへのリダイレクト命令を示す応答をWebブラウザ31に返信する(S135)。当該応答に応じて、ステップS140~S160が実行される。なお、ステップS160は、「認証サーバ20Yによる認証結果」を含み、WebアプリAへのリダイレクト命令を示す認証サーバ20Yからの応答である。
Webブラウザ31は、当該応答が示すリダイレクト命令に従い、「認証サーバ20Yによる認証結果」をセッションID(1)と共にWebアプリAへ送信する(S170)。WebアプリAは、セッションID(1)に係るセッションにおいて受信された「認証サーバ20Xによる認証結果」と「認証サーバ20Yによる認証結果」とに基づいて、ユーザUのログインの可否を判定する(S220)。すなわち、同一のセッションIDに関して受信された2つの認証結果に基づいてユーザUのログインが許可される。なお、ここでは、技術的課題1は解決済みであることを前提とする。
しかしながら、図8の方法には、セッションフィクセーションの脅威が存在する。図9は、技術的課題2の第2の解決案の問題点を説明するための図である。図9において、認証サーバ20Yは、例えば、悪意者(サイバー攻撃者)によって支配されている(乗っ取られている)罠サイトであるとする。
図9において、認証サーバ20Yは、WebアプリAにアクセスすることで、WebアプリAからセッションID(以下、「セッションID(3)」という。)の発行を受けておく。
その後、ユーザUにより所定の操作(例えば、罠サイトへ誘導するためのメールに含まれているリンクのクリック等)が行われると、Webブラウザ31は、認証サーバ20Yへアクセスする(S302)。認証サーバ20Yは、当該アクセスに応じ、セッションID(3)を含み、WebアプリAへのリダイレクト命令を示す応答をWebブラウザ31へ返信する(S303)。
Webブラウザ31が、当該リダイレクト命令に従い、セッションID(3)を含むアクセス要求をWebアプリAへ送信すると(S102)、WebアプリAは、セッションID(3)を含み、認証サーバ20Xへのリダイレクト命令を示す応答をWebブラウザ31へ返信する(S105a)。なお、Webブラウザ31からのアクセス要求にセッションID(3)が含まれているため、WebアプリAは、図8のステップS105におけるセッションIDの発行は行わない。
続いて、ステップS110~S131が実行され、WebアプリAは、「認証サーバ20Xによる認証結果」をセッションID(3)と共に受信する。
その後、何らかのタイミング(例えば、図8のステップS135~ステップS170が実行された際のステップS170のタイミング)で、認証サーバ20YがセッションID(3)と共に「認証サーバ20Yによる認証結果」をWebアプリAに送信すると(S170a)、WebアプリAは、「認証サーバ20Xによる認証結果」及び「認証サーバ20Yによる認証結果」に基づき、認証サーバ20Yに対してユーザUとしてのログインを許可してしまう(S220a)。その結果、認証サーバ20Yは、ユーザUになりすまして、WebアプリAを利用できてしまう。
続いて、上記の技術的課題1及び技術的課題2を解決するWebサーバ10について詳細に説明する。
図10は、本発明の実施の形態におけるWebサーバ10のハードウェア構成例を示す図である。図10のWebサーバ10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
Webサーバ10での処理を実現するプログラムは、記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってWebサーバ10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
なお、記録媒体101の一例としては、CD-ROM、DVDディスク、又はUSBメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置102の一例としては、HDD(Hard Disk Drive)又はフラッシュメモリ等が挙げられる。記録媒体101及び補助記憶装置102のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
図11は、本発明の実施の形態におけるWebサーバ10の機能構成例を示す図である。図11において、Webサーバ10が有するWebアプリAのプログラムは、登録部11、第1セッションID発行部12、第1認証結果受信部13、第2セッションID発行部14、第2認証結果受信部15及びログイン判定部16等としてWebサーバ10のCPU104を機能させる。WebアプリAは、登録情報記憶部111及びセッション情報記憶部112等を利用する。これら各記憶部は、例えば、補助記憶装置102、又はWebサーバ10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
登録部11は、WebアプリAに対するユーザアカウント(ユーザU)に対応する、各認証サーバ20(認証サーバ20X、認証サーバ20Y)におけるユーザIDの登録をユーザ端末30(Webブラウザ31)から受け付け、当該ユーザアカウントに関連付けて、各認証サーバ20におけるユーザIDを登録情報記憶部111に記憶する。したがって、登録情報記憶部111には、WebアプリAに対する各ユーザアカウントについて、認証サーバ20Xに登録されているユーザID、及び認証サーバ20Yに登録されているユーザIDが対応付けられて記憶される。以下、対応付けられたWebアプリAに対するユーザアカウント、各認証サーバ20におけるユーザIDの組みを「登録情報」という。
第1セッションID発行部12は、認証サーバ20Xからの認証結果をWebサーバ10から受信するためのセッション(図8における、セッション(1))のセッションID(1)を生成し、当該セッションID(1)をWebブラウザ31に発行する。
第1認証結果受信部13は、認証サーバ20Xによる認証結果をセッションID(1)と共にWebブラウザ31から受信し、セッションID(1)に関連付けて当該認証結果をセッション情報記憶部112に記憶する。
第2セッションID発行部14は、認証サーバ20Yからの認証結果をWebサーバ10から受信するためのセッション(以下、「セッション(2)」という。)のセッションID(以下、「セッションID(2)」という。)を生成し、セッションID(2)をWebブラウザ31に発行する。なお、第2セッションID発行部14は、セッションID(2)を生成すると、セッションID(1)に関連付けられてセッション情報記憶部112に記憶されていたセッション情報を、セッションID(2)に関連付ける。そうすることで、セッションID(1)のセッション情報が、セッションID(2)に引き継がれ、実質的にセッションID(1)とセッションID(2)との対応付けが実現される。すなわち、セッションID(2)は、セッションID(1)とは異なるセッションIDであるが、セッションID(1)に対応付くセッションIDである。
第2認証結果受信部15は、認証サーバ20Yによる認証結果をセッションID(2)と共にWebブラウザ31から受信し、当該認証結果をセッションID(2)に関連付けてセッション情報記憶部112に記憶する。
ログイン判定部16は、第2認証結果受信部15による認証結果の受信に応じ、当該認証結果と共に受信されたセッションID(2)に関連付けられてセッション情報記憶部112に記憶されている認証結果に基づいて、Webブラウザ31によるWebアプリAの利用(実行)の可否を判定する。
以下、Webシステム1において実行される処理手順について説明する。図12は、登録情報の登録処理の処理手順の一例を説明するための図である。
ステップS100において、Webブラウザ31は、WebアプリAに対するユーザUのアカウント(ユーザU)と、ユーザUが利用する複数の認証サーバ20のそれぞれにおけるユーザIDとを含む登録情報をWebアプリAに送信する。なお、ステップS100は、例えば、ユーザUのアカウントをWebアプリAに登録する際に実行されてもよい。具体的には、WebアプリAの利用を希望するユーザUが、Webブラウザ31を利用してWebアプリAにアクセスした際にWebアプリAから返信される、ユーザ登録用のWebページに対して、ステップS100において送信される登録情報が入力されてもよい。
Webブラウザ31は、当該登録情報を受信すると、当該登録情報を登録情報記憶部111に記憶する(S101)。
図13は、登録情報記憶部111の構成例を示す図である。図13に示されるように、登録情報記憶部111には、Webアプリのユーザアカウントに関連付けて、各認証サーバ20におけるユーザIDが記憶される。図13の最後のレコードは、ユーザUについて、認証サーバ20XにおけるユーザIDが「AAA」であり、認証サーバ20YにおけるユーザIDが「aaa」であることが示されている。すなわち、図13における「認証サーバX」は、認証サーバ20Xの識別情報であり、「認証サーバY」は、認証サーバ20Yの識別情報である。なお、登録情報記憶部111は、技術的課題1を解決するための構成要素である。
図14は、WebアプリAへのログイン処理の処理手順の一例を説明するための図である。図14中、図8と同一ステップには同一ステップ番号を付し、その説明は省略する。なお、図14では、図13の処理手順が実行されていることが前提となる。
ステップS105~S131までは、図8と同じである。なお、ステップS105は、第1セッションID発行部12によって実行される。ステップS131における「認証サーバ20Xによる認証結果」及びセッションID(1)の受信は、第1認証結果受信部13によって実行される。この際、第1認証結果受信部13は、「認証サーバ20Xによる認証結果」をセッションID(1)に関するセッション情報の構成要素として、セッションID(1)に関連付けてセッション情報記憶部112に記憶する。なお、「認証サーバ20Xによる認証結果」には、例えば、認証元である認証サーバ20Xの識別情報、認証の成否を示す情報、及び認証されたユーザID(図12の例では「AAA」)等が含まれる。
続いて、第2セッションID発行部14は、セッションID(1)とは異なるセッションID(2)を生成し、セッションID(1)に関連付けられてセッション情報記憶部112に記憶されているセッション情報を、セッションID(2)に関連付けてセッション情報記憶部112に記憶する(S132)。したがって、セッションID(1)に関連付けられていた「認証サーバ20Xによる認証結果」も、セッションID(2)に関連付けられる。なお、この際、セッションID(1)とそのセッション情報は、セッション情報記憶部112から削除される。すなわち、セッションID(1)は無効化される。
続いて、WebアプリAは、「認証サーバ20Xによる認証結果」及び当該セッションID(1)を受信すると、認証サーバ20Yへのリダイレクト命令を示す応答をWebブラウザ31に返信する(S135a)。当該応答には、新たなセッション(セッション(2))のセッションIDであるセッション(2)が含まれる。その結果、Webブラウザ31に対し、WebアプリAへのリクエストの送信時に含める情報としてセッションID(2)が設定又は付与される。すなわち、ステップS135a以降におけるWebアプリAとWebブラウザ31とのセッションは、セッション(1)からセッション(2)に切り替えられる。
ステップS135aに続いて、ステップS140~S160が実行される。続いて、Webブラウザ31は、ステップS160における応答が示すリダイレクト命令に従い、「認証サーバ20Yによる認証結果」をセッションID(2)と共にWebアプリAへ送信する(S170a)。すなわち、図8のステップS170と異なり、「認証サーバ20Yによる認証結果」は、セッションID(2)と共にWebアプリAに送信される。ステップS135aにおいて、WebアプリAに対するセッションIDは、セッションID(1)からセッションID(2)に切り替えられているからである。
「認証サーバ20Yによる認証結果」及びセッションID(2)は、第2認証結果受信部15によって受信される。「認証サーバ20Yによる認証結果」及びセッションID(2)の受信に応じ、第2認証結果受信部15は、セッションID(2)に関連付けられてセッション情報記憶部112に記憶されているセッション情報に、「認証サーバ20Yによる認証結果」を追加する。すなわち、「認証サーバ20Yによる認証結果」がセッションID(2)に関連付けられてセッション情報記憶部112に記憶される。なお、「認証サーバ20Xによる認証結果」には、例えば、認証元である認証サーバ20Yの識別情報、認証の成否を示す情報、及び認証されたユーザID(図12の例では「aaa」)等が含まれる。
続いて、ログイン判定部16は、ユーザUについてログインの可否の判定処理を実行する(S220a)。
続いて、ステップS220aの詳細について説明する。図15は、ログインの可否の判定処理の処理手順の一例を説明するためのフローチャートである。
ステップS401において、ログイン判定部16は、セッションID(2)に関連付けられているセッション情報に含まれている全ての認証結果を取得する。続いて、ログイン判定部16は、取得された全ての認証結果が認証の成功を示すか否かを判定する(S402)。
全ての認証結果が認証の成功を示す場合(S402でYes)、ログイン判定部16は、登録情報記憶部111(図13)を参照して、全ての認証結果の組み合わせに対応するユーザアカウントを特定する(S403)。具体的には、ログイン判定部16は、各認証結果から、認証サーバ20の識別情報とユーザIDとを取得する。ログイン判定部16は、取得された認証サーバ20の識別情報及びユーザIDの組みの集合と登録情報記憶部111(図13)に記憶されている認証サーバ20の識別情報及びユーザIDの組みの集合とを比較して、取得された認証サーバ20の識別情報及びユーザIDの集合に対応するユーザアカウントを特定する。図14の例では、「認証サーバ20Xによる認証結果」から取得されたユーザIDが「AAA」であり、「認証サーバ20Yによる認証結果」から取得されたユーザIDが「aaa」であれば、ユーザアカウントとして「ユーザU」が特定される。
ユーザアカウントの特定に成功した場合(S404でYes)、ログイン判定部16は、特定されたユーザアカウントでのログインを許可する(S405)。
一方、ステップS402においていずれかの認証結果が認証の失敗を示す場合、又はステップS404においてユーザアカウントの特定に失敗した場合(S404でNo)、ログイン判定部16は、ログインを拒否する(S406)。
上述したように、本実施の形態によれば、複数の認証サーバ20を用いる際における技術的課題1及び技術的課題2の双方を解決することができる。すなわち、WebアプリAは、登録情報記憶部111に基づいて、各認証結果の組み合わせに対応するユーザ(ユーザアカウント)を特定することができる(技術的課題1を解決できる)。
また、WebアプリAは、各認証サーバ20による認証結果を受信するためのセッションを認証サーバ20ごとに切り替えることにより、セッションフィクセーションの脅威を回避しつつ、各認証サーバ20による認証結果を受信することができる。具体的には、図14において、セッションフィクセーションが行われ、セッションID(1)が攻撃者からWebブラウザ31に通知されたセッションIDであったとする。この場合、ステップS132においてセッションID(1)に関連付けられていたセッション情報(「認証サーバ20Xによる認証結果」)は、セッションID(2)に引き継がれる。したがって、攻撃者がセッションID(1)と共に「認証サーバ20Yによる認証結果」をWebアプリAに送信したとしても、「認証サーバ20Yによる認証結果」は、セッションID(2)に関連付けられることはない。その結果、「認証サーバ20Xによる認証結果」と「認証サーバ20Yによる認証結果」との組に基づいて、ログインが許可されるのを回避することができる。
このように、本実施の形態によれば、Webアプリケーションへのなりすましログインを防ぐことができる。
なお、図14では、セッションID(1)のセッション情報をセッションID(2)に引き継ぐことで、セッションID(1)とセッションID(2)との関連付けが維持される例を示した。但し、セッションID(2)にセッションID(1)を関連付ける情報をセッション情報記憶部112に記憶し、各セッションIDに関連付けられている認証結果に基づいてログインの可否が判定されるようにしてもよい。
また、上記では、2つの認証サーバ20が利用される例を示したが、3つ以上の認証サーバ20が利用されるようにしてもよい。
なお、本実施の形態において、第1セッションID発行部12は、第1の発行部の一例である。第1認証結果受信部13は、第1の受信部の一例である。第2セッションID発行部14は、第2の発行部の一例である。第2認証結果受信部15は、第2の受信部の一例である。ログイン判定部16は、判定部の一例である。セッションID(1)は、第1のセッションIDの一例である。セッションID(2)は、第2のセッションIDの一例である。「認証サーバ20Xによる認証結果」は、第1の認証結果の一例である。「認証サーバ20Yによる認証結果」は、第2の認証結果の一例である。認証サーバ20Xは、第1の認証サーバの一例である。認証サーバ20Yは、第2の認証サーバの一例である。
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
以上の説明に関し、更に以下の項を開示する。
(付記1)
Webアプリケーションの利用を要求するWebブラウザに対して第1のセッションIDを発行する第1の発行部と、
前記Webブラウザのユーザについての第1の認証サーバによる第1の認証結果を前記第1のセッションIDと共に受信する第1の受信部と、
前記Webブラウザに対して、前記第1のセッションIDに関連付く第2のセッションIDを発行する第2の発行部と、
前記ユーザについての第2の認証サーバによる第2の認証結果を前記第2のセッションIDと共に受信する第2の受信部と、
前記第2のセッションIDと共に受信した前記第2の認証結果と、前記第2のセッションIDに関連付く前記第1のセッションIDと共に受信した前記第1の認証結果とに基づいて、前記Webブラウザによる前記Webアプリケーションの利用の可否を判定する判定部と、
を有することを特徴とするWebサーバ。
(付記2)
前記判定部は、前記Webアプリケーションのユーザごとに記憶部に記憶されている、認証サーバごとのユーザIDの組み合わせと、前記第1の認証結果及び前記第2の認証結果に含まれるユーザIDとを比較して、前記Webアプリケーションの利用の可否を判定する、
ことを特徴とする付記1記載のWebサーバ。
(付記3)
Webアプリケーションの利用を要求するWebブラウザに対して第1のセッションIDを発行し、
前記Webブラウザのユーザについての第1の認証サーバによる第1の認証結果を前記第1のセッションIDと共に受信し、
前記Webブラウザに対して、前記第1のセッションIDに関連付く第2のセッションIDを発行し、
前記ユーザについての第2の認証サーバによる第2の認証結果を前記第2のセッションIDと共に受信し、
前記第2のセッションIDと共に受信した前記第2の認証結果と、前記第2のセッションIDに関連付く前記第1のセッションIDと共に受信した前記第1の認証結果とに基づいて、前記Webブラウザによる前記Webアプリケーションの利用の可否を判定する、
処理をコンピュータが実行することを特徴とするログイン判定方法。
(付記4)
前記判定する処理は、前記Webアプリケーションのユーザごとに記憶部に記憶されている、認証サーバごとのユーザIDの組み合わせと、前記第1の認証結果及び前記第2の認証結果に含まれるユーザIDとを比較して、前記Webアプリケーションの利用の可否を判定する、
ことを特徴とする付記3記載のログイン判定方法。
(付記5)
Webアプリケーションの利用を要求するWebブラウザに対して第1のセッションIDを発行し、
前記Webブラウザのユーザについての第1の認証サーバによる第1の認証結果を前記第1のセッションIDと共に受信し、
前記Webブラウザに対して、前記第1のセッションIDに関連付く第2のセッションIDを発行し、
前記ユーザについての第2の認証サーバによる第2の認証結果を前記第2のセッションIDと共に受信し、
前記第2のセッションIDと共に受信した前記第2の認証結果と、前記第2のセッションIDに関連付く前記第1のセッションIDと共に受信した前記第1の認証結果とに基づいて、前記Webブラウザによる前記Webアプリケーションの利用の可否を判定する、
処理をコンピュータに実行させることを特徴とするプログラム。
(付記6)
前記判定する処理は、前記Webアプリケーションのユーザごとに記憶部に記憶されている、認証サーバごとのユーザIDの組み合わせと、前記第1の認証結果及び前記第2の認証結果に含まれるユーザIDとを比較して、前記Webアプリケーションの利用の可否を判定する、
ことを特徴とする付記5記載のプログラム。
1 Webシステム
10 Webサーバ
11 登録部
12 第1セッションID発行部
13 第1認証結果受信部
14 第2セッションID発行部
15 第2認証結果受信部
16 ログイン判定部
20X 認証サーバ
20Y 認証サーバ
30 ユーザ端末
31 Webブラウザ
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
111 登録情報記憶部
112 セッション情報記憶部
A Webアプリ
B バス

Claims (4)

  1. Webアプリケーションの利用を要求するWebブラウザに対して第1のセッションIDを発行する第1の発行部と、
    前記Webブラウザのユーザについての第1の認証サーバによる第1の認証結果を前記第1のセッションIDと共に受信する第1の受信部と、
    前記Webブラウザに対して、前記第1のセッションIDに関連付く第2のセッションIDを発行する第2の発行部と、
    前記ユーザについての第2の認証サーバによる第2の認証結果を前記第2のセッションIDと共に受信する第2の受信部と、
    前記第2のセッションIDと共に受信した前記第2の認証結果と、前記第2のセッションIDに関連付く前記第1のセッションIDと共に受信した前記第1の認証結果とに基づいて、前記Webブラウザによる前記Webアプリケーションの利用の可否を判定する判定部と、
    を有することを特徴とするWebサーバ。
  2. 前記判定部は、前記Webアプリケーションのユーザごとに記憶部に記憶されている、認証サーバごとのユーザIDの組み合わせと、前記第1の認証結果及び前記第2の認証結果に含まれるユーザIDとを比較して、前記Webアプリケーションの利用の可否を判定する、
    ことを特徴とする請求項1記載のWebサーバ。
  3. Webアプリケーションの利用を要求するWebブラウザに対して第1のセッションIDを発行し、
    前記Webブラウザのユーザについての第1の認証サーバによる第1の認証結果を前記第1のセッションIDと共に受信し、
    前記Webブラウザに対して、前記第1のセッションIDに関連付く第2のセッションIDを発行し、
    前記ユーザについての第2の認証サーバによる第2の認証結果を前記第2のセッションIDと共に受信し、
    前記第2のセッションIDと共に受信した前記第2の認証結果と、前記第2のセッションIDに関連付く前記第1のセッションIDと共に受信した前記第1の認証結果とに基づいて、前記Webブラウザによる前記Webアプリケーションの利用の可否を判定する、
    処理をコンピュータが実行することを特徴とするログイン判定方法。
  4. Webアプリケーションの利用を要求するWebブラウザに対して第1のセッションIDを発行し、
    前記Webブラウザのユーザについての第1の認証サーバによる第1の認証結果を前記第1のセッションIDと共に受信し、
    前記Webブラウザに対して、前記第1のセッションIDに関連付く第2のセッションIDを発行し、
    前記ユーザについての第2の認証サーバによる第2の認証結果を前記第2のセッションIDと共に受信し、
    前記第2のセッションIDと共に受信した前記第2の認証結果と、前記第2のセッションIDに関連付く前記第1のセッションIDと共に受信した前記第1の認証結果とに基づいて、前記Webブラウザによる前記Webアプリケーションの利用の可否を判定する、
    処理をコンピュータに実行させることを特徴とするプログラム。
JP2019002900A 2019-01-10 2019-01-10 Webサーバ、ログイン判定方法及びプログラム Active JP7120033B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019002900A JP7120033B2 (ja) 2019-01-10 2019-01-10 Webサーバ、ログイン判定方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019002900A JP7120033B2 (ja) 2019-01-10 2019-01-10 Webサーバ、ログイン判定方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2020113006A JP2020113006A (ja) 2020-07-27
JP7120033B2 true JP7120033B2 (ja) 2022-08-17

Family

ID=71666385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019002900A Active JP7120033B2 (ja) 2019-01-10 2019-01-10 Webサーバ、ログイン判定方法及びプログラム

Country Status (1)

Country Link
JP (1) JP7120033B2 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008226201A (ja) 2007-03-16 2008-09-25 Nomura Research Institute Ltd 仲介システム、プログラム、及び記憶媒体
JP2011133951A (ja) 2009-12-22 2011-07-07 Hitachi Ltd 認証状態継承システム
US20140082138A1 (en) 2012-09-14 2014-03-20 Fujitsu Limited Communication system, communication apparatus, communication method, and storage medium
JP2015191508A (ja) 2014-03-28 2015-11-02 株式会社日立ソリューションズ シングルサインオンシステム、シングルサインオン方法
JP2017076832A (ja) 2015-10-13 2017-04-20 日本電気株式会社 代理認証装置、代理認証方法および代理認証プログラム
JP2017194771A (ja) 2016-04-19 2017-10-26 株式会社三菱東京Ufj銀行 認証管理装置及びプログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008226201A (ja) 2007-03-16 2008-09-25 Nomura Research Institute Ltd 仲介システム、プログラム、及び記憶媒体
JP2011133951A (ja) 2009-12-22 2011-07-07 Hitachi Ltd 認証状態継承システム
US20140082138A1 (en) 2012-09-14 2014-03-20 Fujitsu Limited Communication system, communication apparatus, communication method, and storage medium
JP2014056549A (ja) 2012-09-14 2014-03-27 Fujitsu Ltd 通信システム、通信装置、通信方法、および、通信プログラム
JP2015191508A (ja) 2014-03-28 2015-11-02 株式会社日立ソリューションズ シングルサインオンシステム、シングルサインオン方法
JP2017076832A (ja) 2015-10-13 2017-04-20 日本電気株式会社 代理認証装置、代理認証方法および代理認証プログラム
JP2017194771A (ja) 2016-04-19 2017-10-26 株式会社三菱東京Ufj銀行 認証管理装置及びプログラム

Also Published As

Publication number Publication date
JP2020113006A (ja) 2020-07-27

Similar Documents

Publication Publication Date Title
US10419425B2 (en) Method, device, and system for access control of a cloud hosting service
EP3345087B1 (en) Method, device, and system for access control of a cloud hosting service
US10171241B2 (en) Step-up authentication for single sign-on
JP6533871B2 (ja) ウェブアプリケーションへのサインオンを制御するためのシステムおよび方法
US8819787B2 (en) Securing asynchronous client server transactions
JP5904616B2 (ja) リモートサーバーに対するセキュアなユーザ認証および証明
KR102698459B1 (ko) 디바이스로의 보안 자격증명 전송을 인증하는 방법 및 시스템
US20100199086A1 (en) Network transaction verification and authentication
US9104838B2 (en) Client token storage for cross-site request forgery protection
CN113994330A (zh) 应用程序单点登录的系统和方法
CN112202813B (zh) 网络访问方法及装置
JP5252721B2 (ja) 情報提供サーバ
EP3036674B1 (en) Proof of possession for web browser cookie based security tokens
KR101637155B1 (ko) 신뢰 서비스 장치를 이용한 신뢰된 아이덴티티 관리 서비스 제공 시스템 및 그 운영방법
JP7120033B2 (ja) Webサーバ、ログイン判定方法及びプログラム
US9594911B1 (en) Methods and apparatus for multi-factor authentication risk detection using beacon images
JP2012159980A (ja) 識別情報の不正な取得を防止するためのサーバ
JP6451498B2 (ja) プログラム、情報処理端末、情報処理方法、及び情報処理システム
JP2013092998A (ja) アクセス判定装置およびアクセス判定方法およびプログラム
US20240195823A1 (en) Information processing apparatus, information processing method, and storage medium
US20220086168A1 (en) Information processing apparatus, control method thereof, and non-transitory computer-readable storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220615

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220718

R150 Certificate of patent or registration of utility model

Ref document number: 7120033

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150