以下、図面を参照しながら、本発明に係る実施形態を説明する。可能な場合には、同一の部分には同一の符号を付して、重複する説明を省略する。
(情報処理システム10の構成)
図1は、本実施形態の情報処理システム10のシステム構成図である。図1に示すように、この情報処理システム10は、認証管理サーバ100、Webサービスサーバ200A、Webサービスサーバ200B、・・・(以降、総称してWebサービスサーバ200とも呼ぶ)と、端末装置300A、端末装置300B、・・・(以降、総称して端末装置300とも呼ぶ)とを含んで構成されている。また、図1に示すように、認証管理サーバ100、端末装置300及びWebサービスサーバ200は、それぞれ互いにネットワーク等により接続されている。
認証管理サーバ100は、端末装置300からのアクセスを認証管理サーバ100で記憶しているIDで識別する(以降、このIDをユーザIDと呼ぶ)。端末装置300から初回のアクセス要求がなされた場合、認証管理サーバ100が、ユーザIDを生成すると共に、ログイン用の情報として、当該ユーザIDに対応するテンポラリIDを端末装置300へ発行する。そして、認証管理サーバ100は、テンポラリIDを用いた端末装置300からの要求に応じて、ユーザIDの管理を行うことができる。
また、認証管理サーバ100は、各端末装置300からWebサービスサーバ200への認可情報(各WebサービスにアクセスするためのID/パスワードやアクセストークン)をユーザIDと関連付けて記憶する。ここで、認可情報とは、Webサービスサーバ200が提供するWebサービスを譲受するために必要な認証情報である。また、WebサービスにアクセスするためのIDを以降WebサービスIDと呼ぶ。本実施形態では、認可情報としてアクセストークンを適用した場合について説明する。
さらに、認証管理サーバ100は、各端末装置300からWebサービスサーバ200への閲覧要求を受け付けた際には、認証管理サーバ100で記憶しているアクセストークンをWebサービスサーバ200へ送信し、Webサービスサーバ200から閲覧用の情報を取得し、端末装置300へ送信する。
端末装置300は、次回以降のWebサーバ200へのアクセス要求を認証管理サーバ100へ行う際には、テンポラリIDを認証管理サーバ100へ送信する。
端末装置300は、PCや携帯端末等の情報機器から構成されており、認証管理サーバ100や、Webサービスサーバ200へ認証要求したり、認証管理サーバ100やWebサービスサーバ200から情報を取得したりする。
Webサービスサーバ200は、アクセス認証の情報としてログイン情報を要求したり、各種閲覧情報を提供したりするサーバ装置である。また、各Webサービスサーバ200は、各種Webサービスを提供する。ここでいうWebサービスとは、例えば、SNS(Social Networking Service)等、閲覧等に認証が必要なWebにより提供されるサービスをいう。以降、Webサービスを単にサービスとも呼ぶ。なお、Webサービスサーバ200Aは、サービスAを提供し、Webサービスサーバ200Bは、サービスBを提供し、Webサービスサーバ200Cは、サービスCを提供するものとする。
(認証管理サーバ100の構成)
次に、認証管理サーバ100について詳細に説明する。図2は、認証管理サーバ100の機能を示すブロック図である。この認証管理サーバ100は、端末アクセス認証部101、サービス送受信部102、ユーザ認可情報管理部103(ユーザ認可情報管理手段)、関連付け対象選択確認部104(選択確認手段)、認可情報制御部105(認可情報制御手段)、ユーザ管理情報記憶部106及びユーザ認可情報記憶部107(ユーザ認可情報記憶手段)を含んで構成されている。
このように構成された認証管理サーバ100は、図3に示されるハードウェアにより構成されている。図2に示される認証管理サーバ100は、物理的には、図3に示すように、CPU11、主記憶装置であるRAM12及びROM13、入力デバイスであるキーボード及びマウス等の入力装置14、ディスプレイ等の出力装置15、ネットワークカード等のデータ送受信デバイスである通信モジュール16、ハードディスクまたは半導体メモリ等の補助記憶装置17などを含むコンピュータシステムとして構成されている。図2における各機能は、図3に示すCPU11、RAM12等のハードウェア上に所定のコンピュータソフトウェアを読み込ませることにより、CPU11の制御のもとで入力装置14、出力装置15、通信モジュール16を動作させるとともに、RAM12や補助記憶装置17におけるデータの読み出し及び書き込みを行うことで実現される。以下、図2に示す機能ブロックに基づいて各機能ブロックを説明する。
端末アクセス認証部101は、端末装置300からのWebサービスサーバ200へのアクセス要求を受信した後に、端末装置300から取得したテンポラリIDを用いて、正常な権限を有しているかチェックする。
サービス送受信部102は、端末装置300からのWebサービスサーバ200へのサービス要求を受け付けたり、Webサービスサーバ200へサービス要求したり、Webサービスサーバ200から情報(アクセストークンや閲覧用情報等)を取得したり、当該Webサービスサーバ200から取得した情報を端末装置300へ送信したりする。
ユーザ認可情報管理部103は、テンポラリIDを有しない端末からWebサービスサーバ200へのアクセス要求がなされた場合に、ユーザIDを生成し、当該ユーザIDと、アクセス要求対象のWebサービスサーバ200から取得したアクセストークンと、ユーザ情報とを関連付けた情報であるユーザ認可情報を生成し、当該ユーザ認可情報をユーザ認可情報記憶部107へ記憶する。ここで、ユーザ情報とは、Webサービスサーバ200がアクセス元のユーザを特定するための情報である。
また、ユーザ認可情報管理部103は、ユーザIDを生成した場合、当該ユーザIDに対応するテンポラリIDを生成し、当該ユーザIDと、テンポラリIDと、端末装置300から取得したユーザ名とを関連付けた情報であるユーザ管理情報をユーザ管理情報記憶部106へ記憶する。
さらに、ユーザ認可情報管理部103は、ユーザ認可情報の編集(例えば、ユーザ認可情報の追加や、ユーザ認可情報の移行、ユーザ認可情報やユーザ管理情報の削除)の必要性を判断し、編集対象と判断したユーザ認可情報を編集する。
関連付け対象選択確認部104は、関連付け対象とするユーザ認可情報の一覧画面を出力し、端末装置300の利用者から関連付け対象の認可情報の選択を受け付け、選択された認可情報を確認する。
認可情報制御部105は、アクセストークンの有効状態を制御し、具体的には、各アクセストークンを有効とするか否かを決定する。例えば、同一IDに同一サービスのアクセストークンが複数ある場合に、当該複数のアクセストークンの内、一部を有効状態にし、それ以外を無効状態にする。詳細は、後述する。
ユーザ管理情報記憶部106は、ユーザ管理情報を記憶する。ユーザ管理情報のデータ構造を図4(A)に示す。ユーザ管理情報は、ユーザ管理情報は、ユーザIDと、ユーザ名と、テンポラリIDとを有する情報である。ユーザ認可情報記憶部107は、ユーザ認可情報を記憶する。なお、ユーザ認可情報とは、ユーザIDと、認可情報と、ユーザ情報とが対応付けられた情報である。図4(B)にユーザ認可情報のデータ構造を示す。ここで、ユーザ情報とは、Webサービスサーバ200がアクセス元のユーザを特定するための情報である。
図4(B)に示すように、ユーザ認可情報は、ユーザIDと、当該ユーザIDに対応するアクセストークンと、ユーザ情報とを関連付けた情報である。また、各認可情報には、Webサービスの種別情報を含む。なお、Webサービス種別の情報を認証管理サーバ100が別に保持するようにしても良い。
次に、情報処理システム10の処理について説明する。ここで説明する情報処理システム10の処理には、ユーザ認可情報の管理に関する処理であるアカウント管理処理(初回認証処理、アクセストークン追加処理、アクセストークン削除処理、再ログイン処理、別ユーザID生成処理、別ユーザIDへのアクセストークン移行処理)と、ユーザ認可情報を利用して、Webサービス(Web情報の閲覧等)を譲受する処理(Web閲覧処理)とがある。以下に、それぞれの処理を順に説明する。
(初回認証処理)
最初に、初回認証処理について説明する。図5は、本実施形態の情報処理システム10の初回認証処理を示すシーケンス図である。ここでいう初回認証処理とは、最初に認証管理サーバ100を介して、Webサービスサーバ200への認証要求をする処理をいう。以下、各ステップについて説明する。
まず、前提として、端末装置300が認証管理サーバ100から図6(A)に示すようなWebサービスの一覧と、アクセストークンの登録状況を示したアカウント管理画面を取得し、端末装置300で表示しているものとする。また、端末装置300がユーザ名を認証管理サーバ100へ送信しているものとする。なお、端末装置300の画面は、タッチパネルで構成されるものとするが、これに限るものではない。
そして、端末装置300の利用者の入力操作によって、所定のWebサービス(例えば、サービスA)が選択されると、端末装置300が認証管理サーバ100に対して、Webサービスサーバ200への認証要求を行う(S101)。次に、認証管理サーバ100のサービス送受信部102は、Webサービスサーバ200に対して、リダイレクトする(S102)。そして、Webサービスサーバ200は、端末装置300に対して、図6(B)に示すようなサービスAの認証画面を返却する(S103)。
図6(B)に示すサービスAの認証画面において、Webサービスサーバ200Aにログインするための、WebサービスID及びパスワードが入力されると、端末装置300は、Webサービスサーバ200に対して、当該Webサービスサーバ200が提供しているWebサービスのWebサービスID及びパスワードを通知する(S104)。
Webサービスサーバ200は、端末装置300から受信したWebサービスID及びパスワードが正しければ、アクセストークンを生成し(S105)、当該アクセストークンを認証管理サーバ100へ送信し、サービス送受信部102は、アクセストークンを取得し、ユーザ情報をさらに取得する(S106)。ここで、Webサービスサーバ200は、アクセストークンとユーザ情報とをまとめて送信しても良いし、一度アクセストークンを送信した後に、認証管理サーバ100からの要求に応じてユーザ情報を送信するようにしても良い(以下、Webサービスサーバ200から認証管理サーバ100へのアクセストークン及びユーザ情報の送信処理についても同様とする)。
ユーザ認可情報管理部103は、端末装置300からテンポラリIDを取得しておらず、さらに上記ユーザ情報を有するユーザ認可情報もないことを確認し、認証管理サーバ100のユーザ認可情報管理部103は、新たにユーザIDを発行し、当該ユーザIDと、サービス送受信部102が取得したアクセストークンと、サービス送受信部102が取得したユーザ情報とを対応付けた情報をユーザ認可情報として、ユーザ認可情報記憶部107へ記憶する(S108)。
なお、アクセストークンは、同一のWebサービスID及びパスワードに基づいて生成しても、生成する度に異なる場合もある。そこで、認証管理サーバ100は、WebサービスID及びパスワードに対応するユーザ情報をアクセストークンと関連付けてユーザ認可情報として記憶している。これにより、Webサービスサーバ200から取得したユーザ情報を検索キーにして、ユーザ認可情報を検索すれば、ユーザ情報に対応するWebサービスサーバ200を利用者が過去にアクセス要求したか否かを判断することができる。
そして、ユーザ認可情報管理部103は、テンポラリIDを生成し(S109)、ユーザIDと、当該テンポラリIDと、ユーザ名とを関連付けたユーザ管理情報をユーザ管理情報記憶部106へ記憶する(ステップS110)。そして、サービス送受信部102は、当該テンポラリIDを端末装置300へ送信すると共に、アカウント管理画面の更新結果を送信する(S111)。アカウント管理画面の更新結果を図6(C)に示す。図6(C)に示すように、アカウント管理画面のサービスAの箇所に、「F1」のマークが付されており、サービスAについてアクセストークンF1が利用可能であることを示している。
次に、初回認証処理前と初回認証処理後における、ユーザ管理情報とユーザ認可情報とを図7に示す。図7(A)に示すように、初回認証処理を行う前は、ユーザXは、認証管理サーバ100に一度もログインしていない状態であるので、いずれのWebサーバ200のアクセストークンと関連付けられていない状態である。
よって、ユーザ管理情報記憶部106及びユーザ認可情報記憶部107には、何ら情報が記憶されていないが、初回認証処理後には、ユーザ認可情報管理部103によって、ユーザ管理情報及びユーザ認可情報が記憶される。初回認証処理において、ユーザ認可情報管理部103が、初回認証処理のステップS108でユーザ認可情報をユーザ認可情報記憶部107に記憶し、ステップS110でユーザ管理情報をユーザ管理情報記憶部106に記憶する。
この結果、図7(B)に示すように、ステップS107で生成されたユーザID「ID1」と、予め端末装置300から取得したユーザ名「ユーザX」と、ステップS109で生成されたテンポラリID「tmpID1」とが関連付けられたユーザ管理情報がユーザ管理情報記憶部106に記憶される。
そして、ユーザID「ID1」と、アクセストークン「F1」と、ユーザ情報「F_01」とが関連付けられたユーザ認可情報がユーザ認可情報記憶部107に記憶される。
このように、ユーザID「ID1」とアクセストークンF1とが関連付けられて、ユーザ名「ユーザX」とユーザID「ID1」とが関連付けられていることにより、ユーザXが、アクセストークンF1に関連付けられることになる。
(アクセストークン追加処理)
続いて、図8に示すアクセストークン追加処理のシーケンス図を用いて、本実施形態の情報処理システム10のアクセストークンの追加処理を説明する。
まず、前提として、端末装置300は、認証管理サーバ100から図9(A)に示すようなWebサービスの一覧と、アクセストークンの登録状況とを示したアカウント管理画面を取得し、端末装置300がアカウント管理画面を表示しているものとする。図9(A)に示すように、サービスAについてのみ、「F1」のマークが付されていることから、サービスAについてのみアクセストークンが登録されていることを示している。
そして、端末装置300の利用者による、アカウント管理画面に対する入力操作によって、所定の未登録状態のWebサービス(例えば、サービスB)が選択されると、端末装置300は、認証管理サーバ100に対して、テンポラリIDを送信すると共に、サービスBのアクセストークンの追加要求を行う(S301)。
認証管理サーバ100のサービス送受信部102は、テンポラリIDを取得すると共に、当該アクセストークンの追加要求を受け付ける。認証管理サーバ100の端末アクセス認証部101は、端末装置300から取得したテンポラリIDを検索キーにユーザ管理情報を参照して端末装置300のアクセスが適切であるか否かを判断する。なお、端末アクセス認証部101は、当該テンポラリIDに対応するユーザIDにサービスBのアクセストークンが関連づいているか否かを判断し、サービスBのアクセストークンが関連づいていないことを確認しても良い(S302)。
次に、認証管理サーバ100のサービス送受信部102は、Webサービスサーバ200に対して、リダイレクトする(S303)。そして、Webサービスサーバ200は、端末装置300に対して、図9(B)に示すようなサービスBの認証画面を返却する(S304)。
図9(B)に示すサービスAの認証画面において、Webサービスサーバ200Bにログインするための、WebサービスID及びパスワードが入力されると、端末装置300は、Webサービスサーバ200に対して、当該Webサービスサーバ200が提供しているWebサービスのWebサービスID及びパスワードを通知する(S305)。
Webサービスサーバ200は、端末装置300から受信したWebサービスID及びパスワードが正しければ、サービスBに対応するアクセストークンT1を生成し(S306)、当該アクセストークンを認証管理サーバ100へ送信し、サービス送受信部102は、アクセストークンを取得し、ユーザ情報をさらに取得する(S307)。
端末装置300からの要求がアクセストークンの追加要求であり、同一ユーザ情報を含むユーザ認可情報がユーザ認可情報記憶部107に記憶されていないことを確認すると、認証管理サーバ100のユーザ認可情報管理部103は、端末装置300から取得したテンポラリユーザIDに対応するユーザIDと、サービス送受信部102が取得したアクセストークンと、サービス送受信部102が取得したユーザ情報とを関連付けたユーザ認可情報を登録する(S308)。そして、サービス送受信部102は、アカウント管理画面の更新結果を返却する(S309)。アカウント管理画面の更新結果の例を図9(C)に示す。図9(C)に示すように、アカウント管理画面のサービスBの箇所に、「T1」のマークが付されており、サービスBについてアクセストークンT1が追加登録されたことを示している。
次に、アクセストークン追加処理前とアクセストークン追加処理後における、ユーザ管理情報とユーザ認可情報とを図10に示す。図10(A)に示すように、アクセストークン追加処理を行う前は、ユーザXには、サービスAのアクセストークンのみが関連づいているので、ユーザ管理情報記憶部106には、ユーザID「ID1」の情報のみが記憶され、ユーザ認可情報記憶部107には、ユーザID「ID1」、アクセストークン「F1」、ユーザ情報「F_01」のユーザ認可情報のみが記憶されている。
アクセストークン追加処理のステップS308において、ユーザ認可情報管理部103がユーザ認可情報を登録することにより、アクセストークン追加処理後は、図10(B)に示すように、ユーザ認可情報管理部103によって、ユーザID「ID1」と、アクセストークン「T1」と、ユーザ情報「T_01」が関連付けられたユーザ認可情報がユーザ認可情報記憶部107に追加記憶されることになる。なお、ユーザ管理情報については、更新箇所が無いため、アクセストークン追加処理の前後で、ユーザ管理情報記憶部106に記憶されている情報に変化は無い。
これにより、ユーザID「ID1」には、アクセストークン「F1」だけでなく、アクセストークン「T1」も関連付けられる。
このように、認証管理サーバ100は、Webサービスサーバ200から取得したアクセストークンと、既存のユーザIDとを対応付けたユーザ認可情報をユーザ認可情報記憶部107へ追加記憶することにより、1つのユーザIDに、複数のアクセストークンを関連付けることができる。
(アクセストークン削除処理)
続いて、図11及び図12を用いてアクセストークンの削除処理について簡単に説明する。
まず、図11(A)に示すようなアカウント管理画面が端末装置300の表示画面に出力されているものとする。図11(A)の例では、サービスAに「F1」のマークが付され、サービスBに「T1」のマークが付されていることから、サービスA及びサービスBについて、アクセストークンが登録されていることを示している。
ここで、端末装置300の利用者による、アカウント管理画面に対する入力操作を介して、サービスBが選択されると、端末装置300は、図11(B)に示すようなサービスBのアクセストークン編集画面を出力する。アクセストークン編集画面は、アクセストークンの編集指定のための画面であり、削除ボタン50を押下することにより、登録済みのアクセストークンの削除指定をしたり、新規追加ボタン51を押下することにより、同一サービスのアクセストークンの追加指定をしたりすることが可能である。
そして、端末装置300の利用者の入力操作により、削除ボタンが指定されると、端末装置300は、サービスBのアクセストークンの削除要求を認証管理サーバ100に行う。認証管理サーバ100のユーザ認可情報管理部103は、削除要求対象のサービスに関するアクセストークンに対応する、要求元のユーザIDのユーザ認可情報を削除する。そして、認証管理サーバ100は、図11(C)に示すようなアカウント管理画面の更新結果を送信する。図11(C)に示すように、サービスBの箇所からアクセストークンが有る旨のマークが削除され、サービスBのアクセストークンが削除されたことを示している。
次に、アクセストークン削除処理前とアクセストークン削除処理後における、ユーザ管理情報とユーザ認可情報とを図12に示す。図12(A)に示すように、アクセストークン削除処理を行う前は、ユーザID「ID1」には、サービスAのアクセストークンF1及びサービスBのアクセストークンT1が関連付けられており、ユーザID「ID1」を有するユーザ認可情報が2つ登録されている。
アクセストークン「T1」の削除要求があり、当該削除要求に応じてアクセストークン削除処理を行った後は、図12(B)に示すように、ユーザ認可情報管理部103によって、ユーザID「ID1」と、アクセストークン「T1」と、ユーザ情報「T_001」とが関連付けられたユーザ認可情報が削除されることになる。なお、ユーザ管理情報については、更新箇所が無いため、アクセストークン削除処理の前後で、ユーザ管理情報記憶部106に記憶されている情報に変化は無い。
これにより、ユーザID「ID1」には、サービスAのアクセストークンF1のみが関連づいている状態になる。
(再ログイン処理)
続いて、図13及び図14を用いて再ログイン処理について簡単に説明する。ここでいう再ログイン処理とは、初回認証処理やアクセストークン追加処理などにより、ユーザ認可情報が登録された後に、ユーザ認証サーバ100に対するログアウト処理後に、再度ログインする処理をいう。
まず、図13(A)に示すような、アカウント管理画面が端末装置300の表示画面に出力されているものとする。図13(A)の例では、ログアウトされた状態であるため、いずれのサービスもアクセストークンが無い状態を示している。
ここで、端末装置300の入力操作を介して、サービスAが選択されると、端末装置300は、Webサービスサーバ200から図13(B)に示すような、サービスAの認証画面を取得し、当該サービスAの認証画面を表示する。
端末装置300の入力操作を介して、図13(B)に示すサービスAの認証画面にWebサービスのID及びパスワードが入力されると、端末装置300は、Webサービスサーバ200Aに対して、WebサービスのWebサービスID及びパスワードを通知する。そして、Webサービスサーバ200Aは、アクセストークン及びユーザ情報を認証管理サーバ100へ送信する。認証管理サーバ100は、当該ユーザ情報を有するユーザ認可情報を検索する。そして、認証管理サーバ100は、検索した結果得られたユーザ認可情報のユーザIDを有するユーザ認可情報を検索し、検索したユーザ認可情報に対応するアクセストークンを反映したアカウント管理画面を端末装置300へ送信する。当該アカウント管理画面の例を図13(C)に示す。
図13(C)では、認証管理サーバ100がWebサービスサーバ200Aから、サービスAのアクセストークンと共に取得したユーザ情報に対応するユーザIDに対して、サービスA及びサービスBのアクセストークンが関連づいていたため、サービスAとサービスBのアクセストークンがある旨のマークが付されている。これにより、アカウント管理画面では、サービスAのアクセストークンF1、及びサービスBのアクセストークンT1が利用可能であることを示している。
次に、再ログイン処理前と再ログイン処理後における、ユーザ管理情報とユーザ認可情報とを図14に示す。再ログイン処理前では、図14(A)に示すように、ユーザ管理情報により、ユーザXとユーザID「ID1」とが関連づいていることを示し、ユーザ認可情報により、ユーザID「ID1」には、アクセストークンF1とアクセストークンT1とが関連づいていることを示しているが、ログアウトしているため、利用者との関連付けがなされていない。これは、図14(A)では、認証管理サーバ100で保持しているユーザXのユーザID「ID1」と、利用者との紐づけがなされていないことを示し、端末装置300及び認証管理サーバ100において、テンポラリIDが破棄されている状態であることを示す。なお、端末装置300及び認証管理サーバ100は、ログアウト時又はログアウト完了後にテンポラリIDを削除するようにしても良いし、ログアウト後もテンポラリIDを保持するようにしても良い。
再ログイン処理を行うことにより、認証管理サーバ100は、利用者がユーザXであることを特定する。この結果、図14(B)に示すように、ユーザID「ID1」としてログイン状態になり、認証管理サーバ100によって、テンポラリIDが利用者の端末装置300へ送信される。そして、再ログイン処理では、ユーザ認証情報管理部103がユーザ認可情報の検索処理を行うが、登録・削除等の編集処理を行わないため、図14(A)及び図14(B)に示すように、再ログイン処理前と再ログイン処理後で、情報の変化は無い。
なお、Webサービスサーバ200から取得したユーザ情報と同一のユーザ認証情報のアクセストークンが、取得したアクセストークンと異なる場合には、ユーザ認証情報管理部103が、上記ユーザ認証情報の登録済みのアクセストークンから取得したアクセストークンへ上書き処理を行うようにしても良い。
(別ユーザID生成処理)
続いて、図15及び図16を用いて別ユーザID生成処理について簡単に説明する。ここでいう別ユーザID生成処理とは、既に登録済みのユーザ管理情報のユーザ名と同一のユーザ名のユーザからの認証要求があり、認証管理サーバ100に登録されていないアクセストークンがWebサービスサーバ200から取得した場合に、新規のユーザIDを生成する処理をいう。
まず、図15(A)に示すような、アカウント管理画面が端末装置300の表示画面に出力されているものとする。図15(A)の例では、ログアウトされた状態であるため、いずれのサービスもアクセストークンが無い状態を示している。
ここで、端末装置300の入力操作を介して、サービスAが選択されると、端末装置300は、Webサービスサーバ200から図15(B)に示すような、サービスAの認証画面を取得し、当該サービスAの認証画面を表示する。
端末装置300の入力操作を介して、図15(B)に示すサービスAの認証画面にWebサービスのID及びパスワードが入力されると、Webサービスサーバ200Aからアクセストークン及びユーザ情報が認証管理サーバ100へ送信される。認証管理サーバ100は、当該ユーザ情報を有するユーザ認可情報を検索した結果、該当するユーザ認可情報が無い場合、新規にユーザIDを生成し、当該ユーザIDを有するユーザ管理情報を生成・登録し、当該ユーザIDを有するユーザ認可情報を生成・登録する。そして、認証管理サーバ100は、取得したアクセストークンを反映したアカウント管理画面を端末装置300へ送信する。当該アカウント管理画面の例を図15(C)に示す。
図15(C)では、アカウント管理画面のサービスAの箇所に、「F2」のマークが付されており、サービスAのアクセストークンF2が新規登録されたことを示している。
次に、別ユーザID生成処理前と別ユーザID生成処理後における、ユーザ管理情報とユーザ認可情報とを図16に示す。図16(A)に示すように、別ユーザID生成処理を行う前は、再ログイン処理前では、図16(A)に示すように、ユーザ管理情報により、ユーザXとユーザID「ID1」が関連づいていることを示し、ユーザ認可情報により、ユーザID「ID1」には、アクセストークンF1とアクセストークンT1が関連づいていることを示しているが、ログアウトしているため、利用者との関連付けがなされていない。
別ユーザID生成処理時に、認証管理サーバ100は、ユーザ認可情報管理部107で記憶したユーザ認可情報には含まれていない新規のユーザ情報を取得したため、別ユーザID生成処理後は、図16(B)に示すように、ユーザ管理情報記憶部106では、ユーザ名「ユーザX」、新たなユーザID「ID2」及びテンポラリID「tmpID2」を有するユーザ管理情報がさらに記憶され、ユーザ認可情報記憶部107では、ユーザID「ID2」、アクセストークン「F2」、及びユーザ情報「F_02」を有するユーザ認可情報がさらに記憶されることになる。そして、ユーザXは、ユーザID「ID2」としてログインされた状態になる。
(別ユーザIDへのアクセストークン移行処理の概要説明)
ここで、図17を用いて、ユーザ認可情報管理部103が行う、別ユーザIDへのアクセストークン移行処理の概要説明を行う。
前提として、ユーザXは、ユーザID「ID1」(第1識別子)、ユーザID「ID2」(第2識別子)を利用することが可能である。ユーザID「ID1」では、サービスAのアクセストークンであるアクセストークンF1、サービスBのアクセストークンであるアクセストークンT1、サービスCのアクセストークンであるアクセストークンD1が関連付けられている。
よって、ユーザ認可情報記憶部107には、ユーザID「ID1」及びアクセストークンF1が関連付けられたユーザ認可情報と、ユーザID「ID1」及びアクセストークンT1が関連付けられたユーザ認可情報と、ユーザID「ID1」及びアクセストークンD1が関連付けられたユーザ認可情報とが記憶されている。
次に、ユーザID「ID2」では、サービスAのアクセストークンであるアクセストークンF2と、サービスBのアクセストークンであるアクセストークンT2とが関連付けられている。
よって、ユーザ認可情報記憶部107には、ユーザID「ID2」及びアクセストークンF2が関連付けられたユーザ認可情報と、ユーザID「ID2」及びアクセストークンT2が関連付けられたユーザ認可情報とが記憶されている。
上記の状況において、端末装置300がユーザID「ID2」で認証管理サーバ100にログインしている際に(すなわち、ユーザID「ID2」に対応するテンポラリIDを用いてログインしている際)、ユーザID「ID1」に関連づいているアクセストークン(例えば、アクセストークンD1)を利用したアクセス要求がなされた場合の移行処理を以下に説明する。
この場合、アクセストークンD1だけでなく、ユーザID「ID1」に関連づいている全てのアクセストークン(すなわち、アクセストークンF1、アクセストークンT1、及びアクセストークンD1)をユーザID「ID2」に関連付けて、ユーザID「ID1」と、各アクセストークンとの関連付けを削除する。
すなわち、ユーザ認可情報管理部103は、ユーザID「ID1」を含むユーザ認可情報を削除し、ユーザIDが「ID2」であり、アクセストークンがF1、T1、D1であるそれぞれのユーザ認可情報を記憶する。なお、ユーザ認可情報管理部103は、ユーザID「ID1」を含むユーザ認可情報を、ユーザID「ID2」へ変更するようにしても良い。さらに、ユーザ認可情報管理部103は、ユーザID「ID1」を有するユーザ認可情報が無くなったため、ユーザID「ID1」を有するユーザ管理情報も削除する。
上述のように、ユーザ認可情報管理部103が、ユーザ認可情報の関連付け状態を変更することより、移行処理がなされる。
このように、認証管理サーバ100のユーザ認可情報管理部103は、端末装置300がユーザID「ID2」にログインしている状態で、ユーザID「ID1」に対応するアクセストークンを用いたアクセス要求が端末装置300からなされたことを検知した場合に、当該アクセス要求の対象となるアクセストークンをユーザID「ID2」に関連付けている。
この場合、認証管理サーバ100は、ユーザID「ID1」のアクセストークンが指定されたことを特定しているタイミングで、関連付けを行っているので、確実にユーザID「ID1」に関連しているアクセストークンを、ユーザID「ID2」へ関連付けることができる。
(別ユーザIDへのアクセストークン移行処理)
続いて、図18に示す別ユーザIDへのアクセストークン移行処理のシーケンス図を用いて、本実施形態の情報処理システム10のWebサービスのアクセストークンの移行処理を説明する。ここでは、移行対象のアクセストークンを、画面を介して選択する場合の処理を説明する。
まず、前提として、認証管理サーバ100から図19(A)に示すようなWebサービスの一覧と、アクセストークンの登録状況を示したアカウント管理画面を取得し、端末装置300が表示しているものとする。図19(A)では、サービスAのアクセストークンF2とサービスBのアクセストークンT2が利用可能であることを示している。
ここで、端末装置300の入力操作を介して、サービスCが選択されると、端末装置300は、認証管理サーバ100に対して、テンポラリIDを送信すると共に、サービスCのアクセストークンの追加要求を行う。そして、認証管理サーバ100のサービス送受信部102は、テンポラリIDを取得すると共に、当該アクセストークンの追加要求を受け付ける(S401)。認証管理サーバ100の端末アクセス認証部101は、端末装置300から取得したテンポラリIDを参照し、端末装置300のアクセスが適切であるか否かを判断する(S402)。
次に、認証管理サーバ100のサービス送受信部102は、Webサービスサーバ200に対して、リダイレクトする(S403)。そして、Webサービスサーバ200は、端末装置300に対して、図19(B)に示すようなサービスCの認証画面を返却する(S404)。
端末装置300は、Webサービスサーバ200に対して、当該Webサービスサーバ200が提供しているWebサービスID及びパスワードを通知する(S405)。
Webサービスサーバ200は、端末装置300から受信したWebサービスID及びパスワードが正しければ、アクセストークンを生成し(S406)、当該アクセストークン及びユーザ情報を認証管理サーバ100へ送信し、サービス送受信部102は、アクセストークン及びユーザ情報を取得する(S407)。
取得したユーザ情報を含む他のユーザIDのユーザ認可情報が無い場合(S408;No)、アクセストークンの追加処理になるが、ここでは、処理を省略する。
取得したユーザ情報を含む他のユーザIDのユーザ認可情報がある場合、当該ユーザ認可情報のユーザIDに関するアクセストークンの関連付けの必要があるため(S408;Yes)、関連付け対象選択確認部104は、図19(C)に示すような、関連付け対象とするアクセストークンを選択するための選択画面を出力する。ここでは、ユーザID「ID1」に関するアクセストークンの内、サービスC以外のアクセストークンを表示する。
このように、選択画面で端末装置300の利用者に関連付け対象を問い合わせることにより、認証管理サーバ100は、端末装置300の利用者が所望の認可情報のみ関連付けさせることが可能となる。
選択画面において、全てのアクセストークンが選択されると、認証管理サーバ100のユーザ認可情報管理部103は、当該ユーザID「ID1」に対応するユーザ認可情報の全てをユーザID「ID1」からユーザID「ID2」に変更する(S409)。サービス送受信部102は、アカウント管理画面の更新結果を端末装置300へ通知する(S410)。アカウント管理画面の更新結果の例を図19(D)に示す。図19(D)に示すように、サービスCの箇所に「D1」のマークが付されるだけでなく、サービスAの箇所に「F2」のマークと、サービスBの箇所に「T2」のマークとが付され、ユーザID「ID1」に関連づいていたアクセストークンが移行されたことを示している。
次に、別ユーザIDへのアクセストークン移行処理前と別ユーザIDへのアクセストークン移行処理後における、ユーザ管理情報とユーザ認可情報とを図20に示す。図20(A)に示すように、ユーザXは、アクセストークンF1、T1、及びD1に関連付けられたID「ID1」と、アクセストークンF2及びT2に関連付けられたID「ID2」を有している。別ユーザIDへのアクセストークン移行処理を行う前は、ユーザXは、ユーザID「ID2」でログインしている状態である。ユーザID「ID2」でユーザID「ID1」に関連づいているアクセストークンD1に関するログイン操作要求を行い、別ユーザIDへのアクセストークン移行処理が実行された後は、図20(B)に示すように、ステップS409においてユーザ認可情報管理部103によって、ユーザIDが「ID1」のユーザ認可情報は、ユーザID「ID2」に変更されている。そして、ユーザID「ID1」のユーザ認可情報が無くなったので、ステップS409においてユーザ認可情報管理部103によって、ユーザID「ID1」のユーザ管理情報が削除されている。この結果、ユーザID「ID1」に関連づいていたアクセストークンがユーザID「ID2」へ関連付けられることになる。
(閲覧/検索処理)
続いて、ユーザ認可情報を利用して、Webサービス(Web情報の閲覧等)を譲受する処理であるWebサービス情報の閲覧/検索処理を説明する。図21に示すWebサービス情報の閲覧/検索処理のシーケンス図を用いて説明する。
まず、前提として、端末装置300から、認証管理サーバ100への認証処理が終了し、認証管理サーバ100へのログイン処理が正常終了しているものとする。
端末装置300は、認証管理サーバ100に対して、テンポラリIDを送信すると共に、端末装置300の利用者の入力操作を介して選択されたWebサービスについて閲覧要求を行うと、認証管理サーバ100のサービス送受信部102は、テンポラリIDを取得すると共に、当該閲覧要求を受け付ける(S501)。認証管理サーバ100の端末アクセス認証部101は、端末装置300から取得したテンポラリIDを用いて、ユーザ管理情報を検索し、端末装置300のアクセスが適切であるか否かを判断する(S502)。そして、ユーザ認可情報管理部103は、上記テンポラリIDを用いて、ユーザ管理情報及びユーザ認可情報を検索し、閲覧要求対象のWebサービスサーバ200のアクセストークンを取得する。そして、サービス送受信部102は、アクセストークンを送信すると共にWebサービスサーバ200に対して、閲覧要求を行う(S503)。
Webサービスサーバ200は、当該閲覧要求を受け付けると、閲覧/検索結果を認証管理サーバ100へ送信し、認証管理サーバ100のサービス送受信部102は、閲覧/検索結果を取得する(S504)。そして、当該サービス送受信部102は、閲覧/検索結果を端末装置300へ送信する(S505)。
このように、認証管理サーバ100で、アクセストークンを管理しているため、端末装置300が認証管理サーバ100へログインしていれば、端末装置300からWebサービスサーバ200へアクセスするための情報を端末装置300の利用者が入力することなく、Webサービスサーバ200が提供するサービスを譲受することができる。
(認可情報の有効/無効の切り替え)
続いて、移行後のアクセストークンの有効状態の制御について説明する。他のユーザIDのアクセストークンを関連付けた結果、同一のWebサービスのアクセストークンが複数存在することになる場合、認可情報制御部105は、必要に応じて、同一のWebサービスの複数のアクセストークンの内、いずれか1つを有効状態にして、他方を無効状態に設定する。設定方法としては、ユーザ認可情報に有効か否かを示すフラグ情報を追加する等がある。
なお、認可情報制御部105は、同一Webサービスの認可情報について、全て一つのみ有効状態に設定にするようにしても良いし、1利用者に対して1つのWebサービスIDのみ許可しているWebサービスのみ、1つの認可情報を有効状態に設定するようにしても良い。
図17に示した移行方法のように、ユーザ認可情報管理部103がユーザID「ID1」に関連付けられていたアクセストークンを全てユーザID「ID2」に関連付けると、Webサービスの種別が重複するアクセストークンがある(サービスA及びサービスBに対応するアクセストークン)。
このうち、サービスAについては1利用者に対して1つのWebサービスIDのみ許可しているため、図22に示すように認可情報制御部105は、サービスAのアクセストークンの内、ユーザID「ID1」に関連づいていたアクセストークンF1を無効にする。サービスBについては、1利用者に対して複数のWebサービスIDを許可しているため、アクセストークンT1,T2ともに有効にする。
図23に、アクセストークンの有効可否のフラグ情報を有するユーザ認可情報の例を示す。図23(A)に示すように、ユーザID、アクセストークン、ユーザ情報に加えて、アクティブ情報を加えている。このアクティブ情報がアクセストークンの有効可否のフラグ情報を意味しており、「TRUE」であれば、有効であり、「FALSE」であれば、無効であることを意味する。
図23(A)は、「別ユーザIDへのアクセストークン移行処理」前のユーザ認可情報の例を示し、ユーザID「ID1」にアクセストークンF1,T1、D1が関連付けられており、ユーザID「ID2」にアクセストークンF2、T2が関連付けられている。また、1つのユーザIDで、重複するサービスのアクセストークンを有していないので、アクティブは、全て「TRUE」である。
図23(B)は、図22で示した「別ユーザIDへのアクセストークン移行処理」後のユーザ認可情報の状態である。上述のように、認可情報制御部105は、サービスAのアクセストークンの内、ユーザID「ID1」に関連づいていたアクセストークンを無効にする。この結果、ユーザID「ID2」、且つアクセストークンF1のユーザ認可情報のアクティブは、「FALSE」になる。
アカウント管理画面に利用可能なアクセストークンを提示する際、認証管理サーバ100は、ユーザ認可情報のアクティブが「TRUE」であるアクセストークンについてのみ端末装置300へ通知することにより、利用者に対して、利用可能なアクセストークンのみ提示することができる。
Webサービスによっては、複数のアカウントの同時利用を許容していないものもある。移行処理により、同一のWebサービスでアクセストークンが複数になることもあり得るが、上述のように、認可情報制御部105が1つのアクセストークンのみ有効とすることにより、複数のアカウントの同時利用を許容していないWebサービスも適切に利用可能となる。
次に、本実施形態に係る認証管理サーバ100の作用効果について説明する。認証管理サーバ100によれば、ユーザ認可情報記憶107は、ユーザID「ID1」に対応する一又は複数のユーザ認可情報を関連付けて記憶すると共に、ユーザID「ID2」に対応する一又は複数のユーザ認可情報を関連付けて記憶し、ユーザ認可情報管理103は、ユーザID「ID1」に関連付けられたユーザ認可情報の移行の選択がされると、選択されたユーザ認可情報を含むユーザID「ID1」に関連付いたユーザ認可情報を、ユーザID「ID2」に関連付けてユーザ認可情報記憶部107へ記憶させる。
このように、認証管理サーバ100は、ユーザID「ID1」に関連付けられたユーザ認可情報について移行の選択がされると、それに伴い、選択されたアクセストークンを含むユーザID「ID1」に関連付けられたユーザ認可情報をユーザID「ID2」に関連付ける。よって、簡単にユーザID「ID1」に関連付けられているアクセストークンの移行をすることができる。
また、ユーザ認可情報管理部103は、ユーザID「ID2」によるログインで、ユーザID「ID1」に関連付いているアクセストークンを用いたアクセス要求がある場合、当該アクセス要求の対象となるアクセストークンを含むユーザID「ID1」に関連付けられたユーザ認可情報をユーザID「ID2」に関連付ける。
この場合、認証管理サーバ100は、ユーザID「ID1」のアクセストークンが指定されたことを特定しているタイミングで関連付けを行っているので、確実にユーザID「ID1」に関連しているアクセストークンを、ユーザID「ID2」へ関連付けることができる。
そして、ユーザ認可情報記憶部107は、各ユーザトークンに対応するサービス種別の情報を記憶しており、ユーザID「ID2」への関連付け対象のアクセストークンに対応するサービス種別と同一のサービス種別であり、且つ当該ユーザID「ID2」への関連付け対象のサービストークンとは異なるサービストークンが、ユーザID「ID2」に関連付いている場合、何れかのサービストークンを無効化にする認可情報制御部105をさらに備えている。
このように、認証管理サーバ100は、アクセストークンの有効/無効を制御することにより、複数のアカウントの同時利用を許容していないWebサービスも適切に利用可能となる。
そして、ユーザID「ID2」への関連付け対象となるユーザID「ID1」のアクセストークンの選択確認を受け付ける関連付け対象選択確認部104をさらに備え、ユーザ認可情報管理部103は、関連付け対象選択確認部104を介して選択確認されたアクセストークンを関連付け対象とする。この場合、認証管理サーバ100は、利用者が所望の認可情報のみ関連付けさせることが可能となる。
(他の実施形態)
上述の実施形態では、認証管理サーバ100が、情報処理装置として機能する場合について述べたが、携帯端末装置等、種々のコンピュータ装置に適用するようにしても良い。
上述の実施形態では、アクセストークンを認可情報として用いる場合について述べたが、他の認可情報(例えば、ログイン情報など)を用いるようにしても良い。