以下に、本発明の実施の形態について、添付の図面を参照して説明する。
<システムの構成>
初めに、本実施形態に係る情報処理システムの構成について説明する。
<システム構成>
図1は、一実施形態に係る情報処理システムの構成例を示す図である。情報処理システム100は、例えば、インターネットやLAN(Local Area Network)等のネットワーク140に接続された、サービス提供システム110、画像形成装置120、外部サーバ130等を有する。
サービス提供システム(サーバ装置)110は、ウェブサーバ機能を有する情報処理装置、又は複数の情報処理装置を含むシステムである。サービス提供システム110は、画像形成装置120等の電子機器に、電子機器の所定の入出力機能を利用するためのウェブコンテンツ(以下、機器アプリコンテンツと呼ぶ)を提供する。
画像形成装置120は、例えば、スキャン、印刷、コピー、ファックス等の機能を有する複合機や、印刷機能を有するプリンタ等の電子機器である。画像形成装置120は、サービス提供システム110によって提供される機器アプリコンテンツを取得し、実行する。
機器アプリコンテンツは、例えば、画像形成装置120のウェブブラウザ部121で動作するウェブアプリケーションである。ウェブブラウザ部121は、機器アプリコンテンツにより、画像形成装置120の操作パネル等に画像形成装置120の操作画面を表示する。
また、画像形成装置120は、ウェブブラウザ部121で動作する機器アプリコンテンツから、画像形成機能(例えば印刷機能)を利用するための第1のAPI(Application Programming Interface)を有する。
これにより、画像形成装置120のウェブブラウザ部121で動作する機器アプリコンテンツは、画像形成装置120の操作パネル等に表示した選択画面から選択された処理を、画像形成装置120の第1のAPIを用いて、画像形成装置120に実行させる。
また、本実施形態に係る機器アプリコンテンツは、外部サーバ130で、例えば、サードパーティ等によって提供されるウェブコンテンツ(以下、外部アプリコンテンツと呼ぶ)を取得し、機器アプリコンテンツのiframe内に表示させる。
iframe(インラインフレーム)とは、ウェブページ内の所定の領域内に、別のウェブページを表示させる機能である。これにより、機器アプリコンテンツ(第1のウェブコンテンツ)は、外部アプリコンテンツ(第2のウェブコンテンツ)の操作画面を、画像形成装置120の操作パネル等に表示させる。
さらに、機器アプリコンテンツは、外部アプリコンテンツに、画像形成装置120の画像形成機能を利用するための第2のAPIを提供する。機器アプリコンテンツは、外部アプリコンテンツから、第2のAPIを介して受け付けた画像形成機能を利用する処理を、第1のAPIを用いて画像形成装置120に実行させる。
このように、本実施形態に係る情報処理システム100によれば、ウェブブラウザ部121で外部アプリを実行して操作画面を表示する画像形成装置120において、外部アプリから画像形成装置120の所定の機能を、容易に制御することができるようになる。
なお、画像形成装置120は、ウェブブラウザで外部アプリを実行して操作画面を表示する電子機器の一例である。電子機器は、例えば、テレビ会議装置、テレビ、録画再生装置等、ウェブブラウザで操作画面を表示する他の電子機器にも適用することができる。
<ハードウェア構成>
(コンピュータのハードウェア構成)
サービス提供システム110、及び外部サーバ130は、一般的なコンピュータのハードウェア構成を有する1つ以上の情報処理装置によって実現される。ここでは、一般的なコンピュータのハードウェア構成について説明する。
図2は、一実施形態に係るコンピュータのハードウェア構成例を示す図である。コンピュータ200は、例えば、CPU(Central Processing Unit)201、RAM(Random Access Memory)202、ROM(Read Only Memory)203、ストレージ部204、ネットワークI/F(Interface)205、入力装置206、表示装置207、外部I/F208、及びバス209等を有する。
CPU201は、ROM203やストレージ部204等に格納されたプログラムやデータをRAM202上に読み出し、処理を実行することで、コンピュータ200の各機能を実現する演算装置である。RAM202は、CPU201のワークエリア等として用いられる揮発性のメモリである。ROM203は、電源を切ってもプログラムやデータを保持することができる不揮発性のメモリである。
ストレージ部204は、例えば、HDD(Hard Disk Drive)や、SSD(Solid State Drive)等の大容量の記憶装置であり、OS(Operation System)、アプリケーションプログラム、各種のデータ等を記憶する。
ネットワークI/F205は、コンピュータ200をネットワーク140に接続するための通信インタフェースである。
入力装置206は、例えば、マウス等のポインティングデバイスや、キーボード等の入力デバイスであり、コンピュータ200に各操作信号を入力するために用いられる。
表示装置207はディスプレイ等の表示デバイスであり、コンピュータ200による処理結果等を表示する。
外部I/F208は、外部装置とのインタフェースである。外部装置には、例えば、記録媒体210等が含まれる。コンピュータ200は、例えば、記録媒体210に所定のプログラムを格納し、この記録媒体210に格納されたプログラムを外部I/F208を介して、コンピュータ200にインストールすることにより、所定のプログラムが実行可能となる。
バス209は、上記の各構成要素に接続され、アドレス信号、データ信号、及び各種制御信号等を伝送する。
なお、図2の構成はあくまで一例である。例えば、コンピュータ200は、入力装置206、表示装置207等を外部に有していても良い。
(画像形成装置のハードウェア構成)
図3は、一実施形態に係る画像形成装置のハードウェア構成例を示す図である。画像形成装置120は、一般的なコンピュータの構成を含み、例えば、CPU301、RAM302、ROM303、ストレージ部304、ネットワークI/F305、操作部306、スキャナ307、プリンタ308、及び画像メモリ309、外部I/F310、及びバス312等を有する。
CPU301は、ROM303やストレージ部304等に格納されたプログラムやデータをRAM302上に読み出し、処理を実行することで、画像形成装置120の各機能を実現する演算装置である。RAM302は、CPU301のワークエリア等として用いられる揮発性のメモリである。ROM303は、電源を切ってもプログラムやデータを保持することができる不揮発性のメモリである。
ストレージ部304は、例えば、HDDや、SSD等の大容量の記憶装置であり、OS(Operation System)、アプリケーションプログラム、各種のデータ等を記憶する。
ネットワークI/F305は、画像形成装置120をネットワーク140に接続するための通信インタフェースである。
操作部306は、利用者の入力操作を受け付ける、例えば、タッチパネル等の入力デバイスと、画像等を表示する、例えば、LCD(Liquid Crystal Display)等の表示デバイス部とを有する表示入力部である。また、操作部306は、一般的なコンピュータの構成(例えば、CPU、RAM、ROM、ストレージ部、ネットワークI/F等)を有し、例えば、ウェブブラウザ等のプログラムを実行可能なものであっても良い。
スキャナ307は、原稿から画像を読み取り、画像データに変換する読取装置である。プリンタ308は、画像データを印刷する印刷装置である。画像メモリ309は、画像の読み取り、印刷、コピー等における画像処理で作業領域として用いるメモリである。
外部I/F310は、外部装置とのインタフェースである。外部装置には、例えば、ICカードリーダ311や、生体認証装置等の外部認証装置や、記録媒体等が含まれる。
バス312は、上記の各構成要素に接続され、アドレス信号、データ信号、及び各種制御信号等を伝送する。
<機能構成>
図4は、一実施形態に係る情報処理システムの機能構成図である。図4に示す情報処理システム100は、図1に示す情報処理システム100に対応している。
(サービス提供システムの機能構成)
サービス提供システム(サーバ装置)110は、機器アプリ配信部401、命令生成部402、機器ログ管理部403、認証認可部404、テナント設定管理部405、外部アプリ設定管理部406、テナント情報設定部409、外部アプリ情報設定部410、及び記憶部411等を有する。
サービス提供システム110は、機器アプリコンテンツの配信、画像形成装置に画像形成処理を実行させるための命令の投入(生成、配信等)、及び画像形成装置120の管理等を行うためのサービスを提供する。サービス提供システム110は、一例として、クラウドサービス等として提供される。
機器アプリ配信部401は、画像形成装置120が、画像形成装置120のウェブブラウザ部121で動作する機器アプリコンテンツ412を配信する手段であり、例えば、図2のCPU201で実行されるプログラムによって実現される。
機器アプリコンテンツ412は、画像形成装置120のウェブブラウザ部121で動作するウェブコンテンツであり、画像形成装置120の操作画面の表示、及び画像形成装置120による画像形成処理の制御等を行う。
命令生成部402は、画像形成装置120に対する命令(例えば、印刷命令等の命令データ)を生成し、画像形成装置120からの要求に応じて、生成した命令を画像形成装置120に配信する。命令生成部402は、例えば、図2のCPU201で実行されるプログラムによって実現される。
機器ログ管理部403は、画像形成装置120から送信される画像形成装置120のステータス情報や、実行した画像形成処理に関するログ情報(以下、ジョブログと呼ぶ)等を記憶し、管理する。機器ログ管理部403は、例えば、図2のCPU201で実行されるプログラムによって実現される。
認証認可部404は、サービス提供システムのユーザの認証処理、画像形成装置120の認証、認可処理、及びユーザ、画像形成装置120に関する情報(認証認可情報415)の管理等を行う。認証認可部404は、例えば、図2のCPU201で実行されるプログラムによって実現される。
テナント設定管理部405は、例えば、テナント情報設定部409等によって設定されるテナント設定情報414を記憶部411に記憶して、管理する手段であり、例えば、図2のCPU201で実行されるプログラムによって実現される。
テナントとは、複数の画像形成装置120を1つのグループとして一括して管理する管理単位である。テナントは、例えば、会社、事業部、職場等の任意の単位で画像形成装置120の設定を行うために用いられる。テナント設定管理部405が管理するテナント設定情報414については、後述する。
外部アプリ設定管理部406は、例えば、外部アプリ情報設定部410等によって設定される外部アプリコンテンツに関する設定情報である外部アプリ設定情報413を記憶部411に記憶して、管理する。外部アプリ設定管理部406は、例えば、図2のCPU201で実行されるプログラムによって実現される。
外部アプリコンテンツは、画像形成装置120や、機器アプリコンテンツ412を提供するベンダーとは異なるサードパーティ等から提供されるウェブコンテンツであり、図4の例では、外部サーバ130の外部アプリ配信部431によって提供される。
一例として、外部アプリコンテンツは、外部サーバ130の記憶部435に記憶した画像やドキュメント等のコンテンツの一覧を選択可能に表示し、選択されたコンテンツの印刷等を、機器アプリコンテンツ412に要求する。
なお、上記の機器アプリ配信部401、命令生成部402、機器ログ管理部403、認証認可部404、テナント設定管理部405、外部アプリ設定管理部406等のサービス407は、例えば、ウェブAPI等のAPI408を介して、外部から利用可能である。例えば、画像形成装置120、外部サーバ130、テナント情報設定部409、及び外部アプリ情報設定部410等は、サービス提供システム110のAPI(第3のインタフェース)408を利用して、サービス407の利用を要求することができる。
テナント情報設定部409は、テナントの管理を行う管理者が、テナントの管理下にある画像形成装置120で、どの外部アプリコンテンツを実行させるかを設定するための手段であり、例えば、図2のCPU201で実行されるプログラムによって実現される。テナントの管理者は、例えば、PC(Personal Computer)や、タブレット端末等の情報端末のウェブブラウザで、テナント情報設定部409が提供するウェブ画面を表示し、設定を行う。
外部アプリ情報設定部410は、外部アプリコンテンツの開発者(又は提供者)が、画像形成装置120で実行可能な外部アプリコンテンツを登録、設定するための手段であり、例えば、図2のCPU201で実行されるプログラムによって実現される。外部アプリコンテンツの開発者等は、例えば、情報端末のウェブブラウザで、外部アプリ情報設定部410が提供するウェブ画面を表示し、外部アプリコンテンツの登録、設定等を行う。
記憶部411は、例えば、前述した機器アプリコンテンツ412、外部アプリ設定情報413、テナント設定情報414、認証認可情報415等を記憶する記憶手段である。記憶部411は、例えば、図2のストレージ部204、RAM202、及び図2のCPU201で動作するプログラム等によって実現される。
なお、図4に示すサービス提供システム110の各機能構成は、複数の情報処理装置に分散して配置されていても良い。
(画像形成装置の機能構成)
画像形成装置120は、ウェブブラウザ部121で表示した操作画面への操作に従って所定の入出力機能を実行する電子機器の一例である。
画像形成装置120は、入出力処理部421と、ウェブブラウザ部121とを有する。
入出力処理部421は、ウェブブラウザ部121に、画像形成装置120の入出力機能である画像形成機能を利用するための第1のAPI(第1のインタフェース)422を提供し、第1のAPI422で受け付けた画像形成機能を利用する処理を実行する。
ウェブブラウザ部121は、サービス提供システム110から取得する機器アプリコンテンツ(第1のウェブコンテンツ)、及び外部サーバ130等から取得する外部アプリコンテンツ(第のウェブコンテンツ)を動作させるウェブブラウザである。ウェブブラウザ部121は、例えば、図3のCPU301で実行されるプログラム、又はコンピュータの構成を有する操作部306で実行されるプログラム等によって実現される。
ウェブブラウザ部121で動作する機器アプリコンテンツ423は、ウェブブラウザ部121で動作する外部アプリコンテンツ425に、画像形成装置120の画像形成機能を利用するための第2のAPI(第2のインタフェース)424を提供する。
図5は、第1の実施形態に係る画像形成装置の機能構成図である。図5は、図4に示す画像形成装置120のさらに詳細な構成を示している。図5に示すように、画像形成装置120のウェブブラウザ部121では、サービス提供システム110からダウンロード(取得)された機器アプリコンテンツ423が動作する。
好ましくは、ウェブブラウザ部121は、画像形成装置120の起動後に自動的に機器アプリコンテンツ423を表示し、他のURLへの変更はできないようになっている。
また、機器アプリコンテンツ423は、自コンテンツ内にiframe要素を有し、iframe501の範囲内に外部アプリコンテンツ425を表示させる。
また、入出力処理部421は、例えば、API制御部502と、画像形成部503とを含む。
API制御部502は、画像形成装置120の画像形成機能を利用するための第1のAPI(第1のインタフェース)422を提供し、第1のAPI422で受け付けた処理を画像形成部503に実行させる。
好ましくは、API制御部502は、予め定められた機器アプリコンテンツ423とは異なるウェブコンテンツ(例えば、外部アプリコンテンツ425)から、第1のAPIで受け付けた命令を拒否、又は無視する。これにより、画像形成装置120で実行される全ての画像形成処理の記録(ジョブログ等)を、機器アプリコンテンツ423と、サービス提供システム110とで、管理することができるようになる。API制御部502は、例えば、図3のCPU301で実行されるプログラムによって実現される。
画像形成部503は、API制御部502からの制御に応じて、画像形成装置120の画像形成機能を利用する処理(例えば、印刷、コピー、スキャン等)を実行する。画像形成部503は、例えば、図3のスキャナ307、プリンタ308、画像メモリ309、及び図3のCPU301で動作するプログラム等によって実現される。
上記の構成により、画像形成装置120のウェブブラウザ部121で動作する機器アプリコンテンツ423は、機器アプリコンテンツ423のiframe501内に、外部アプリコンテンツ425の表示画面を表示させる。
また、機器アプリコンテンツ423は、第2のAPI424で、外部アプリコンテンツ425から受け付けた画像形成装置120の画像形成機能を利用する処理を、第1のAPI422を用いて、入出力処理部421に実行させる。
(外部サーバ)
外部サーバ130は、サービス提供システム110を利用して、画像形成装置120の画像形成機能等を利用するウェブアプリケーション(以下、外部アプリと呼ぶ)を提供するシステムである。外部サーバ130は、例えば、外部アプリ配信部431、外部アプリサービス432、記憶部435等を有する。
外部アプリ配信部431は、例えば、サードパーティ等によって提供される外部アプリのコンテンツ部分(外部アプリコンテンツ425)を、画像形成装置120に提供する。
外部アプリサービス432は、例えば、画像形成装置120のウェブブラウザ部121で動作する外部アプリコンテンツ425と通信し、外部アプリの機能を実現する。なお、外部サーバ130は、外部アプリコンテンツ425だけで外部アプリの機能を実現し、外部アプリサービス432が存在しない構成であっても良い。
なお、外部アプリ配信部431、及び外部アプリサービス432等のサービス433は、例えば、ウェブAPI等のAPI434を介して、外部から利用可能である。
外部アプリ配信部431、及び外部アプリサービス432は、例えば、図2のCPU201で実行されるプログラムによって実現される。
記憶部435は、例えば、外部アプリ配信部431が配信する外部アプリコンテンツや、画像や、ドキュメント等のコンテンツが記憶されている。記憶部435は、例えば、図2のストレージ部204、及び図2のCPU201で動作するプログラム等によって実現される。
なお、図4に示す外部サーバ130の各機能構成は、複数の情報処理装置に分散して配置されていても良い。
(外部アプリ設定情報)
ここで、外部アプリ設定管理部406が管理する外部アプリ設定情報について説明する。
図6は、第1の実施形態に係る外部アプリ設定情報の設定画面の例を示す図である。図6(a)は、外部アプリ設定情報を設定する開発者コンソールのトップ画面610の例を示している。開発者コンソールを利用するためには、例えば、認証認可部404により「開発者」の権限が与えられたアカウントで、情報端末等のウェブブラウザを用いて、外部アプリ情報設定部410にログインする必要がある。
図6(a)に示す開発者コンソールのトップ画面610には、現在登録されている外部アプリの一覧が表示されており、「新規作成」ボタン611を選択することにより、例えば、図6(b)に示すような、外部アプリID、及び説明の入力画面620が表示される。外部アプリID、及び説明の入力画面620には、外部アプリのIDの入力欄621と、外部アプリの説明の入力欄622とが表示されている。これらの入力欄に外部アプリのIDとその説明を入力して、「作成」ボタン623を選択することにより、例えば、クライアントキーとクライアントシークレットが発行され、リストに外部アプリが追加される。
クライアントキーとクライアントシークレットは、外部アプリがサービス提供システムのAPI408を利用する際に使用する認証情報の一例である。
外部アプリの開発者は、サービス提供システム110のAPI408を利用する外部アプリを作成し、例えば、外部サーバ130上に配置する。
また、外部アプリの開発者は、画像形成装置120に外部アプリを表示させる場合、例えば、図(a)のトップ画面610において、「MFPに表示」の欄のプルダウンメニュー612等により、「YES」を選択する。これにより、例えば、図6(c)に示すような外部アプリ設定情報の設定画面630が表示される。
外部アプリ設定情報の設定画面630では、外部アプリのURL631、外部アプリのアプリタイトル632、外部アプリのアイコン、外部アプリが利用する必要な情報633、外部アプリの公開範囲634等の情報を設定する。
外部アプリのURL631は、画像形成装置120が外部アプリの外部アプリコンテンツを取得するためのURL(Uniform Resource Locator)情報である。外部アプリのアプリタイトル632は、外部アプリの表示名を示すテキスト情報である。多言語で表示が必要な場合は、多言語での言語設定を設定可能である。
必要な情報633では、外部アプリが使用するユーザリソースの認可情報(スコープ)の設定を行う。必要な情報633には、例えば、ICカード情報の取得、ユーザ情報の取得、MFP(画像形成装置120)でのジョブ実行等が含まれる。
公開範囲は、外部アプリの公開範囲であり、例えば、外部アプリを公開するテナント、又は全体公開を指定する。
外部アプリの開発者が、上記の設定を行い、「設定」ボタン635を選択すると、外部アプリ設定管理部406は、設定された情報を、記憶部411の外部アプリ設定情報413に記憶する。このとき、外部アプリ設定情報413に記憶される外部アプリ設定情報の例を図7に示す。
図7は、第1の実施形態に係る外部アプリ設定情報の例を示す図である。図7は、例えば、図6(c)の外部アプリ設定情報の設定画面630で設定された外部アプリ設定情報701の例を示している。
図7に示す外部アプリ設定情報701において、「url」は、図6(c)の外部アプリのURL631に対応している。「names」は、図6(c)のアプリタイトル632に対応している。「icon」は、図6(c)で設定されたアイコンをData URIに変換した画像データである。
「scopes」は、図6(c)の必要な情報633に対応しており、外部アプリが必要とする認可情報の一覧である。「destinations」は、図6(c)の公開範囲634に対応しており、公開範囲にしてされたテナントの情報の一覧である。なお、図6(c)において、公開範囲634が「全体公開」の場合、テナントの一覧に代えて、例えば、文字列「public」が記憶される。
(テナント設定情報)
次に、テナント設定管理部405が管理するテナント設定情報について説明する。
図8は、第1の実施形態に係るテナント設定情報の設定画面の例を示す図である。図8(a)は、テナント設定情報を設定する管理者コンソールのトップ画面810の例を示している。管理者コンソールを利用するためには、例えば、認証認可部404により「管理者」の権限が与えられたアカウントで、情報端末等のウェブブラウザを用いて、テナント情報設定部409にログインする必要がある。
テナントの管理者は、テナント情報設定部409にログインすると、「管理者」の権限を有するテナント全体、又はテナントに所属する画像形成装置120の設定を行うことができる。図8の例では、テナント全体に設定を行う場合の設定画面の例を示している。
管理者コンソールのトップ画面810の「パネルに表示するアプリケーション」には、画像形成装置120に表示される外部アプリの一覧が表示されている。テナントの管理者は、画像形成装置120に表示される外部アプリを追加する場合、URLの入力欄811に外部アプリを取得するためのURL情報を入力し、「検索」ボタン812を選択する。これにより、外部アプリの検索処理が実行され、追加可能な外部アプリがある場合、図8(b)に示すような、検索結果を表示する画面820が表示される。なお、外部アプリの検索処理については後述する。
図8(b)の検索結果を表示する画面820には、検索された外部アプリのアプリタイトル821、アイコン、必要な情報822等が表示される。テナントの管理者は、検索結果を表示する画面820に表示された外部アプリの情報を確認し、問題がなければ、「追加」ボタン823を選択する。これにより、パネルに表示するアプリケーション824の一覧に、検索された外部アプリが追加され、テナント設定管理部405によって、記憶部411のテナント設定情報414に記憶される。テナント設定管理部405が、記憶部411に記憶するテナント設定情報の例を図9(a)に示す。
図9(a)の例では、テナント設定情報901には、テナントID、テナント名、登録済アプリID、URL、タイトル、機能等の情報が含まれる。
テナントIDは、テナントを識別する識別情報である。テナント名は、テナントの名前を示す情報である。登録済アプリIDには、例えば、対応するテナントに登録されている外部アプリの識別情報が記憶される。URLは、登録済外部アプリの取得先のURL情報である。タイトルは、アプリの表示名である。機能は、外部アプリが使用する機能の情報である。
なお、図8の例では、外部アプリのURL情報を、URLの入力欄811に直接入力している。このURL情報は、例えば、外部アプリの開発者や提供者等から、テナントの管理者にメール等で提供されることを想定している。ただし、これは一例であり、外部アプリの検索処理は、例えば、外部アプリの名前で検索するものであっても良い。
また、外部アプリの検索処理は、例えば、外部アプリの登録時にタグ情報を入力し、タグのキーワード検索で検索された外部アプリの中から、テナント管理者が外部アプリを選択するもの等であっても良い。或いは、外部アプリの検索処理は、外部アプリの利用数が多い順に表示させて、その中からテナント管理者が外部アプリを選択するもの等であっても良い。
(認証認可情報)
認証認可部404が管理する認証認可情報415の例を図9(b)に示す。図9(b)の例では、認証認可情報902には、アカウントID、パスワード、認証コード、名前、メールアドレス、認可済アプリ、及び権限情報等が含まれる。
アカウントIDは、利用者を識別する識別情報である。パスワードは、アカウントIDに対応するパスワードである。アカウントID及びパスワードは、利用者の認証情報の一例である。
認証コードは、例えば、利用者のICカード等に記憶されている認証情報であり、例えば、ICカード認証等に用いられる。認証コードは、利用者の認証情報の別の一例である。
名前は、利用者の名前である。メールアドレスは、利用者のメールアドレスである。認可済アプリは、利用者が認可している外部アプリのアプリIDの一覧である。権限情報は、利用者の権限を示す情報である。権限情報には、例えば、前述した「開発者」、「管理者」等の認可済の権限が記憶されている。
<処理の流れ>
続いて、情報処理システム100による情報処理方法の処理の流れについて説明する。
(外部アプリの検索処理)
図10は、第1の実施形態に係る外部アプリの検索処理の例を示す図である。この処理は、図8(a)に示すテナント設定情報を設定する管理者コンソールのトップ画面810において、URL情報を入力し、「検索」ボタン812を選択したときの検索処理を示している。
ステップS1001において、サービス提供システム110のテナント情報設定部409は、外部アプリのURL情報が指定されると、該当するURLの外部アプリがあるかを調べる。例えば、テナント情報設定部409は、記憶部411に記憶された外部アプリ設定情報413を検索して該当するURLを有する外部アプリがあるか否かを調べる。
該当するURLの外部アプリがない場合、テナント情報設定部409は処理を終了する。一方、該当する外部アプリがある場合、テナント情報設定部409は、処理をステップS1002に移行させる。
ステップS1002に移行すると、テナント情報設定部409は、該当する外部アプリの公開範囲を確認し、全体公開となっているか否かを確認する。
外部アプリの公開範囲が全体公開である場合、テナント情報設定部409は、処理をステップS1004に移行させる。一方、外部アプリの公開範囲が全体公開でない場合、テナント情報設定部409は、処理をステップS1003に移行させる。
ステップS1003に移行すると、テナント情報設定部409は、該当する外部アプリの公開範囲に指定されているテナントIDを確認し、テナント管理者のテナントが、該当する外部アプリの公開対象のテナントか否かを調べる。
テナント管理者のテナントが、該当する外部アプリの公開対象のテナントでない場合、テナント情報設定部409は、処理を終了させる。一方、テナント管理者のテナントが、該当する外部アプリの公開対象のテナントである場合、テナント情報設定部409は、処理をステップS1004に移行させる。
ステップS1004において、テナント情報設定部409は、指定されたURL情報に該当する外部アプリの情報を、例えば、図8(b)に示す管理者コンソールの検索結果を表示する画面820に表示する。
上記の処理により、テナント管理者が管理するテナントに登録可能な外部アプリの情報が、管理者コンソールの検索結果を表示する画面820に表示されるようになる。
(操作画面の表示処理)
図11、12は、第1の実施形態に係る操作画面の表示処理の例を示すシーケンス図である。ここでは、画像形成装置120が、電源投入等により初期化された状態から、操作画面を表示するまでの処理の例について説明する。
ステップS1101において、例えば、画像形成装置120への電源投入や初期化処理等により、ウェブブラウザ部121が初期化された状態で起動するものとする。
ステップS1102において、画像形成装置120のウェブブラウザ部121は、予め定められたサービス提供システム110の機器アプリ配信部401のURLに対して、機器アプリコンテンツの取得要求を送信する。
ステップS1103において、画像形成装置120のウェブブラウザ部121は、サービス提供システム110の機器アプリ配信部401から配信される機器アプリコンテンツを取得する。
ステップS1004において、ウェブブラウザ部121は、取得した機器アプリコンテンツ423を、操作部306に表示させる。
ステップS1105において、機器アプリコンテンツ423は、ロードされた後に、サービス提供システム110の認証認可部404に対して、デバイストークンの取得要求を送信する。このデバイストークンの取得要求には、予め画像形成装置120にインストールされている証明書情報が含まれるものとする。
ステップS1104において、サービス提供システム110の認証認可部404は、画像形成装置120から受信したデバイストークンの取得要求に含まれる証明書情報を検証する。証明書情報が正当なものであることが確認されると、認証認可部404は、デバイストークンを発行し、要求元の機器アプリコンテンツ423に送信する。
デバイストークンは、例えば、期限付きの権限認証情報(権限)であり、機器アプリコンテンツ423は、サービス提供システム110に要求情報を送信する際に、デバイストークンを付加して送信する。サービス提供システム110は、受信した要求情報に含まれるデバイストークンを検証することにより、要求情報が正当な画像形成装置120から送信された要求情報であることを判断する。
ステップS1107において、画像形成装置120の機器アプリコンテンツ423は、サービス提供システム110のテナント設定管理部405に、外部アプリ一覧情報の取得要求を送信する。この外部アプリ一覧情報の取得要求には、ステップS1106で取得したデバイストークンが含まれる。
ステップS1106において、画像形成装置120から外部アプリ一覧の取得要求を受信したテナント設定管理部405は、取得要求に含まれるデバイストークンの検証を、認証認可部404に要求する。
ステップS1109において、認証認可部404は、要求されたデバイストークンの検証を行う。ここでは、ステップS1106で発行したデバイストークンであるため検証結果「OK」をテナント設定管理部405に通知する。
ステップS1110において、デバイストークンの検証結果がOKとなった外部アプリ一覧の取得要求に応じて、外部アプリ一覧情報を要求元の機器アプリコンテンツ423に送信する。
ステップS1111において、画像形成装置120の機器アプリコンテンツ423は、受信した外部アプリ一覧に応じた操作画面を、操作部306に表示させる。
例えば、サービス提供システム110から受信した外部アプリ一覧に、外部アプリの情報が含まれていない場合、機器アプリコンテンツ423は、例えば、図13(a)に示すように、操作画面1310に機器アプリコンテンツの通常のトップ画面1311を表示させる。
一方、サービス提供システム110から受信した外部アプリ一覧に、外部アプリの情報が含まれている場合、機器アプリコンテンツ423は、例えば、図13(b)に示すように、操作画面1320に、外部アプリの一覧1321を表示する。
図14に、第1の実施形態に係る外部アプリ一覧情報の例を示す。テナント設定管理部405は、例えば、記憶部411に記憶されたテナント設定情報414と、外部アプリ設定情報413を参照して、画像形成装置120が属するテナントで利用可能な外部アプリ一覧情報1401を生成し、画像形成装置120に送信する。
なお、外部アプリ一覧情報1401に含まれる外部アプリ設定情報は、図7に示す外部アプリ設定情報701から、不要な情報である「destinations」情報が削除されている。
画像形成装置120の機器アプリコンテンツ423は、図14に示すような外部アプリ一覧情報1401に基づいて、図13(b)に示すような、外部アプリの一覧1321を、操作画面に表示させる。
ここでは、ステップS110で、テナント設定管理部405から、図14に示すような外部アプリ一覧情報1401送信されるものとして、以下の説明を行う。
ステップS1112において、利用者は、図13(b)に示すような操作画面1320で、外部アプリの選択操作を行う。
ステップS1113において、機器アプリコンテンツ423は、iframe要素を含んでおり、iframeに対して、選択された外部アプリのURLを指定する。
ステップS1114において、画像形成装置120のウェブブラウザ部121は、指定されたURLに従って、外部サーバ130の外部アプリ配信部431に外部アプリコンテンツの取得要求を送信する。
ステップS1115において、画像形成装置120のウェブブラウザ部121は、外部サーバ130の外部アプリ配信部431から配信される外部アプリコンテンツを取得する。
ステップS1116において、ウェブブラウザ部121は、取得した外部アプリコンテンツ425を表示させる。この外部アプリコンテンツ425は、機器アプリコンテンツ423のiframe内に表示される。
ステップS1117において、外部アプリコンテンツ425は、機器アプリコンテンツ423のiframe内に、外部アプリコンテンツ425の操作画面を表示させる。このとき、表示される外部アプリコンテンツ425操作画面の例を図13(c)に示す。
図13(c)において、機器アプリコンテンツ423の操作画面1330には、iframeの領域1331が含まれ、iframeの領域1331内に外部アプリコンテンツ425の操作画面1332が表示されている。図13(c)の例では、外部アプリコンテンツ425の操作画面1332には、「ログイン」ボタン1333が表示されている。
続いて、図12を参照して、操作画面の表示処理の説明を続ける。
ステップS1118において、利用者は、例えば、図13(c)に示す「ログイン」ボタン1333を選択することにより、ログインの開始操作を行う。
ステップS1119において、ログインの開始操作を受け付けた外部アプリコンテンツ425は、機器アプリコンテンツ423にログイン要求を行う。
ステップS1120において、外部アプリコンテンツ425からログイン要求を受け付けた機器アプリコンテンツ423は、ログイン画面を表示させる。このとき、表示されるログイン画面の例を図13(d)に示す。
図13(d)の例では、機器アプリコンテンツ423は、外部アプリコンテンツ425による操作画面の上に、ログイン画面1341をポップアップ表示させている。利用者は、ログイン画面1341のユーザIDの入力欄1342にユーザID(アカウントID)を入力し、パスワードの入力欄1343にパスワードを入力して、「OK」ボタン1344を選択することにより、アカウント情報を入力することができる。
ステップS1121において、利用者は、例えば、図13(d)に示すようなログイン画面1341にアカウント情報を入力する。
ステップS1122において、アカウント情報の入力を受け付けた機器アプリコンテンツ423は、サービス提供システム110の認証認可部404に、外部アプリユーザトークンの取得要求を送信する。この外部アプリユーザトークンの取得要求には、デバイストークン、アカウント情報、外部アプリのアプリID等が含まれる。
ステップS1123において、サービス提供システム110の認証認可部404は、外部アプリユーザトークンの取得要求を受信すると、取得要求に含まれるデバイストークンを検証して、正当な画像形成装置120からの要求であることを確認する。また、認証認可部404は、取得要求に含まれるアカウント情報を検証して、画像形成装置120が属するテナントが、指定されたアカウントに画像形成装置120の利用を許可していることを確認する。さらに、認証認可部404は、指定されたアカウントの利用者が、指定された外部アプリに対して、既に認可を行っているかを確認する。
ここで、指定されたアカウントの利用者が、指定された外部アプリに対して認可を行っていない場合(未認可の場合)、ステップS1123〜S1127の処理が実行される。一方、指定されたアカウントの利用者が、指定された外部アプリに対して認可を行っている場合(認可済の場合)、ステップS1128の処理が実行される。
まず、未認可の場合について説明を行う。
ステップS1123において、サービス提供システム110の認証認可部404は、要求元の機器アプリコンテンツ423に対して、外部アプリが未認可であることを示す未認可エラーを送信する。この未認可エラーには、未認可の外部アプリユーザトークンが含まれる。
ステップS1124において、機器アプリコンテンツ423は、未認可エラーを受信すると、利用者に認可を要求する認可要求画面を表示する。このとき、機器アプリコンテンツ423が表示する認可要求画面の例を図13(e)に示す。
図13(e)の例では、機器アプリコンテンツ423は、外部アプリコンテンツ425による操作画面の上に、認可要求画面1351をポップアップ表示させている。利用者は、認可要求画面1351において、「許可」ボタン1352を選択することにより外部アプリの認可を行うことができる。
ステップS1125において、利用者は、例えば、図13(e)に示すような認可要求画面1351において、「許可」ボタン1352を選択し、承認操作を行う。
ステップS1126において、利用者の承認操作を受け付けた機器アプリコンテンツ423は、サービス提供システム110の認証認可部404に対して、未認可の外部アプリユーザトークンを付加して、認可承認通知を送信する。
ステップS1127において、認可承認通知を受信したサービス提供システム110の認証認可部404は、認可された外部アプリのアプリIDを認証認可情報415に記憶する。また、認証認可部404は、デバイストークンを継承した外部アプリユーザトークンを、機器アプリコンテンツ423に送信する。
なお、外部アプリが認可済の場合、ステップS1123〜S1126の処理を省略して、ステップS1128において、認証認可部404は、外部アプリユーザトークンを、機器アプリコンテンツ423に送信する。
ステップS1129において、機器アプリコンテンツ423は、サービス提供システム110から受信した外部アプリユーザトークンを含むログイン成功通知を、ログイン要求の要求元の外部アプリコンテンツ425に通知する。
以後、外部アプリコンテンツ425は、通知された外部アプリユーザトークン(権限の一例)を利用して、サービス提供システム110のAPIを利用することができるようになる。
ステップS1130において、ログイン成功通知を受信した外部アプリコンテンツ425は、ログイン後の操作画面を表示する。このとき、外部アプリコンテンツ425が表示するログイン後の操作画面の例を、図13(f)に示す。
図13(f)の例では、機器アプリコンテンツ423の操作画面1360のiframe1361内に、外部アプリコンテンツ425の操作画面1362が表示されている。
上記の処理により、画像形成装置120は、利用者によって選択された外部アプリの操作画面を、操作部306に表示することができるようになる。
(印刷処理)
図15は、第1の実施形態に係る印刷処理の例を示すシーケンス図である。
図13(f)に示す操作画面は、例えば、外部サーバ130の外部アプリサービス432が、記憶部435に記憶したドキュメントや画像等のコンテンツを一覧表示し、選択したコンテンツを画像形成装置120に出力する外部アプリの操作画面であるものとする。
ステップS1501において、利用者は、図13(f)に示す外部アプリコンテンツ425の操作画面1362から、ファイル選択操作を行う。
ステップS1502において、利用者のファイル選択操作を受け付けた外部アプリコンテンツ425は、印刷情報を外部サーバ130の外部アプリサービス432に送信する。この印刷情報には、例えば、選択されたファイルを識別するファイルID、及び図12のステップS1129で取得した外部アプリユーザトークン等が含まれる。
ステップS1503において、外部サーバ130の外部アプリサービス432は、サービス提供システム110の命令生成部402に対して、ファイルIDで指定された印刷対象ファイルと、外部アプリユーザトークンを含む印刷情報を送信する。
ステップS1504において、印刷情報を受信した命令生成部402は、印刷情報に含まれる外部アプリユーザトークンの検証を、認証認可部に要求する。
ステップS1505において、認証認可部404は、外部アプリユーザトークンの検証を行う。ここでは、外部アプリユーザトークンは、図12のステップS1127又はS1128で発行されたものなので、認証認可部404は、検証結果「OK」を返信する。
ステップS1506において、命令生成部402は、外部アプリユーザトークンが正当なものであることが確認できたので、印刷対象ファイルを、画像形成装置120が印刷可能なデータ形式(例えば、ポストスクリプトファイル等)に変換する。
ステップS1507において、命令生成部402は、変換された印刷データを画像形成装置120で印刷するための印刷命令を生成する。この印刷命令には、例えば、印刷命令を識別する「命令ID」、「印刷処理」を示す情報、「印刷データ(又は印刷データを取得するためのURL情報)」、「印刷の設定情報」等が含まれる。
ステップS1508において、命令生成部402は、印刷命令を生成したことを示す成功通知を、要求元の外部アプリサービス432に通知する。この成功通知には、作成した印刷命令の命令IDが含まれる。
ステップ1509において、外部アプリサービス432は、命令生成部402から受信した成功通知に含まれる命令IDを含む成功通知を、印刷情報を送信した機器アプリコンテンツ423に送信する。
ステップS1510において、画像形成装置120の外部アプリコンテンツ425は、第2のAPI424を用いて、機器アプリコンテンツ423に印刷実行要求を行う。この印刷実行要求には、外部アプリユーザトークンと、外部アプリサービス432から受信した成功通知に含まれる命令IDとが含まれる。
例えば、外部アプリコンテンツ425は、ウェブブラウザ部121によって提供されるポストメッセージ(Post Message)機能を利用して、予め定められた印刷実行要求を行うためのAPI命令を機器アプリコンテンツ423に送信する。
ポストメッセージは、ウェブブラウザ部121に表示されたウェブコンテンツが、別のウェブコンテンツや、iFrame等に表示された別ドメインのウェブコンテンツと通信するための手段である。例えば、機器アプリコンテンツ423は、第2のAPI424と同じドメインに、第2のAPI424にアクセスするための送受信用のHTMLを設置して、iFrame内に表示する。これにより、機器アプリコンテンツ423は、Frame内に表示された外部アプリコンテンツ425と、ポストメッセージ経由で通信することができるようになる。
ステップS1511において、第2のAPI424で印刷実行要求を受け付けた機器アプリコンテンツ423は、印刷命令の取得を要求する命令取得要求をサービス提供システム110の命令生成部402に送信する。この命令取得要求には、印刷実行要求に含まれる外部アプリユーザトークン、及び命令IDが含まれる。
ステップS1512において、命令取得要求を受信した命令生成部402は、命令取得要求に含まれる外部アプリユーザトークンの検証を、認証認可部に要求する。
ステップS1513において、認証認可部404は、外部アプリユーザトークンの検証を行う。例えば、認証認可部404は、外部アプリユーザトークンが継承したデバイストークンの検証、外部アプリユーザトークンの検証、及び画像形成装置120が属するテナントが利用者の画像形成装置120の利用を許可していることの検証等を行う。認証認可部404は、これらの全てが正当であることを確認し、命令生成部402に検証結果「OK」を返信する。
ステップ1514において、命令生成部402は、外部アプリユーザトークンが正当なものであることが確認できたので、命令取得要求に含まれる命令IDに対応する印刷命令を、要求元の機器アプリコンテンツ423に送信する。この印刷命令には、前述したように、命令ID、印刷処理を示す情報、印刷データ(又は印刷データを取得するためのURL情報)、及び印刷の設定情報(例えば、部数、カラー/モノクロ、両面/片面等)が含まれる。
ステップS1515において、画像形成装置120は、サービス提供システム110から受信した印刷命令に含まれる印刷データ、或いは印刷命令に含まれるURLから取得した印刷データの印刷を、第1のAPI422を用いて入出力処理部421に要求する。
ステップS421において、入出力処理部421のAPI制御部502は、第1のAPIで印刷命令を受け付けると、印刷命令を要求元が、機器アプリコンテンツ423であることを確認する。例えば、API制御部502は、機器アプリコンテンツ423のドメイン情報(プロトコル種別、ドメイン名、ポート等)を予め記憶しておき、印刷命令の要求元のドメイン情報と比較することにより、印刷命令の要求元を確認する。
印刷命令の要求元が、機器アプリコンテンツ423である場合、API制御部502は、受け付けた印刷命令に従って画像形成部503を制御し、印刷データの印刷を実行する。一方、印刷命令の要求元が、機器アプリコンテンツ423でない場合(例えば、要求元が外部アプリコンテンツ425である場合等)、API制御部502は、第1のAPI422で受け付けた印刷命令を拒否、又は無視する。
ここでは、印刷命令の要求元は、機器アプリコンテンツ423なので、入出力処理部421は、印刷を実行する。
ステップS1517において、入出力処理部421のAPI制御部502は、印刷が完了したことを示す完了通知を、機器アプリコンテンツ423に通知する。
ステップS1518において、入出力処理部421から完了通知を受け付けた機器アプリコンテンツ423は、例えば、完了した印刷処理の部数情報、カラー原稿、白黒原稿の枚数、及び画像形成装置120のカウンタ情報等を含むジョブログに、デバイストークンを付加して、サービス提供システム110の機器ログ管理部403に送信する。
ステップS1519において、サービス提供システム110の機器ログ管理部403は、受信したジョブログに含まれるデバイストークンの検証を、認証認可部404に要求する。
ステップS1520において、認証認可部404は、要求されたデバイストークンの検証を行う。画像形成装置120のデバイストークンは、例えば、図11のステップS1106等で通知した正当なデバイストークンなので、認証認可部404は、検証結果「OK」を、機器ログ管理部403に返信する。
ステップS1521において、機器ログ管理部403は、デバイストークンの正当性が確認されたので、画像形成装置120から受信したジョグログを記憶する。
上記の処理により、画像形成装置120の機器アプリコンテンツ423は、外部アプリコンテンツ425の操作画面を、機器アプリコンテンツ423のiframe501内に表示する。
また、画像形成装置120の入出力処理部421は、機器アプリコンテンツ423から、画像形成機能を利用するための第1のAPIを提供する。
さらに、機器アプリコンテンツ423は、外部アプリコンテンツ425から、画像形成機能を利用するための第2のAPIを提供し、第2のAPIで受け付けた画像形成処理を、第1のAPIを用いて実行する。
これにより、本実施形態によれば、ウェブブラウザで表示した操作画面への操作に従って所定の入出力機能を実行する電子機器(画像形成装置120)において、外部アプリを用いて電子機器の所定の機能を容易に制御することができるようになる。
[第2の実施形態]
第2の実施形態では、画像形成装置120が、外部認証装置を用いて利用者の認証を行う場合の例について説明する。
<機能構成>
図16は、第2の実施形態に係る情報処理システムの機能構成図である。図16において、サービス提供システム110、及び外部サーバ130の機能構成は、図4に示す第1の実施形態における機能構成と同様である。
また、図16において、画像形成装置120は、図4に示す第1の実施形態に係る画像形成装置120の機能構成に加えて、ドライバ1601、ICカードリーダ1602、生体認証装置1603等を有する。なお、画像形成装置120の他の機能構成は、図4に示す第1の実施形態に係る画像形成装置120の機能構成と同様なので、ここでは相違点を中心に説明を行う。
ICカードリーダ1602、及び生体認証装置1603は、画像形成装置120の利用者の認証を行うための外部認証装置の一例である。画像形成装置120には、少なくとも1つの外部認証装置が接続されていれば良い。ここでは、画像形成装置120にICカードリーダ1602が接続されているものとして、以下の説明を行う。
ICカードリーダ1602は、例えば、USB(Universal Serial Bus)等の外部I/F310によって画像形成装置120に接続される。また、画像形成装置120のOS上には、ICカードリーダ1602を制御するためのドライバ1601が搭載されている。
ICカードリーダ1602で読み込まれたID情報は、例えば、ICカード読取通知等のイベントとして、ウェブブラウザ部121に通知される。通知された情報は、認証を行うための認証コードとして利用される。認証コードは、元情報への復元を防ぐため、例えば、ハッシュ化されて利用される。
<処理の流れ>
(ICカード未登録時の処理)
図17は、第2の実施形態に係るICカード未登録時の認証処理の例を示すシーケンス図である。この処理は、例えば、図12のステップS118以降の処理に対応している。また、図17の開始時点において、例えば、図19(a)に示すように、画像形成装置120の操作画面1910のiframe1911内に、外部アプリコンテンツ425により、ICカードのタッチを促すメッセージ1912が表示されているものとする。
ステップS1701において、利用者は、画像形成装置120に接続されたICカードリーダ1602に、ICカードをタッチさせること等により、ICカードの読取操作を行う。
ステップS1702において、ドライバ1601は、ICカードリーダ1602が読み出したICカードの情報を認証コードとして取得する。
ステップS1703、S1704において、ドライバ1601は、取得した認証コードを含むICカード読み取り通知を、ウェブブラウザ部121を介して、機器アプリコンテンツ423に通知する。
ステップ1705において、機器アプリコンテンツ423は、デバイストークン、認証コード、外部アプリIDを含む外部アプリ認証コードトークンの取得要求を、サービス提供システム110の認証認可部404に送信する。
ステップS1706において、外部アプリ認証コードトークンの取得要求を受け付けた認証認可部404は、取得要求に含まれるデバイストークンが正当であることを確認した後で、認証コードに紐付けられたアカウントの有無を確認する。例えば、認証認可部404は、図9(b)に示すような認証認可情報902に、認証コードIDが登録されているか否かを確認する。
ここでは、認証コードに紐付けられたアカウントがない場合(ICカードが未登録である場合)の処理について説明を行う。
認証認可部404は、認証コードに紐付けられたアカウントがない場合、機器アプリコンテンツ423に、ICカードが登録されていないことを示す未登録エラーを送信する。
ステップS1707において、未登録エラーを受信した機器アプリコンテンツ423は、カード登録画面を表示する。このとき、表示されるカード登録画面の例を図19(b)に示す。
図19(b)に示す操作画面1920の例では、機器アプリコンテンツ423は、外部アプリコンテンツ425による操作画面の上に、カード登録画面1921をポップアップ表示させている。利用者は、カード登録画面1921にユーザID(アカウントID)とパスワードを入力し、「登録」ボタン1922を選択することにより、アカウント情報を入力することができる。
ステップS1708において、利用者は、カード登録画面1921にアカウント情報を入力する。
ステップS1709において、アカウント情報の入力を受け付けた機器アプリコンテンツ423は、サービス提供システム110の認証認可部404に、外部アプリ認証コードの登録要求を送信する。この外部アプリ認証コードトークンの登録要求には、デバイストークン、認証コード、アカウント情報、外部アプリのアプリID等が含まれる。
ステップS1710において、サービス提供システム110の認証認可部404は、外部アプリ認証コードトークンの登録要求を受信すると、登録要求に含まれるデバイストークンを検証して、正当な画像形成装置120からの要求であることを確認する。また、認証認可部404は、登録要求に含まれるアカウント情報を検証して、画像形成装置120が属するテナントが、指定されたアカウントに画像形成装置120の利用を許可していることを確認する。画像形成装置120が属するテナントが、指定されたアカウントに画像形成装置120の利用を許可している場合、認証認可部404は、アカウント情報と認証コードを紐付けて、例えば、図9(b)に示すような認証認可情報902に記憶する。
また、認証認可部404は、未認可の外部アプリ認証コードトークンを含む未認可エラーを、要求元の機器アプリコンテンツ423に送信する。
ステップS1711において、未認可エラーを受信した機器アプリコンテンツ423は、認可要求画面を表示する。このとき、機器アプリコンテンツ423が表示する認可要求画面の例を図19(c)に示す。
図19(c)に示す操作画面1930の例では、機器アプリコンテンツ423は、外部アプリコンテンツ425による操作画面の上に、認可要求画面1931をポップアップ表示させている。利用者は、認可要求画面1931において、「許可」ボタン1932を選択することにより外部アプリの認可を行うことができる。
ステップS1712において、利用者は、例えば、図19(c)に示すような認可要求画面1931において、「許可」ボタン1932を選択し、承認操作を行う。
ステップS1713において、利用者の承認操作を受け付けた機器アプリコンテンツ423は、サービス提供システム110の認証認可部404に対して、未認可の外部アプリ認証コードトークンを付加して、認可承認通知を送信する。
ステップS1714において、認可承認通知を受信したサービス提供システム110の認証認可部404は、認可された外部アプリのアプリIDを、例えば、図9(b)に示すような認証認可情報902に記憶する。また、認証認可部404は、外部アプリ認証コードトークンを、機器アプリコンテンツ423に送信する。
ステップS1715において、機器アプリコンテンツ423は、サービス提供システム110から受信した外部アプリ認証コードトークンを含むログイン成功通知を、外部アプリコンテンツ425に通知する。
以後、外部アプリコンテンツ425は、通知された外部アプリ認証コードトークン(権限の一例)を利用して、サービス提供システム110のAPIを利用することができるようになる。
ステップS1716において、ログイン成功通知を受信した外部アプリコンテンツ425は、ログイン後の操作画面を表示する。このとき、外部アプリコンテンツ425が表示するログイン後の操作画面の例を、図13(f)に示す。
図19(d)の操作画面1940には、第1の実施形態と同様に、外部アプリコンテンツ425のログイン後の画面1941が、表示されている。
(ICカード登録後の処理)
図18は、第2の実施形態に係るICカード登録後の認証処理の例を示すシーケンス図である。なお、図18のステップS1701〜1705、S1715、S1716の処理は、図17に示すICカード未登録時の認証処理と同様なので、ここでは相違点を中心に説明を行う。
ステップS1801において、外部アプリ認証コードトークンの取得要求を受け付けた認証認可部404は、取得要求に含まれるデバイストークンが正当であることを確認した後で、認証コードに紐付けられたアカウントの有無を確認する。例えば、認証認可部404は、図9(b)に示すような認証認可情報902に、認証コードIDが登録されているか否かを確認する。
ここでは、認証コードに紐付けられたアカウントがある場合(ICカードが登録済である場合)の処理について説明を行う。
認証コードに紐付けられたアカウントがある場合、認証認可部404は、指定されたアカウントの利用者が、指定された外部アプリに対して、既に認可を行っているかを確認する。
ここで、指定されたアカウントの利用者が、指定された外部アプリに対して認可を行っていない場合(未認可の場合)、ステップS1801〜S1805の処理が実行される。一方、指定されたアカウントの利用者が、指定された外部アプリに対して認可を行っている場合(認可済の場合)、ステップS1806の処理が実行される。
まず、未認可の場合について説明を行う。
ステップS1801において、サービス提供システム110の認証認可部404は、要求元の機器アプリコンテンツ423に対して、外部アプリが未認可であることを示す未認可エラーを送信する。この未認可エラーには、未認可の外部アプリ認証コードトークンが含まれる。
ステップS1802において、機器アプリコンテンツ423は、未認可エラーを受信すると、例えば、図19(c)に示すような認可要求画面を表示する。
ステップS1803において、利用者は、例えば、図19(c)に示すような認可要求画面において、「許可」ボタン1352を選択し、承認操作を行う。
ステップS1804において、利用者の承認操作を受け付けた機器アプリコンテンツ423は、サービス提供システム110の認証認可部404に対して、未認可の外部アプリ認証コードトークンを付加して、認可承認通知を送信する。
ステップS1805において、認可承認通知を受信したサービス提供システム110の認証認可部404は、認可された外部アプリのアプリIDを、例えば、図9(b)に示すような認証認可情報902に記憶する。また、認証認可部404は、外部アプリ認証コードトークンを、機器アプリコンテンツ423に送信する。
なお、外部アプリが認可済の場合、ステップS1123〜S1126の処理を省略して、ステップS1806において、認証認可部404は、外部アプリ認証コードトークンを、機器アプリコンテンツ423に送信する。
上記の処理により、例えば、ICカードリーダ1602等の外部認証機器を利用して、第1の実施形態と同様の処理を行うことができる。
(トークンの継承関係)
ここで、第1の実施形態で、外部アプリコンテンツ425が利用する外部アプリユーザトークンと、第2の実施形態で、外部アプリコンテンツ425が利用する外部アプリ認証コードトークンの他のトークンとの継承関係について説明する。なお、各トークンは、サービス提供システム110を利用するための権限の一例である。
図20は、一実施形態に係るトークンの継承関係を示す図である。
サービス提供システム110の認証認可部404は、例えば、図20に示すように、アカウントID等の利用者の認証認可情報をユーザトークン2001として管理し、アプリID、認可状態等の外部アプリの認証認可情報を外部アプリトークン2002として管理する。
また、認証認可部404は、シリアルナンバー、登録ID等の画像形成装置120の認証認可情報を、デバイストークン2003として管理し、認証コード等のICカードの認証認可情報を、認証コードトークン2004として管理する。
各トークンは、例えば、図20に示すような情報を内包しているが、認証認可部404によって暗号化されているため、機器アプリコンテンツ423や、外部アプリコンテンツ425等のクライアント側で認証認可情報を知ることはできない。
また、図20に示すように、第1の実施形態で、外部アプリコンテンツ425が利用する外部アプリユーザトークン2005は、ユーザトークン2001、外部アプリトークン2002、及びデバイストークン2003を継承し、継承元のトークンの認証認可情報を全て保持している。
同様に、第2の実施形態で、外部アプリコンテンツ425が利用する外部アプリ認証コードトークン2006は、外部アプリトークン2002、デバイストークン2003、及び認証コードトークンを継承し、継承元のトークンの認証認可情報を全て保持している。
認証認可部404は、必要の認証認可情報を1つのトークンに継承することにより、必要な認証認可情報をまとめて管理することができる。
なお、本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。