以下、本発明の各実施形態について、添付の図面を参照しながら説明する。なお、各実施形態に係る明細書及び図面の記載に関して、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重畳した説明を省略する。
<第1実施形態>
第1実施形態に係る情報処理システムについて、図1〜図20を参照して説明する。まず、情報処理システムの構成について説明する。
図1は、情報処理システムの構成の一例を示す図である。図1の情報処理システムは、情報処理端末1a,1bと、クラウドサーバ2と、外部サーバ3と、により構成される。情報処理端末1a,1b、クラウドサーバ2及び外部サーバ3は、インターネットやLAN(Local Area Network)などのネットワークNを介して接続される。
情報処理端末1a,1bは、クラウドサーバ2からクラウドサービスの提供を受けるクライアントコンピュータである。ユーザは、情報処理端末1a,1bを利用して、クラウドサービスを利用する。外部サービスのアカウント(以下、「外部アカウント」という)を所有しているユーザは、情報処理端末1a,1bに外部アカウントのアカウント情報を入力することにより、クラウドサービスのアカウント(以下、「クラウドアカウント」という)を登録する。アカウントを登録することを、サインアップと称する。
外部アカウントのアカウント情報には、アカウントID(識別子)と、パスコードと、が含まれる。外部アカウントのパスコードは、外部サービスにサインインする際にアカウントIDと共にユーザにより入力される数桁(例えば、4桁)の数値である。パスコードの代わりに、数文字の文字列を利用することも可能である。また、外部アカウントのアカウント情報には、ユーザ名、メールアドレス、所属、性別、電話番号、住所、職業、生年月日、及びアイコン用写真のURL(Uniform Resource Locator)などが含まれてもよい。外部アカウントのアカウント情報は、外部サーバ3により管理される。クラウドアカウントを登録したユーザは、情報処理端末1a,1bにクラウドアカウントのアカウント情報を入力することにより、クラウドサービスにサインインする。
情報処理端末1a,1bは、ネットワークNを介してクラウドサーバ2と通信可能な任意のコンピュータである。情報処理端末1a,1bは、例えば、MFP、印刷機、コピー機、スキャナ、ファックス、冷蔵庫、洗濯機、電子レンジ、PC(Personal Computer)、タブレット端末、携帯電話、スマートフォンなどである。図1の例では、情報処理システムには、2つの情報処理端末1a,1bが含まれるが、3つ以上の情報処理端末が含まれてもよい。また、情報処理システムには、複数種類の情報処理端末が含まれてもよい。以下、情報処理システムに含まれる各情報処理端末をそれぞれ区別しない場合、情報処理端末1と称する。
クラウドサーバ2は、情報処理端末1にクラウドサービスを提供するサーバコンピュータである。クラウドサービスは、任意の種類のサービスであり得る。図1の例では、1つのクラウドサーバ2によりクラウドサービスが提供される場合を想定しているが、複数のクラウドサーバ2によりクラウドサービスが提供されてもよい。複数のクラウドサーバ2によりクラウドサービスを提供する場合、各クラウドサーバの設置場所、規模及び構成は任意である。
外部サーバ3は、クラウドサービスとは異なる外部サービスを提供するサーバコンピュータである。外部サービスは、例えば、Google(登録商標)、Microsoft(登録商標)及びFacebook(登録商標)などが提供するサービスである。本実施形態において、ユーザは、外部アカウント(Googleアカウント、Microsoftアカウント及びFacebookアカウントなど)を予め有する。図1の例では、1つの外部サーバ3により外部サービスが提供される場合を想定しているが、複数の外部サーバ3により外部サービスが提供されてもよい。複数の外部サーバ3により外部サービスを提供する場合、各外部サーバの設置場所、規模及び構成は任意である。
次に、情報処理端末1のハードウェア構成について説明する。図2は、情報処理端末1のハードウェア構成の一例を示す図である。図2の例では、情報処理端末1として、MFPを想定している。図2の情報処理端末1は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、HDD(Hard Disk Drive)104と、を備える。また、情報処理端末1は、操作パネル105と、エンジン106と、ネットワークインタフェース107と、バス108と、を備える。
CPU101は、プログラムを実行することにより、情報処理端末1の各構成を制御し、情報処理端末1の機能を実現する。ROM102は、CPU101が実行するプログラムを含む各種のデータを記憶する。RAM103は、CPU101に作業領域を提供する。HDD104は、CPU101が実行するプログラムを含む各種のデータを記憶する。操作パネル105は、液晶ディスプレイや有機EL(Electro Luminescence)ディスプレイなどの表示装置と、タッチパネルやハードウェアキーなどの入力装置と、を備える入出力装置である。エンジン106は、ユーザからの指示に応じてジョブを実行する。エンジン106は、例えば、印刷機、コピー機、スキャナ及びファックスなどである。ネットワークインタフェース107は、情報処理端末1をネットワークNに接続する。情報処理端末1は、ネットワークインタフェース107を介して、ネットワークNに接続された外部装置(クラウドサーバ2や外部サーバ3など)と通信する。バス108は、情報処理端末1の各構成を通信可能に接続する。
次に、クラウドサーバ2のハードウェア構成について説明する。図3は、クラウドサーバ2のハードウェア構成の一例を示す図である。図3のクラウドサーバ2は、CPU201と、ROM202と、RAM203と、HDD204と、を備える。また、クラウドサーバ2は、入力装置205と、表示装置206と、ネットワークインタフェース207と、バス208と、を備える。
CPU201は、プログラムを実行することにより、クラウドサーバ2の各構成を制御し、クラウドサーバ2の機能を実現する。ROM202は、CPU201が実行するプログラムを含む各種のデータを記憶する。RAM203は、CPU201に作業領域を提供する。HDD204は、CPU201が実行するプログラムを含む各種のデータを記憶する。入力装置205は、例えば、キーボード、マウス、ハードウェアキー及びタッチパネルなどである。表示装置206は、例えば、液晶ディスプレイや有機ELディスプレイなどである。ネットワークインタフェース207は、クラウドサーバ2をネットワークNに接続する。クラウドサーバ2は、ネットワークインタフェース207を介して、ネットワークNに接続された外部装置(情報処理端末1や外部サーバ3など)と通信する。バス208は、クラウドサーバ2の各構成を通信可能に接続する。
なお、外部サーバ3のハードウェア構成は、クラウドサーバ2のハードウェア構成と同様であるため、説明を省略する。
次に、情報処理端末1の機能構成について説明する。図4は、情報処理端末1の機能構成の一例を示す図である。図4の情報処理端末1は、アプリ情報取得部11と、アプリ情報記憶部12と、サービス制御部13と、サインアップ部14と、パスコード設定部15と、サインイン部16と、履歴情報記憶部17と、を備える。
上記の各機能構成は、CPU101がプログラムを実行することにより実現される。以下では、機能構成を実現するプログラムはブラウザ上で実行されるものとする。しかしながら、当該プログラムは、クラウドサーバ2にアクセス可能な独立したアプリケーションとして実現され、OS(Operating System)上で実行されてもよい。
アプリ情報取得部11は、ネットワークNを介してクラウドサーバ2にアクセスし、アプリ情報を取得する。
アプリ情報記憶部12は、アプリ情報取得部11が取得したアプリ情報を記憶する。アプリ情報とは、クラウドサービスを利用するためのアプリケーションに関する情報である。アプリ情報には、クラウドアプリと、画面定義と、が含まれる。
クラウドアプリは、クラウドサービスを利用するためのアプリケーション(プログラム)であり、JavaScript(登録商標)などにより記載される。CPU101がクラウドアプリをブラウザ上で実行することにより、サービス制御部13、サインアップ部14、パスコード設定部15、サインイン部16及び履歴情報記憶部17の機能が実現される。言い換えると、情報処理端末1は、クラウドアプリが実行されるまで、サービス制御部13、サインアップ部14、パスコード設定部15、サインイン部16及び履歴情報記憶部17を備えない。
画面定義は、情報処理端末1の表示装置に表示される、クラウドサービスを利用するための画面を定義する情報であり、HTML(Hyper Text Markup Language)やCSS(Cascading Style Sheets)により記載される。情報処理端末1は、画面定義を参照して、表示装置に所定の画面を表示する。
サービス制御部13は、クラウドサービスの実行を統括制御する。
サインアップ部14は、外部アカウントを利用して、クラウドサーバ2にクラウドサービスへのサインアップ(クラウドアカウントの登録)を要求する。この要求に応じて、クラウドサーバ2は、認証処理及び認可処理を外部サーバ3との間で実行し、その結果に従って、クラウドアカウントを登録する。クラウドアカウントのアカウント情報には、アカウントIDと、パスコードと、が含まれる。クラウドアカウントのアカウント情報は、クラウドサーバ2により管理される。
パスコード設定部15は、クラウドサーバ2にクラウドアカウントのパスコードの設定を要求する。この要求に応じて、クラウドサーバ2は、クラウドアカウントのパスコードを設定する。クラウドアカウントのパスコードは、クラウドサービスにサインインする際にアカウントIDと共にユーザにより入力される数桁(例えば、4桁)の数値であり、外部アカウントのパスコードとは別に設定される。パスコードの代わりに、数文字の文字列を利用することも可能である。本実施形態において、クラウドアカウントのパスコードは、操作パネル105などの入力装置からでも簡単に入力できるように、数字だけで構成されるのが好ましい。また、クラウドアカウントのパスコードには、セキュリティを向上させるために、6文字以上などの字数制限が設けられていてもよい。
サインイン部16は、クラウドサーバ2にクラウドサービスへのサインインを要求する。この要求に応じて、クラウドサーバ2が認証処理及び認可処理を実行し、クラウドサービスへのサインインを許可または拒否する。
本実施形態では、情報処理端末1は、2つの方法のいずれかを利用してクラウドサービスにサインインすることができる。以下、2つのサインイン方法のそれぞれについて説明する。
第1サインイン方法は、クラウドアカウントを利用して、クラウドサービスにサインインする方法である。第1サインイン方法では、サインイン部16は、ユーザのクラウドアカウントのアカウント情報をクラウドサーバ2に通知する。クラウドサーバ2は、自装置が管理しているクラウドアカウントのアカウント情報と、サインイン部16から通知されたクラウドアカウントのアカウント情報と、に基づいて認証処理及び認可処理を実行する。クラウドサーバ2は、認証処理及び認可処理の結果に従って、クラウドサービスへのユーザのサインインを許可又は拒否する。第1サインイン方法の場合、ユーザは、情報処理端末1に、クラウドアカウントのパスコードを入力することにより、クラウドサービスにサインインできる。
第2サインイン方法は、外部アカウントを利用して、クラウドサービスにサインインする方法である。第2サインイン方法では、サインイン部16は、ユーザの外部アカウントのアカウント情報をクラウドサーバ2に通知する。クラウドサーバ2は、サインイン部16から通知された外部アカウントのアカウント情報に基づいて、外部サーバ3との間で認証処理及び認可処理を実行し、その結果に従って、クラウドサービスへのユーザのサインインを許可又は拒否する。第2サインイン方法の場合、ユーザは、情報処理端末1に、外部アカウントのパスコードを入力することにより、クラウドサービスにサインインできる。
なお、本実施形態において、サインイン部16が利用するサインイン方法は、ユーザにより選択される。サインイン方法の選択方法について、詳しくは後述する。
履歴情報記憶部17は、クラウドサービスにサインインしたユーザの履歴情報を記憶する。履歴情報には、サインインしたユーザのクラウドアカウントのアカウントID、サインイン時刻、及びユーザがサインアップに利用した外部サービスに関する情報(以下、「外部サービス情報」という)などが含まれる。外部サービス情報には、外部サービスの名称や、外部サービスのアカウント情報などが含まれる。なお、履歴情報には、クラウドアカウントのパスコードは含まれない。
図5は、本実施形態に係る履歴情報記憶部17が備える履歴情報テーブルの一例を示す図である。履歴情報テーブルは、履歴情報を格納するためのテーブルであり、クラウドサービスにユーザがサインインするたびにレコードが追加される。図5の各レコードが、各履歴情報に相当する。図5の履歴情報には、サインイン時刻と、クラウドアカウントのアカウントIDと、外部サービス情報(ユーザ名、メールアドレス、外部サービスの名称)と、が含まれている。
例えば、図5の履歴情報テーブルの1行目の履歴情報では、サインイン時刻が「2016/10/24 19:00」、クラウドアカウントのアカウントIDが「001」、ユーザ名が「ユーザA」、ユーザIDが「aaa@first-service.com」、外部サービスの名称が「第1サービス」である。また、2行目の履歴情報では、サインイン時刻が「2016/10/24 18:00」、クラウドアカウントのアカウントIDが「003」、ユーザ名が「ユーザC」、ユーザIDが「ccc@second-service.com」、外部サービスの名称が「第2サービス」である。このように、本実施形態では、情報処理端末1が複数のユーザ(ユーザA,B,C・・・)により利用されることを想定している。
なお、履歴情報記憶部17は、記憶する履歴情報の件数に上限値を設定されていてもよい。この場合、履歴情報記憶部17は、上限値を超える履歴情報が記憶される場合、サインイン時刻が最も古い履歴情報を削除すればよい。また、履歴情報記憶部17は、記憶する履歴情報の記憶期間に上限値を設定されていてもよい。この場合、履歴情報記憶部17は、記憶期間の上限値を経過した履歴情報を削除すればよい。また、履歴情報記憶部17は、各ユーザについて、サインイン時刻が最新の履歴情報だけを記憶してもよい。この場合、履歴情報記憶部17は、あるユーザの履歴情報が新たに追加された場合、当該ユーザの記憶済みの履歴情報を削除すればよい。いずれの場合も、履歴情報記憶部17に要求される記憶容量を低減することができる。
次に、クラウドサーバ2の機能構成について説明する。図6は、クラウドサーバ2の機能構成の一例を示す図である。図6のクラウドサーバ2は、アプリ情報記憶部21と、認証管理部22と、アカウント情報記憶部23と、を備える。
アプリ情報記憶部21は、アプリ情報を記憶部する。アプリ情報記憶部21は、各情報処理端末1からのアプリ情報の取得要求に応じて、ネットワークNを介してアプリ情報を情報処理端末1に送信する。
認証管理部22は、情報処理端末1からの要求に応じて、サインアップ処理、パスコードの設定処理、及びサインイン処理の実行を管理する。
アカウント情報記憶部23は、クラウドサービスに登録されたクラウドアカウントを有する各ユーザのアカウント情報を記憶する。ここでいうユーザのアカウント情報には、当該ユーザの、クラウドアカウントのアカウント情報と、外部サービス情報と、が含まれる。アカウント情報記憶部23において、クラウドアカウントのアカウント情報及び外部サービス情報は、ユーザ毎に対応付けて記憶される。
図7は、本実施形態に係るアカウント情報記憶部23が備えるアカウント情報テーブルの一例を示す図である。アカウント情報テーブルは、ユーザのアカウント情報を格納するためのテーブルであり、クラウドアカウントが登録されるたびにレコードが追加される。図7の各レコードが、各ユーザのアカウント情報に相当する。図7のアカウント情報には、クラウドアカウントのアカウント情報(アカウントID及びパスコード)と、外部アカウント情報(ユーザ名、メールアドレス、及び外部サービスの名称)と、が含まれている。
例えば、図7のアカウント情報テーブルの1行目のアカウント情報では、アカウントIDが「001」、パスコードが「AAA」、ユーザ名が「ユーザA」、メールアドレスが「aaa@first-service.com」、外部サービスの名称が「第1サービス」である。
次に、本実施形態に係る情報処理システムにおける、サインアップ処理、パスコードの設定処理及びサインイン処理についてそれぞれ説明する。以下では、情報処理端末1がMFPである場合を例に説明する。
まず、サインアップ処理について説明する。図8は、サインアップ処理の一例を示すフローチャートである。以下では、ユーザのクラウドアカウントは未登録であるものとする。
まず、ユーザは、情報処理端末1の操作パネル105にクラウドサービスのトップ画面を表示させるための表示操作を行う(ステップS101)。ユーザは、表示操作として、例えば、操作パネル105のメニュー画面に表示された、クラウドサービスを利用するためのアイコンをタッチする。
ユーザが表示操作を行うと、アプリ情報取得部11は、クラウドサーバ2にアクセスし、アプリ情報の取得要求を行う。クラウドサーバ2のアプリ情報記憶部21は、この要求に応じて、アプリ情報を情報処理端末1に送信する。情報処理端末1がクラウドサーバ2からアプリ情報を受信すると、情報処理端末1のアプリ情報取得部11は、当該アプリ情報を取得する(ステップS102)。アプリ情報取得部11は、取得したアプリ情報をアプリ情報記憶部12に記憶させる。
アプリ情報記憶部12にアプリ情報が記憶されると、ブラウザによりアプリ情報に含まれるクラウドアプリが実行され、サービス制御部13が処理を開始する。サービス制御部13は、まず、アプリ情報に含まれる画面定義を参照して、クラウドサービスのトップ画面を操作パネル105に表示させる(ステップS103)。トップ画面は、クラウドサービスにサインインするかサインアップするかを選択するための画面である。
図9は、トップ画面の一例を示す図である。図9の例では、クラウドサービスはプリントサービスである。図9のトップ画面には、クラウドサービスにサインインするためのサインインボタン(サインインして印刷する)と、サインアップするためのサインアップボタン(ユーザ登録する)と、が表示されている。
ここでは、サインアップ処理の説明のため、ユーザは、トップ画面でサインアップボタンをタッチするものとする(ステップS104)。サインアップボタンがタッチされると、サインアップ部14は、アプリ情報に含まれる画面定義を参照して、クラウドサービスのサインアップ画面を操作パネル105に表示させる(ステップS105)。サインアップ画面は、サインアップに利用する外部アカウントを選択するための画面である。
図10は、サインアップ画面の一例を示す図である。図10のサインアップ画面には、外部アカウントとして第1サービスのアカウントを利用するための第1サービスボタンと、外部アカウントとして第2サービスのアカウントを利用するための第2サービスボタンと、が表示されている。
サインアップ画面が表示されると、ユーザは、サインアップに利用する外部アカウントを選択する(ステップS106)。図10の例では、ユーザは、第1サービスボタンをタッチすることにより、第1サービスのアカウントを選択し、第2サービスボタンをタッチすることにより、第2サービスのアカウントを選択することができる。
ユーザがサインアップに利用する外部アカウントを選択すると、サインアップ部14は、クラウドサーバ2の認証管理部22に、クラウドサービスへのサインアップを要求する(ステップS107)。この際、サインアップ部14は、認証管理部22に、ユーザにより選択された外部アカウントを通知する。
認証管理部22は、サインアップ部14からサインアップを要求されると、Open ID ConnectやOAuth 2.0などの仕様に従って、サインアップ部14から通知された外部アカウントに対応する外部サーバ3との間で、ユーザの認証処理及び認可処理を実行する(ステップS108)。この際、認証管理部22は、情報処理端末1の操作パネル105を介して、外部アカウントのアカウント情報(ユーザIDやパスコード)の入力をユーザに要求する。認証管理部22は、入力された外部アカウントのアカウント情報を利用して、ユーザの認証処理及び認可処理を実行する。
認証管理部22は、認証処理及び認可処理が成功すると、新規のクラウドアカウントを作成し、登録する(ステップS109)。具体的には、認証管理部22は、新規のクラウドアカウントのアカウント情報(アカウントID)を生成し、当該アカウント情報と、外部サービス情報と、を対応付けてアカウント情報記憶部23に記憶させる。外部サービス情報は、認証処理及び認可処理の際に、外部サーバ3から取得できる。この時点では、クラウドアカウントのパスコードは設定されていないため、クラウドアカウントのアカウント情報には、パスコードは含まれない。
クラウドアカウントの登録後、認証管理部22は、クラウドサービスへのユーザのサインインを許可し(ステップS110)、その旨をサービス制御部13に通知する。この際、認証管理部22は、サインインを許可されたユーザのアカウント情報をサービス制御部13に通知する。これにより、ユーザは、クラウドサービスにサインアップ及びサインインすることができる。このように、クラウドサービスへのサインアップ時のサインインは、第2サインイン方法で行われる。その後、パスコード設定部15がクラウドアカウントのパスコードの設定処理を実行する。
次に、クラウドアカウントのパスコードの設定処理について説明する。図11は、パスコードの設定処理の一例を示すフローチャートである。図11の処理は、サービス制御部13が認証管理部22からクラウドアカウントのアカウント情報を受け取ると開始される。
サービス制御部13は、認証管理部22からサインインの許可通知及びサインインを許可されたクラウドアカウントのアカウント情報を受け取ると、当該クラウドアカウントにパスコードが設定されているか確認する(ステップS201)。サービス制御部13は、受け取ったアカウント情報にパスコードが含まれているかを確認することにより、パスコードが設定されているか確認してもよいし、アカウント情報と共に、パスコードが設定されているかを示す情報を受け取ってもよい。
パスコードが設定されていない場合(ステップS201NO)、処理はステップS203に進む。上述の通り、サインアップの時点ではパスコードは設定されていないため、サインアップ処理後、処理はステップS203に進む。ステップS203については後述する。
一方、パスコードが設定されている場合(ステップS201のYES)、サービス制御部13は、クラウドアカウントを有するユーザの履歴情報が履歴情報記憶部17に記憶されているか確認する(ステップS204)。具体的には、サービス制御部13は、受け取ったアカウント情報に含まれるクラウドアカウントのアカウントIDを検索キーとして履歴情報テーブルを検索し、当該アカウントIDを有する履歴情報が記憶されているか確認する。
履歴情報が保存されている場合(ステップS202のYES)、処理はステップS214に進む。ステップS214については後述する。一方、履歴情報が保存されていない場合(ステップS202のNO)、処理はステップS203に進む。
ステップS203において、サービス制御部13は、アプリ情報に含まれる画面定義を参照して、クラウドサービスへのサインイン方法の選択画面を操作パネル105に表示させる。選択画面は、サインイン方法として第1サインイン方法又は第2サインイン方法を選択するための画面である。
図12は、サインイン方法の選択画面の一例を示す図である。図12における「履歴からのサインイン」は、第1サインイン方法に相当する。図12の選択画面には、第1サインイン方法を有効化するチェックボックスと、決定ボタン(OKボタン)と、が表示されている。
選択画面が表示されると、ユーザは、サインイン方法を選択する(ステップS204)。図12の例では、ユーザは、チェックボックスをオンにした状態で決定ボタンをタッチすることにより、第1サインイン方法を選択することができる。一方、ユーザは、チェックボックスをオフにした状態で決定ボタンをタッチすることにより、第2サインイン方法を選択することができる。すなわち、第1サインイン方法を無効化すると、第2サインイン方法が選択される。
ユーザにより第2サインイン方法が選択された場合(ステップS205のNO)、処理はステップS216に進む。これは、第2サインイン方法では、クラウドアカウントのパスコードが不要なためである。
一方、ユーザにより第1サインイン方法が選択された場合(ステップS205のYES)、パスコード設定部15は、アプリ情報に含まれる画面定義を参照して、クラウドアカウントのパスコードの設定画面を操作パネル105に表示させる(ステップS206)。設定画面は、ユーザがクラウドアカウントのパスコードを設定するための画面である。
図13は、クラウドアカウントのパスコードの設定画面の一例を示す図である。図13の例では、クラウドアカウントのパスコードは、6桁の数字である。図13の設定画面には、数字を入力するためのテンキーと、決定ボタン(OKボタン)と、表示されている。テンキーは、操作パネル105に設定画面と同時に表示可能な別画面に表示されてもよい。
設定画面が表示されると、ユーザは、設定画面に表示されたテンキーをタッチして、所望のパスコード(図13の例では6桁の数字)を入力し(ステップS207)、決定ボタンをタッチする。
決定ボタンがタッチされると、パスコード設定部15は、アプリ情報に含まれる画面定義を参照して、クラウドアカウントのパスコードの確認画面を操作パネル105に表示させる(ステップS208)。確認画面は、ユーザが入力したパスコードに誤りがないか確認するために、ユーザがパスコードを再度入力するための画面である。
図14は、クラウドアカウントのパスコードの確認画面の一例を示す図である。図14の確認画面には、数字を入力するためのテンキーと、決定ボタン(OKボタン)と、が表示されている。設定画面と同様に、テンキーは、操作パネル105に設定画面と同時に表示可能な別画面に表示されてもよい。
確認画面が表示されると、ユーザは、確認画面に表示されたテンキーをタッチして、所望のパスコード(図14の例では6桁の数字)を再度入力し(ステップS209)、決定ボタンをタッチする。
決定ボタンがタッチされると、パスコード設定部15は、設定画面で入力されたパスコードと、確認画面で入力されたパスコードと、が一致するか確認する(ステップS210)。設定画面で入力されたパスコードと、確認画面で入力されたパスコードと、が異なる場合(ステップS210のNO)、処理はステップS208に戻る。すなわち、パスコード設定部15は、確認画面を操作パネル105に再度表示させる。この際、パスコード設定部15は、確認画面に入力されたパスコードが設定画面に入力されたパスコードと異なる旨のメッセージを、確認画面に表示させるのが好ましい。これにより、ユーザに、パスコードが誤って入力されたことを通知することができる。
一方、設定画面で入力されたパスコードと、確認画面で入力されたパスコードと、が一致する場合(ステップS210のYES)、処理はステップS211に進む。ステップS211において、パスコード設定部15は、ユーザにより入力されたパスコードの設定を、クラウドサーバ2の認証管理部22に要求する。この際、パスコード設定部15は、ユーザにより入力されたパスコードを認証管理部22に通知する。認証管理部22は、この要求に応じて、通知されたパスコードを、ユーザのクラウドアカウントのパスコードとして、アカウント情報記憶部23に記憶された当該クラウドアカウントのアカウント情報に追加する。これにより、ユーザが入力したパスコードが、当該ユーザのクラウドアカウントのパスコードとして設定される。認証管理部22は、設定の結果をパスコード設定部15に通知する。
パスコードの設定が失敗した場合(ステップS212のNO)、パスコード設定部15は、アプリ情報に含まれる画面定義を参照して、エラー画面を操作パネル105に表示させる(ステップS213)。このエラー画面は、パスコードの設定が失敗したことをユーザに通知するための画面である。パスコードの設定が失敗する場合として、パスコードの設定中に、情報処理端末1とクラウドサーバ2との間で通信エラーが発生する場合が考えられる。
図15は、パスコードの設定が失敗した場合に表示されるエラー画面の一例を示す図である。図15のエラー画面には、パスコードの設定に失敗した旨のメッセージと、第1サインイン方法の選択を無効化する旨のメッセージと、決定ボタン(OKボタン)と、が表示されている。ユーザは、エラー画面に表示されたメッセージを確認することにより、パスコードの設定が失敗したこと、及び第1サインイン方法の選択が無効化されたことを把握することができる。第1サインイン方法の選択を無効化されるのは、第1サインイン方法を利用するために必要なパスコードの設定に失敗したためである。ユーザは、メッセージを確認すると、決定ボタンをタッチする。決定ボタンがタッチされると、クラウドアカウントのパスコードが設定されないまま、処理はステップS216に進む。
一方、パスコードの設定が成功した場合(ステップS212のYES)、パスコード設定部15は、ステップS202で取得したクラウドアカウントのアカウント情報に基づいて、ユーザの履歴情報を保存する(ステップS214)。すなわち、パスコード設定部15は、アカウント情報に含まれるパスコードを除く情報(アカウントIDなど)と、ユーザのサインイン時刻と、を対応付けて、履歴情報として履歴情報記憶部17に記憶させる。なお、ステップS202のYESの場合に、ステップS214に進むのは、履歴情報を更新するためである。
このように、履歴情報は、クラウドサーバ2ではなく、情報処理端末1に記憶される。これは、クラウドサーバ2が履歴情報を記憶した場合、情報処理システムを構成する全ての情報処理端末1から履歴情報を参照可能となり、セキュリティが低下するためである。このようなセキュリティの低下を抑制するために、本実施形態では、ユーザが実際に利用し、かつ、その情報処理端末1に履歴情報を記憶させること(第1サインイン方法を利用すること)を選択した情報処理端末1にのみ、履歴情報が記憶される。これにより、情報処理システムのセキュリティを向上させることができる。
また、履歴情報には、クラウドアカウントのパスコードが含まれない。これにより、情報処理システムのセキュリティを向上させることができる。
履歴情報の保存に失敗した場合(ステップS215のNO)、パスコード設定部15は、アプリ情報に含まれる画面定義を参照して、エラー画面を操作パネル105に表示させる(ステップS213)。このエラー画面は、履歴情報の保存が失敗したことをユーザに通知するための画面である。履歴情報の保存に失敗する場合として、履歴情報の保存中に、パスコード設定部15と履歴情報記憶部17との間で通信エラーが発生する場合が考えられる。
図16は、履歴情報の保存に失敗した場合に表示されるエラー画面の一例を示す図である。図16のエラー画面には、履歴情報の保存に失敗した旨のメッセージと、第1サインイン方法の選択が無効化された旨のメッセージと、決定ボタン(OKボタン)と、が表示されている。ユーザは、エラー画面に表示されたメッセージを確認することにより、履歴情報の保存に失敗したこと、及び第1サインイン方法の選択が無効化されたことを把握することができる。第1サインイン方法の選択が無効化されるのは、第1サインイン方法を利用するために必要な履歴情報が保存されなかったためである。ユーザは、メッセージを確認すると、決定ボタンをタッチする。決定ボタンがタッチされると、処理はステップS216に進む。
一方、履歴情報の保存に成功した場合(ステップS215のYES)、パスコード設定部15は、アプリ情報に含まれる画面定義を参照して、サインイン後のクラウドサービスの画面を操作パネル105に表示させる(ステップS216)。以降、ユーザは、当該画面からクラウドサービスを利用することができる。
このように、パスコードの設定や履歴情報の保存に失敗した場合であっても、サインイン後のクラウドサービスの画面が表示されるのは、図11の処理の開始時点で、ユーザが、外部アカウントを利用して既にクラウドサービスにサインインしているためである。
なお、パスコードの設定及び履歴情報の保存の少なくとも一方に失敗した場合、上述の通り、第1サインイン方法の選択が無効化されるため、ユーザは、次回のサインイン時にも、第2サインイン方法でクラウドサービスにサインインすることになる。
次に、サインイン処理について説明する。図17は、サインイン処理の一例を示すフローチャートである。以下では、ユーザのクラウドアカウントは登録済みであるものとする。また、図17のステップS301〜S303は、図8のステップS101〜S103と同様であるため、説明を省略する。
ここでは、サインイン処理の説明のため、ユーザは、トップ画面でサインインボタン(図9参照)をタッチするものとする(ステップS304)。サインインボタンがタッチされると、サインイン部16は、履歴情報記憶部17に少なくとも1つの履歴情報が保存されているか確認する(ステップS305)。履歴情報記憶部17に履歴情報が1つも保存されていない場合(ステップS305のNO)、処理はステップS315に進む。これは、履歴情報が1つも保存されていない場合、いずれのユーザも、第1サインイン方法を利用できないためである。ステップS315については後述する。履歴情報が1つも記憶されていない場合として、ユーザにより履歴情報が削除された場合が考えられる。
一方、履歴情報記憶部17に少なくとも1つの履歴情報が記憶されている場合(ステップS305のYES)、処理はステップS306に進む。ステップS306において、サインイン部16は、アプリ情報に含まれる画面定義を参照して、クラウドサービスの第1サインイン画面を操作パネル105に表示させる。第1サインイン画面は、第1サインイン方法でクラウドサービスにサインインするための画面である。第1サインイン画面には、履歴情報記憶部17に履歴情報を記憶された各ユーザに対応するユーザボタンが表示される。ユーザボタンには、そのユーザボタンに対応するユーザを特定するための情報が記載される。記載される情報は、履歴情報の中から任意に選択可能である。
図18は、第1サインイン画面の一例を示す図である。図18の第1サインイン画面には、ユーザA,Cにそれぞれ対応する2つのユーザボタンと、第2サインイン方法を選択するための外部アカウントボタン(別のアカウントでサインイン)と、が表示されている。図18の例では、各ユーザボタンには、ユーザのメールアドレス及びユーザ名が記載されている。
サインイン部16が第1サインイン画面に同時に表示するユーザボタンの数には、上限値が設けられていてもよい。この場合、サインイン部16は、ユーザボタンを複数ページにわたって表示すればよい。また、表示されるユーザボタンの順番は、履歴情報に含まれるサインイン時刻、ユーザID及びユーザ名などの昇順であってもよいし、降順であってもよい。
第1サインイン画面が表示されると、ユーザは、各ユーザボタンに記載された情報を参照して、自分に対応するユーザボタンが表示されているか(自分の履歴情報が履歴情報記憶部17に保存されているか)を確認する(ステップS307)。自分に対応するユーザボタンが表示されていない(自分の履歴情報が履歴情報記憶部17に保存されていない)場合(ステップS307のNO)、ユーザは、外部アカウントボタンをタッチする。これは、このユーザが第1サインイン方法を利用できないためである。外部アカウントボタンがタッチされると、処理はステップS315に進む。
一方、自分に対応するユーザボタンが表示されている(自分の履歴情報が履歴情報記憶部17に保存されている)場合(ステップS307のYES)、ユーザは、自分に対応するユーザボタンをタッチする。サインイン部16は、タッチされたユーザボタンに対応するユーザの履歴情報を参照し、当該ユーザのクラウドアカウントのアカウントIDを取得する。そして、サインイン部16は、アプリ情報に含まれる画面定義を参照して、クラウドアカウントのパスコード(クラウドパスコード)の入力画面を操作パネル105に表示させる(ステップS308)。入力画面は、ユーザがクラウドアカウントのパスコードを入力するための画面である。
図19は、クラウドアカウントのパスコードの入力画面の一例を示す図である。図19の入力画面には、数字を入力するためのテンキーと、決定ボタン(OKボタン)と、再設定ボタン(忘れた場合)と、が表示されている。再設定ボタンは、パスコードを再設定するためのボタンである。テンキーは、操作パネル105に入力画面と同時に表示可能な別画面に表示されてもよい。
ユーザは、自分のクラウドアカウントのパスコードを忘れた場合、再設定ボタンをタッチする。再設定ボタンがタッチされると(ステップS309のYES)、処理はステップS315に進む。
一方、ユーザが自分のクラウドアカウントのパスコードを覚えている場合、再設定ボタンはタッチされない(ステップS309のNO)。この場合、ユーザは、入力画面に表示されたテンキーをタッチして、パスコード(図19の例では6桁の数字)を入力し(ステップS310)、決定ボタンをタッチする。
決定ボタンがタッチされると、サインイン部16は、クラウドサーバ2の認証管理部22にクラウドサービスへのサインインを要求する(ステップS311)。この際、サインイン部16は、ユーザのクラウドアカウントのアカウントIDと、ユーザにより入力されたパスコードと、を認証管理部22に通知する。
認証管理部22は、サインイン部16からサインインを要求されると、Open ID ConnectやOAuth 2.0などの仕様に従って、ユーザの認証処理及び認可処理を実行する(ステップS312)。具体的には、認証管理部22は、サインイン部16から通知されたアカウントIDを検索キーとしてアカウント情報テーブルを検索し、当該アカウントIDに対応するパスコードを取得する。そして、認証管理部22は、取得したパスコードと、サインイン部16から通知されたパスコードと、が一致するか確認する(ステップS313)。
取得したパスコードと、通知されたパスコードと、が一致しない場合(ステップS313のNO)、認証処理は失敗し、認証管理部22は、クラウドサービスへのユーザのサインインを拒否し、その旨をサインイン部16に通知する。パスコードが一致しない場合として、誤ったユーザボタンが選択された場合や、誤ったパスコードが入力された場合が考えられる。サインイン部16が認証処理の失敗を通知されると、処理はステップS308に戻る。すなわち、サインイン部16は、パスコードの入力画面を再度表示する。この際、サインイン部16は、誤ったパスコードが入力された旨のメッセージを、入力画面に表示してもよい。
なお、本実施形態では、複数回連続して誤ったパスコードが入力された場合であっても、クラウドアカウントはロックされないのが好ましい。これは、正規のユーザ以外の第三者によるパスコードの誤入力により、クラウドアカウントがロックされることを避けるためである。
一方、取得したパスコードと、通知されたパスコードと、が一致した場合(ステップS313のYES)、認証処理及び認可処理は成功し、認証管理部22は、クラウドサービスへのユーザのサインインを許可する(ステップS314)。そして、認証管理部22は、その旨をサービス制御部13に通知する。この際、認証管理部22は、サインインを許可されたユーザのアカウント情報をサービス制御部13に通知する。通知するアカウント情報には、パスコードが含まれないのが好ましい。これにより、情報処理システムのセキュリティを向上させることができる。
以上の処理により、ユーザは、第1サインイン方法でクラウドサービスにサインインすることができる。その後、図11の処理が実行される。ユーザが第1サインイン方法でクラウドサービスにサインインした場合、パスコードは設定済みであり(ステップS201のYES)、かつ、履歴情報は保存済みである(ステップS202のYES)。したがって、サービス制御部13は、ユーザの履歴情報を更新した後(ステップS214)、アプリ情報に含まれる画面定義を参照して、サインイン後のクラウドサービスの画面を操作パネル105に表示させる(ステップS216)。
ここで、ステップS315以降の処理について説明する。ステップS315において、サインイン部16は、アプリ情報に含まれる画面定義を参照して、クラウドサービスの第2サインイン画面を操作パネル105に表示させる。第2サインイン画面は、第2サインイン方法でクラウドサービスにサインインするために、サインインに利用する外部アカウントを選択するための画面である。
図20は、第2サインイン画面の一例を示す図である。図20の第2サインイン画面には、外部アカウントとして第1サービスのアカウントを利用するための第1サービスボタンと、外部アカウントとして第2サービスのアカウントを利用するための第2サービスボタンと、が表示されている。
第2サインイン画面が表示されると、ユーザは、サインインに利用する外部アカウントを選択する(ステップS316)。図20の例では、ユーザは、第1サービスボタンをタッチすることにより、第1サービスのアカウントを選択できる。また、ユーザは、第2サービスボタンをタッチすることにより、第2サービスのアカウントを選択できる。
ユーザが外部アカウントを選択すると、サインイン部16は、クラウドサーバ2の認証管理部22に、クラウドサービスへのユーザのサインインを要求する(ステップS317)。この際、サインイン部16は、認証管理部22に、ユーザにより選択された外部アカウントを通知する。
なお、ユーザがパスコードを忘れた場合(上記の(2)の場合)であって、かつ、履歴情報に外部サービス情報が含まれる場合には、履歴情報を参照することにより、サインイン部16は、当該ユーザが利用する外部アカウントを把握することができる。したがって、サインイン部16は、ステップS315,S316を省略してもよい。この場合、サインイン部16は、クラウドサーバ2の認証管理部22にユーザのサインインを要求する際、外部サービス情報に基づいて特定されたユーザの外部アカウントを通知すればよい。このように、履歴情報に外部サービス情報を含めることにより、サインインの手間を軽減することができる。
認証管理部22は、サインイン部16からサインインを要求されると、Open ID ConnectやOAuth 2.0などの仕様に従って、サインイン部16から通知された外部アカウントに対応する外部サーバ3との間で、ユーザの認証処理及び認可処理を実行する(ステップS318)。この際、認証管理部22は、情報処理端末1の操作パネル105を介して、外部アカウントのアカウント情報(ユーザIDやパスコード)の入力をユーザに要求する。認証管理部22は、入力された外部アカウントのアカウント情報を利用して、ユーザの認証処理及び認可処理を実行する。
認証管理部22は、認証処理及び認可処理が成功すると、クラウドサービスへのユーザのサインインを許可し(ステップS314)、その旨をサービス制御部13に通知する。この際、認証管理部22は、サインインを許可されたユーザのアカウント情報をサービス制御部13に通知する。通知するアカウント情報には、パスコードが含まれないのが好ましい。これにより、情報処理システムのセキュリティを向上させることができる。
以上の処理により、ユーザは、第2サインイン方法でクラウドサービスにサインインすることができる。その後、図11の処理が実行される。
以上説明した通り、本実施形態によれば、ユーザは、外部アカウントのパスコードとは別に設定されたクラウドアカウントのパスコードを入力することにより、クラウドサービスにサインインすることができる。クラウドアカウントのパスコードとして、入力が簡単なパスコードを設定することにより、クラウドサービスにサインインする際の、パスコードの入力の手間を軽減することができる。
<第2実施形態>
第2実施形態に係る情報処理システムについて、図21及び図22を参照して説明する。本実施形態では、履歴情報を削減された情報処理システムについて説明する。なお、本実施形態において、情報処理システム、情報処理端末1、クラウドサーバ2及び外部サーバ3の構成は、第1実施形態と同様である。
図21は、本実施形態に係る履歴情報記憶部17が備える履歴情報テーブルの一例を示す図である。図21の履歴情報には、クラウドアカウントのアカウントIDだけが含まれている。
図22は、本実施形態に係るアカウント情報記憶部23が備えるアカウント情報テーブルの一例を示す図である。図22のアカウント情報には、クラウドアカウントのアカウント情報(アカウントID及びパスコード)と、サインイン時刻と、外部アカウント情報(ユーザ名、メールアドレス、及び外部サービスの名称)と、が含まれている。すなわち、本実施形態では、第1実施形態において履歴情報に含まれた情報のうち、アカウントID以外の情報は、アカウント情報記憶部23に記憶される。
本実施形態では、アカウント情報記憶部23に記憶されるアカウント情報(サインイン時刻や外部サービス情報)の更新は、第1実施形態において履歴情報が追加されたタイミングで行われる。アカウント情報の更新の際、クラウドアカウントのアカウントIDと共に、サインイン時刻や外部サービス情報が、情報処理端末1からクラウドサーバ2に通知される。
また、本実施形態では、サインイン部16は、第1サインイン画面を表示する際、ユーザボタンに記載する情報(メールアドレスやユーザ名)を、クラウドサーバ2から取得すればよい。これにより、サインイン部16は、第1実施形態と同様の第1サインイン画面(図18参照)を表示することができる。
以上説明した通り、本実施形態によれば、履歴情報記憶部17に履歴情報として記憶される情報を削減することができる。これにより、履歴情報記憶部17に要求される記憶容量を削減することができる。また、履歴情報記憶部17への書き込み回数を低減し、履歴情報記憶部17を構成する記憶装置の寿命を長期化することができる。
<第3実施形態>
第3実施形態に係る情報処理システムについて、図23〜図27を参照して説明する。本実施形態では、履歴情報をクラウドサーバ2が記憶する情報処理システムについて説明する。なお、本実施形態において、情報処理システムの構成と、情報処理端末1、クラウドサーバ2及び外部サーバ3のハードウェア構成と、は第1実施形態と同様である。以下、第1実施形態との相違点を中心に説明する。
まず、本実施形態に係る情報処理端末1の機能構成について説明する。図23は、情報処理端末1の機能構成の一例を示す図である。図23の情報処理端末1は、履歴情報記憶部17を備えず、端末情報記憶部18と、起動処理部19と、を備える。
端末情報記憶部18は、情報処理端末1に関する情報(以下、「端末情報」という)を記憶する。端末情報には、情報処理端末1の端末ID及びシークレットが含まれる。端末IDは、情報処理端末1の固有の識別子である。シークレットは、情報処理端末1がクラウドサーバ2と通信する際に利用される鍵情報である。シークレットは、端末IDとは異なり、設置場所を変えた際などに初期化され、異なる値に変化する。なお、端末情報には、情報処理端末1の名称、設置場所、機種及びIPアドレスなどが含まれてもよい。
起動処理部19は、端末ID及びシークレットを利用してクラウドサーバ2と通信し、クラウドアプリの起動時の処理(以下、「起動処理」という)を実行する。起動処理部19の機能は、CPU101がクラウドアプリをブラウザ上で実行することにより実現される。言い換えると、情報処理端末1は、クラウドアプリが実行されるまで、起動処理部19を備えない。
次に、本実施形態に係るクラウドサーバ2の機能構成について説明する。図24は、本実施形態に係るクラウドサーバ2の機能構成の一例を示す図である。図24のクラウドサーバ2は、端末管理部24と、アクティベーション情報記憶部25と、を備える。
端末管理部24は、情報処理端末1を管理する。具体的には、端末管理部24は、クラウドサービスに未登録の情報処理端末1に対して、アクティベーションIDを生成し、アクティベーション情報記憶部25に保存する。これにより、情報処理端末1がクラウドサービスに登録される。アクティベーションIDは、クラウドサービスに登録された情報処理端末1の識別子である。また、端末管理部24は、クラウドサービスに登録済みの情報処理端末1に対して、アクセストークンを発行する。アクセストークンには、情報処理端末1のアクティベーション情報が含まれる。
アクティベーション情報記憶部25は、クラウドサービスに登録された各情報処理端末1のアクティベーション情報を記憶する。アクティベーション情報には、アクティベーションIDと、端末IDと、シークレットと、サインイン履歴と、が含まれる。サインイン履歴は、情報処理端末1からクラウドサービスにサインインしたユーザのクラウドアカウントのアカウントIDの履歴である。本実施形態において、履歴情報は、サインイン履歴と、アカウント情報と、により構成される。
サインイン履歴において、アカウントIDは、サインイン時刻の昇順又は降順で並べられるのが好ましい。これにより、クラウドサーバ2は、クラウドサービスにサインインしたアカウントIDの順番を把握することができる。結果として、アカウント情報記憶部23が記憶するアカウント情報にサインイン時刻が含まれなくてもよくなるため、アカウント情報記憶部23に要求される記憶容量を低減することができる。
なお、サインイン履歴において、アカウントIDがサインイン時刻の昇順又は降順で並べられない場合には、第1実施形態と同様に、アカウント情報にサインイン時刻を含めればよい。また、アクティベーション情報に、アカウントIDごとのサインイン時刻を含めてもよい。
次に、本実施形態に係る情報処理システムにおける、クラウドアプリの起動処理、パスコードの設定処理及びサインイン処理についてそれぞれ説明する。以下では、情報処理端末1がMFPである場合を例に説明する。
まず、クラウドアプリの起動処理について説明する。図25は、クラウドアプリの起動処理の一例を示すシーケンス図である。
ユーザが情報処理端末1上でクラウドアプリを起動すると、起動処理部19は、端末情報記憶部18に端末情報(端末ID及びシークレット)を要求する(ステップS401)。端末情報記憶部18は、端末情報を要求されると、記憶している端末情報を起動処理部19に渡す(ステップS402)。
取得した端末情報にシークレットが含まれない(端末情報記憶部18にシークレットが記憶されていない)場合、起動処理部19は、シークレットを生成し(ステップS403)、生成したシークレットを端末情報記憶部18に保存する(ステップS404)。
起動処理部19は、端末情報を取得(又は生成)すると、取得した端末情報をクラウドサーバ2の端末管理部24に送信し、アクセストークンの発行を要求する(ステップS405)。
端末管理部24は、アクセストークンの発行を要求されると、受信した端末情報に含まれる端末IDを検索キーとしてアクティベーション情報記憶部25を検索し(ステップS406)、当該端末IDを含むアクティベーション情報を取得する(ステップS407)。
アクティベーション情報記憶部25にアクティベーション情報が記憶されていない場合(情報処理端末1がクラウドサービスに登録されていない場合)、端末管理部24は、アクティベーションID(AID)を生成する(ステップS408)。同様に、取得したアクティベーション情報に含まれるシークレットと、受信したシークレットと、が一致しない場合(情報処理端末1の登録後にシークレットが更新された場合)、端末管理部24は、アクティベーションID(AID)を生成する。
いずれの場合も、端末管理部24は、生成したアクティベーションIDと、受信した端末情報と、を含むアクティベーション情報を生成し、生成したアクティベーション情報をアクティベーション情報記憶部25に保存する。これにより、情報処理端末1がクラウドサービスに登録される。なお、アクティベーション情報を生成した時点では、アクティベーション情報のサインイン履歴には、アカウントIDが含まれない。
端末管理部24は、アクティベーション情報を取得(又は生成)すると、取得(又は生成)したアクティベーション情報を含むアクセストークンを生成し(ステップS410)、生成したアクセストークンを起動処理部19に送信する(ステップS411)。
以降、情報処理端末1は、このアクセストークンを利用して、クラウドサーバ2と通信する。また、認証処理及び認可処理は、このアクセストークンを利用して行われる。
次に、パスコードの設定処理について説明する。図26は、パスコードの設定処理の一例を示すシーケンス図である。図26の処理は、図11のステップS211〜S216の処理に対応し、サインアップ時やパスコードの再設定時に実行される。
クラウドアカウントのパスコードの設定画面及び確認画面に入力されたパスコードが一致すると(ステップS210のYES)、パスコード設定部15は、ユーザのアカウント情報を認証管理部22に送信し(ステップS501)、パスコードの設定を要求する。このアカウント情報には、ユーザのアカウントIDと、設定画面及び確認画面に入力されたパスコードと、が含まれる。
認証管理部22は、アカウント情報を受信すると、受信したアカウント情報に含まれるアカウントIDを検索キーとしてアカウント情報記憶部23を検索する(ステップS502)。そして、認証管理部22は、当該アカウントIDを含むアカウント情報(ユーザのアカウント情報)をアカウント情報記憶部23から取得する(ステップS503)。
認証管理部22は、アカウント情報を取得すると、取得したアカウント情報のパスコードを、パスコード設定部15から受信したアカウント情報に含まれるパスコードに設定する(ステップS504)。取得したアカウント情報に設定済みのパスコードが含まれる場合、認証管理部22は、取得したアカウント情報に含まれるパスコードを、パスコード設定部15から受信したアカウント情報に含まれるパスコードに更新する。
認証管理部22は、パスコードを設定すると、設定されたパスコードを含むアカウント情報をアカウント情報記憶部23に保存する(ステップS505)。その後、認証管理部22は、パスコードの設定完了をパスコード設定部15に通知する(ステップS506)。
パスコード設定部15は、パスコードの設定完了を通知されると、ユーザのアカウントIDと、起動処理の際に取得したアクセストークンに含まれるアクティベーションIDと、を端末管理部24に送信し、サインイン履歴の更新を要求する(ステップS507)。
端末管理部24は、サインイン履歴の更新を要求されると、パスコード設定部15から受信したアクティベーションIDを検索キーとしてアクティベーション情報記憶部25を検索する(ステップS508)。そして、端末管理部24は、当該アクティベーションIDを含むアクティベーション情報をアクティベーション情報記憶部25から取得する(ステップS509)。
端末管理部24は、アクティベーション情報を取得すると、取得したアクティベーション情報に含まれるサインイン履歴を更新する(ステップS510)。具体的には、端末管理部24は、パスコード設定部15から受信したアカウントIDをサインイン履歴に追加する。
端末管理部24は、サインイン履歴を更新すると、更新されたサインイン履歴を含むアクティベーション情報を、アクティベーション情報記憶部25に保存する(ステップS511)。その後、端末管理部24は、サインイン履歴の更新完了をパスコード設定部15に通知する(ステップS512)。
パスコード設定部15は、サインイン履歴の更新完了を通知されると、アプリ情報に含まれる画面定義を参照して、サインイン後のクラウドサービスの画面を操作パネル105に表示させる(ステップS513)。
以上の処理により、各ユーザのサインイン履歴を情報処理端末1ごとにクラウドサーバ2に保存することができる。言い換えると、クラウドサーバ2は、各ユーザのサインイン履歴を、情報処理端末1ごとに管理することができる。
なお、ステップS504,S505において、パスコードの設定(更新)や保存に失敗した場合には、認証管理部22は、その旨をパスコード設定部15に通知する。その後、パスコード設定部15は、アプリ情報に含まれる画面定義を参照して、図15のようなエラー画面を操作パネル105に表示させる。
同様に、ステップS510,S511において、履歴情報の更新や保存に失敗した場合には、端末管理部24は、その旨をパスコード設定部15に通知する。その後、パスコード設定部15は、アプリ情報に含まれる画面定義を参照して、図16のようなエラー画面を操作パネル105に表示させる。
次に、サインイン処理について説明する。図27は、サインイン処理の一例を示すシーケンス図である。図27の処理は、図17のステップS305〜S314の処理に対応する。
ユーザがトップ画面でサインインボタンをタッチすると(ステップS304)、サインイン部16は、端末管理部24にアクティベーションIDを送信し、履歴情報を要求する(ステップS601)。
端末管理部24は、履歴情報を要求されると、パスコード設定部15から受信したアクティベーションIDを検索キーとしてアクティベーション情報記憶部25を検索する(ステップS602)。そして、端末管理部24は、当該アクティベーションIDを含むアクティベーション情報をアクティベーション情報記憶部25から取得する(ステップS603)。
端末管理部24は、アクティベーション情報を取得すると、取得したアクティベーション情報のサインイン履歴に含まれるアカウントIDを検索キーとしてアカウント情報記憶部23を検索する(ステップS604)。そして、端末管理部24は、当該アカウントIDを含むアカウント情報をアカウント情報記憶部23から取得する(ステップS605)。端末管理部24は、ステップS604,S605の処理を、アクティベーション情報に含まれるアカウントIDの分だけ繰り返す。
ステップS605において取得されるアカウント情報は、情報処理端末1からクラウドサービスにサインインしたユーザのアカウント情報、すなわち、履歴情報に相当する。端末管理部24は、こうして取得した履歴情報を、サインイン部16に送信する(ステップS606)。
サインイン部16は、履歴情報を取得すると、アプリ情報に含まれる画面定義を参照して、クラウドサービスの第1サインイン画面を操作パネル105に表示させる(ステップS607)。
その後、ユーザが自分に対応するユーザボタンをタッチし、パスコードを入力し、決定ボタンをタッチすると、サインイン部16は、認証管理部22にユーザのアカウント情報を送信し、クラウドサービスへのサインインを要求する(ステップS608)。
認証管理部22は、サインインを要求されると、Open ID ConnectやOAuth 2.0などの仕様に従って、ユーザの認証処理及び認可処理を実行する。具体的には、認証管理部22は、受信したアカウント情報に含まれるアカウントIDを検索キーとしてアカウント情報記憶部23を検索し(ステップS609)、当該アカウントIDを含むアカウント情報を取得する(ステップS610)。認証管理部22は、取得したアカウント情報に含まれるパスコードと、サインイン部16から受信したアカウント情報に含まれるパスコードと、が一致するか確認する(ステップS611)。
取得したアカウント情報に含まれるパスコードと、サインイン部16から受信したアカウント情報に含まれるパスコードと、が一致する場合、認証処理及び認可処理は成功する。認証管理部22は、認証処理及び認可処理に成功すると、サービス制御部13にクラウドサービスへのサインインを許可する旨を通知する(ステップS612)。その後、サービス制御部13は、サインイン後のクラウドサービスの画面を操作パネル105に表示させる(ステップS613)。
また、認証管理部22は、認証処理及び認可処理に成功すると、ユーザのアカウントIDと、アクティベーションIDと、を端末管理部24に送信し、サインイン履歴の更新を要求する(ステップS614)。
端末管理部24は、サインイン履歴の更新を要求されると、認証管理部22から受信したアクティベーションIDを検索キーとしてアクティベーション情報記憶部25を検索する(ステップS615)。そして、端末管理部24は、当該アクティベーションIDを含むアクティベーション情報をアクティベーション情報記憶部25から取得する(ステップS616)。
端末管理部24は、アクティベーション情報を取得すると、取得したアクティベーション情報に含まれるサインイン履歴を更新する(ステップS617)。具体的には、端末管理部24は、認証管理部22から受信したアカウントIDをサインイン履歴に追加する。
端末管理部24は、サインイン履歴を更新すると、更新されたサインイン履歴を含むアクティベーション情報を、アクティベーション情報記憶部25に保存する(ステップS618)。その後、端末管理部24は、サインイン履歴の更新完了をサービス制御部13に通知する(ステップS619)。
以上の処理により、ユーザは、クラウドサーバ2に記憶された履歴情報を利用して、クラウドサービスにサインインすることができる。
なお、ステップS603で受信したアクティベーション情報のサインイン履歴に1つもアカウントIDが含まれない、すなわち、履歴情報が1つも存在しない場合には、端末管理部24は、その旨をサインイン部16に通知すればよい。この場合、サインイン部16は、アプリ情報に含まれる画面定義を参照して、クラウドサービスの第2サインイン画面を操作パネル105に表示させればよい。
また、ステップS611において、パスコードが一致せず、認証処理及び認可処理が失敗した場合には、認証管理部22は、その旨をサインイン部16に通知すればよい。この場合、サインイン部16は、パスコードの入力画面を再度表示すればよい。
また、ステップS617,S618において、履歴情報の更新や保存に失敗した場合には、端末管理部24は、その旨をサービス制御部13に通知すればよい。この場合、サービス制御部13は、アプリ情報に含まれる画面定義を参照して、図16のようなエラー画面を操作パネル105に表示させてもよいし、表示させなくてもよい。
以上説明した通り、本実施形態によれば、クラウドサーバ2に記憶された履歴情報を利用して、第1実施形態と同様の処理を実現し、同様の効果を得ることができる。したがって、クラウドアカウントのパスコードとして、入力が簡単なパスコードを設定することにより、クラウドサービスにサインインする際の、パスコードの入力の手間を軽減することができる。
また、本実施形態によれば、情報処理端末1は履歴情報記憶部17を備えなくてよいため、情報処理端末1に要求される記憶容量を低減することができる。
なお、以上の説明では、履歴情報には、アカウントIDが含まれたが、アカウントIDの代わりに、ユーザ名やユーザIDなどの、クラウドアカウントを特定可能な他の情報が含まれてもよい。いずれの場合も、上記と同様の効果が得られる。
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせなど、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。