以下、図面を参照して、本発明の実施形態を詳細に説明する。
図1は、本発明の画像形成装置300、画像形成装置300の備えるカードリーダ310、認証サーバ100、ウェブサービスサーバ200、携帯端末400を含む認証システムの構成の一例を示すシステム構成図である。なお、認証サーバ100は、画像形成装置300内のサービスとして実行する構成であってもよい。
図1に示すように、本実施形態のシステムでは、画像形成装置300、認証サーバ100、ウェブサービスサーバ200がローカルエリアネットワーク(LAN)600を介して接続される構成となっている。なお、ローカルネットワークに限らずインターネットを介した通信であってもよい。
画像形成装置300は、カードリーダ310にかざされたICカードのカードIDをもとに、認証されたことを受けて、不図示のプリントサーバやマスストレージから、認証されたユーザに対応する印刷データを受信し、紙に出力したり、ファクスを送信したりすることが可能な装置である。
なお、カードリーダ310のほか、画像形成装置300上のタッチパネルで、ソフトキーボードを用いて、ユーザIDとパスワードを入力し、認証を実行可能な構成となっている。
認証サーバ100は、ICカード認証やキーボード認証による認証を実行するための認証テーブル1000と図11に示すカードIDテーブル1100を記憶している装置である。
ウェブサービスサーバ200は、ユーザ毎にストレージを与えてサービスを提供するサーバである。例えばストレージに保存された画像をウェブサービスサーバ200がアルバムのように閲覧できる画面を生成してクライアントPCに送信し、クライアントPCからブラウザ等を通して画像を閲覧できるものがある。
なお、画像形成装置300はMFPの一例を示す装置である。
以下、図2を用いて、図1に示した認証サーバ100、ウェブサービスサーバ200に適用可能な情報処理装置のハードウェア構成について説明する。
図2において、201はCPUで、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な各種プログラム等が記憶されている。
なお、認証サーバ100の外部メモリ211には、認証テーブル1000が記憶されている。認証テーブル1000の一例は、図10である。また、ウェブサービスサーバ200の外部メモリ211には、ユーザに対してウェブサービスを提供可能なウェブアプリケーションが記憶されている。例えばユーザがIDとパスワードを用いてウェブサービスサーバ200にクライアントPCでログインし、クライアントPCからウェブサービスの提供要求をウェブサービスサーバ200に送信する。すると、ウェブサービスサーバ200は、ユーザが使用可能なウェブサービスを提供するウェブアプリケーションを外部メモリ211から特定して、当該ウェブアプリケーションを動作させる。これによりウェブアプリケーションがウェブサービスとして様々な情報をクライアントPCに返す。
202はRAMで、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM203あるいは外部メモリ211からRAM202にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
また、205は入力コントローラで、入力デバイス209や不図示のマウス等のポインティングデバイス等からの入力を制御する。206はビデオコントローラで、ディスプレイ(CRT)210等の表示器への表示を制御する。なお、表示器はCRTだけでなく、液晶ディスプレイ等の他の表示器であってもよい。
207はメモリコントローラで、ブートプログラム,各種のアプリケーション,フォントデータ,ユーザファイル,編集ファイル,各種データ等を記憶するハードディスク(HD)や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
208は通信I/Fコントローラで、ネットワーク(例えば、図1に示したLAN600)を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
なお、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ210上での表示を可能としている。また、CPU201は、ディスプレイ210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
ハードウェア上で動作する各種プログラム(例えば、ブラウザ)は、外部メモリ211(記憶手段)に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。
次に図3を用いて、本発明の画像形成装置としての画像形成装置300のハードウェア構成について説明する。
図3は画像形成装置300のハードウェア構成の一例を示すブロック図である。
図3において、コントローラユニット3000は、画像入力デバイスとして機能するスキャナ3015や、画像出力デバイスとして機能するプリンタ3014と接続されるとともに、図1に示したLAN600のようなローカルエリアネットワークや、例えばPSTNまたはISDN等の公衆回線(WAN)と接続することで、画像データやデバイス情報の入出力を行なう。
図3に示すように、コントローラユニット3000は、CPU3001、RAM3006、ROM3002、外部記憶装置(ハードディスクドライブ(HDD))3007、ネットワークインタフェース(Network I/F)3003、モデム(Modem)3004、操作部インタフェース(操作部I/F)3005、外部インタフェース(外部I/F)3009、イメージバスインタフェース(IMAGE BUS I/F)3008、ラスタイメージプロセッサ(RIP)3010、プリンタインタフェース(プリンタI/F)3011、スキャナインタフェース(スキャナI/F)3012、画像処理部3013等で構成される。
CPU3001は、システム全体を制御するプロセッサである。
RAM3006は、CPU3001が動作するためのシステムワークメモリであり、プログラムを記録するためのプログラムメモリや、画像データを一時記憶するための画像メモリである。
ROM3002は、システムのブートプログラムや各種制御プログラムが格納されている。
外部記憶装置(ハードディスクドライブHDD)3007は、システムを制御するための各種プログラム、画像データ等を格納する。また、各種テーブルを記憶している。
操作部インタフェース(操作部I/F)3005は、操作部(UI)3018とのインタフェース部であり、操作部3018に表示する画像データを操作部3018に対して出力する。
また、操作部I/F3005は、操作部3018から本システム使用者が入力した情報(例えば、ユーザ情報等)をCPU3001に伝える役割をする。なお、操作部3018はタッチパネルを有する表示部を備え、該表示部に表示されたボタンを、ユーザが押下(指等でタッチ)することにより、各種指示を行うことができる。
ネットワークインタフェース(Network I/F)3003は、ネットワーク(LAN)に接続し、データの入出力を行なう。
モデム(MODEM)3004は公衆回線に接続し、FAXの送受信等のデータの入出力を行う。
外部インタフェース(外部I/F)3009は、USB、IEEE1394、プリンタポート、RS−232C等の外部入力を受け付けるインタフェース部であり、本実施形態においては、認証で必要となるICカード読み取り用のカードリーダ310が接続されている。
そして、CPU3001は、この外部I/F3009を介してカードリーダ310によるICカードからの情報読み取りを制御し、該ICカードから読み取られた情報を取得可能である。尚、ICカードに限らず、ユーザを特定することが可能な記憶媒体であればよい。この場合、記憶媒体には、ユーザを識別するための識別情報が記憶される。この識別情報は、記憶媒体の製造番号でも、ユーザが企業内で与えられるユーザコードであってもよい。以上のデバイスがシステムバス上に配置される。
一方、イメージバスインタフェース(IMAGE BUS I/F)3008は、システムバス3016と画像データを高速で転送する画像バス3017とを接続し、データ構造を変換するバスブリッジである。画像バス3017は、PCIバスまたはIEEE1394で構成される。画像バス3017上には以下のデバイスが配置される。
ラスタイメージプロセッサ(RIP)3010は、例えば、PDLコード等のベクトルデータをビットマップイメージに展開する。
プリンタインタフェース(プリンタI/F)3011は、プリンタ3014とコントローラユニット3000を接続し、画像データの同期系/非同期系の変換を行う。
また、スキャナインタフェース(スキャナI/F)3012は、スキャナ3015とコントローラユニット3000を接続し、画像データの同期系/非同期系の変換を行う。
画像処理部3013は、入力画像データに対し、補正、加工、編集をおこなったり、プリント出力画像データに対して、プリンタの補正、解像度変換等を行う。また、これに加えて、画像処理部3013は、画像データの回転や、多値画像データに対してはJPEG、2値画像データはJBIG、MMR、MH等の圧縮伸張処理を行う。
スキャナI/F3012に接続されるスキャナ3015は、原稿となる紙上の画像を照明し、CCDラインセンサで走査することで、ラスタイメージデータとして電気信号に変換する。原稿用紙は原稿フィーダのトレイにセットし、装置使用者が操作部3018から読み取り起動指示することにより、CPU3001がスキャナに指示を与え、フィーダは原稿用紙を1枚ずつフィードし、原稿画像の読み取り動作を行う。
プリンタI/F3011に接続されるプリンタ3014は、ラスタイメージデータを用紙上の画像に変換する部分であり、その方式は感光体ドラムや感光体ベルトを用いた電子写真方式、微小ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式でも構わない。プリント動作の起動は、CPU3001からの指示によって開始する。尚、プリンタ3014には、異なる用紙サイズまたは異なる用紙向きを選択できるように複数の給紙段を持ち、それに対応した用紙カセットがある。
操作部I/F3005に接続される操作部3018は、液晶ディスプレイ(LCD)表示部を有する。LCD上にはタッチパネルシートが貼られており、システムの操作画面を表示するとともに、表示してあるキーが押されると、その位置情報を操作部I/F3005を介してCPU3001に伝える。また、操作部3018は、各種操作キーとして、例えば、スタートキー、ストップキー、IDキー、リセットキー等を備える。
ここで、操作部3018のスタートキーは、原稿画像の読み取り動作を開始する時などに用いる。スタートキーの中央部には、緑と赤の2色のLEDがあり、その色によってスタートキーが使える状態であるか否かを示す。また、操作部3018のストップキーは、稼動中の動作を止める働きをする。また、操作部3018のIDキーは、使用者のユーザIDを入力する時に用いる。リセットキーは、操作部3018からの設定を初期化する時に用いる。
外部I/F3009に接続されるカードリーダ310は、CPU3001からの制御により、ICカード(例えば、ソニー社のFeliCa(登録商標))内に記憶されている情報を読み取り、読み取った情報を外部I/F3009を介してCPU3001へ通知する。
なお、本実施形態では、認証テーブルを認証サーバ100に記憶する構成としたが、画像形成装置300内に記憶して、認証サーバと同様の動作を実現してもよい。
次に図4に示す図を用いて携帯端末400のハードウェア構成の説明を行う。
図4は、携帯端末400のハードウェア構成を示す図である。尚、図4に示すハードウェア構成はあくまで一例である。
携帯端末400は、タッチパネルを備える装置である。本実施形態では、いわゆるスマートフォンやタブレット端末のような装置を想定して説明を行うが、特にこれに限らない。タッチパネルを備える装置であれば、パーソナルコンピュータであってもよい。
CPU401は、システムバスを介してメモリやコントローラを統括的に制御する。ROM402あるいはフラッシュメモリ414には、CPU401の制御プログラムであるBIOS(Basic Input / OutputSystem)やオペレーティングシステムが記憶されている。更には、携帯端末400が実行する機能を実現するために必要な、後述する各種プログラム等が記憶されている。
RAM403は、CPU401の主メモリ、ワークエリア等として機能する。CPU401は、処理の実行に際して必要なプログラム等をRAM403にロードして、プログラムを実行することで各種動作を実現するものである。
ディスプレイコントローラ404は、ディスプレイ410等の表示装置への表示を制御する。ディスプレイ410は例えば液晶ディスプレイである。また、ディスプレイ410の表面にはタッチパネル411が備えられている。タッチパネル411に対するタッチ操作の検知をタッチパネルコントローラ405が制御する。タッチパネルコントローラ405は、タッチパネル411に対する複数の箇所に対するタッチ操作(以下、マルチタッチという。)も検知することが可能である。
カメラコントローラ406は、カメラ412における撮影を制御する。カメラ412はデジタルカメラであり、カメラコントローラ406からの制御で撮像した画像を撮像素子でデジタルデータに変換する。カメラ412は静止画と動画を撮影することが可能である。
センサコントローラ407は、携帯端末400が備える各種センサ413からの入力を制御する。携帯端末400のセンサ413には様々なセンサが存在し、例えば方位センサ、加速度センサ等である。
ネットワークコントローラ408は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
フラッシュメモリコントローラ409は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するフラッシュメモリ414へのアクセスを制御する。本実施形態においては、フラッシュメモリとして説明を行うが、ハードディスクやフレキシブルディスク、或いはPCMCIAカードスロットにアダプタを介して接続されるカード型メモリ等の記憶媒体であってもよい。
前述したCPU401、各メモリ、各コントローラは、1つのチップ415に統合されている。いわゆるSoC(System on Chip)の形態で携帯端末400の内部に備えられている。
尚、CPU401は、例えばRAM403内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ410での表示を可能としている。
本発明の携帯端末400が後述する各種処理を実行するために用いられる各種プログラム等はフラッシュメモリ414に記録されており、必要に応じてRAM403にロードされることによりCPU401によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルはフラッシュメモリ414に格納されている。以上が、本実施形態におけるハードウェア構成である。
次に図5に示す図を用いて認証サーバ100、ウェブサービスサーバ200、画像形成装置300、携帯端末400の機能構成を説明する、なお、図5の機能構成図は一例であって用途や目的に応じて様々な構成例がある。
認証サーバ100は、通信部150、認証テーブル管理部151、パスワード生成部152を備える。
通信部150は、画像形成装置300やウェブサービスサーバ200、携帯端末400との通信を行う機能部である。
認証テーブル管理部151は、認証テーブル1000を管理する機能部である。
パスワード生成部152は、アクセストークンと対応付けられるパスワードを生成する機能部である。
ウェブサービスサーバ200は、通信部250、データ管理部251、トークン管理部252、画面生成部253を備える。
通信部250は、認証サーバ100、携帯端末400、画像形成装置300との通信を行う機能部である。
データ管理部251は、ウェブサービスとして提供するデータであるウェブサービス情報をユーザごとに管理する機能部である。
トークン管理部252は、リフレッシュトークンに対応するアクセストークンを生成したり、受け付けたアクセストークンが正当なものか否かを判定したりする機能部である。
画面生成部253は、携帯端末400や画像形成装置300へ送信する画面を生成する機能部である。
画像形成装置300は、カードリーダ制御部350、認証サーバ通信部351、認証部352、表示制御部353、出力制御部354、アプリケーション部355、ウェブサービスサーバ通信部356を備える。
カードリーダ制御部350は、カードリーダ310にかざされたカードID(製造番号)を取得する機能部である。
認証サーバ通信部351は、認証サーバ100と認証要求の送受信を行う機能部である。
認証部352は、認証システム全般の制御及び、認証に成功した際にはユーザ情報を用いて画像形成装置300の利用を許可させるものとする。
表示制御部353は、画像形成装置300の操作部3018に各種画面を表示させるための機能部である。
出力制御部354は、印刷データの出力を制御する機能部である。
アプリケーション部355は、画像形成装置300のプリント・スキャン・USB機能等を実行するアプリケーションを制御するための機能部である。
ウェブサービスサーバ通信部は、ウェブサービスサーバ200と通信を行う機能部である。
携帯端末400は、撮影部450、通信部451、表示制御部452、アプリケーション部453を備える。
撮影部450は、画像形成装置300の操作部3018に表示される二次元バーコードを撮影、読み取ることが可能な機能部である。
通信部451は、認証サーバ100、ウェブサービスサーバ200と通信することが可能な機能部である。
表示制御部452は、認証サーバ100、ウェブサービスサーバ200から送信される画面を表示する機能部である。
アプリケーション部453は、ウェブブラウザなどのアプリケーションの動作を制御する機能部である。
次に図6に示すフローチャートを用いて、本発明の実施形態を説明する。
ステップS601では、画像形成装置300のCPU3001が、ICカードをかざして画像形成装置300にログインする旨を表示した認証画面2000を表示する。例えば図20に示す認証画面2000である。
ステップS625では、画像形成装置300のCPU3001が、認証画面2000に配置されたユーザ情報管理ボタン2001が押下されたか否かを判定する。ユーザ情報管理ボタン2001が押下されたと判定した場合は処理をステップS626に進め、ユーザ情報管理ボタン2001が押されないと判定した場合は処理をステップS602に進める。
ステップS626では、画像形成装置300のCPU3001が、画像形成装置300に認証することでウェブサービスが利用できるようにユーザのICカードとウェブサービスサーバ200の生成したアクセストークンとを対応付けて記憶する処理であるカード登録処理を行う。カード登録処理の詳細は後の図8を用いて説明する。
ステップS602では、画像形成装置300のCPU3001が、ユーザによってカードリーダ310にICカードがかざされたかを定期的に検知する処理を実行する。ICカードがかざされた場合には、ステップS603へ処理を移す。
ステップS603では、画像形成装置300のCPU3001が、ユーザによってかざされたICカードのカードIDをカードリーダ310から取得する。
ステップS604では、画像形成装置300のCPU3001が、ステップS603で取得したカードIDを認証サーバ100に対して送信する。
ステップS605では、認証サーバ100のCPU201が、ステップS604で送信されたカードIDを受信する。
ステップS606では、認証サーバ100のCPU201が、カードIDを使用して認証を行う。より具体的には、認証サーバ100に記憶されるカードIDテーブル1100を照合し、カードIDテーブル1100にカードIDが記憶されているか否かを判定する。カードIDテーブル1100にはカードID1101(認証情報)とユーザ名1001(認証情報)が対応付けて記憶されている。カードID1101はカードIDを示し、ユーザ名1001はユーザを識別する名称が格納されている。
更に図10に示す認証テーブル1000を参照する。認証テーブル1000には、ユーザ名1001とアクセストークン1002とリフレッシュトークン1003とカード登録用パスワード1004とが対応付けて記憶されている。アクセストークン1002は、ウェブサービスサーバ200からユーザのウェブサービスの情報であるウェブサービス情報を取得するためのトークン情報である。リフレッシュトークン1003はアクセストークン1002を更新するためのキーである。ウェブサービスサーバ200に対して認証サーバ100がリフレッシュトークン1003を送信すると、ウェブサービスサーバ200はリフレッシュトークン1003に対応するアクセストークン1002を更新する。カード登録用パスワード1004は、ICカードとアクセストークン1002とを対応付けて記憶するためのキーである。
ステップS607では、認証サーバ100のCPU201が、ステップS606の照合により認証結果を判定する。より具体的にはステップS602で検知したカードID1101に対応するユーザ名1001が、認証テーブル1000に格納されている場合認証を成功とし、認証テーブル1000に格納されていない場合は認証を失敗と判断する。認証に成功した場合は、ステップS608へ処理を移す。認証に失敗した場合は、ステップS609へ処理を移す。
ステップS608では、認証サーバ100のCPU201が、認証サーバ100に対して認証結果(認証失敗)を送信する。
ステップS609では、認証サーバ100のCPU201が、ウェブサービスサーバ200に対して、ステップS606で照合したユーザ名1001に対応するリフレッシュトークン1003と、トークン取得要求を送信する。
ステップS610では、ウェブサービスサーバ200のCPU201が、リフレッシュトークン1003と、トークン取得要求を受信する。
ステップS611では、ウェブサービスサーバ200のCPU201が、リフレッシュトークン1003に対応するアクセストークンを再発行する(更新手段)。より具体的に説明する。ウェブサービスサーバ200の外部メモリ211には図19に示す正当アクセストークンテーブル1900が格納されている。正当アクセストークンテーブル1900には正当アクセストークン1901とリフレッシュトークン1003とID1902、パスワード1903が対応付けて記憶されている。正当アクセストークン1901は、ウェブサービスサーバ200が管理する正当なアクセストークンであり、この正当アクセストークンであれば対応するユーザのウェブサービス情報を取得して、アクセストークンの送信元にユーザのウェブサービス情報を送信することができる。ID1902、パスワード1903はウェブサービスサーバ200にログインするためのIDとパスワードである。
リフレッシュトークン1003を受け付けると、対応する正当アクセストークン1901を書き換え、再発行を行う。
ステップS612では、ウェブサービスサーバ200のCPU201が、ステップS611で再発行した正当アクセストークン1901を認証サーバ100に対して送信する。
ステップS613では、認証サーバ100のCPU201が、ウェブサービスサーバ200で再発行された正当アクセストークン1901(トークン情報
)を受信する。(トークン情報取得手段)
ステップS614では、認証サーバ100のCPU201が、ステップS613で受信した正当アクセストークン1901をステップS609で送信したリフレッシュトークン1003に対応するアクセストークン1002に更新する。このようにリフレッシュトークンを用いてアクセストークンを更新することで、アクセストークンが通信を傍受されることなどにより漏洩したとしても、漏洩したアクセストークンを無効にすることができる。また、有効期限の切れていないアクセストークンを画像形成装置300に提供することが可能となる。
ステップS615では、認証サーバ100のCPU201が、画像形成装置300に対して認証結果(認証成功を示す情報、アクセストークンありを示す情報、ユーザ名1001)を送信する
ステップS616では、画像形成装置300のCPU3001が、認証サーバ100から送信される認証結果を受信する(認証受付手段)。
ステップS617では、画像形成装置300のCPU3001が、ステップS616で受信した認証結果を判定する。認証に成功した場合は、ステップS618へ処理を移す。認証に失敗した場合は、ステップS624へ処理を移す。
ステップS618では、画像形成装置300のCPU3001が、ステップS616で受信した認証結果にトークンありを示す情報が存在するかを判定する。トークンありを示す情報が存在した場合は、ステップS619へ処理を移す。トークンありを示す情報が存在しない場合は、ステップS623へ処理を移す。
ステップS619では、画像形成装置300のCPU3001が、ウェブサービスサーバ200が提供するウェブサービスを使用するためのアクセス用アイコンを追加したメニュー画面1700(ログイン後の画面)を操作部3018に表示する。例えば図17に示すメニュー画面1700である。メニュー画面1700には、画像形成装置300の利用することのできる機能を示すアイコンが表示されている。例えば、コピーアイコンを押下すると、コピー機能が利用可能な画面に遷移する。図17にはウェブサービスにアクセスすることの可能なウェブサービスカレンダーアイコン1701が配置されている。ウェブサービスカレンダーアイコン1701の押下を受け付けると、ウェブサービスにアクセスし、アクセストークンを用いてウェブサービスが提供するカレンダーの情報を取得する。なお、ウェブサービスは一例であってカレンダーに限定されない。
ステップS620では、画像形成装置300のCPU3001が、メニュー画面1700のウェブサービスカレンダーアイコン1701が押下されたか否かを判定する。ウェブサービスカレンダーアイコン1701が押下されたと判定した場合は処理をステップS621に進め、ウェブサービスカレンダーアイコン1701が押下されないと判定した場合は処理をステップS622に進める。
ステップS621では、画像形成装置300のCPU3001が、ウェブサービス情報を取得し、操作部3018に表示する処理であるウェブサービス情報表示処理を行う。詳細な処理の流れは、図9に示すフローチャートで後述する。
ステップS622では、画像形成装置300のCPU3001が、メニュー画面1700に表示されているアイコンが押下され、押下されたアイコンに対応する処理を実行する。
ステップS623では、画像形成装置300のCPU3001が、メニュー画面1700を表示する。ステップS623で表示するメニュー画面1700には、ウェブサービスカレンダーアイコン1701は配置されていない。
ステップS624では、画像形成装置300のCPU3001が、アクセストークンとユーザを対応付けて記憶するために認証サーバ100がパスワードを生成する為のURLが埋め込まれた二次元バーコードを操作部に表示する。二次元バーコードは事前にHDD3007に記憶されているものを表示する。例えば図12に示すような二次元バーコード表示画面1200である。二次元バーコード表示画面1200には二次元バーコード1201が表示され、ユーザはこのバーコードを読みとることで、二次元バーコードに含まれるURLにアクセスすることが可能になる。
以上、本発明の実施形態における一連の処理の流れを説明した。
次に、図7に示すフローチャートを用いて認証サーバ100がアクセストークンに対応するパスワードを生成する処理を詳細に説明する。
ステップS701では、携帯端末400のCPU401が、撮影部450により画像形成装置300の操作部3018に表示されたカード登録を行う為のURL情報が埋め込まれた二次元バーコードの読み取りを行う。
ステップS702では、携帯端末400のCPU401が、ステップS701で読み取った二次元バーコードに埋め込まれているURLにアクセスを行う。(認証サーバ100に対して、認可要求画面1300の要求を行う。)
ステップS703では、認証サーバ100のCPU201が、認可要求画面1300の要求を受信する。
ステップS704では、認証サーバ100のCPU201が、認可要求画面1300を携帯端末400に送信する。認可要求画面1300は外部メモリ211に記憶されているものとする。
ステップS705では、携帯端末400のCPU401が、ステップS704で送信された認可要求画面1300をディスプレイ410に表示する。認可要求画面1300は図13に示す認可要求画面1300である。認可要求画面1300にはスタートボタン1301が配置されており、スタートボタン1301の押下を受け付けることでウェブサービスサーバ200への認可要求が行われる。
ステップS706では、携帯端末400のCPU401が、スタートボタン1301の押下を受け付け、認可要求を認証サーバ100に送信する。
ステップS707では、認証サーバ100のCPU201が、認可要求を受信する。ステップS706でウェブサービスサーバ200に対して直接認可要求を送信せずに認証サーバ100に対して認可要求を送信することで、ステップS717でウェブサービスサーバ200が送信するトークン情報の送信先を認証サーバ100にすることができる。トークン情報とはアクセストークンとリフレッシュトークンを示す。
ステップS708では、認証サーバ100のCPU201が、ウェブサービスサーバ200に対してトークン情報の送信先を付して認可要求を送信する。
ステップS709では、ウェブサービスサーバ200のCPU201が、ステップS708で送信された認可要求を受信する。
ステップS710では、ウェブサービスサーバ200のCPU201が、携帯端末400に認可画面1400を送信する。図14に示す認可画面1400には、ID入力欄1401とパスワード入力欄1402とログインボタン1403とが配置されている。ID入力欄1401とパスワード入力欄1402はそれぞれユーザがウェブサービスサーバ200にログインするためのID1902とパスワード1903を入力するための入力欄である。ログインボタン1403の押下を受け付けると、ID入力欄1401とパスワード入力欄1402に入力されたID1902とパスワード1903をウェブサービスサーバ200に対して送信してログインを行う。
ステップS711では、携帯端末400のCPU401が、ウェブサービスサーバ200が送信した認可画面1400を受信し、認可画面1400をディスプレイ410に表示する。
ステップS712では、携帯端末400のCPU401が、ログインボタン1403の押下を受け付けることでウェブサービスサーバ200に対して認可画面1400のID入力欄1401とパスワード入力欄1402に入力されたIDとパスワード(認可情報)を送信する。
ステップS713では、ウェブサービスサーバ200のCPU201が、ステップS712で送信されたIDとパスワード(認可情報)を受信する。
ステップS714では、ウェブサービスサーバ200のCPU201が、ステップS713で受信した認可情報の確認を行う。より具体的には、ステップS713で受信したIDとパスワードの組と、ウェブサービスサーバ200の外部メモリ211に記憶されているID1902とパスワード1903の組とが一致するか否かによって確認を行う。
ステップS715では、ウェブサービスサーバ200のCPU201が、ステップS713で受信した認可情報に基づいて認可が成功したか否かを判定する。具体的には外部メモリ211に記憶されるID1902とパスワード1903の組と、ステップS713で受信したIDとパスワードの組とが一致する場合、認可が成功したと判定し、一致しない場合、認可が失敗したと判定する。認可が成功した場合処理をステップS718に進める。認可が失敗した場合処理をステップS716に進める。
ステップS716では、ウェブサービスサーバ200のCPU201が、ウェブサービスサーバ200は携帯端末400に対して認可失敗画面を送信する。
ステップS717では、携帯端末400のCPU401が、ウェブサービスサーバ200から受信した認可失敗画面を操作部3018に表示する。認可失敗画面を表示したあと、処理を終了する。
ステップS718では、ウェブサービスサーバ200のCPU201が、携帯端末400に対してウェブサービスを利用する際に使用するユーザ情報の許諾を確認するための画面であるユーザ情報使用確認画面1500を送信する。図15に示すユーザ情報使用確認画面1500にはウェブサービスが使用するユーザ情報1501と承諾ボタン1502とキャンセルボタン1503が配置されている。ユーザはウェブサービスが使用するユーザ情報1501を確認し、問題がなければ承諾ボタン1502を押下する。
ステップS719では、携帯端末400のCPU401が、ユーザ情報使用確認画面1500を受信し、ディスプレイ410に表示する。
ステップS720では、携帯端末400のCPU401が、表示されたユーザ情報使用確認画面1500の承諾ボタン1502またはキャンセルボタン1503のいずれかが押下されたか否かを判定する。承諾ボタン1502が押下されたと判定した場合処理をステップS716に進め、キャンセルボタン1503が押下されたと判定した場合、処理をステップS721に進める。
ステップS721では、ウェブサービスサーバ200のCPU201が、キャンセルボタン1503が押下された情報を受信する。
ステップS722では、ウェブサービスサーバ200のCPU201が、認証サーバ100に対して、承認キャンセルした旨を表す結果を送信する。
ステップS723では、認証サーバ100のCPU201が、承認キャンセルした旨を表す結果を受信する。
ステップS724では、認証サーバ100のCPU201が、携帯端末400に対して認可キャンセル画面を送信する。
ステップS725では、携帯端末400のCPU401が、認証サーバ100から受信した認可キャンセル画面をディスプレイ410に表示する。
ステップS726では、ウェブサービスサーバ200のCPU201が、承認の要求を受信する。
ステップS733では、ウェブサービスサーバ200のCPU201が、ID1902に対応する正当アクセストークン1901とリフレッシュトークン1003を生成する。生成した正当アクセストークン1901とリフレッシュトークン1003はID1902と対応付けて正当アクセストークンテーブル1900に格納する。
ステップS727では、ウェブサービスサーバ200のCPU201が、認証サーバ100に対して承認した旨を表す結果とID1902に紐づく正当アクセストークン1901とリフレッシュトークン1003とを送信する。
ステップS728では、認証サーバ100のCPU201が、承認した旨を表す結果とID1902に紐づく正当アクセストークン1901とリフレッシュトークン1003とを受信する(トークン情報取得手段)。
ステップS729では、認証サーバ100のCPU201が、カード登録用パスワード1004を生成する(パスワード生成手段)。
ステップS730では、認証サーバ100のCPU201が、ステップS728で受信した正当アクセストークン1901とリフレッシュトークン1003と、ステップS729で生成したカード登録用パスワード1004を認証テーブル1000に格納する。ユーザ名1001は空欄で登録する。
ステップS731では、認証サーバ100のCPU201が、認可完了画面1600を生成し、携帯端末400に送信する。図16に示す認可完了画面1600には、カード登録用パスワード1004を表示するパスワード表示欄1601が設けられている。
ステップS732では、携帯端末400のCPU401が、ステップS731で送信された認可完了画面1600をディスプレイ410に表示する。これによりユーザはカード登録用パスワード1004を確認することができる。
以上により、図7に示すフローチャートの説明を終了する。
次に図8に示すフローチャートを用いて、図6に示すカード登録処理の詳細な処理の流れを説明する。
ステップS801では、画像形成装置300のCPU3001は、操作部3018にユーザ情報管理画面1800を表示する。図18に示すユーザ情報管理画面1800にはユーザ名入力欄1801とカード登録用パスワード入力欄1802とカード検知ボタン1803とが配置されている。ユーザ名入力欄1801はユーザ名1001を入力するための入力欄である。カード登録用パスワード入力欄1802は、カード登録用パスワードを入力する為の入力欄である。カード検知ボタン1803は押下されるとカードリーダ310でICカードのカードID1101を読み取る。
ステップS802では、画像形成装置300のCPU3001は、ユーザ名入力欄1801とカード登録用パスワード入力欄1802への入力を受け付ける。(パスワード受付手段・認証情報取得手段)
ステップS812では、画像形成装置300のCPU3001は、カード検知ボタン1803が押下されたか否かを判定する。カード検知ボタン1803が押下された場合処理をステップS813に進める。カード検知ボタン1803が押下されるまで待機する。
ステップS813では、画像形成装置300のCPU3001は、カードリーダ310でICカードのカードID1101を読み取る。(認証情報取得手段)
ステップS803では、画像形成装置300のCPU3001は、認証サーバ100に対してステップS802で入力されたユーザ名1001、カード登録用パスワード1004、カードID1101を送信する。
ステップS804では、認証サーバ100のCPU201は、ユーザ名1001、カード登録用パスワード1004、カードID1101を受信する。
ステップS805では、認証サーバ100のCPU201は、ステップS804で受信したカード登録用パスワード1004が認証テーブル1000にすでに登録されているかを照合する。
ステップS806では、認証サーバ100のCPU201は、ステップS805で行った照合処理の判定を行う。カード登録用パスワード1004が認証テーブル1000に登録されていた場合は、ステップS809へ処理を移す。登録されていなかった場合は、ステップS807へ処理を移す。
ステップS807では、認証サーバ100のCPU201は、画像形成装置300に対してカード登録用パスワード照合失敗画面を送信する。
ステップS808では、画像形成装置300のCPU3001は、認証サーバ100から受信したカード登録用パスワード照合失敗画面を操作部に表示する。
ステップS809では、認証サーバ100のCPU201は、カード登録用パスワード1004に対応するユーザ名1001にステップS804で受信したユーザ名1001を登録することで認証テーブル1000を更新する。更にステップS804で受信したカードIDとユーザIDをカードIDテーブル1100に登録する(保存手段)。登録が完了したら、登録が行われたレコードのカード登録用パスワード1004を削除する。こうすることで、他のユーザからの登録要求により偶然パスワードが一致し、ユーザ情報が上書きされてしまうことを防止する。
このように、認証サーバ100が生成した登録用パスワードを用いることで、画像形成装置300に認証を行うためのカードID1101、ユーザ名1001、アクセストークン1002、リフレッシュトークン1003を対応付けて記憶することができる。これにより、ユーザは画像形成装置300に認証することで、ウェブサービスサーバ200のウェブサービス情報を取得し、画像形成装置300でウェブサービス情報を利用することができる。
ステップS810では、認証サーバ100のCPU201は、画像形成装置300に対してカードID登録成功画面を送信する。
ステップS809では、画像形成装置300のCPU3001は、認証サーバ100から受信したカードID登録成功画面を操作部3018に表示する。
以上で図8に示すフローチャートの説明を終了する。
次に図9に示すフローチャートを用いて図6に示すウェブサービス情報表示処理の詳細な処理の流れを説明する。
ステップS901では、画像形成装置300のCPU3001が、アクセストークン取得要求を認証サーバ100に対して送信する。
ステップS902では、認証サーバ100のCPU201が、アクセストークン取得要求を受信する。
ステップS903では、認証サーバ100のCPU201が、ステップS604で送信したカードID1101に対応するアクセストークン1002を取得する。
ステップS904では、認証サーバ100のCPU201が、ステップS903で取得したアクセストークン1002を画像形成装置300に対して送信する。
ステップS905では、画像形成装置300のCPU3001が、アクセストークン1002を受信する。
ステップS906では、画像形成装置300のCPU3001が、ウェブサービスサーバ200に対してウェブサービスであるカレンダーのカレンダーデータの送信要求を、ステップS905で受信したアクセストークン1002と併せて送信する。
ステップS907では、ウェブサービスサーバ200のCPU201が、カレンダーデータの送信要求とアクセストークン1002とを受信する。
ステップS908では、ウェブサービスサーバ200のCPU201が、ステップS907で受信したアクセストークン1002が正当であるか否かを判定する。具体的には、ウェブサービスサーバ200に外部メモリ211に記憶される正当アクセストークンテーブル1900に基づいて判定する。正当アクセストークンテーブル1900の正当アクセストークン1901にステップS907で受信したアクセストークン1002が存在するか否かを判定し、存在すると判定した場合には正当であると判断する。存在しないと判定した場合は正当でないと判断する。ステップS907で受信したアクセストークン1002が正当であると判定した場合には処理をステップS912に進め、ステップS907で受信したアクセストークン1002が正当でないと判定した場合は、処理をステップS909に進める。
ステップS909では、ウェブサービスサーバ200のCPU201が、ステップS907で受信したアクセストークン1002が正当でなかった旨を伝えるエラー画面を画像形成装置300に対して送信する。
ステップS910では、画像形成装置300のCPU3001が、ウェブサービスサーバ200から送信されたエラー画面を受信する。
ステップS911では、画像形成装置300のCPU3001が、ステップS910で受信したエラー画面を操作部3018に表示する。
ステップS912では、ウェブサービスサーバ200のCPU201が、正当であると判定したアクセストークン1002に基づいて、ユーザのカレンダーデータを取得する(情報取得手段)。
ステップS913では、ウェブサービスサーバ200のCPU201が、ステップS912で取得したカレンダーデータに基づいてカレンダー画面2100を生成する。例えば図21に示すカレンダー画面2100である。
ステップS914では、ウェブサービスサーバ200のCPU201が、ステップS913で生成したカレンダー画面2100を画像形成装置300に送信する。
ステップS915では、画像形成装置300のCPU3001が、ステップS914で送信されたカレンダー画面2100を受信する。
ステップS916では、画像形成装置300のCPU3001が、ステップS915で受信したカレンダー画面2100を操作部3018に表示する。
以上で図9に示すフローチャートの説明を終了する。
以上のように、ユーザは画像形成装置300に認証するだけでウェブサービスサーバ200が提供するウェブサービスのウェブサービス情報を画像形成装置300で利用することが可能になる。
以上、本発明の実施形態によれば、ウェブサービスサーバから取得したトークン情報とユーザの認証情報を容易に紐づけることの可能な仕組みを提供することが可能となる。
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。