(58)【調査した分野】(Int.Cl.,DB名)
前記リソースの要求の元となるアプリケーションから認可要求を受けた場合、前記表示制御手段は、戻り指示を入力するための入力部を含む、取得した前記リソースに基づく認可要求のための認証画面を表示手段により表示させることを特徴とする請求項1に記載の情報処理装置。
前記決定手段が、前記リソースの要求の元となるアプリケーションの画面を戻り先として決定した場合、前記表示手段に表示される戻り先に応じた画面は、前記アプリケーションの画面であって、認証キャンセルを示す画面であることを特徴とする請求項1又は請求項2に記載の情報処理装置。
前記リソースの要求の元となるアプリケーションから認可要求を受けた場合、前記表示制御手段は、戻り指示を入力するための入力部を含む、取得した前記リソースに基づく認可要求のための認証画面を表示手段により表示させることを特徴とする請求項5に記載のプログラム。
前記決定手段が、前記リソースの要求の元となるアプリケーションの画面を戻り先として決定した場合、前記表示手段に表示される前記戻り先に応じた画面は、前記アプリケーションの画面であって、認証キャンセルを示す画面であることを特徴とする請求項5又は請求項6に記載のプログラム。
【発明を実施するための形態】
【0012】
以下、本発明を実施するための形態について図面を用いて説明する。
[第1の実施形態]
図1は、画像処理装置を用いたシステムの構成例である。本システムはネットワーク100を介して接続される画像処理装置であるMFP101と、Webサーバー102から構成される。ネットワーク100は各装置間で通信を行うための基盤であって、インターネットに接続されていても良い。MFP101はWebブラウザー(ウェブブラウザー)機能を有すれば、MFP(Multiple Function Peripheral)に限定されるものではない。Webサーバー102は、ネットワーク経由でMFP101と接続されており、MFP101からのリクエストに応じてWebサービス401を提供する。なおMFP101は、その処理能力に着目して情報処理装置と呼ばれることもある。
【0013】
<MFPのハードウェア構成>
図2は本実施例のMFP101のハードウェア構成の一例である。MFP101を制御するCPU201、CPU201のワークエリアを提供するRAM202、本実施形態に係るプログラムや様々な設定を記憶する記憶装置203(HDDやNVRAM等でもよい)が存在する。さらに、原稿をスキャンしてドキュメントデータを生成するスキャン装置203、ドキュメントデータを印刷するプリント装置205、ユーザーがコマンドの入力を行うユーザー入力装置206、画面表示を行うUI表示装置207、他機器とネットワークによる通信を行うネットワーク装置208、メインバス200により構成されている。尚、本実施例は特に断らない限り、MFP101のCPU201がメインバス200を介してRAM202、記憶装置203、ユーザー入力装置206、UI表示装置207、ネットワーク装置208を制御する。また、タッチパネルディスプレイのようにUI表示装置207がユーザー入力装置206を兼ねても良い。また、MFP101はその他にも画像読取装置や画像印刷装置がメインバス200に接続されていても良い。
【0014】
<Webサーバーのハードウェア構成>
図3は本実施例のWebサーバー102のハードウェア構成の一例である。Webサーバー102を制御するCPU301、CPU301のワークエリアを提供するRAM302、本実施形態に係るプログラムや様々な設定を記憶する記憶装置303(HDDやNVRAM等でもよい)、他機器とネットワークによる通信を行うネットワーク装置305が存在する。尚、本実施例は特に断らない限り、Webサーバー102は、CPU301がメインバス300を介してRAM302、記憶装置303、ネットワーク装置304を制御する。
【0015】
<MFPのソフトウェア構成>
図4は本実施例におけるMFP101のソフトウェア構成を説明するための図である。
図4に示す各機能部は、MFP101が有しているCPU201が制御プログラムを実行することにより実現される。MFP101は、Webブラウザー400、認可制御サービス410、アプリケーション420を有する。
【0016】
Webブラウザー400は、任意のサーバーと通信を行うことによって、Webコンテンツを受信して画面に表示したり、ユーザーの入力情報を送信したりといった機能を有するものであればよい。Webブラウザー400は、通信部401、解析部402、記憶部403、入力部404、表示部405を有する。通信部401は、HTTPプロトコルに従って、Webサーバー102および認可制御サービス410と通信する。より具体的には、通信部401は、Webサーバー102に対して、認可要求に関するHTTPリクエストを送信し、認証画面や認可コードを含むHTTPレスポンスを受信する。また、通信部401は、認可制御サービス410に対して、認可コードを含むHTTPレスポンスをリダイレクトする。解析部402は、Webサーバー102および認可制御サービス410から受信したレスポンスを解析する。レスポンスの中にはWebアプリケーションの操作画面を記述するHTMLデータであったりリダイレクトすべきURI(Universal Resource Identifier)であったりという情報が含まれている。記憶部403は、認可制御サービス410から認可要求を受ける際に、認可制御サービス410により指定される認可モードを記憶し、指定されたリクエストすべきURIを記憶したり、Webページの履歴情報を記憶したりする。入力部404は、ユーザー入力装置206を介してユーザーの操作入力を受け付ける。表示部405は、解析部402の解析結果に基づいて、UI表示装置207に表示するWebアプリケーション操作画面を描画する。なおURIはインターネット等の通信ネットワーク上のリソースを指し示す識別情報であり、そのネットワーク上に置ける所在も含めて特定することができる所在情報である。
【0017】
認可制御サービス410は、OAuth2.0に従って、Webブラウザー400に対して制御指示を行って、アプリケーション420の要求する認可コードを取得する。認可制御サービス410は、通信部411、解析部412、認可制御部413、画面制御部414を有する。通信部411は、HTTPプロトコルに従って、Webブラウザー400と通信する。より具体的には、通信部411は、Webブラウザー400から認可完了を通知するHTTPリクエストを受信すると、認可完了を示すHTTPレスポンスをWebブラウザー400へ送信する。解析部412は、通信部411が受信した認可完了通知を解析し、認可処理が成功したかキャンセルされたかなどを解析する。認可制御部413は、アプリケーション420から認可要求を受け付けると、アプリケーション420のアプリケーション識別子を記憶し、Webブラウザー400に対して、アプリケーション420に指示されたWebサーバー102のURIを開くことを指示する。また、認可制御部413は、解析部412の解析結果に基づいて、認可コードまたは認可がキャンセルされたことを、記憶するアプリケーション識別子が示すアプリケーション420へ通知する。画面制御部414は、アプリケーション420の認可要求を受け付けると、Webブラウザー400の操作画面をUI表示装置205に表示する。この結果、UI表示装置205に表示される操作画面はアプリケーション420からWebブラウザー400へ遷移する。
【0018】
アプリケーションには様々な機能を持たせることができるが、本例のアプリケーション420は、Webサービス(あるいはWebアプリケーション)を利用するための入口として機能する。アプリケーション420は、たとえばユーザーが基本メニュー画面から入力したアプリケーション420の起動の指示に応じて起動され、ユーザインタフェースを表示する。ユーザインタフェース上で所定の操作に応じて、その操作に関連付けられたWebサービスを利用するための手続きを実行する。もちろんこれは一例に過ぎない。アプリケーション420は、入力部421、認可要求部422、通信部423、表示部424を有する。入力部421はユーザー入力装置206を介してアプリケーション420の操作入力を受け付ける。認可要求部422は、認可制御サービス410へ認可処理の開始を要求する。より具体的には、認可要求部422は、Webブラウザー400に対して認可モードを指定し、Webサーバー102のWebサービス500が提供するURIへHTTPリクエストを送信することを要求する。また認可要求部422は、認可処理が完了すると、認可制御サービス410から認可コードまたは認可キャンセルされたことを表す認可完了通知を受け取る。通信部423は、HTTPプロトコルに従って、Webサーバー102と通信する。より具体的には、通信部423は、認可制御サービス310から認可コードを受け取ると、Webサーバー102へ認可コードを送信しアクセストークンを受信する。更に、通信部423は、取得したアクセストークンを付与して、Webサーバー102に各種Webサービスの利用を要求する。表示部424は、UI表示装置207に表示するアプリケーション操作画面を描画する。
【0019】
アプリケーション420は、たとえばMFP101のオペレーティングシステムの上に用意されたアプリケーションプラットフォームにインストールされ、実行される。アプリケーションプラットフォームは例えばJAVA(登録商標)実行環境であり、その場合にはアプリケーションはJAVA(登録商標)でコーディングされる。このアプリケーション420は、たとえばUI表示装置207に表示された基本メニュー画面から呼び出して実行することができる。そしてその実行により、基本メニュー画面に代えてアプリケーション操作画面を表示する。ユーザーは、そのアプリケーション操作画面の操作により、アプリケーション420が提供する機能を利用できる。このアプリケーション420はMFP101に組み込まれてMFP101が提供する機能の一部として利用されるので、組み込みアプリケーションとも呼ばれる。アプリケーション420は、追加的にインストールすることもできるし、また、アンインストールすることもできる。
【0020】
<Webサーバーのソフトウェア構成>
図5は、本発明の第1の実施形態におけるWebサーバー102のソフトウェア構成を示す図である。
図5に示す各機能部は、Webサーバー102が有しているCPU301が制御プログラムを実行することにより実現される。なお以下の説明ではWebサーバーの通信相手であるクライアントはMFP101としているが、これは本実施形態の説明のためであって、クライアントはMFP101とは限らない。Webサービス500は、通信部501、認可部502、記憶部503を有する。通信部501は、HTTPプロトコルに従って、MFP101と通信する。より具体的には、通信部501は、Webブラウザー400または認可制御サービス410からのHTTPリクエストを受信して、HTTPレスポンスを送信する。認可部502は、OAuth2.0に従って、Webサーバー102の提供する各種Webサービスの利用をMFP101に対して認可する。より具体的には、認可部502は、通信部501が認可要求を受信すると、認証画面を含むレスポンスを生成する。また、認可部502は、通信部501が認証情報を受信すると、認証情報が有効であるかどうか例えばデータベースと照合して判断して、有効であれば認可コードを含むレスポンスを生成する。また、認可部502は、通信部501が、有効な認可コードとともにアクセストークン要求を受信すると、アクセストークンを含むレスポンスを生成する。また、認可部502は、通信部501が各種Webサービス利用要求を受信すると、HTTPリクエストに含まれるアクセストークンが有効であるかどうかを判断する。アクセストークンが有効であればWebサービス利用要求は受け付けられ、有効でなければ拒絶される。記憶部503は、各種ドキュメントファイルを管理する。より具体的には、記憶部503は、Webサーバー102が提供するWebサービスの一例として、ドキュメント管理サービスを提供する。例えば、記憶部503は、通信部501がドキュメントファイル一覧の参照要求を受信すると、ドキュメントファイル名の一覧を含むHTTPレスポンスを生成する。また、記憶部503は、通信部501がドキュメントファイルの取得要求を受信すると、ドキュメントファイルデータを含むHTTPレスポンスを生成する。また、記憶部503は、通信部501がドキュメントファイルのアップロード要求を受信すると、ドキュメントファイル名およびドキュメントファイルデータを保存し、アップロード結果を応答するHTTPレスポンスを生成する。
【0021】
<認可処理キャンセルシーケンス>
図6は、本発明の第1の実施形態における認可処理キャンセルの処理及びメッセージの流れを示すシーケンス図である。ステップS601では、ユーザーの指示に従って、アプリケーション420が認可制御サービス410に対して認可処理開始を要求する。アプリケーション420がWebサービス500に関連付けられているのであれば、ユーザーからの指示は、アプリケーション420を実行する或いはアクティブにするための指示であれば良い。このとき、アプリケーション420は、Webサービス500に認可要求するための認可要求URIを指定する。
図7(a)は、本発明の第1の実施形態におけるWebサービス500に認可要求するための認可要求URIの一例である。URIは、OAuth2.0に従って、クエリストリングにレスポンスタイプ、クライアントID、リダイレクトURIをパラメーターとして含む。リダイレクトURIに設定されるURI"http://127.0.0.1/auth/xxxxxx"は、Webブラウザー400が認可制御サービス410へ認可コードを通知するための認可完了通知URIを表す。URIの一部である"xxxxxx"は、アプリケーション420を識別するためのアプリケーション識別子である。IPアドレス「127.0.0.1」はローカルループバックアドレスである。このURIにより、認可コードの通知先が、認可制御サービス410を介してアプリケーション420であることが特定される。本発明の第1の実施形態では、アプリケーション420は1つであるが、複数のアプリケーション420が認可処理を実行する構成であっても良い。
【0022】
つぎにステップS602では、認可制御サービス410は、アプリケーション420からの認可処理開始要求に基づいて、Webブラウザー400からの認可完了通知(すなわち認可コード)受付を開始する。
図8は、本発明の第1の実施形態における認可制御サービス410が保持するアプリケーション識別情報の一例である。認可制御サービス410は、アプリケーション420が指定する認可要求URIに含まれる認可完了通知URI"/auth/xxxxxx"およびアプリケーション識別子"xxxxxx"をアプリケーション識別情報として保存する。
【0023】
つぎにステップS603では、認可制御サービス410は、Webブラウザー400に対して、認可モードを指定して、アプリケーション420に指示された認可要求URIにHTTPリクエストを送信することを指示する。この指示はたとえば指定された認可要求URIに対するリダイレクトの指示を含んでよい。ステップS603の指示は認可制御サービス410からの指示であるが、アプリケーション420を元とする指示ともいえる。ステップS604では、Webブラウザー400は、Webサービス500に対して、認可要求URIへのHTTPリクエストを送信する。ステップS605では、Webサービス500が、Webブラウザー400へ認証画面を含むHTTPレスポンスを送信する。ステップS606では、Webブラウザー400は、Webサービス500から受信したHTTPレスポンスに基づいて、認証画面を描画する。
【0024】
ステップS607では、認可制御サービス410がWebブラウザー400の操作画面をUI表示装置207に表示させる表示制御を行う。これによりWebブラウザー400が描画した認証画面がUI表示装置207に表示される。
図6ではステップS606の後でステップS607が実行されるが、たとえばステップ603でWebブラウザー400の起動後に直ちにステップS607を行ってもよい。
図9は、本発明の第1の実施形態におけるWebブラウザー400の操作画面の一例である。Webブラウザー400の操作画面は、タイトルバー901、Webコンテンツ領域902、ツールバー903を有する。タイトルバー901は、Webコンテンツのタイトルを表示する領域である。Webコンテンツ領域902は、HTTPレスポンスとして受信したWebコンテンツを描画する領域であり、Webブラウザー400がWebサービス500から受信した認証画面はこの領域に描画される。認証画面は、ユーザーIDを入力するためのユーザーID入力フィールド、パスワードを入力するためのパスワード入力フィールド、入力されたユーザーIDおよびパスワードをWebサービス500へ送信してログインを指示するためのログインボタンを有する。ツールバー903は、戻るボタン904、進むボタン905、停止ボタン906、更新ボタン907、URIバー908を有する。戻るボタン904は、Webブラウザー400が管理するWebページの履歴情報を参照して前の操作画面を表示することを指示するためのUIである。進むボタン905は、Webブラウザー400が管理するWebページの履歴情報を参照して次の操作画面を表示することを指示するためのUIである。停止ボタン906は、Webブラウザー400の通信処理および描画処理を停止することを指示するためのUIである。更新ボタン907は、Webサーバー102と再度通信を行って、Webコンテンツを再取得し、Webコンテンツ領域を再描画することを指示するためのUIである。URLバー908は、現在表示するWebコンテンツへのURIを表示するためのUIである。
【0025】
つぎにステップS608では、Webブラウザー400は、ユーザーが戻るボタン904(戻りボタンとも呼ぶ)を押下すると例えば
図10に示した処理(詳細は後述)を開始し、その処理に従って、認可制御サービス410へ戻る指示(単に「戻り指示」とも呼ぶ)を示すURIへHTTPリクエストを送信する。
図7(b)は、本発明の第1の実施形態における認可制御サービス410に送信される戻る指示を示すURIの一例である。戻る指示を示すURIは、通知先を示す認可完了通知URI"http://127.0.0.1/auth/xxxxxx"に対してクエリストリングで戻る指示を示すパラメーター"return"を付与したものである。このURIは、リソース要求の指示元である認可制御サービス410を示す。通常OAuth2.0の認可処理が実行されると、Webブラウザー400はWebサービス500から受信した認可コードをクエリストリングのパラメーターとして含むレスポンスをリダイレクトすることで、認可コードを認可制御サービス410へ送信する。認可コードは認可制御サービス410からアプリケーション420へ引き渡される。アプリケーション420はその認可コードを用いてアクセストークンを取得し、Webサービス500へアクセスする。一方、ユーザーが戻るボタン904を押下して認可処理キャンセルを指示した場合、本実施形態においては、Webブラウザー400は、戻る指示を認可制御サービス410へ送信する。これは例えば、
図7(b)に示すURIにHTTPリクエストを送信することで実現される。
【0026】
ステップS609では、認可制御サービス410は、アプリケーション420へ認可キャンセルを通知する。ステップS610では、アプリケーション420は認証がキャンセルされた旨を表す操作画面として認証キャンセル画面を作成あるいは描画する。ステップS611では、認可制御サービス410はアプリケーション420の操作画面をUI表示装置207に表示する。つぎにステップS612では、認可制御サービス410は、保存したアプリケーション識別情報を削除し、アプリケーション320のための認可コード受付を終了する。最後にステップS613では、認可制御サービス410はWebブラウザー400に認可処理終了を示すHTTPレスポンスを送信する。
【0027】
一方、操作画面901でユーザーIDおよびパスワードなどのユーザー情報が入力されてログインボタンが押下された場合には、Webブラウザー400は入力されたユーザー情報を操作画面情報の送信元であるWebサービス500に送信する。Webサービス500の認可部502は、ユーザー情報の認証が成功したなら認可コードをWebブラウザー400に送信する。Webブラウザー400は、認可コードを含む認可完了通知を、認可要求URI中のリダイレクトURIに宛てて送信する。
図7(a)の例では、宛先はURI"http://127.0.0.1/auth/xxxxxx"となっている。「戻る」指示または認可コードを受信した認可制御サービス410の動作は
図11を参照して後述する。
【0028】
<MFPのWebブラウザーによる「戻る」処理>
図10は、本発明の第1の実施形態における戻るボタン904押下時のWebブラウザー400の処理の流れを示すフローである。ステップS1001では、Webブラウザー400の入力部404は、戻るボタン904が押下されると処理の流れを開始し、ステップS1002へ進む。ステップS1002では、Webブラウザー400の記憶部403は、認可モードが記憶されているかどうか判断し、認可モードが記憶されている場合、ステップS1003へ進む。それ以外の場合、ステップS1013へ進む。ステップS1003では、Webブラウザー400の通信部401は、
図9に図示した認可制御サービス410へ戻る指示を送信し、ステップS1004へ進む。一方ステップS1013では、Webブラウザー400の記憶部403は履歴情報を参照して直前のWebページを開き、ステップS1004へ進む。ステップS1004では、Webブラウザー400は、戻るボタン904押下時の処理の流れを終了する。
【0029】
なお、
図10の処理手順は、Webブラウザー400のプログラム中にコーディングしておいてもよいが、スクリプトにより実現してもよい。スクリプトにより実現する場合には、たとえば
図6のステップS607でWebブラウザー400を前面に表示させる指示と送信するとともにスクリプトを送信する。そのスクリプトはたとえば、その時に表示している画面(すなわちHTMLデータ)を、「戻る」の押下に応じて
図10のステップS1003を実行させるように書き換えるスクリプトであってよい。
【0030】
<MFPの認可制御サービスによる処理>
図11は、本発明の第1の実施形態における認可制御サービス410が認可完了通知を受信したときの処理の流れを示すフローである。なおここでは「戻る」通知も含めて認可完了通知と呼ぶ。ステップS1101では、認可制御サービス410の通信部411は、Webブラウザー400から認可完了通知URIへのHTTPリクエストを受信すると処理の流れを開始し、ステップS1102へ進む。ステップS1102では、認可制御サービス410の認可制御部413が、HTTPリクエストに戻る指示が含まれるかどうかを判断し、戻る指示でないと判断した場合ステップS1103へ進む。一方で、戻る指示であると判断した場合は、ステップS1113へ進む。より具体的には、
図9に図示した「戻る」指示のURIの場合、クエリストリングにパラメーター"return"を含むため、認可制御サービス410はこのパラメーターを参照してHTTPリクエストが戻る指示であると判断する。
【0031】
ステップS1103では、認可制御サービス410の認可制御部313はアプリケーション420へ、認可完了通知とともに受信した認可コードを含む認可完了通知を通知し、ステップS1104へ進む。
図7(c)は、本発明の第1の実施形態における認可制御サービス310に送信される認可コードを示すURIの一例である。クエリストリングとして認可コードを示すパラメーター"code"が指定されている。
図7(c)の例では、認可制御サービス410は、"code"指定される値"l0y1LYh724IqxfieWqbs"を認可コードとしてアプリケーション420へ通知する。ステップS1104では、認可制御サービス310の画面制御部314は、アプリケーション420の操作画面をUI表示装置207に表示し、ステップS1105へ進む。ステップS1105では、認可制御サービス410の認可制御部413は、保存されているアプリケーション420のアプリケーション識別情報を削除して認可コード受付を終了し、ステップS1106へ進む。ステップS1106では、認可制御サービス410はWebブラウザー400に認可処理終了を示すHTTPレスポンスを送信し、ステップS1107へ進む。ステップS1107では、認可制御サービス310は認可完了通知を受信したときの処理を終了する。
【0032】
一方ステップS1113では、認可制御サービス410の認可制御部413はアプリケーション420へ認可キャンセルを示す認可完了通知を通知して、ステップS1104へ進む。
【0033】
<MFPのアプリケーションによる認可完了通知の受信処理>
図12は、本発明の第1の実施形態におけるアプリケーション420が認可完了通知を受信したときの処理の流れを示すフローである。ステップS1201では、アプリケーション420の認可要求部422は、認可制御サービス410から認可完了通知を受けると処理の流れを開始し、ステップS1202へ進む。ステップS1202では、アプリケーション420の認可要求部422は、認可完了通知が認可コードを含むかどうかを判断し、認可コードを含む場合、ステップS1203へ進む。それ以外の場合はステップS1213へ進む。
【0034】
ステップS1203では、アプリケーション420の通信部423は、取得した認可コードを付与したアクセストークン取得を要求するHTTPリクエストをWebサービス500へ送信し、その結果としてアクセストークンを含むHTTPレスポンスを受信する。アプリケーション420は、アクセストークンを取得するとステップS1204へ進む。ステップS1204では、アプリケーション420の通信部423は、アクセストークンを付与したドキュメント一覧情報取得を要求するHTTPリクエストをWebサービス500へ送信し、その結果としてドキュメント一覧情報を含むHTTPレスポンスを受信する。アプリケーション420は、ドキュメント一覧情報を取得するとステップS1205へ進む。ステップS1205では、アプリケーション420の表示部424は、UI表示装置207に表示される認証成功画面1301を描画し、ステップS1206へ進む。ステップS1206では、アプリケーション420は、認可完了通知を受信したときの処理の流れを終了する。
【0035】
一方ステップS1213では、アプリケーション420の認可要求部422は、認可完了通知が認可キャンセルかどうかを判断し、認可キャンセルの場合、ステップS1214へ進む。それ以外の場合はステップS1224へ進む。ステップS1214では、アプリケーション420の表示部424は、UI表示装置207に表示される認証キャンセル画面1302を描画し、ステップS1206へ進む。一方で、ステップS1224では、アプリケーション420の表示部424は、UI表示装置207に表示される認証エラー画面1303を描画し、ステップS1206へ進む。
【0036】
<アプリケーションの操作画面>
図13は、本発明の第1の実施形態におけるアプリケーション420の操作画面の一例である。認証成功画面1301は、ドキュメントファイル一覧、スキャンボタン、プリントボタンを有する。ドキュメントファイル一覧は、アプリケーション420がアクセストークンを使用してWebサービス500の記憶部から取得したドキュメントファイル情報の一覧を表示するためのUIである。スキャンボタンは、スキャン装置を制御して生成されたドキュメントデータをWebサービス500へアップロードすることを指示するためのUIである。プリントボタンは、ドキュメントファイル一覧で選択されたドキュメントファイルをWebサービス500から取得し、プリント装置を制御して印刷することを指示するためのUIである。スキャンボタンまたはプリントボタンが押下されると、
図6に示したシーケンスが開始されることになる。そしてアプリケーションが認証完了通知を受信すると、
図12の手順が実行される。
【0037】
認証キャンセル画面1302は、認証がキャンセルされた旨を示す画面であり、再度認可処理を指示するためのUIを有する。この画面1302が
図6のステップS610で描画され、表示される。認証エラー画面1303は、認証中にエラーが発生した旨を示す画面であり、再度認可処理を指示するためのUIを有する。
【0038】
以上に示す構成により、ユーザーは、組み込みアプリケーション420の認可処理中にWebブラウザー400での認証操作を中断して組み込みアプリケーションの操作画面に戻ることが可能となる。
【0039】
[第2の実施形態]
本発明の第1の実施形態では、
図10のフローに示したように、Webブラウザー400は、認可モードで認可要求されたかどうかを判断して、認可制御サービス410へ戻る指示を送信するのか履歴にしたがって戻るのか処理を分岐した。しかしながら、
図14に示すように、認証画面がID入力画面1401とパスワード入力画面1403の2画面で構成されており、ID入力画面1401からパスワード入力画面1403へと画面遷移する場合、ユーザーがユーザーIDを再入力するためにパスワード画面表示中に戻るボタンを押下してもアプリケーション420の操作画面へ戻ってしまうという課題がある。
【0040】
そこで本発明の第2の実施形態として、Webブラウザー400は、戻るボタンを押下したとき、認可要求URIが示す操作画面を表示している場合はアプリケーション画面へ戻るが、それ以外の場合は履歴にしたがって戻るように制御してもよい。
【0041】
<戻るボタン押下時のWebブラウザーによる処理>
図15は、本発明の第2の実施形態における戻るボタン押下時のWebブラウザー400の処理の流れを表すフローである。本発明の第1の実施形態の
図10との差分は、ステップS1002で、Webブラウザー400の記憶部403が、認可モードが記憶されていると判断した場合、ステップS1501へ進む点である。ステップS1501では、Webブラウザーの記憶部403が、現在表示しているWebページのURIは認可要求URIであるかどうか判断し、認可要求URIであると判断すればステップS1502へ進む。それ以外の場合は、ステップS1013へ進む。認可要求URIは
図7(a)に例示したURIであり、ステップS604で送信した認可要求に応じて
図6ステップS606で描画する画面のURIが認可要求URIである。ステップS1502では、Webブラウザーの記憶部403が、履歴情報に含まれるHTTPリクエストのメソッドは所定の形式、たとえばPOSTかどうか判断して、POSTである場合はステップS1003へ進む。POSTでない場合は、パスワード入力画面において「戻る」ボタンが押されたと判定し、ステップS1113へ進む。ステップS1013では履歴に従って戻る。
【0042】
図14に示したように認証画面がID入力画面1401とパスワード入力画面1403が分割されている場合、ID入力画面1401からパスワード入力画面1403への画面遷移はGETメソッドが使用され、IDおよびパスワードはパスワード入力画面よりPOSTメソッドでサブミットされるのが通常の処理の流れである。したがって、パスワード入力画面1403が表示されているときには、履歴情報に記録された最後のHTTPリクエストのメソッドはGETメソッドであり、POSTメソッドではない。そこでステップS1502では、Webブラウザー400は最後のHTTPリクエストがPOSTメソッドかどうか判断することによって認証操作が終了したのかどうかを判断している。
【0043】
このように制御することで、ユーザーIDとパスワードとが別々の画面で入力される場合には、いずれか後の入力画面において「戻る」ボタンが押された場合には、Webブラウザー400の保持する履歴に従って画面を戻す。一方、先の入力画面において「戻る」ボタンが押された場合には、第1の実施形態と同様に認可制御サービス410へと戻すことができる。なおステップS1502の判定の理由は上述した通りなので、ステップS1502では履歴に記録された最後のリクエストがGETメソッドか判定し、GETであればステップS1013に、そうでなければステップS1003に分岐してもよい。
【0044】
<変形例1>
図16は、本発明の第2の実施形態の変形例1における戻るボタン押下時のWebブラウザー400の処理の流れを表すフローである。
図15に示したフローとの差分は、ステップS1502の代わりにステップS1602を実行する点である。ステップS1602では、Webブラウザーの記憶部403が、履歴情報に含まれるHTTPレスポンスのステータスコードが3xxかどうか判断して、3xxである場合はステップS1003へ進む。それ以外の場合は、パスワード入力画面において「戻る」ボタンが押されたと判定し、ステップS1113へ進む。認証画面から認証情報(あるいはユーザー情報とも呼ぶ)をサブミットした場合、認証の成功失敗に関わらず、Webブラウザー400はステータスコード3xxのレスポンスを受信するのが通常の処理の流れである。したがって、コードステップS1602では、Webブラウザー400はHTTPレスポンスのステータスコードが3xxかどうか判断することによって認証操作が終了したのかどうかを判断している。
【0045】
なお、第2の実施形態の基本形と変形例1を組み合わせて、Webブラウザー400は、履歴情報のHTTPリクエストがPOSTメソッドかどうか、および、履歴情報のHTTPレスポンスが3xxかどうかを判断して、処理の流れを決定してもよい。
【0046】
<変形例2>
変形例1を含む上述の実施形態では、Webブラウザー400が判断して戻るボタン押下時の処理の流れを決定したが、同じ課題を解決する第2の実施形態の変形例として、アプリケーション420が「戻る」処理の判断基準を提供し、Webブラウザー400はその基準に基づいて判断して戻るボタン押下時の処理を決定する構成でもよい。具体的には、アプリケーション420が認可モードに付加する情報として、戻るボタン押下時にアプリケーション420の操作画面へ戻るべきWebページのURI一覧を指定する構成でもよい。
図17は、本発明の第2の実施形態の変形例2における戻るボタン押下時のWebブラウザーの処理の流れを表すフローである。本発明の第1の実施形態との差分は、ステップS1002で、Webブラウザー400の記憶部403が、認可モードが記憶されていると判断した場合、ステップS1701へ進む点である。ステップS1701では、Webブラウザーの記憶部403が、履歴情報に記録された最後のURIが、認可モードに付加されるURI一覧に含まれるかどうか、すなわち一覧に含まれたいずれかのURIと一致するか判断し、URI一覧に含まれるのであればステップS1003へ進む。それ以外の場合は、パスワード入力画面において「戻る」ボタンが押されたと判定し、ステップS1013へ進む。この場合にはパスワード入力画面に限らず、アプリケーション420で指定されたのではないURIが履歴の最後の記録されている場合には、履歴に従って戻ることになる。本変形例では、アプリケーション420が、戻るボタン押下時の画面遷移をより細かく制御できるという効果がある。
【0047】
<>[第3の実施形態]
また同じ課題を解決する第3の実施形態として、Webブラウザー400が認可制御サービス410へ戻る指示を送信する際に、履歴情報に含まれる直前のWebページに関する情報も送信する構成であっても良い。本構成では、Webブラウザー400は第1の実施形態や第2の実施形態およびその変形例のように振る舞ってもよいし、戻るボタンが押下されたなら無条件で認可制御サービスに戻る指示(戻り指示)を、認可制御サービス410に送信してもよい。ただし、本実施形態では、戻り指示とともに、Webブラウザーの記録した履歴のうちの、少なくとも最後の要求および応答またはそのいずれかを送信する。これを受信した認可制御サービス410が戻る指示と共に履歴情報に含まれる直前のWebページに関する情報をアプリケーション420へ送信し、アプリケーション420は、アプリケーション420の操作画面に戻るかどうかを判断して画面遷移指示を認可制御サービス410へ通知する。たとえば、
図6のS609で認可キャンセルに代えて認可位制御サービス410は戻る指示をアプリケーション420に送信する。アプリケーション420は、操作画面に戻るか否かを、たとえば履歴情報を参照して第2実施形態のWebブラウザー400と同じ要領で判断する。その判断の結果アプリケーションに戻すか否かを示した画面遷移指示を認可位制御サービス410に送信する。アプリケーションに戻すと判断した場合には、アプリケーション420はたとえば認証キャンセル画面を描画しておく。
【0048】
図18は、本発明の第3の実施形態における認可制御サービス410がアプリケーション420からアプリケーション画面遷移指示を受け付けたときの処理の流れを表すフローである。ステップS1801では、認可制御サービス410の通信部411がアプリケーション420から画面遷移指示を受け付けると、ステップS1802へ進む。ステップS1802では、認可制御サービス410の認可制御部413は、画面遷移指示がアプリケーション420の操作画面へ戻ることを指示しているかどうかを判断し、アプリケーション操作画面へ戻ることを指示する場合ステップS1803へ進む。それ以外の場合はステップS1813へ進む。
【0049】
ステップS1803では、認可制御サービス410の画面制御部414はアプリケーション420の操作画面をUI表示装置207へ表示し、ステップS1804へ進む。ステップS1804では、認可制御サービス410の通信部411は認可処理終了を示すHTTPレスポンスをWebブラウザー400に送信する。
【0050】
一方ステップS1813では、認可制御サービス410の画面制御部414は、Webブラウザー400の履歴情報の直前のページへ戻ることを指示するJavaScript(登録商標)を含むHTTPレスポンスを生成する。具体的には、HTTPレスポンスは"history.back()"命令を含む。そしてWebブラウザー400の解析部402がHTTPレスポンスに含まれるJavaScriptを処理した結果、Webブラウザー400の表示部405は記憶部403に記憶される履歴情報の直前のページをWebブラウザー400の操作画面に描画する。本変形例では、変形例2と同様に、アプリケーション420が戻るボタン押下時の画面遷移をより細かく制御できるという効果がある。
【0051】
[その他の実施例]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。