以下、本発明を実施するための形態について、いくつかの実施形態として説明する。なお、本発明はこれらの実施形態を種々に変形して実施することが可能である。したがって、本発明は、これらの実施形態に限定して解釈されることはない。以下の説明では、説明を分かりやすくするため、通信の遅延および処理の遅延を考慮しないものとする。
[シングルサインオンを採用した通信システムの課題]
本発明の理解を助けるため、まず、シングルサインオンを採用した通信システムの課題について説明する。
図25は、シングルサインオンを採用した通信システム9の全体構成の一例を示すブロック図である。通信システム9は、認証装置90と、第1システム20Aと、第2システム20Bと、複数のクライアント30と、を含む。
認証装置90は、リバースプロキシ方式に従って、クライアント30の認証を行う。すなわち、認証装置90は、クライアント30からのアクセスを受け付けると、クライアント30の正当性を確認するための認証処理を行う。認証装置90は、認証したクライアント30からのアクセスを、第1システム20Aおよび第2システム20Bに中継する。認証装置90は、クライアント30からアクセスを受け付けた場合、該クライアント30の最終アクセス日時からの経過時間がタイムアウト時間未満であるときは認証処理を行わないが、該タイムアウト時間の経過後であるときはタイムアウトを発生させて再認証を要求する。
この種の通信システムに含まれる各システムのタイムアウト時間は、統一されていることが多い(例えば15分)。各システムに求められるセキュリティ機能を勘案して、個別にタイムアウト時間を設定することができれば、セキュリティ機能を確保しつつユーザの利便性を高める効果が期待できる。しかし、単にタイムアウト時間の設定を変更するだけでは、以下の(課題1)、(課題2)、および(課題3)が生じることを発明者らは見出した。以下、第1システム20Aのタイムアウト時間を5分、第2システム20Bのタイムアウト時間を15分として、(課題1)、(課題2)、および(課題3)を説明する。
(課題1)認証装置90のタイムアウト時間を5分とした場合
図26は、通信システム9で実行される処理の一例を示すシーケンスチャートである。認証装置90は、アクセス日時「2018/03/01 10:00:00」(つまり、2018年3月1日の10時00分00秒)に、クライアント30からアクセスを受け付けると(ステップS301)、認証処理を行う(ステップS302)。クライアント30を認証すると、認証装置90は、クライアント30の最終アクセス日時を、「2018/03/01 10:00:00」に更新する(ステップS303)。なお、認証装置90は、タイマーを用いて時刻を計り、その時刻に基づいて、最終アクセス日時を記録する。認証装置90は、自装置へのログインを許可した場合に最初に表示されるトップ画面を、クライアント30へ送信する(ステップS304)。
その後、認証装置90が、アクセス日時「2018/03/01 10:10:00」に、クライアント30から第2システム20B宛てのアクセスを受け付けると(ステップS305)、タイムアウトチェックを行う(ステップS306)。ここでは、最終アクセス日時「2018/03/01 10:00:00」から既に10分を経過しており、認証装置90のタイムアウト時間である5分を経過した後である。よって、認証装置90は、タイムアウトを発生させて、エラー画面をクライアント30へ送信する(ステップS307)。
以上のとおり、認証装置90のタイムアウト時間を第2システム20Bのタイムアウト時間よりも短くした場合、認証装置90のタイムアウト時間の経過後は、クライアント30が第2システム20Bにログインすることができない。すなわち、第2システム20Bのタイムアウト時間が、実質的に認証装置90のタイムアウト時間に短縮されてしまう。
(課題2)認証装置90のタイムアウト時間を15分とした場合(その1)
図27は、通信システム9で実行される処理の一例を示すシーケンスチャートである。ステップS301〜S304の処理は、(課題1)の場合の処理と同じであるから、説明を省略する。
認証装置90が、アクセス日時「2018/03/01 10:10:00」に、クライアント30から第1システム20A宛てのアクセスを受け付けると(ステップS401)、タイムアウトチェックを行う(ステップS402)。ここでは、最終アクセス日時「2018/03/01 10:00:00」から未だ10分しか経過しておらず、認証装置90のタイムアウト時間である15分を経過していない。この場合、認証装置90は、最終アクセス日時を「2018/03/01 10:10:00」に更新する(ステップS403)。認証装置90は、第1システム20Aにログインを要求する(ステップS404)。第1システム20Aは、この要求に基づいてログイン処理を行い、クライアント30のログインを許可する(ステップS405)。第1システム20Aは、最終アクセス日時を「2018/03/01 10:10:00」に更新する(ステップ406)。第1システム20Aは、トップ画面を認証装置90へ送信する(ステップS407)。認証装置90は、トップ画面をクライアント30へ送信する(ステップS408)。
以上のとおり、第1システム20Aは、認証装置90への最終アクセス日時からの経過時間が、自システムのタイムアウト時間の経過後であるにもかかわらず、再認証なしにクライアント30のログインを許可してしまう。その理由は、第1システム20Aは、認証装置90への最終アクセス日時である「2018/03/01 10:00:00」を認識しておらず、「2018/03/01 10:10:00」のアクセスを最初のアクセスとして認識するからである。
(課題3)認証装置90のタイムアウト時間を15分とした場合(その2)
図28および図29は、通信システム9で実行される処理の一例を示すシーケンスチャートである。ステップS301〜S304の処理は、(課題1)の場合の処理と同じであるから、説明を省略する。
認証装置90が、アクセス日時「2018/03/01 10:01:00」に、クライアント30から第1システム20A宛てのアクセスを受け付けると(ステップS501)、タイムアウトチェックを行う(ステップS502)。ここでは、最終アクセス日時「2018/03/01 10:00:00」から、未だ1分しか経過しておらず、認証装置90のタイムアウト時間である15分を経過していない。この場合、認証装置90は、最終アクセス日時を「2018/03/01 10:01:00」に更新する(ステップS503)。認証装置90は、第1システム20Aにログインを要求する(ステップS504)。第1システム20Aは、この要求に基づいてログイン処理を行い、ログインを許可する(ステップS505)。第1システム20Aは、最終アクセス日時を、「2018/03/01 10:01:00」に更新する(ステップS506)。第1システム20Aは、トップ画面を認証装置90へ送信する(ステップS507)。第1システム20Aは、トップ画面をクライアント30へ送信する(ステップS508)。
次に、認証装置90が、アクセス日時「2018/03/01 10:07:00」に、クライアント30から第1システム20A宛てのアクセスを受け付けると(ステップS509)、タイムアウトチェックを行う(ステップS510)、ここでは、最終アクセス日時「2018/03/01 10:01:00」から、未だ6分しか経過しておらず、認証装置90のタイムアウト時間である15分を経過していない。よって、認証装置90は、最終アクセス日時を「2018/03/01 10:07:00」に更新する(ステップS511)。認証装置90は、第1システム20Aにログインを要求する(ステップS512)。第1システム20Aは、この要求に基づいてタイムアウトチェックを行う(ステップS513)。ここでは、第1システム20Aへの最終アクセス日時「2018/03/01 10:01:00」から、既に6分を経過しており、第1システム20Aのタイムアウト時間である5分を経過した後である。この場合、第1システム20Aは、タイムアウトを発生させ、エラー画面を認証装置90へ送信する(ステップS514)。認証装置90は、エラー画面をクライアント30へ送信する(ステップS515)。
次に、認証装置90が、アクセス日時「2018/03/01 10:20:00」に、クライアント30から第1システム20A宛てのアクセスを受け付けると(ステップS516)、タイムアウトチェックを行う(ステップS517)。ここでは、最終アクセス日時である「2018/03/01 10:07:00」から、未だ13分しか経過しておらず、認証装置90のタイムアウト時間である15分を経過していない。よって、認証装置90は、最終アクセス日時を「2018/03/01 10:20:00」に更新する(ステップS518)。認証装置90は、第1システム20Aにログインを要求する(ステップS519)。第1システム20Aは、この要求に基づいてログイン処理を行い、ログインを許可する(ステップS520)。第1システム20Aは、ステップS513,S514の処理でタイムアウトを発生させており、「2018/03/01 10:20:00」のアクセスを最初のアクセスと認識するから、ログインを許可する。第1システム20Aは、最終アクセス日時を「2018/03/01 10:20:00」に更新する(ステップS521)。第1システム20Aは、トップ画面を認証装置90へ送信する(ステップS522)。認証装置90は、トップ画面をクライアント30へ送信する(ステップS523)。
以上のとおり、第1システム20Aは、認証装置90への最終アクセス日時から、自システムのタイムアウト時間の経過後であるにもかかわらず、再認証なしにクライアント30のログインを許可してしまう。
以下、(課題1)、(課題2)、および(課題3)を解決するための本発明の実施の形態を説明する。
[第1実施形態]
<構成>
図1は、本発明の第1実施形態に係る通信システム1の全体構成を示すブロック図である。通信システム1は、アクセス制御装置10と、第1システム20Aと、第2システム20Bと、複数のクライアント30と、を含む。アクセス制御装置10は、第1システム20A、および第2システム20Bの各々と通信回線を介して通信する。アクセス制御装置10は、複数のクライアント30の各々と通信回線を介して通信する。通信回線は、例えば、公衆の通信回線(例えばインターネット)、LAN(Local Area Network)、または専用回線である。アクセス制御装置10は、例えば、1台のサーバ装置または複数台のサーバの協働により実現される。
アクセス制御装置10は、クライアント30を認証すると、クライアント30から受け付けたアクセスを、第1システム20A、または第2システム20Bへ中継する。アクセス制御装置10は、所定の条件を満たした場合は、タイムアウトを発生させてクライアント30をログアウトさせる。タイムアウトは、本実施形態では、クライアント30の認証を無効にすることを意味する。すなわち、アクセス制御装置10は、タイムアウトの発生後にクライアント30からのアクセスを受け付けると、クライアント30に再認証を要求する。タイムアウトを発生させる条件については、後述する。
第1システム20A、および第2システム20Bは、例えば、それぞれ異なるサーバ装置によって実現されるが、同一のサーバ装置によって実現されてもよい。なお、本実施形態では、認証装置90の配下のシステムを、第1システム20A、および第2システム20Bの2つとしているが、3つ以上存在してもよい。第1システム20Aは、例えば、金融機関に関するサービスを提供する。第2システム20Bは、第1システム20Aとは異なるサービスを提供する。ただし、第1システム20A、および第2システム20Bが提供するサービスは、問わない。クライアント30は、例えば、パーソナルコンピュータ、スマートフォン、タブレット型コンピュータまたはその他のコンピュータ装置である。
図2は、アクセス制御装置10の構成を示すブロック図である。アクセス制御装置10は、物理的には、プロセッサ11と、メモリ12と、第1通信部13と、第2通信部14と、を備える。プロセッサ11は、アクセス制御装置10の各部を制御する。プロセッサ11は、アクセス制御部として機能する。プロセッサ11は、例えば、CPU(Central Processing Unit)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)で例示される制御回路を含む。また、プロセッサ11は、時刻を計るタイマーTを有する。タイマーTは、本実施形態では現在の日時(絶対時刻)を計る。タイマーTは、例えばリアルタイムクロックである。
メモリ12は、データを記憶する。メモリ12は、例えば、テーブル121と、認証情報122と、プログラム123と、を記憶する。テーブル121は、クライアント30のアクセスを制御するためのデータが格納される。認証情報122は、認証処理に用いられる情報を含む。認証情報122は、例えば、ユーザIDとパスワードとの組を複数含む。プログラム123は、プロセッサ11に所定の機能を実行させるためのプログラムである。
メモリ12は、例えば、プロセッサ11がワークエリアとして使用するRAM(Random Access Memory)、およびプログラム123を記憶するROM(Read Only Memory)を含む。また、メモリ12は、光学式記録媒体、磁気記録媒体、及び半導体記録媒体で例示される任意の形式の記録媒体を含みうる。
第1通信部13は、複数のクライアント30の各々と通信する。第2通信部14は、第1システム20A、および第2システム20Bの各々と通信する。第1通信部13および第2通信部14は、有線および無線のいずれによって通信してもよい。第1通信部13および第2通信部14は、例えば、通信回路を含む。
図3は、テーブル121の構成の一例を示す図である。テーブル121は、アクセス制御装置10、第1システム20A、および第2システム20Bの各々について、「ユーザID」、「タイムアウト時間」、「最終アクセス日時」、「短縮フラグ」、および「発生フラグ」を対応付けて格納する。なお、図3には、ある一つのクライアント30に関する情報のみが示されている。
「ユーザID」は、クライアント30のユーザを識別する識別子である。アクセス制御装置10のユーザを識別するユーザID「USER−1」と、第1システム20Aのユーザを識別するユーザID「USER−A1」および「USER−A2」と、第2システム20Bのユーザを識別するユーザID「USER−B1」とは、本実施形態では、同じクライアント30のユーザに割り当てられている。すなわち、クライアント30は、認証画面から、ユーザID「USER−1」を用いてアクセス制御装置10にログインすることができる。また、クライアント30は、第1システム20Aのトップ画面から、ユーザID「USER−A1」または「USER−A2」を用いて第1システム20Aにログインすることができる。また、クライアント30は、第2システム20Bのトップ画面から、ユーザID「USER−B1」を用いて第2システム20Bにログインすることができる。
「タイムアウト時間」は、所定の時点からタイムアウトが発生するまでの時間である。本実施形態では、標準のタイムアウト時間である第1タイムアウト時間(第1時間)を15分とし、第1タイムアウト時間よりも短縮した第2タイムアウト時間(第2時間)を5分とする。アクセス制御装置10は、第1タイムアウト時間である「15分」が適用される。第1システム20Aは、ユーザID「USER−A1」(第1識別子)が用いられたときは第1タイムアウト時間である「15分」が、ユーザID「USER−A2」(第2識別子)が用いられたときは第2タイムアウト時間である「5分」が適用される。第1システム20Aは、例えば、より高度なセキュリティが課されるべきユーザほど、タイムアウト時間を短くする。第2システム20Bは、ユーザID「USER−B1」が用いられたときは第2タイムアウト時間である「5分」が適用される。以上のように、第1システム20Aは、クライアント30から受け付けたアクセスの中継先のシステム、およびユーザによってタイムアウト時間を異ならせる。「最終アクセス日時」は、アクセス制御装置10、第1システム20A、および第2システム20Bの各々に最終的にアクセスした最終アクセス時を示す。
「短縮フラグ」は、いずれかのクライアント30に第2タイムアウト時間が適用される場合は「オン」、適用されない場合は「オフ」となるフラグである。
「発生フラグ」は、タイムアウトが発生する場合は「オン」、発生しない場合は「オフ」となるフラグである。本実施形態では、アクセス制御装置10に対応付けられた短縮フラグおよび発生フラグが、それぞれオンまたはオフのいずれかとなる。一方、第1システム20Aおよび第2システム20Bの各々に対応付けられた短縮フラグおよび発生フラグは、本実施形態では、ブランク(図3において「−」と示す。)である。
<動作>
次に、通信システム1の動作を説明する。
(テーブル121の管理)
図4は、アクセス制御装置10が行うテーブル121の管理に係る処理を示すフローチャートである。以下の処理は、クライアント30ごとに行われる。なお、以下の処理の開始前において、短縮フラグおよび発生フラグは、いずれもオフである。
アクセス制御装置10においてプロセッサ11は、まず、いずれかのクライアント30に第2タイムアウト時間を適用するかどうかを判定する(ステップS1)。ここでは、プロセッサ11は、ステップS1で「YES」と判定し、テーブル121の短縮フラグをオンする(ステップS2)。これにより、テーブル121は図3に示す状態となる。なお、ステップS1で「NO」と判定した場合は、プロセッサ11は、短縮フラグをオフとしたまま、図4の処理を終了させる。
ステップS2で短縮フラグをオンした場合、プロセッサ11は、タイマーTに基づいて、クライアント30の無操作時間が、第2タイムアウト時間である5分を経過したかどうかを判定する(ステップS3)。無操作時間とは、クライアント30がアクセス制御装置10に対する操作を行っていない時間の長さをいう。ここにおいて、操作とは、アクセス制御装置10に対して何らかの命令を発することをいう。クライアント30は、第1システム20Aまたは第2システム20Bを操作する場合、アクセス制御装置10を経由する。このため、アクセス制御装置10に対する操作は、アクセス制御装置10をアクセス先として行われる操作、第1システム10Aをアクセス先として行われる操作、および第2システム10Bをアクセス先として行われる操作を含む。アクセス制御装置10に対する操作の有無は、クライアント30がユーザにより使用されているかどうかの判定に用いられる。プロセッサ11は、例えば、クライアント30に対して最後の操作が行われた日時をメモリ12に記憶させておき、該日時とタイマーTが計る日時とを比較し、その差分を無操作時間として算出する。ステップS3で「NO」と判定した場合、プロセッサ11は待機する。
ステップS3で、無操作時間が第2タイムアウト時間である5分を経過したと判定した場合(ステップS3;YES)、プロセッサ11は、テーブル121の発生フラグをオンする(ステップS4)。これにより、第2タイムアウト時間が適用されるユーザ(本実施形態では、ユーザID「USER−A2」、または「USER−B1」のユーザ)のクライアント30について、タイムアウトが発生する。
(クライアント30の認証に係る処理)
図5は、アクセス制御装置10が行うクライアント30の認証に係る処理を示すフローチャートである。
アクセス制御装置10においてプロセッサ11は、クライアント30からのアクセスを受け付ける(ステップS11)。次に、プロセッサ11は、クライアント30の認証処理を行う(ステップS12)。認証処理は、クライアント30から受け付けたユーザIDとパスワードとの組と、認証情報122におけるユーザIDとパスワードの組とを照合して、クライアント30の正当性を確認する処理である。
プロセッサ11は、認証処理に成功したかどうかを判定する(ステップS13)。ステップS13で「YES」と判定した場合、プロセッサ11は、クライアント30のログインを許可する(ステップS14)。次に、プロセッサ11は、テーブル121におけるアクセス制御装置10の最終アクセス日時を更新する(ステップS15)。例えば、ユーザID「USER−1」を用いて、アクセス日時「2018/03/01 10:00:00」にアクセスを受け付けた場合、プロセッサ11は、テーブル121を図6に示す状態に更新する。そして、プロセッサ11は、図5の処理を終了する。一方、ステップS13で「NO」と判定した場合、プロセッサ11はログインを拒否して(ステップS16)、図5の処理を終了する。
(アクセス制御)
図7は、アクセス制御装置10がクライアント30を認証した後に行うアクセス制御を示すフローチャートである。
アクセス制御装置10においてプロセッサ11は、クライアント30からのアクセスを受け付ける(ステップS21)。次に、プロセッサ11は、該クライアント30に、第2タイムアウト時間を適用するかどうかを判定する(ステップS22)。プロセッサ11は、クライアント30がログインに用いたユーザID、アクセス先のシステム、およびテーブル121に基づいて、この判定を行う。例えば、プロセッサ11は、ユーザID「USER−A2」を用いた第1システム20A宛てのアクセス(第2アクセス)を受け付けた場合、またはユーザID「USER−B1」を用いた第2システム20B宛てのアクセス(第2アクセス)を受け付けた場合、ステップS22で「YES」と判定する。
次に、プロセッサ11は、テーブル121に基づいて、発生フラグがオンかどうかを判定する(ステップS23)。すなわち、プロセッサ11は、クライアント30の無操作時間が、第2タイムアウト時間である5分を経過したかどうかを判定する。ステップS23で「NO」と判定した場合、プロセッサ11は、クライアント30に対し、アクセス先のシステムへのログインを許可する(ステップS24)。この場合、プロセッサ11は、アクセス先のシステムにログインを要求する。例えば、アクセス日時「2018/03/01 10:03:00」に、ユーザID「USER−A2」を用いたアクセスを受け付けた場合、プロセッサ11は、第1システム20Aへのログインを許可する。そして、プロセッサ11は、テーブル121における最終アクセス日時を更新する(ステップS25)。アクセス日時「2018/03/01 10:03:00」に、ユーザID「USER−A2」を用いたアクセスを受け付けた場合、プロセッサ11はテーブル121を図8に示す状態に更新する。すなわち、プロセッサ11は、アクセス制御装置10および第1システム20Aの最終アクセス日時を更新する。そして、プロセッサ11は、図7の処理を終了する。
一方、ステップS23で「YES」と判定した場合、プロセッサ11はタイムアウトを発生させる(ステップS26)。例えば、アクセス日時「2018/03/01 10:08:00」に、ユーザID「USER−A2」を用いたアクセスを受け付けた場合、プロセッサ11は第1システム20Aについてタイムアウトを発生させて、第1システム20Aへのログインを拒否する。この場合、プロセッサ11は、アクセス先のシステムにログインを要求しない。
次に、プロセッサ11は、テーブル121における最終アクセス日時を更新する(ステップS27)。例えば、アクセス日時「2018/03/01 10:08:00」に、ユーザID「USER−A2」を用いたアクセスを受け付けた場合、プロセッサ11はテーブル121を図9に示す状態に更新する。ここでは、アクセス制御装置10についてはタイムアウトが発生せず、第1システム20Aについてタイムアウトが発生するので、プロセッサ11はアクセス制御装置10の最終アクセス日時を更新する。そして、プロセッサ11は図7の処理を終了する。
一方、ステップS22で第2タイムアウト時間を適用しないと判定した場合、すなわち第1タイムアウト時間を適用すると判定した場合(ステップS22;NO)、プロセッサ11はステップS28に処理を進める。例えば、ユーザID「USER−A1」を用いて、第1システム20A宛てのアクセス(第1アクセス)を受け付けた場合、プロセッサ11はステップS22で「NO」と判定する。
この場合、プロセッサ11は、テーブル121に基づいて、アクセス制御装置10への最終アクセス日時からの経過時間が、第1タイムアウト時間である15分を経過したかどうかを判定する(ステップS28)。ステップS28で「NO」と判定した場合、プロセッサ11は、クライアント30に対し、アクセス先のシステムへのログインを許可する(ステップS29)。例えば、アクセス日時「2018/03/01 10:10:00」に、ユーザID「USER−A1」を用いたアクセスを受け付けた場合、プロセッサ11は、第1システム20Aへのログインを許可する。
次に、プロセッサ11は、テーブル121における最終アクセス日時を更新する(ステップS30)。例えば、アクセス日時「2018/03/01 10:10:00」に、ユーザID「USER−A2」を用いたアクセスを受け付けた場合、プロセッサ11は、テーブル121を図10に示す状態に更新する。ここでは、プロセッサ11は、アクセス制御装置10と第1システム20Aとにおける最終アクセス日時を更新する。そして、プロセッサ11は、図7の処理を終了する。
一方、ステップS28で「YES」と判定した場合、プロセッサ11はタイムウトを発生させる(ステップS31)。例えば、ユーザID「USER−A2」を用いて、アクセス日時「2018/03/01 10:20:00」にアクセスを受け付けた場合、プロセッサ11はアクセス制御装置10および第1システム20Aについてタイムアウトを発生させる。そして、プロセッサ11は図7の処理を終了する。
以上のとおり、アクセス制御装置10のタイムアウト時間は、第2システム20BのユーザID「USER−A1」のタイムアウト時間と同じ、第1タイムアウト時間(15分)に設定されている。よって、アクセス制御装置10のタイムアウト時間の設定によって、第2システム20Bのタイムアウト時間が実質的に短縮されてしまうことがないため、上述した(課題1)は生じない。
アクセス制御装置10は、第2タイムアウト時間を適用する場合は、無操作時間が該第2タイムアウト時間を経過した後にタイムアウトを発生させる。これにより、無操作時間が該第2タイムアウト時間を経過した後は、アクセス制御装置10はアクセス先のシステムにログインを要求しない。よって、上述した(課題2)および(課題3)は発生しない。以上の理由により、アクセス制御装置10によれば、タイムアウト時間の設定に起因したセキュリティ上の問題の発生を抑えることができる。
さらに、アクセス制御装置10により、以下の効果を奏する。図11に示すように、クライアント30が、ユーザID「USER−B1」を用いて第2システム20Bにアクセスし、その後、ユーザID「USER−A1」を用いて第1システム20Aにアクセスし、再びユーザID「USER−B1」を用いて第2システム20Bにアクセスする場合を考える。ユーザID「USER−A1」を用いて第1システム20Aにアクセスしている時間が、第2タイムアウト時間である5分よりも長い場合、仮に第2システム20Bへの最終アクセス日時を基準にタイムアウトの発生の有無が制御されたときは、第2システム20Bについてタイムアウトが発生する。しかし、アクセス制御装置10は、無操作時間に基づいてタイムアウトの発生の有無を制御する。第1システム20Aへのアクセス中も、アクセス制御装置10に対する操作は行われている。このため、無操作時間に基づいてタイムアウトの発生が制御されることで、第2システム20Bのタイムアウトの発生頻度が減少する。また、無操作時間が第2タイムアウト時間よりも短い期間においては、なりすましのおそれは少ないと考えられる。以上の理由により、アクセス制御装置10によれば、ユーザの利便性を向上させる上でも望ましい構成を有する。
[第2実施形態]
本実施形態では、タイムアウト時間を、「5分」、「10分」、「15分」の3種類とした場合の実施の形態を説明する。通信システム1の全体構成、および各装置の物理的な構成は、上述した第1実施形態と同じである。以下、第1実施形態との相違点を中心に、本実施形態を説明する。なお、上述した第1実施形態と同じ要素については、同じ符号を付して表す。
図12は、本実施形態のテーブル121の構成を示す図である。なお、図12には、一のクライアント30に関する情報のみが示されている。図12に示すように、テーブル121は、アクセス制御装置10、第1システム20A、および第2システム20Bの各々について、短縮フラグおよび発生フラグが格納される。一方、アクセス制御装置10についての短縮フラグおよび発生フラグは、ブランク(図12において「−」と示す。)である。また、第2システム20BのユーザID「USER−B1」のユーザには、第2タイムアウト時間より長く、かつ第1タイムアウト時間よりも短い第3タイムアウト時間(第3時間)が適用されるものとする。第3タイムアウト時間は、ここでは10分である。
(テーブル121の管理)
図13は、アクセス制御装置10が行うテーブル121の管理に係る処理を示すフローチャートである。以下の処理は、ユーザIDごとに行われる。なお、以下の処理の開始前において、「短縮フラグ」および「発生フラグ」は、いずれも「オフ」である。
アクセス制御装置10においてプロセッサ11は、まず、いずれかのクライアント30に第1タイムアウト時間(15分)よりも短縮したタイムアウト時間を適用するかどうかを判定する(ステップS41)。ここでは、プロセッサ11は、ステップS41で「YES」と判定し、対象の短縮フラグをオンする(ステップS42)。本実施形態では、プロセッサ11は、テーブル121において、第2タイムアウト時間(つまり、5分)および第3タイムアウト時間(つまり、10分)に対応付けられた短縮フラグをオンする。これにより、テーブル121は図12に示す状態となる。
次に、プロセッサ11は、タイマーTに基づいて、クライアント30の無操作時間が、いずれかの短縮したタイムアウト時間を経過したかどうかを判定する(ステップS43)。プロセッサ11は、ユーザID「USER−A2」については第2タイムアウト時間である5分を経過したかどうかを判定する。プロセッサ11は、ユーザID「USER−B1」については第3タイムアウト時間である10分を経過したかどうかを判定する。
ステップS43で、無操作時間がいずれかの短縮したタイムアウト時間を経過したと判定した場合(ステップS43;YES)、プロセッサ11は、テーブル121の対象の発生フラグをオンする(ステップS44)。プロセッサ11は、ユーザID「USER−A2」に対応付けられた発生フラグを、第2タイムアウト時間である5分を経過したときにオンする。また、プロセッサ11は、ユーザID「USER−B1」に対応付けられた発生フラグを、第3タイムアウト時間である10分を経過したときにオンする。
(クライアント30の認証に係る処理)
アクセス制御装置10が行うクライアント30の認証に係る処理は、上述した実施形態と同じであるから説明を省略する。
(アクセス制御)
図14は、アクセス制御装置10がクライアント30を認証した後に行うアクセス制御を示すフローチャートである。以下の処理は、ユーザIDごとに行われる。アクセス制御装置10においてプロセッサ11は、クライアント30からのアクセスを受け付ける(ステップS51)。次に、プロセッサ11は、短縮フラグに基づいて、短縮したタイムアウト時間を適用するかどうかを判定する(ステップS52)。プロセッサ11は、クライアント30がログインに用いたユーザID、アクセス先のシステム、およびテーブル121に基づいて、この判定を行う。例えば、プロセッサ11は、ユーザID「USER−A2」を用いた第1システム20A宛てのアクセス(第1アクセス)を受け付けた場合、またはユーザID「USER−B1」を用いた第2システム20B宛てのアクセス(第1アクセス)を受け付けた場合、ステップS52で「YES」と判定する。
ステップS52で「YES」と判定した場合、プロセッサ11は、テーブル121に基づいて、対象の発生フラグがオンかどうかを判定する(ステップS53)。ステップS53で「NO」と判定した場合、プロセッサ11は、クライアント30に対し、アクセス先のシステムへのログインを許可する(ステップS54)。そして、プロセッサ11は、テーブル121における最終アクセス日時を更新する(ステップS55)。例えば、アクセス日時「2018/03/01 10:03:00」に、ユーザID「USER−A2」を用いたアクセスを受け付けた場合、プロセッサ11は、ログインを許可するとともに、テーブル121を図15に示す状態に更新する。アクセス日時「2018/03/01 10:03:00」に、ユーザID「USER−B1」を用いたアクセスを受け付けた場合、プロセッサ11は、ログインを許可するとともに、テーブル121を図16に示す状態に更新する。そして、プロセッサ11は、図14の処理を終了する。
一方、ステップS53で「YES」と判定した場合、プロセッサ11はタイムウトを発生させる(ステップS56)。次に、プロセッサ11は、テーブル121における最終アクセス日時を更新する(ステップS57)。ステップS56,S57の処理は、ステップS26,S27の処理と同じでよい。そして、プロセッサ11は図14の処理を終了する。
一方、ステップS52で、プロセッサ11が短縮したタイムアウト時間を適用しないと判定した場合(ステップS52;NO)、ステップS28に処理を進める。例えば、プロセッサ11は、ユーザID「USER−A1」を用いた第1システム20A宛てのアクセスを受け付けた場合、ステップS52で「NO」と判定し、ステップS28の処理に進める。ステップS28の処理に進んだ後は、上述した第1実施形態と同様、ステップS28〜S31の処理が実行される。
以上のとおり、タイムアウト時間が3種類の場合でも、アクセス制御装置10は、各システムに設定されたタイムアウト時間に基づいて、タイムアウトの発生を制御することができる。本実施形態では、タイムアウト時間を3種類としたが、タイムアウト時間が4種類以上の場合も、アクセス制御装置10はタイムアウトの発生を制御することができる。
[第3実施形態]
図17は、本発明の第3実施形態に係る通信システム2の全体構成を示すブロック図である。通信システム2は、アクセス制御装置40と、認証装置50と、第1システム20Aと、第2システム20Bと、複数のクライアント30と、を含む。アクセス制御装置40は、認証装置50と通信回線を介して通信する。アクセス制御装置40は、複数のクライアント30の各々と通信回線を介して通信する。
アクセス制御装置40は、認証装置50により認証されたクライアント3−の第1システム20Aおよび第2システム20Bへのアクセスを制御する。認証装置50は、クライアント30の正当性を確認するための認証処理を行う。アクセス制御装置40は、例えば、1台のサーバ装置、または複数台のサーバの協働により実現される。
図18は、アクセス制御装置40の物理的な構成を示すブロック図である。アクセス制御装置40は、プロセッサ41と、メモリ42と、第1通信部43と、第2通信部44とを備える。アクセス制御装置40の各部の構成は、アクセス制御装置10の同名の要素と同じ構成であってよい。プロセッサ41は、アクセス制御部として機能する。メモリ42は、テーブル421と、プログラム422と、を記憶する。テーブル421は、クライアント30のアクセスを制御するためのデータが格納される。プログラム422は、プロセッサ41に所定の機能を実行させるためのプログラムである。
図19は、テーブル421の構成を示す図である。図19に示すように、テーブル421は、アクセス制御装置40、第1システム20A、および第2システム20Bの各々について、ユーザID、タイムアウト時間、および最終アクセス日時を対応付けて格納する。「ユーザID」は、クライアント30のユーザを識別する識別子である。「タイムアウト時間」は、所定の時点からタイムアウトが発生するまでの時間である。アクセス制御装置40は、第1タイムアウト時間である「15分」が適用される。第1システム20Aは、ユーザID「USER−A1」に対応して第1タイムアウト時間である「15分」が、ユーザID「USER−A2」に対応して第2タイムアウト時間である「5分」が適用される。第2システム20Bは、ユーザID「USER−B1」に対応して「15分」が適用される。「最終アクセス日時」は、アクセス制御装置40、第1システム20A、および第2システム20Bの各々に最終的にアクセスした最終アクセス時を示す。
図20は、アクセス制御装置40が行う処理を示すフローチャートである。
アクセス制御装置40においてプロセッサ41は、認証装置50のタイムアウト時間である第1タイムアウト時間(15分)をテーブル421から取得する(ステップS61)。次に、プロセッサ41は、認証装置50の最終アクセス日時をテーブル421から取得する(ステップS62)。なお、プロセッサ41は、認証装置50からタイムアウト時間および最終アクセス日時の一方又は両方を取得してもよい。
次に、プロセッサ41は、該最終アクセス日時からの経過時間を算出する(ステップS63)。次に、プロセッサ41は、経過時間が第1タイムアウト時間未満かどうかを判定する(ステップS64)。プロセッサ41は、経過時間がタイムアウト時間未満であると判定した場合は(ステップS64;YES)、ステップS65に処理を進める。一方、プロセッサ41は、経過時間が第1タイムアウト時間の経過後であると判定した場合は(ステップS64;NO)、タイムアウトを発生させる(ステップS74)。
ステップS65において、プロセッサ41は、テーブル421から、クライアント30のアクセス先のシステムのタイムアウト時間を取得する。次に、プロセッサ41は、アクセス先のシステムの最終アクセス日時をテーブル421から取得する(ステップS66)。次に、プロセッサ41は、テーブル421から該最終アクセス日時を取得したかどうかを判定する(ステップS67)。ステップS67で「YES」と判定した場合、プロセッサ41は、該最終アクセス日時からの経過時間を算出する(ステップS68)。次に、プロセッサ41は、経過時間が該アクセス先のシステムのタイムアウト時間未満かどうかを判定する(ステップS69)。例えば、プロセッサ41は、ユーザID「USER−A2」を用いた第1システム20A宛てのアクセスを受け付けた場合は、第2タイムアウト時間である5分未満かどうかを判定する。プロセッサ41は、ユーザID「USER−A1」を用いた第1システム20A宛てのアクセスを受け付けた場合、または「USER−B1」を用いた第2システム20B宛てのアクセスを受け付けた場合は、第1タイムアウト時間である15分未満かどうかを判定する。
プロセッサ41は、経過時間がタイムアウト時間未満であると判定した場合は(ステップS69;YES)、ステップS70に処理を進める。一方、プロセッサ41は、経過時間がタイムアウト時間を経過したと判定した場合は、タイムアウトを発生させて(ステップS75)、ステップS73に処理を進める。
ステップS67で「NO」と判定した場合、プロセッサ41は、アクセス先のシステムへ最終アクセス日時を要求する(ステップS70)。プロセッサ41は、アクセス先のシステムから最終アクセス日時を取得したかどうかを判定する(ステップS71)。ステップS71で「YES」と判定した場合、プロセッサ41は、取得した該最終アクセス日時により、テーブル421を更新する(ステップS72)。
ステップS71で「NO」と判定した場合、ステップS72の処理を実行した場合、またはステップS75の処理を実行した場合、プロセッサ41は、テーブル421における認証装置50の最終アクセス日時を更新する(ステップS73)。
図21および図22は、通信システム2で実行される処理の一例(処理例1)を示すシーケンスチャートである。
認証装置50は、アクセス日時「2018/03/01 10:00:00」に、クライアント30からアクセスを受け付けると(ステップS101)、認証処理を行う(ステップS102)。クライアント30を認証すると、認証装置50は、ログインが完了した旨をアクセス制御装置40に通知する(ステップS103)。
アクセス制御装置40においてプロセッサ41は、この完了通知を受け付けると、テーブル421における認証装置50の最終アクセス日時を更新する(ステップS104)。ここでは、認証装置50の最終アクセス日時は、「2018/03/01 10:00:00」である。そして、プロセッサ41は、トップ画面をクライアント30へ送信する(ステップS105)。
その後、プロセッサ41が、アクセス日時「2018/03/01 10:10:00」に、クライアント30から、ユーザID「USER−A1」を用いた第1システム20A宛てのアクセスを受け付けると(ステップS106)、タイムアウトチェックを行う(ステップS107)。ここでは、最終アクセス日時からの経過時間は、認証装置50に適用される第1タイムアウト時間(15分)よりも短い10分である。この場合、プロセッサ41は、テーブル421における認証装置50の最終アクセス日時を、「2018/03/01 10:10:00」に更新する(ステップS108)。一方、該最終アクセス日時からの経過時間は、第1システム20Aに適用される第2タイムアウト時間(5分)よりも長い10分である。よって、プロセッサ41は、第1システム20Aについてはタイムアウトを発生させて、エラー画面をクライアント30へ送信する(ステップS109)。
次に、プロセッサ41が、アクセス日時「2018/03/01 10:20:00」に、クライアント30からユーザID「USER−B1」を用いた第2システム20B宛てのアクセスを受け付けると(ステップS110)、タイムアウトチェックを行う(ステップS111)。ここでは、最終アクセス日時からの経過時間は、第1タイムアウト時間(15分)よりも短い10分である。よって、プロセッサ41は、第2システム20Bへログインを要求する(ステップS112)。
第2システム20Bは、この要求に基づいてログイン処理を行い、ログインを許可する(ステップS113)。第2システム20Bはトップ画面をアクセス制御装置40へ送信する(ステップS114)。アクセス制御装置40においてプロセッサ41は、テーブル421における認証装置50および第2システム20Bの最終アクセス日時を「2018/03/01 10:20:00」に更新し(ステップS115)、トップ画面をクライアント30へ送信する(ステップS116)。
以上のとおり、アクセス制御装置40のタイムアウト時間と、第2システム20Bとは同じであり、第2システム20Bのタイムアウト時間は、アクセス制御装置40のタイムアウト時間によって実質的に短縮されてしまうことはない。よって、上記(課題1)は生じない。また、アクセス制御装置40の最終アクセス日時からタイムアウト時間「5分」が経過した後は、アクセス制御装置40は第1システム20Aにログインを要求しない。よって、上記(課題2)は生じない。
図23および図24は、通信システム2で実行される処理の一例(処理例2)を示すシーケンスチャートである。
ステップS101〜S105の処理は、処理例1の場合の処理と同じである。その後、アクセス制御装置40においてプロセッサ41が、アクセス日時「2018/03/01 10:04:00」に、クライアント30からユーザID「USER−A1」を用いた第1システム20A宛てのアクセスを受け付けると(ステップS201)、タイムアウトチェックを行う(ステップS202)。ここでは、最終アクセス日時からの経過時間は、第1システム20Aに適用される第2タイムアウト時間(5分)よりも短い4分である。よって、プロセッサ41は、第1システム20Aへログインを要求する(ステップS203)。第1システム20Aは、この要求に基づいてログイン処理を行い、ログインを許可する(ステップS204)。そして、第2システム20Bは、トップ画面をアクセス制御装置40へ送信する(ステップS205)。
プロセッサ41は、テーブル421における認証装置50および第1システム20Aの最終アクセス日時を「2018/03/01 10:04:00」に更新する(ステップS206)。そして、プロセッサ41は、トップ画面をクライアント30へ送信する(ステップS207)。
次に、アクセス制御装置40においてプロセッサ41が、アクセス日時「2018/03/01 10:10:00」に、クライアント30から、ユーザID「USER−A2」を用いた第1システム20A宛てのアクセスを受け付けると(ステップS208)、タイムアウトチェックを行う(ステップS209)。ここでは、最終アクセス日時からの経過時間は、第1タイムアウト時間(15分)よりも短い6分である。よって、プロセッサ41は、テーブル421における認証装置50の最終アクセス日時を、「2018/03/01 10:10:00」に更新する(ステップS210)。一方、最終アクセス日時からの経過時間は、第1システム20Aに適用される第2タイムアウト時間(5分)よりも長い。よって、プロセッサ41は、タイムウトを発生させて、エラー画面をクライアント30へ送信する(ステップS211)。
次に、プロセッサ41が、アクセス日時「2018/03/01 10:20:00」に、クライアント30から、ユーザID「USER−A2」を用いた第1システム20A宛てのアクセスを受け付けると(ステップS212)、タイムアウトチェックを行う(ステップS213)。ここでは、最終アクセス日時からの経過時間は、第1タイムアウト時間(15分)よりも短い10分である。よって、プロセッサ41は、テーブル421における認証装置50の最終アクセス日時を「2018/03/01 10:20:00」に更新する(ステップS214)。一方、最終アクセス日時からの経過時間は、第1システム20Aに適用される第2タイムアウト時間(5分)よりも長い10分である。よって、プロセッサ41は、タイムウトを発生させて、エラー画面をクライアント30へ送信する(ステップS215)。
以上のとおり、アクセス制御装置40の最終アクセス日時から、第1タイムアウト時間である5分が経過した後は、アクセス制御装置40は第1システム20Aにログインを要求しない。よって、第1システム20Aが最初のアクセスと誤認してログインを許可してしまうことがない。よって、(課題3)の問題は生じない。以上の理由により、アクセス制御装置40によれば、タイムアウト時間の設定に起因したセキュリティ上の問題の発生を抑えることができる。なお、本実施形態でも、上述した第2実施形態と同様、タイムアウト時間が3種類以上であってもよい。
[変形例]
本発明は上記の実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
上述した実施形態で説明した構成の一部が省略または変更されてもよい。例えば、上述した実施形態のアクセス制御装置は、タイマーが計る日時と、テーブルに格納された最終アクセス日時との差に基づいて、タイムアウト時間の経過の有無を判定していた。これに代えて、アクセス制御装置10は、タイマーを用いて無操作時間を計ってもよい。この場合、アクセス制御装置10は、クライアント30に対する操作が行われると、該タイマーをリセットする。これにより、タイマーの値が無操作時間を示すようになる。また、アクセス制御装置10,40は、タイマーを用いて最終アクセス日時からの経過時間を計ってもよい。この場合、アクセス制御装置10,40は、所定のアクセス先にアクセスがあると、そのアクセス先に対応するタイマーをリセットする。これにより、タイマーの値が最終アクセス日時からの経過時間を示すようになる。
上述した実施形態で説明したアクセス制御装置10,40で実行される処理の順番は、矛盾が生じない限りにおいて、変更されてもよい。また、メモリ12に記憶されていたデータ(例えば、テーブル121,421)の一部または全部が外部の記憶装置に記憶されてもよい。
アクセス制御装置10のプロセッサ11、およびアクセス制御装置40のプロセッサ41が実現する機能は、複数のプログラムの組み合わせによって実現され、又は複数のハードウェア資源の連係によって実現され得る。プロセッサ11または41の機能がプログラムを用いて実現される場合、この機能を実現するためのプログラム123またはプログラム422が、各種の磁気記録媒体、光記録媒体、光磁気記録媒体、半導体メモリ等のコンピュータ読み取り可能な記録媒体に記憶した状態で提供されてもよい。また、このプログラムは、ネットワークを介して配信されてもよい。また、本発明は、アクセス制御方法としても把握することができる。