(58)【調査した分野】(Int.Cl.,DB名)
クライアント端末と、認証サーバと、クラウドサービスとがネットワークを介して接続され、前記クライアント端末から送信された位置情報に応じて、前記認証サーバが前記クラウドサービスにログインするアカウントを決定するアカウント管理システムであって、
前記クライアント端末は、前記クラウドサービスにアクセスする際に、前記認証サーバに、前記クライアント端末のユーザIDと、前記クライアント端末の位置情報と、を送信し、
前記認証サーバは、前記ユーザIDと前記位置情報を前記クライアント端末から受信し、前記ユーザID及び前記位置情報と、前記位置情報によってセキュリティのレベルを規定するポリシ情報に従い、前記クラウドサービスにログインするためのアカウントを決定し、前記クライアント端末の位置が変化したことを検知した場合に前記ポリシ情報に従い前記アカウントをシームレスに切り替えることを特徴とするアカウント管理システム。
【発明を実施するための形態】
【0013】
以下、添付図面を参照して本発明の実施形態について説明する。添付図面では、機能的に同じ要素は同じ番号で表示される場合もある。なお、添付図面は本発明の原理に則った具体的な実施形態と実装例を示しているが、これらは本発明の理解のためのものであり、決して本発明を限定的に解釈するために用いられるものではない。
【0014】
本実施形態では、当業者が本発明を実施するのに十分詳細にその説明がなされているが、他の実装・形態も可能で、本発明の技術的思想の範囲と精神を逸脱することなく構成・構造の変更や多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述をこれに限定して解釈してはならない。
【0015】
更に、本発明の実施形態は、後述されるように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装しても良い。
【0016】
なお、以後の説明では「テーブル」形式によって本発明の各情報について説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、DB、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「DB」、「キュー」等について単に「情報」と呼ぶことがある。
【0017】
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
【0018】
以下では「各機能部(例えば、ユーザ認証部)」を主語(動作主体)として本発明の実施形態における各処理について説明を行うが、各機能部はプログラムで構成され、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は認証サーバ等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていても良い。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
【0019】
<アカウント管理システムの構成>
図1は、本発明の実施形態に係るアカウント管理システム1000の概略構成を示す図である。アカウント管理システム1000は、認証サーバ(「管理サーバ」、「アカウント管理装置」、「アカウント管理サーバ」と称することも可能である)100と、クライアント端末200と、クラウドサービス300と、を有し、これらは、例えばインターネットなどのネットワーク400を介して接続されている。
【0020】
認証サーバ100は、クライアント端末200を利用するユーザのユーザIDを管理する。また、後述の
図2で説明するように、認証サーバ100はクラウドサービス300を利用するためのサービスアカウントを管理する。
【0021】
クライアント端末200は、クラウドサービス300を利用する。クライアント端末200は、クラウドサービス300へログインするためには認証サーバ100に対してユーザIDを用いて認証を受ける必要がある。認証サーバ100の認証が成功すると、認証サーバ100は、クラウドサービス300へサービスアカウントのログイン処理を行う。その後、クライアント端末200は、サービスアカウントのログイン処理成功後にクラウドサービス300が利用可能になる。認証サーバ100がクライアント端末200とクラウドサービス300との通信の仲介をするため、クライアント端末200のユーザは、認証サーバ100への認証ID(ユーザID)しか知らず、クラウドサービス300自体のアカウントは知らない状態であることが前提となっている。クライアント端末200は、例えばパーソナルコンピュータ201やモバイル端末202などのコンピュータである。以下では総称してクライアント端末200とする。
【0022】
クラウドサービス300は、例えばクライアント端末200がネットワーク400を介してデータを読み書きするクラウドストレージなどのサービスである。クラウドサービス300を提供している事業者は、認証サーバ100(およびその構成要素)やクライアント端末200が所属する事業者とは必ずしも同じではない。
【0023】
<認証サーバの構成>
図2は、本発明の実施形態による認証サーバ100の詳細機能構成を示すブロック図である。認証サーバ100は、クラウドサービス300を利用するためのサービスアカウントを管理しており、ユーザ毎の認証に応じて、クラウドサービス300へサービスアカウントのログイン処理を行う。
【0024】
認証サーバ100は、各種プログラムを実行する演算部であるCPU(プロセッサ)101と、各種プログラムを格納するメモリ102と、指示を入力したり、演算結果を出力したりする入出力デバイス(入力デバイスとして、キーボード、マウス、マイク等、出力デバイスとしてディスプレイ、プリンタ、スピーカ等)103と、クライアント端末200やクラウドサービス300と通信するための通信デバイス104と、各種データを格納する記憶装置150と、を有している。
【0025】
メモリ102は、プログラムとしての、外部サービス連携部110と、後述の
図4で示されるポリシを管理するポリシ設定部120と、クライアント端末200から取得した位置情報(座標やIPアドレス)に基づいてクライアント端末200の位置(ポリシ名及びセキュリティレベル)を判定する端末位置判定部130と、クライアント端末200から端末の位置情報を受信する端末位置情報受信部140と、を有している。
【0026】
外部サービス連携部110は、さらに、クライアント端末200から送信されてくるユーザIDを認証するユーザ認証部111と、ユーザ認証部111によるユーザ認証が完了した場合にクラウドサービス300へのアクセスを実現するためにどのアカウントでクラウドサービスを利用するかを判定するログインアカウント判定部112と、クラウドサービス300へのログインを処理するサービスログイン処理部113と、を備える。記憶装置150以外の機能部については、後述の
図3以降で改めて説明する。
【0027】
記憶装置150は、クライアント端末200がクラウドサービス300を利用するためのサービスアカウントを管理するデータベースである。記憶装置150では、サービスアカウントでクラウドサービス300へログインするための認証情報(IDおよびパスワード)のみ管理される。その他のサービスアカウントの情報、例えばサービスの利用権限等の情報はクラウドサービス300で管理されているものとする。
【0028】
また、記憶装置150は、ユーザ毎に設けたサービスアカウント管理テーブル151にクラウドサービス名およびサービスアカウントの組を1レコード単位として複数のレコードを格納する。
【0029】
記憶装置150は、ハードディスク装置などを用いて構成することができる。その他の機能部は、これらの機能を実現する回路デバイスなどのハードウェアを用いて構成することもできるし、
図2に示されるように、各機能を実装したプログラムをCPU(Central Processing Unit)などの演算装置が実行することによって実現することもできる。プログラムによって実現する場合、これら機能部に相当するプログラムは、コンピュータが読取可能な記憶媒体(例えば、メモリ、ハードディスク、SSD(Solid State Drive)等の記録装置、ICカード、SDカード、DVD等の記録媒体)に格納することができる。
【0030】
<クライアント端末の構成>
図3は、本発明の実施形態によるクライアント端末200の詳細機能構成を示すブロック図である。
図3では、記憶装置240以外の各部は、ソフトウェア上の機能として実現されているが、ハードウェアとして構成されても良い。
【0031】
クライアント端末200は、各種プログラムを実行する演算部であるCPU(プロセッサ)201と、各種プログラムを格納するメモリ202と、各種データを格納する記憶装置240と、指示を入力したり、演算結果を出力したりする入出力デバイス(入力デバイスとして、キーボード、マウス、マイク等、出力デバイスとしてディスプレイ、プリンタ、スピーカ等)203と、認証サーバ100と通信するための通信デバイス204と、を有している。
【0032】
メモリ202は、プログラムとしての、端末位置情報変化検知部210と、端末位置情報通知部220と、ネットワーク接続部230と、を格納している。
【0033】
記憶装置240は、端末位置変化閾値情報241と、端末識別情報242と、認証サーバアドレス情報243と、を格納している。
【0034】
端末位置情報変化検知部210は、クライアント端末200の位置変化を検知するための処理を実行するデバイス又はプログラムである。本明細書において、この「位置」は、クライアント端末200のネットワーク上の位置や物理的な位置、又はこれらの組み合わせを意味するものとする。例えば、ネットワーク接続部230に割り当てられたIPアドレスによるネットワーク上の位置、クライアント端末200が備えるGPS(Grobal Positioning System)装置により検出されたクライアント端末200の地球における物理的な位置、クライアント端末200が接続している無線LAN(Local Area Network)のアクセスポイントのSSID(Service Set ID)、MACアドレス等の情報に基づいたネットワーク的及び物理的な位置、又はこれらの位置の組み合わせ等が相当する。端末位置情報変化検知部210は、記憶装置240に格納される端末位置変化閾値情報241を参照し、自端末の位置の変化を検知する。すなわち、端末位置情報変化検知部210は、IPアドレスによるネットワーク上の位置及びGPSによる物理的な位置を端末位置変化閾値情報241と比較し、いずれかの位置が端末位置変化閾値情報241に記載されている条件を満たさなくなった場合に、位置が変化したと検知する。端末位置変化閾値情報241については後述する。
【0035】
端末位置情報通知部220は、端末位置情報変化検知部210によって検知された端末位置情報を認証サーバ100に通知する処理を実行するデバイス又はプログラムである。なお、端末位置の変化が認証サーバ100に通知されると、認証サーバ100の端末位置判定部130は、ポリシ(
図4)152を参照してセキュリティレベルを判定する。そして、セキュリティレベルに変化があった場合、ログインアカウント判定部112は、サービスアカウント管理テーブル(
図5)151を参照して、該当するセキュリティレベルに対応する当該ユーザのサービスアカウントIDを取得し、当該ユーザが使用するアカウントをシームレスに切り替える。アカウントが設定されていない場合には、ログインアカウント判定部112は、当該クライアント端末200を自動的にログアウトさせ、クラウドサービス300を利用できないようにする。ここでは、アカウントが切り替わったことは、クライアント端末200に通知されないようにしている。これにより、クライアント端末200における処理が一時的に中断されることがないため、ユーザはアカウントの切り替え処理を意識することなく端末を使用することができる。ただし、ユーザにアカウントの切り替えを通知しても良い。この場合、UI画面でアカウントの切り替えを知らせることになるが、ユーザによる切り替えの承認(例えば、OKボタンを押下やタッチした場合に承認とする)を待ってアカウントの切り替えを完了するようになる。
【0036】
ネットワーク接続部230は、クライアント端末200とネットワーク400とを接続する装置であり、例えば有線LAN装置や無線LAN装置、3G(第3世代移動通信システム)無線装置、4G(第4世代移動通信システム)無線装置などが相当する。
【0037】
記憶装置240は、本実施形態に係る通信制御の実現に必要とされる情報の記憶に使用される。例えば、端末位置変化閾値情報241、端末識別情報242、認証サーバアドレス情報243が記憶される。なお、記憶装置240には、不図示の任意の情報が格納されていてもよい。
【0038】
端末位置変化閾値情報241は、端末位置情報変化検知部210がクライアント端末200(自端末)の位置に変化が発生したか否かを判断するために使用する情報である。端末位置変化閾値情報241には、例えば(1)企業の建屋が含まれる緯度・経度の範囲、(2)社内ネットワークにおいてクライアント端末200のネットワーク接続部230に割り当てられるIPアドレスの範囲、(3)その両方、などが記憶される。例えば、端末位置変化閾値情報241に、企業等ユーザが所属する組織の建屋が含まれる緯度・経度の範囲が記憶されている場合、クライアント端末200が備えるGPSの観測値が記憶されている所定の緯度・経度の範囲を外れたとき、端末位置情報変化検知部210は、クライアント端末200(自端末)の社内から社外への移動を検知する。
【0039】
端末識別情報242は、クライアント端末200を一意に特定する情報であり、例えばクライアント端末200の端末固有番号、ユーザ名とパスワードの組、クライアント端末200のネットワーク接続部230のMACアドレス、これら情報の組み合わせ等が相当する。
【0040】
認証サーバアドレス情報243は、認証サーバ100のIPアドレス又はドメイン名で与えられる。
【0041】
<ポリシ>
図4は、本発明の実施形態による、記憶装置150に格納されているポリシ152の構成例を示す図である。
【0042】
ポリシ152は、ポリシ名501と、ネットワーク上の位置範囲502と、物理的位置範囲503と、セキュリティレベル504とで構成されるポリシ情報を複数格納している。
図4では、例として3つのポリシ情報505〜507が示されている。
【0043】
ポリシ情報505によると、ネットワーク接続部230に割り当てられたIPアドレスがネットワーク上の位置範囲502「192.168.0.0/24」に含まれ、かつ、クライアント端末200のGPSによる物理的な位置が物理的位置範囲503「建屋が含まれる緯度・経度の範囲」に含まれる場合、端末位置判定部130は、そのネットワークを「社内ネットワーク」と認識する。また、端末位置判定部130は、「社内ネットワーク」と認識された場合は、セキュリティレベル504を「低」と判断する。セキュリティレベル504については、後述の
図5で説明する。ポリシ情報505に該当する状況としては、例えば、社内において、クライアント端末200が利用されており、クライアント端末200が社内のWi−Fiアクセスポイントに接続している場合が挙げられる。
【0044】
また、ポリシ情報506によると、ネットワーク接続部230に割り当てられたIPアドレスがネットワーク上の位置範囲502「10.0.0.0/24」に含まれ、かつ、クライアント端末200のGPSによる物理的な位置が任意の場所にある場合、端末位置判定部130は、そのネットワークを「許可ネットワーク」と認識する。また、「許可ネットワーク」と認識された場合、端末位置判定部130は、セキュリティレベル504を「中」と判断する。ポリシ情報506に該当する状況としては、例えば、クライアント端末200が社外で利用されているが、あらかじめ許可されたネットワークに接続している場合が挙げられる。
【0045】
ポリシ情報507によると、ネットワーク接続部230に割り当てられたIPアドレスによるネットワーク上の位置及びGPSによる物理的な位置に関わらず、端末位置判定部130は、そのネットワークを「社外ネットワーク」と認識する。また、「社外ネットワーク」と認識された場合は、端末位置判定部130は、サービスアカウント管理テーブル151のセキュリティレベル504を「高」と判断する。ポリシ情報507に該当する状況としては、社内ネットワークおよび社内ネットワークに当てはまらない任意のネットワークに接続している場合が挙げられる。
【0046】
<サービスアカウント管理テーブル>
図5は、本発明の実施形態による、記憶装置150に格納されているサービスアカウント管理テーブル151の構成例を示す図である。
【0047】
サービスアカウント管理テーブル151は、クラウドサービス名601と、ユーザID602と、セキュリティレベル603と、サービスアカウントID604とで構成されるアカウント情報を複数格納している。
図5では、例として3つのアカウント情報605〜607が示されている。
【0048】
アカウント情報605〜607は、いずれもクラウドサービス名601「Service1」をユーザID602「user_A@xx」のユーザが利用する際に、サービスにログインするアカウントを決めるために参照される情報である。
【0049】
アカウント情報605では、セキュリティレベル603に関して、ポリシ152のセキュリティレベル504が「低」と判断された場合に参照される情報であり、サービスへログインするサービスアカウント604は「account1_1@yy」が選択される。
【0050】
アカウント情報606では、セキュリティレベル603に関して、ポリシ152のセキュリティレベル504が「中」と判断された場合に参照される情報であり、サービスへログインするサービスアカウント604は「account1_2@yy」が選択される。
【0051】
アカウント情報607では、セキュリティレベル603に関して、ポリシ152のセキュリティレベル504が「高」と判断された場合に参照される情報であり、サービスへログインするアカウント604には該当するサービスアカウントが登録されていないため、サービスのログインは行わないと判定する。
【0052】
<クラウドサービスログイン処理の概要>
図6は、クライアント端末200が認証サーバ100へ認証処理を行い、クラウドサービス300へログインするまでの処理概要を説明するための図である。ここでは社内ネットワークからクラウドサービス300を利用する場合を想定する。
【0053】
クライアント端末200を持つユーザは、ユーザID「user_A@xx」、パスワード「user_A_PW」、利用するサービス名「Service1」、位置情報を認証サーバ100に送信し、ユーザ認証を行う。
【0054】
認証サーバ100は、ユーザ認証に成功すると、クライアント端末200から送信された位置情報を基に、ポリシ152からセキュリティレベルを取得する。また、認証サーバ100は、クライアント端末200から送信されたユーザID、サービス名とポリシ152から取得したセキュリティレベル504を基に、クラウドサービス300へログインするサービスアカウントをサービスアカウント管理テーブル151により決定する。そして、認証サーバ100は、決定したサービスアカウントのID・パスワード(パスワードは必ずしも必要ない。また、ユーザは、通常当該パスワードについては知らない。)を用いてクラウドサービス「Service1」にログインする。
【0055】
クラウドサービス300へのログインに成功すると、認証サーバ100は、クライアント端末200に、クラウドサービス300にアクセスするための情報(例えば、URL)を送信する。クラウドサービス300にアクセスするための情報を受信すると、クライアント端末200は、直接クラウドサービス300と通信して所望のサービスを受けることができるようになる。
【0056】
<クラウドサービスログイン処理の詳細>
図7は、クライアント端末200が認証サーバ100で認証を行い、クラウドサービス300にログインするまでの処理の詳細を説明するためのフローチャートである。以下、
図7の各ステップについて説明する。
【0057】
(i)ステップS701
クライアント端末200は、ユーザから入力された認証情報(ユーザIDと認証パスワード)、及び利用するクラウドサービス名の情報を、クライアント端末200のネットワーク上の位置情報と併せて、認証サーバ100に送信する。
【0058】
(ii)ステップS702〜S703
認証サーバ100のユーザ認証部111は、クライアント端末200から受け取った認証情報を用いてユーザ認証を実施する(S702)。認証拒否する場合はその旨を示す応答をクライアント端末200に送信し、クライアント端末200はユーザ認証に失敗した旨を示すダイアログを画面表示して、本フローチャートは終了する(S703)。認証許可する場合、処理はステップS704へ進む。
【0059】
(iii)ステップS704
端末位置判定部130は、クライアント端末200から受け取ったネットワーク上の位置情報とポリシ152を基にセキュリティレベルを判定する。
【0060】
(iv)ステップS705
認証サーバ100のログインアカウント判定部112は、クライアント端末200から受け取った認証情報、クラウドサービス名およびステップS704で判定したセキュリティレベルを基に、記憶装置150のサービスアカウント管理テーブル151からサービスのログインアカウントを決定する。
【0061】
(v)ステップS706〜707
サービスアカウント管理テーブル151において、条件に合致するサービスのログインアカウントが存在する場合は、処理は、ステップS708へ進む。条件に合致するサービスのログインアカウントが存在しない場合は、ログインアカウント判定部112は、クラウドサービス300へのログインに失敗した旨をクライアント端末200に送信する。クライアント端末200は、ログインに失敗した旨を示すダイアログを画面表示して、本フローチャートは終了する(S707)。
【0062】
(vi)ステップS708
認証サーバ100のサービスログイン処理部113は、ステップS705で判定したログインアカウントでクラウドサービス300にログイン処理を実行する。
【0063】
<本発明のまとめ>
(i)以上のように、本発明の実施形態における認証サーバ100は、ユーザの認証情報とクラウドサービス300の複数のアカウント情報を関連付けて管理する。また、クライアント端末200からのリクエストに応じて、各ユーザの認証情報およびクライアント端末200の位置情報に対応するサービスアカウントを決定し、クラウドサービス300へログイン処理を行う。これにより、社内ネットワークではフルアクセス権限のアカウントでログインし、社外ネットワークではアップロード権限のみのアカウントでログインするといったアカウント制御が可能となりセキュリティを高めることができる。
【0064】
本発明では、1つの認証IDに対して、サービス利用権限の異なる複数のアカウントを紐づけることが可能となる。また、サービス利用時の認証において、PCやモバイル端末の物理的な位置情報およびネットワーク上の位置情報に基づきログインするサービスアカウントをコントロールすることを可能にする。例えば、サービスにはダウンロード権限を持つアカウントAとダウンロード権限を持たないアカウントBが存在する。社内のPCから認証サーバで認証を行うと、サービスにはアカウントAでログインする。一方、自宅から認証サーバで認証を行うと、サービスにはアカウントBでログインをする。また、社内ネットワークで認証を行った後に社外ネットワークに切り替わった場合は、ネットワークの切り替えのタイミングで再度認証を行い、サービスにはアカウントBで再ログインする。これにより、社内でアップロードされた機密ファイルは社外ではダウンロード不可とすることで機密情報の流出を防止し、クラウドサービス利用のセキュリティを向上させる。
【0065】
(ii)本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0066】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
【0067】
さらに、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ(又はCPUやMPU)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
【0068】
最後に、ここで述べたプロセス及び技術は本質的に如何なる特定の装置に関連することはなく、コンポーネントの如何なる相応しい組み合わせによってでも実装できることを理解する必要がある。更に、汎用目的の多様なタイプのデバイスがここで記述した教授に従って使用可能である。ここで述べた方法のステップを実行するのに、専用の装置を構築するのが有益であることが判るかもしれない。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。本発明は、具体例に関連して記述したが、これらは、すべての観点に於いて限定の為ではなく説明の為である。本分野にスキルのある者には、本発明を実施するのに相応しいハードウェア、ソフトウェア、及びファームウエアの多数の組み合わせがあることが解るであろう。例えば、記述したソフトウェアは、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
【0069】
さらに、上述の実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていても良い。
【0070】
加えて、本技術分野の通常の知識を有する者には、本発明のその他の実装がここに開示された本発明の明細書及び実施形態の考察から明らかになる。記述された実施形態の多様な態様及び/又はコンポーネントは、データを管理する機能を有するコンピュータ化ストレージシステムに於いて、単独又は如何なる組み合わせでも使用することが出来る。明細書と具体例は典型的なものに過ぎず、本発明の範囲と精神は後続する請求範囲で示される。