(57)【要約】【課題】クラウドサーバを利用するアプリケーションプログラムであって、クラウドサーバへの認証結果の誤認識を低減できる技術を提供すること。【解決手段】アプリケーションプログラムは、コンピュータにクラウドサーバへの認証指示を受け付ける処理を実行させ、認証指示を受け付けた場合、コンピュータをローカルサーバとして機能させ、ローカルサーバをリダイレクト先としてクラウドサーバの認証画面を表示することをブラウザに指示する。ローカルサーバは、ブラウザからの要求を受信した場合、特定の要求か否かを判定し、特定の要求ではないと判定した場合、ブラウザに完了画面の表示を指示してローカルサーバを終了させ、特定の要求であると判定した場合、ローカルサーバを終了させることなく、特定の要求に対してブラウザに応答する。【選択図】図４
2019149134.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置のコンピュータによって実行可能なアプリケーションプログラムであって、
前記コンピュータに、
クラウドサーバへの認証指示を受け付ける認証指示受付処理を実行させ、
前記コンピュータを、
前記認証指示を前記認証指示受付処理で受け付けた場合に、ローカルホストのウェブサーバであるローカルサーバとして機能させ、
前記コンピュータに、
前記認証指示を前記認証指示受付処理で受け付けた場合に、前記情報処理装置に組み込まれたブラウザに、前記クラウドサーバによって提供される認証画面を表示することと、前記ローカルサーバをリダイレクト要求のリダイレクト先とすることと、を指示するブラウザ指示処理を実行させ、前記リダイレクト要求には、前記ブラウザが前記認証画面を介して前記クラウドサーバから取得した認証情報が含まれ、
前記ローカルサーバは、前記コンピュータに、
前記ブラウザ指示処理の後、指示先である前記ブラウザからの要求を前記ローカルサーバが受信した場合に、前記要求が前記リダイレクト要求以外の特定の要求か否かを判定する判定処理と、
前記判定処理にて前記要求が前記特定の要求ではないと判定した場合に、前記クラウドサーバへの認証結果を示す完了画面を表示するよう、前記ブラウザに指示する認証結果表示処理と、
前記完了画面を前記ブラウザに表示させた後、前記ローカルサーバを終了させるサーバ終了処理と、
前記判定処理にて前記要求が前記特定の要求であると判定した場合に、前記ローカルサーバを終了させることなく、前記特定の要求に対して前記ブラウザに応答する特定応答処理と、
を実行させることを特徴とするアプリケーションプログラム。
【請求項２】
請求項１に記載するアプリケーションプログラムにおいて、
前記ブラウザ指示処理では、
前記ブラウザに、前記認証画面のウェブページのＵＲＬを渡す、
ことを特徴とするアプリケーションプログラム。
【請求項３】
請求項２に記載するアプリケーションプログラムにおいて、
前記特定の要求は、前記ブラウザに表示されている前記認証画面のウェブページの変更を含まない要求である、
ことを特徴とするアプリケーションプログラム。
【請求項４】
請求項１に記載するアプリケーションプログラムにおいて、
前記特定の要求は、ファビコン要求である、
ことを特徴とするアプリケーションプログラム。
【請求項５】
請求項１から請求項４のいずれか１つに記載するアプリケーションプログラムにおいて、
前記認証指示受付処理では、
前記情報処理装置のユーザインタフェースを介して、前記アプリケーションプログラムがアクティブな状態で、前記認証指示を受け付け、
前記ブラウザ指示処理によって指示された前記ブラウザはアクティブな状態になり、
前記認証結果表示処理によって指示された前記ブラウザはアクティブな状態になり、
前記完了画面には、前記アプリケーションプログラムをアクティブな状態にすることを示す特定情報が含まれ、
前記コンピュータに、
前記クラウドサーバへの認証に成功している場合、前記ユーザインタフェースを介して、前記アプリケーションプログラムがアクティブな状態で、前記クラウドサーバを利用する処理の実行指示を受け付ける実行指示受付処理を実行させ、
前記実行指示を前記実行指示受付処理で受け付けた場合に、前記実行指示に対応する前記処理を実行させる、
ことを特徴とするアプリケーションプログラム。
【請求項６】
請求項５に記載するアプリケーションプログラムにおいて、
前記認証結果表示処理では、
前記ブラウザに、前記特定情報が含まれる前記完了画面のウェブページデータを渡す、
ことを特徴とするアプリケーションプログラム。
【請求項７】
請求項６に記載するアプリケーションプログラムにおいて、
前記認証結果表示処理では、
前記リダイレクト要求に含まれる前記認証情報に基づく認証結果を判断し、
前記認証結果が認証完了の場合は、認証できたことを示す前記完了画面のウェブページデータを前記ブラウザに渡し、
前記認証結果が認証未完了の場合は、認証できなかったことを示す前記完了画面のウェブページデータを前記ブラウザに渡す、
ことを特徴とするアプリケーションプログラム。
【請求項８】
請求項１から請求項４のいずれか１つに記載するアプリケーションプログラムにおいて、
前記認証指示受付処理では、
前記情報処理装置のユーザインタフェースを介して、前記アプリケーションプログラムがアクティブな状態で、前記認証指示を受け付け、
前記ブラウザ指示処理によって指示された前記ブラウザはアクティブな状態になり、
前記認証結果表示処理では、
前記アプリケーションプログラムをアクティブな状態にし、
前記コンピュータに、
前記クラウドサーバへの認証に成功している場合、前記ユーザインタフェースを介して、前記アプリケーションプログラムがアクティブな状態で、前記クラウドサーバを利用する処理の実行指示を受け付ける実行指示受付処理を実行させ、
前記実行指示を前記実行指示受付処理で受け付けた場合に、前記実行指示に対応する前記処理を実行させる、
ことを特徴とするアプリケーションプログラム。
【請求項９】
情報処理装置のコンピュータによって実行可能なアプリケーションプログラムであって、
前記コンピュータに、
クラウドサーバへの認証指示を受け付ける認証指示受付処理を実行させ、
前記コンピュータを、
前記認証指示を前記認証指示受付処理で受け付けた場合に、ローカルホストのウェブサーバであるローカルサーバとして機能させ、
前記コンピュータに、
前記認証指示を前記認証指示受付処理で受け付けた場合に、前記情報処理装置に組み込まれたブラウザに、前記クラウドサーバによって提供される認証画面を表示することと、前記ローカルサーバをリダイレクト要求のリダイレクト先とすることと、を指示するブラウザ指示処理を実行させ、前記リダイレクト要求には、前記ブラウザが前記認証画面を介して前記クラウドサーバから取得した認証情報が含まれ、
前記ローカルサーバは、前記コンピュータに、
前記ブラウザ指示処理の後、指示先である前記ブラウザからの要求を前記ローカルサーバが受信した場合に、前記要求が前記クラウドサーバから送信される前記リダイレクト要求か否かを判定する判定処理と、
前記判定処理にて前記要求が前記リダイレクト要求であると判定した場合に、前記クラウドサーバへの認証結果を示す完了画面を表示するよう、前記ブラウザに指示する認証結果表示処理と、
前記完了画面を前記ブラウザに表示させた後、前記ローカルサーバを終了させるサーバ終了処理と、
前記判定処理にて前記要求が前記リダイレクト要求ではないと判定した場合に、前記ローカルサーバを終了させることなく、前記要求に対して前記ブラウザに応答する特定応答処理と、
を実行させることを特徴とするアプリケーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野は、クラウドサーバを利用するアプリケーションプログラムに関する技術分野である。
【背景技術】
【０００２】
近年、インターネット上のクラウドサーバを利用し、パーソナルコンピュータやスマートフォン等の情報処理装置から、クラウドサービスによって提供されるストレージサーバに、データのアップロードないしダウンロードを行う技術が知られている。例えば、特許文献１には、スキャナで読み取った読取データを、クラウドサーバにアップロードする構成が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−４５４６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
クラウドサーバを利用するアプリケーションプログラムでは、ユーザに対してクラウドサーバへの認証に必要な操作を要求する。このアプリケーションプログラムでの認証では、認証結果の誤認識が稀に生じることがあり、この認証時のアプリケーションプログラムの動作に改善の余地がある。
【０００５】
本明細書には、クラウドサーバを利用するアプリケーションプログラムであって、クラウドサーバへの認証結果の誤認識という課題を低減できる技術を開示する。
【課題を解決するための手段】
【０００６】
この課題の解決を目的としてなされたアプリケーションプログラムは、情報処理装置のコンピュータによって実行可能なアプリケーションプログラムであって、前記コンピュータに、クラウドサーバへの認証指示を受け付ける認証指示受付処理を実行させ、前記コンピュータを、前記認証指示を前記認証指示受付処理で受け付けた場合に、ローカルホストのウェブサーバであるローカルサーバとして機能させ、前記コンピュータに、前記認証指示を前記認証指示受付処理で受け付けた場合に、前記情報処理装置に組み込まれたブラウザに、前記クラウドサーバによって提供される認証画面を表示することと、前記ローカルサーバをリダイレクト要求のリダイレクト先とすることと、を指示するブラウザ指示処理を実行させ、前記リダイレクト要求には、前記ブラウザが前記認証画面を介して前記クラウドサーバから取得した認証情報が含まれ、前記ローカルサーバは、前記コンピュータに、前記ブラウザ指示処理の後、指示先である前記ブラウザからの要求を前記ローカルサーバが受信した場合に、前記要求が前記リダイレクト要求以外の特定の要求か否かを判定する判定処理と、前記判定処理にて前記要求が前記特定の要求ではないと判定した場合に、前記クラウドサーバへの認証結果を示す完了画面を表示するよう、前記ブラウザに指示する認証結果表示処理と、前記完了画面を前記ブラウザに表示させた後、前記ローカルサーバを終了させるサーバ終了処理と、前記判定処理にて前記要求が前記特定の要求であると判定した場合に、前記ローカルサーバを終了させることなく、前記特定の要求に対して前記ブラウザに応答する特定応答処理と、を実行させることを特徴としている。
【０００７】
本明細書に開示されるアプリケーションプログラムは、クラウドサーバへの認証指示を受け付けた場合、ローカルサーバを起動させる。ローカルサーバは、特定の要求を受信した場合には、特定の要求に対する応答を行い、ローカルサーバを終了させない。従って、ローカルサーバは、引き続きリダイレクト要求を待ち続けることができるので、クラウドサーバへの認証結果の誤認識を低減できる。
【０００８】
上記アプリケーションプログラムが組み込まれた情報処理装置、アプリケーションプログラムを格納するコンピュータにて読取可能な記憶媒体、及びアプリケーションプログラムの機能を実現するための制御方法も、新規で有用である。
【発明の効果】
【０００９】
本明細書に開示される技術によれば、クラウドサーバを利用するアプリケーションプログラムであって、クラウドサーバへの認証結果の誤認識を低減できる技術が実現される。
【図面の簡単な説明】
【００１０】
【図１】ＰＣの電気的構成を示すブロック図である。
【図２】保存先の選択画面の例を示す説明図である。
【図３】クラウドの選択画面の例を示す説明図である。
【図４】認証手順を示すシーケンス図である。
【図５】認証要求情報の入力画面の例を示す説明図である。
【図６】認証許可を受け付ける画面の例を示す説明図である。
【図７】認証完了時の完了画面の例を示す説明図である。
【図８】アップロード処理の手順を示すフローチャートである。
【図９】ローカルサーバ処理の手順を示すフローチャートである。
【図１０】認証未完了時の完了画面の例を示す説明図である。
【発明を実施するための形態】
【００１１】
アプリケーションプログラム（以下、「アプリ」とする）を具体化した実施の形態について、添付図面を参照しつつ詳細に説明する。本形態は、パーソナルコンピュータ（以下、「ＰＣ」とする）にて実行されるスキャンアプリを開示するものである。
【００１２】
本形態のＰＣ１は、図１に示すように、スキャナ２と接続され、スキャナ２から画像データを受信する。ＰＣ１は、情報処理装置の一例である。ＰＣ１は、各種のプログラムの実行が可能な装置である。ＰＣ１に代えて、例えば、タブレットコンピュータ、スマートフォンであってもよい。スキャナ２は、原稿を読み取って画像データを取得し、取得した画像データをＰＣ１に送信する。ＰＣ１に接続されるスキャナ２は、１台に限らず、複数台でも良い。また、ＰＣ１には、スキャナに限らず、コピー機、複合機、ＦＡＸ装置、デジタルカメラ等、画像データを取得して送信できる装置が接続されていればよい。
【００１３】
本形態のＰＣ１は、図１に示すように、インターネット１００に接続され、インターネット１００を介して、クラウドサーバ１０１と、クラウドサーバ１０２と、に接続される。つまり、ＰＣ１のユーザは、ＰＣ１を使用して、インターネット１００を介して提供される各種のクラウドサービスを利用できる。
【００１４】
各クラウドサービスは、１以上のストレージサーバや認証用サーバを管理し、管理するストレージサーバへのデータのアップロードやダウンロードのサービスを提供する。ストレージサーバの１つが認証サーバを兼ねていても良い。以下では、１つのクラウドサービスにて管理されるストレージサーバや認証用サーバを区別せず、まとめて「クラウドサーバ」と呼ぶ。なお、図１では、ＰＣ１に２つのクラウドサーバ１０１、１０２が接続されている状態を例示しているが、アクセス可能なクラウドサーバの数はさらに多く、実際に接続されるクラウドサーバの数は限定されない。
【００１５】
本形態のＰＣ１は、図１に示すように、ＣＰＵ１１と、ＲＯＭ１２と、ＲＡＭ１３と、不揮発性メモリ１４と、を含む制御基板１０を備えている。さらに、タッチパネル１５と、ネットワーク通信インタフェース（以下、「ＩＦ」とする）１６と、ＵＳＢ−ＩＦ１７と、を備え、これらが制御基板１０に電気的に接続されている。ＣＰＵ１１は、コンピュータの一例である。
【００１６】
ＲＯＭ１２には、ＭＦＰ１００を起動するための起動プログラム等が記憶されている。ＲＡＭ１３は、各種の処理が実行される際の作業領域として、あるいは、データを一時的に記憶する記憶領域として利用される。不揮発性メモリ１４は、例えば、ＨＤＤ、フラッシュメモリであり、各種のプログラムや画像データ等のデータや各種設定を記憶する領域として利用される。
【００１７】
ＣＰＵ１１は、ＲＯＭ１２や不揮発性メモリ１４から読み出したプログラムに従って、また、ユーザの指示に基づいて、各種の処理を実行する。なお、図１中の制御基板１０は、ＰＣ１の制御に利用されるハードウェアやソフトウェアを纏めた総称であって、実際にＰＣ１に存在する単一のハードウェアを表すとは限らない。
【００１８】
タッチパネル１５は、ユーザによる操作を受け付けるとともに情報の表示を行うハードウェアである。すなわち、タッチパネル１５は、入力機能と出力機能との両方を備えるユーザインタフェースの一例である。ユーザインタフェースは、タッチパネル１５に限らず、ディスプレイとキーボードやマウスとの組み合わせを備えるものであっても良い。
【００１９】
ネットワーク通信ＩＦ１６は、インターネット１００を介して外部装置と通信を行うためのハードウェアを含む。ネットワーク通信ＩＦ１６の通信方式は、無線でも有線でもよく、ＬＡＮ、Ｗｉ−Ｆｉ（登録商標）など、どのような規格の方式でもよい。また、ＵＳＢ−ＩＦ１７は、スキャナ２との通信を行うためのハードウェアを含む。なお、ネットワーク通信ＩＦ１６を介して接続されるスキャナがあっても良い。
【００２０】
ＰＣ１の不揮発性メモリ１４には、オペレーティングシステム（以下、「ＯＳ」とする）４０と、スキャンアプリ４１と、ブラウザ４２と、を含む、各種のプログラムが記憶されている。スキャンアプリ４１は、ユーザの指示に基づいて、スキャナ２との通信を行い、スキャナ２への読み取り設定や読み取り実行の指示等の送信、スキャナ２にて読み取った画像データの受信や表示、受信した画像データの保存等を行うプログラムである。ブラウザ４２は、ウェブページを表示するプログラムである。ＯＳ４０の一部は、ＲＯＭ１２に含まれていてもよい。
【００２１】
スキャンアプリ４１が記憶される媒体は、不揮発性メモリ１４に限らない。スキャンアプリ４１が記憶される媒体は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体も含まれる。また、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体は、ｔａｎｇｉｂｌｅな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙなコンピュータが読み取り可能なストレージ媒体には含まれない。
【００２２】
続いて、スキャンアプリ４１の動作について説明する。なお、以下の説明における処理およびフローチャートの各処理ステップは、基本的に、スキャンアプリ４１などのプログラムに記述された命令に従ったＣＰＵ１１の処理を示す。すなわち、以下の説明における「判断」、「取得」、「受付」、「制御」等の処理は、ＣＰＵ１１の処理を表している。ＣＰＵ１１による処理は、ＰＣ１のＯＳ４０の他のモジュールとデータ交換するためのＩＦ（ＡＰＩとも呼ばれる）を用いたハードウェア制御も含む。本明細書では、ＯＳ４０の記載を省略して各プログラムの動作を説明する。すなわち、以下の説明において、「プログラムＰがハードウェアＨを制御する」という趣旨の記載は、「プログラムＰがＯＳ４０のＡＰＩを用いてハードウェアＨを制御する」ことを指してもよい。なお、「取得」は要求を必須とはしない概念で用いる。すなわち、ＣＰＵ１１が要求することなくデータを受信するという処理も、「ＣＰＵ１１がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「要求する」、「指示する」とは、要求していることを示す情報や、指示していることを示す情報を相手に出力することを示す概念である。また、要求していることを示す情報や指示していることを示す情報のことを、単に、「要求」、「指示」とも記載する。
【００２３】
また、プログラムに記述された命令に従ったＣＰＵ１１の処理を、省略した文言で記載することがある。例えば、「ＣＰＵ１１が行う」、「スキャンアプリ４１が行う」のように記載することがある。また、ＣＰＵ１１による処理であって、情報Ａが事柄Ｂであることを示しているか否かを判断する処理を、「情報Ａから、事柄Ｂであるか否かを判断する」のように概念的に記載することがある。また、ＣＰＵ１１による処理であって、情報Ａが事柄Ｂであることを示しているか、事柄Ｃであることを示しているかを判断する処理を、「情報Ａから、事柄Ｂであるか事柄Ｃであるかを判断する」のように概念的に記載することがある。
【００２４】
本形態のスキャンアプリ４１は、起動の指示を受け付けると、タッチパネル１５にアプリ用のウィンドウを表示させ、ユーザの操作を受け付ける。スキャンアプリ４１は、ユーザの指示に基づいて、例えば、スキャナ２に原稿の画像を読み取らせ、スキャナ２から画像データを受信して、受信した画像データを指定された保存場所に保存する。以下、図２〜図７を参照して、画像データをクラウドサーバへアップロードする手順について説明する。
【００２５】
図２は、画像データの保存の指示を受け付けた場合に、スキャンアプリ４１が表示させるアプリ用ウィンドウ４１１の例を示している。図２では、アプリ用ウィンドウ４１１のスキャン画像領域８１に、スキャナ２から受信した画像データの画像が含まれている。また、保存先の選択肢として、「ＰＣへの保存」ボタン８２と、「クラウドサービスへの保存」ボタン８３と、「アプリで開く」ボタン８４と、が含まれている。そして、スキャンアプリ４１は、各ボタン８２〜８４への操作を受け付ける。
【００２６】
スキャンアプリ４１は、ボタン８３への操作を受け付けた場合に、アップロード先のクラウドサーバの選択を受け付けるクラウド選択ウィンドウ４１２を表示させる。図３は、クラウド選択ウィンドウ４１２の例を示している。クラウド選択ウィンドウ４１２は、アプリ用ウィンドウ４１１の前面に表示される。
【００２７】
図３では、クラウドサーバの選択肢として、「クラウドＡ」ボタン８５と、「クラウドＢ」ボタン８６と、が表示され、「クラウドＡ」が選択されている状態の例を示している。クラウドサーバは、それぞれ個別の管理システムを備えている。そのため、クラウドサーバに画像データをアップロードする場合には、スキャンアプリ４１は、選択されたクラウドサーバの規定に則って認証を受け、認証情報を取得する必要がある。クラウド選択ウィンドウ４１２には、図３に示すように、クラウドサーバごとの「サインイン」ボタン８５１、８６１も表示されている。
【００２８】
スキャンアプリ４１は、クラウド選択ウィンドウ４１２にて、例えば、ボタン８５の操作によってクラウドサーバの選択を受け付け、さらに、ボタン８５１の操作によってサインインの指示を受け付けると、認証情報を取得するための手続を開始する。なお、ボタン８５１は、そのクラウドサーバへの「サインイン」の指示を受け付けるボタンであり、そのクラウドサーバへ現在サインインしていない、すなわち、サインアウト状態であることを示す機能も兼ねている。クラウドサーバへのサインインが完了すると、ボタン８５１に代えて、「サインアウト」の指示を受け付けるボタン、または、サインアウトを示すアイコンが表示される。「サインアウト」の指示を受け付けるボタンは、そのクラウドサーバへサインイン中であることを示す機能も兼ねている。
【００２９】
クラウドサーバでは、例えば、ＯＡｕｔｈ２．０を用いた認証方式が採用されている。ＯＡｕｔｈ２．０を用いた認証方式では、例えば、図４のシーケンス図に示す手順で、認証情報であるアクセストークンを取得する。図４では、クラウドサーバへのアカウントを作成済みのユーザによって、クラウドサーバへの認証に成功する場合の手順を示している。なお、クラウドＡは、クラウドサーバにて実行されるプログラムである。
【００３０】
図３に示したボタン８５１への操作を受け付けた場合、スキャンアプリ４１は、図４に示すように、クラウドＡへのサインイン手順を実行する。スキャンアプリ４１は、サインインの指示を受け付ける（手順５１）と、まず、ローカルサーバ４３を起動し（手順５２）、さらに、ブラウザ４２を起動する（手順５３）。
【００３１】
ローカルサーバ４３は、ＰＣ１自身を、ローカルホストのウェブサーバとして動作させるプログラムである。ローカルホストのウェブサーバとは、ウェブサーバが動作している装置の内部で動作し、クライアントから利用できるように設定されたウェブサーバである。すなわち、ローカルサーバ４３は、インターネット１００に公開されているウェブサーバがブラウザとＨＴＴＰ通信をすると同様に、ブラウザ４２とＰＣ１内部で、ＨＴＴＰ通信をすることができる。
【００３２】
スキャンアプリ４１は、図４の手順５３にて、ブラウザ４２に、アクセスしようとしているクラウドサーバの認証ページのＵＲＬと、リダイレクト先としてのローカルサーバ４３のＵＲＬとを指示する。選択可能な各クラウドサーバの認証ページのＵＲＬは、予めスキャンアプリ４１に登録されている。スキャンアプリ４１は、選択されたクラウドサーバの認証ページのＵＲＬを読み出して、ブラウザ４２の起動オプションに設定する。
【００３３】
図４の手順５３にてブラウザ４２が起動されることで、ブラウザ４２は、クラウドＡに認証手続の開始要求を送信し（手順５４）、クラウドＡから認証ページのウェブページデータを受信する（手順５５）。以下、ページを示すウェブページデータのことを、単に、「ページ」とも記載する。ブラウザ４２は、例えば、図５に示すように、クラウドＡの認証ページを含むブラウザ表示画面４２１をタッチパネル１５に表示させる。クラウドサーバの認証ページは、認証画面の一例である。
【００３４】
なお、クラウドサーバは、送信元のアプリの登録情報を表示するサービスを提供している場合がある。例えば、スキャンアプリ４１の製造メーカが、予めクラウドサーバのサービス事業者に、アプリの名称やアプリのアイコンなどの登録情報を、スキャンアプリ４１の識別情報と対応付けて登録するよう申請しておくことで、サービス事業者は、クラウドサーバに登録情報を登録する。クラウドサーバは、認証手続の開始時にスキャンアプリ４１の識別情報を受信すると、対応する登録情報を含むウェブページデータをブラウザ４２に送信する。これにより、図５に示すように、認証ページにスキャンアプリ４１に関する情報、例えば、アプリの名称やアプリのアイコン９１が表示される。
【００３５】
クラウドＡの認証ページには、例えば、図５に示すように、ＩＤの入力欄９２と、パスワードの入力欄９３と、ログインボタン９４と、が表示される。そして、ブラウザ４２は、図４に示すように、表示中の認証ページにて、認証要求情報の入力操作を受け付ける（手順５６）。認証要求情報は、例えば、ＩＤやメールアドレスとパスワードとの組であり、ユーザによって予めクラウドＡに登録されたアカウントの情報である。さらに、ブラウザ４２は、認証要求情報が入力された状態で、図５に示したログインボタン９４への操作を受け付けると、図４に示すように、入力された認証要求情報をクラウドＡに送信し、認証を要求する（手順５７）。
【００３６】
なお、認証ページでは、アカウントの作成のためのボタンが表示される場合もある。アカウントを未作成のユーザは、例えば、認証ページからアカウント作成のページへと移動することで、アカウントを作成してから認証手順を実行することになる。また、ブラウザ４２は、キャッシュ機能を有し、過去に入力されたＩＤやパスワードの情報を保存している場合がある。ブラウザ４２は、キャッシュ情報を参照して、ＩＤの入力欄９２とパスワードの入力欄９３とに初期情報を表示させてもよい。そして、ブラウザ４２がキャッシュ情報を有している場合には、手順５６の入力操作を省略して、手順５７でのログインボタン９４への操作を受け付けても良い。
【００３７】
クラウドＡは、認証要求情報に基づいて認証処理を行う（手順５８）。そして、認証処理の後、認証可能である場合、クラウドＡは、ブラウザ４２へ確認ページを送信する（手順５９）。確認ページの例を図６に示す。ブラウザ４２は、確認ページを受信したら、ブラウザ表示画面４２１に確認ページを表示する。確認ページには、図６に示すように、キャンセルボタン９５と、許可ボタン９６と、許可ボタン９６を操作することで認証が正常に完了することを示す文字列と、が表示される。そして、ブラウザは、確認ページの各ボタン９５、９６への操作を受け付ける。
【００３８】
図４に示すように、ブラウザ４２は、許可ボタン９６の操作を受け付けたら（手順６０）、許可情報をクラウドＡに送信する（手順６１）。クラウドＡは、許可情報を受けて、認可コードとリダイレクト先の情報とをブラウザ４２へ送信する（手順６２）。手順６２にて送信されるリダイレクト先の情報は、手順５３にて指定されたローカルサーバ４３のＵＲＬである。
【００３９】
ブラウザ４２は、クラウドＡから受信した情報に基づいて、ローカルサーバ４３のＵＲＬにリダイレクトする。つまり、ブラウザ４２は、ローカルサーバ４３に対して、表示するウェブページの情報を渡すように要求するリダイレクト要求を行う。リダイレクト要求では、ブラウザ４２は、クラウドＡから受信した情報をローカルサーバ４３に渡す（手順６３）。手順６３にてローカルサーバ４３に渡される情報は、例えば、クラウドＡの認可コードである。手順６３にてブラウザ４２からローカルサーバ４３に送信される情報は、要求の一例である。
【００４０】
ただし、ローカルサーバ４３が認証結果を待っている間、ブラウザ４２の種類や処理の順序によっては、手順６３にて、リダイレクト要求とは異なる要求が、リダイレクト要求よりも先にローカルサーバ４３に届くことがある。ブラウザ４２によっては、例えば、リダイレクトに際して、ウェブページの情報だけでなくファビコンの情報を要求する場合がある。ファビコンは、favorite iconの略称であり、ウェブサイトのシンボルマークを示すアイコンである。ブラウザ４２は、タブやブックマークなどにファビコンを表示する。そして、ブラウザ４２は、リダイレクト要求よりも先に、もしくは同時に、ファビコン要求を行う場合がある。ローカルサーバ４３が手順６３にて、リダイレクト要求よりも先にファビコン要求を受信した場合、受信したファビコン要求をリダイレクト要求と誤って認識してしまうと、認証結果を誤認してしまう。
【００４１】
本形態のローカルサーバ４３は、図４に示すように、手順６３にてブラウザ４２からの要求を受信した場合、受信した要求がファビコン要求であるか否かを判定する（手順６４）。具体的には、ローカルサーバ４３は、ブラウザ４２からの要求に、ファビコン要求であることを示す文字列データが含まれているか否かを判定する。ファビコン要求は、特定の要求の一例である。そして、ローカルサーバ４３は、ファビコン要求であると判定した場合、ブラウザ４２にファビコンのデータを渡す応答を行い（手順６５）、さらに、ブラウザ４２からの次の要求を受信する（手順６６）。
【００４２】
一方、手順６３にて受信した要求がファビコン要求ではないと判定した場合、ローカルサーバ４３は、手順６３にて受信した要求がリダイレクト要求であると判断する。また、手順６３にて受信した要求がファビコン要求であると判定して応答した後、手順６６にてさらに要求を受信した場合、ローカルサーバ４３は、手順６６にて受信した要求がリダイレクト要求であると判断する。そして、図４に示すように、ローカルサーバ４３は、リダイレクト要求に認可コードが含まれているか否かを判断する（手順６７）。
【００４３】
ローカルサーバ４３は、図４に示すように、認可コードが含まれていると判断した場合、受け取った認可コードをクラウドＡに送信する（手順６８）。クラウドＡは、認可コードを受信すると、認可コードの送信元であるローカルサーバ４３へアクセストークンとリフレッシュトークンとの組を送信する（手順６９）。これで、クラウドＡへの認証手続は完了であり、ローカルサーバ４３は、アクセストークンとリフレッシュトークンとの組を受信したことで、認証に成功したと判断する。
【００４４】
そこで、ローカルサーバ４３は、ブラウザ４２に認証結果を示すページを渡して、その表示をブラウザ４２に指示する（手順７０）。このとき、ブラウザ４２がアクティブな状態となり、ブラウザ表示画面４２１には、例えば、図７に示すように、認証結果を示す完了画面として、認証完了画面９８が表示される。図７に示す認証完了画面９８は、認証が成功した場合にブラウザ４２に表示させるウェブページであり、認証手続が完了したことをユーザに知らせるための完了画面である。
【００４５】
認証完了画面９８には、例えば、図７に示すように、認証完了の情報９８１と、スキャンアプリ４１のウィンドウをアクティブな状態とすることを示す情報９８２と、が含まれる。情報９８２は、特定情報の一例である。手順７０にてブラウザ４２がアクティブな状態となっていることから、スキャンアプリ４１は、非アクティブな状態である。そのため、スキャンアプリ４１への操作を継続するためには、スキャンアプリ４１をアクティブな状態とする必要がある。認証完了画面９８にスキャンアプリ４１のウィンドウをアクティブな状態とすることを示す情報９８２が含まれることで、ユーザの注意を喚起できる。
【００４６】
さらに、ローカルサーバ４３は、図４に示すように、受信したアクセストークンとリフレッシュトークンとの組をスキャンアプリ４１に渡す（手順７１）。スキャンアプリ４１は、アクセストークンとリフレッシュトークンとを受け取った後、ローカルサーバ４３を終了させる（手順７２）。
【００４７】
スキャンアプリ４１は、例えば、ユーザの操作によりアクティブな状態となると、図３に示した保存ボタン８７への操作を受け付ける。保存ボタン８７への操作を受け付けると、スキャンアプリ４１は、アクセストークンを添付して画像データを送信する（手順７３）。これにより、画像データは、クラウドＡのストレージサーバに保存される。
【００４８】
続いて、本形態のスキャンアプリ４１によるアップロード処理の手順について、図８のフローチャートを参照して説明する。このアップロード処理は、ＰＣ１にてスキャンアプリ４１が起動され、スキャンアプリ４１にて画像データをクラウドサーバにアップロードする指示を受け付けたことを契機に、ＣＰＵ１１にて実行される。アップロード処理は、例えば、図２に示した状態から、クラウドサーバへの保存が選択された場合に実行される。つまり、スキャンアプリ４１は、このアップロード処理の開始時には、アップロードの対象とされる画像データを取得済みである。
【００４９】
アップロード処理では、ＣＰＵ１１は、クラウドサーバの選択画面であるクラウド選択ウィンドウ４１２（図３参照）を、アクティブな状態として、タッチパネル１５に表示させる（Ｓ１０１）。本形態のスキャンアプリ４１は、複数のクラウドサーバからアップロード先の選択が可能であり、ユーザの選択に基づいて、アップロード先のクラウドサーバを決定する。
【００５０】
そして、ＣＰＵ１１は、クラウドサーバの選択を受け付けたか否かを判断する（Ｓ１０２）。クラウドサーバの選択を受け付けていないと判断した場合（Ｓ１０２：ＮＯ）、ＣＰＵ１１は、キャンセルの指示を受け付けたか否かを判断する（Ｓ１０３）。キャンセルの指示を受け付けていないと判断した場合（Ｓ１０３：ＮＯ）、ＣＰＵ１１は、クラウドサーバの選択またはキャンセルの指示を受け付けるまで待機する。
【００５１】
クラウドサーバの選択を受け付けたと判断した場合（Ｓ１０２：ＹＥＳ）、ＣＰＵ１１は、選択されたクラウドサーバにサインイン中であるか否かを判断する（Ｓ１０４）。サインイン中ではないと判断した場合（Ｓ１０４：ＮＯ）、ＣＰＵ１１は、タッチパネル１５を介してサインインの指示を受け付けたか否かを判断する（Ｓ１０５）。サインインの指示は、前述したように、アクティブな状態のクラウド選択ウィンドウ４１２に表示されているボタン（例えば、図３中のボタン８５１）の操作によって受け付ける。
【００５２】
サインインの指示を受け付けていないと判断した場合（Ｓ１０５：ＮＯ）、ＣＰＵ１１は、Ｓ１０２に戻り、クラウドサーバの選択、キャンセルの指示、または、サインインの指示を受け付ける。Ｓ１０５にてサインインの指示を受け付ける処理は、認証指示受付処理の一例であり、サインインの指示は、認証指示の一例である。
【００５３】
サインインの指示を受け付けたと判断した場合（Ｓ１０５：ＹＥＳ）、ＣＰＵ１１は、ローカルサーバ４３を起動する（Ｓ１０６）（図４の手順５２）。さらに、ＣＰＵ１１は、ブラウザ４２を起動し（図４の手順５３）、Ｓ１０６にて起動したローカルサーバ４３をリダイレクト先とするとともに、指定されたクラウドサーバの認証画面を表示する指示を行う（Ｓ１０７）。Ｓ１０７は、ブラウザ指示処理の一例である。
【００５４】
Ｓ１０７の指示により、タッチパネル１５には、例えば、図５や図６に示したように、ブラウザ４２の表示画面がアクティブな状態で表示される。そのため、クラウド選択ウィンドウ４１２等のスキャンアプリ４１の表示画面は、非アクティブな状態となる。つまり、ブラウザ４２のウィンドウであるブラウザ表示画面４２１が最前面に表示され、ブラウザ表示画面４２１がアプリ用ウィンドウ４１１と重なって配置された場合には、アプリ用ウィンドウ４１１の少なくとも一部がユーザから見えない状態となる。
【００５５】
非アクティブな状態であるウィンドウは、例えば、ウィンドウへのクリック、ウィンドウへのタッチなど、アクティブな状態への変更を指示するユーザ操作に基づいて、ＯＳ４０によってアクティブな状態に変更される。所定のウィンドウがアクティブな状態であるとは、当該ウィンドウが、アクティブな状態への変更を指示する操作以外のユーザ操作の受け付け対象となっている状態であることを示す。アクティブな状態への変更指示以外のユーザ操作とは、例えば、ボタン入力、文字入力、カーソル移動である。なお、非アクティブな状態のウィンドウに含まれるボタンへのクリックやタッチなどは、アクティブな状態への変更指示と、ボタンへの操作とを兼ねていても良い。アクティブな状態のプログラムは、システムで１つであり、あるプログラムをアクティブな状態とすると、他のプログラムは、非アクティブな状態となるように、ＯＳ４０によって制御される。
【００５６】
そして、ＣＰＵ１１は、ローカルサーバ４３から認証情報を受信したか否かを判断する（Ｓ１０８）。認証情報は、前述したアクセストークンとリフレッシュトークンとの組であってもよいし、１つのトークンや認証キーであってもよい。認証情報を受信していないと判断した場合（Ｓ１０８：ＮＯ）、ＣＰＵ１１は、エラー情報を受信したか否かを判断する（Ｓ１０９）。
【００５７】
例えば、クラウドＡへの認証手続き中にエラーが発生した場合や、図６に示した確認ページにてキャンセルボタン９５への操作を受け付けた場合、クラウドＡは、認可コードを送信しない。この場合、ブラウザ４２は、図４の手順６２にて、エラーの情報、または、キャンセルの情報を受信する。そして、ローカルサーバ４３は、受信した情報が認可コードではないことから、図４の手順６８を行わず、認証手続は成功しない。認証が成功しなかった場合、スキャンアプリ４１は、ローカルサーバ４３から未認証であることを示すエラー情報を受信する。
【００５８】
エラー情報を受信していないと判断した場合（Ｓ１０９：ＮＯ）、ＣＰＵ１１は、Ｓ１０８に戻り、認証情報またはエラー情報を受信するまで待機する。そして、エラー情報を受信したと判断した場合（Ｓ１０９：ＹＥＳ）、ＣＰＵ１１は、ローカルサーバ４３を終了させる（Ｓ１１０）。さらに、Ｓ１０２に戻って、クラウドサーバの選択、キャンセルの指示、または、サインインの指示を受け付ける。
【００５９】
一方、認証情報を受信したと判断した場合（Ｓ１０８：ＹＥＳ）（図４の手順７１）も、ＣＰＵ１１は、ローカルサーバ４３を終了させる（Ｓ１１１）（図４の手順７２）。なお、ローカルサーバ４３にローカルサーバ４３自身を終了させても良い。その場合は、Ｓ１１０やＳ１１１は不要である。
【００６０】
Ｓ１１１の後、または、既にサインイン中であると判断した場合（Ｓ１０４：ＹＥＳ）、ＣＰＵ１１は、クラウドサーバへの保存の指示を受け付けたか否かを判断する（Ｓ１１２）。クラウドサーバへの保存は、クラウドサーバを利用する処理の一例であり、保存の指示は、実行指示の一例であり、Ｓ１１２は、実行指示受付処理の一例である。
【００６１】
なお、スキャンアプリ４１は、選択されたクラウドサーバがサインイン中であれば、クラウド選択ウィンドウ４１２に、図３に示したように、保存ボタン８７を表示させる。そして、ＣＰＵ１１は、スキャンアプリ４１がアクティブな状態で保存ボタン８７への操作を受け付ける。ただし、前述したように、Ｓ１０７にてブラウザ４２がアクティブな状態となり、ローカルサーバ４３を終了させた後も、ユーザ操作を受け付けない限り、ブラウザ４２がアクティブな状態のままとなっている。本形態では、認証完了画面９８（図７参照）に情報９８２が含まれることで、スキャンアプリ４１をアクティブな状態とするためのユーザ操作を促す。
【００６２】
また、スキャンアプリ４１は、保存ボタン８７への操作を受け付けるに際して、自身がアクティブな状態であるか否かを判断する必要はない。例えば、前述したように、ボタンへのクリックやタッチがアクティブな状態への変更指示を兼ねている場合には、スキャンアプリ４１は、アクティブな状態であるか否かに関わらず、保存ボタン８７への操作を受け付ける。
【００６３】
クラウドサーバへの保存の指示を受け付けていないと判断した場合（Ｓ１１２：ＮＯ）、ＣＰＵ１１は、クラウドサーバへの保存を終了する指示を受け付けたか否かを判断する（Ｓ１１３）。終了の指示を受け付けていないと判断した場合（Ｓ１１３：ＮＯ）、ＣＰＵ１１は、Ｓ１１２に戻り、保存の指示または終了の指示を受け付けるまで待機する。
【００６４】
クラウドサーバへの保存の指示を受け付けたと判断した場合（Ｓ１１２：ＹＥＳ）、ＣＰＵ１１は、Ｓ１０８にて受信した認証情報を添えて、画像データをクラウドサーバへ送信する（Ｓ１１４）（図４の手順７３）。そして、Ｓ１１４の後、または、終了の指示を受け付けたと判断した場合（Ｓ１１３：ＹＥＳ）、または、クラウドの選択がキャンセルされた場合（Ｓ１０３：ＹＥＳ）、ＣＰＵ１１は、アップロード処理を終了する。
【００６５】
次に、アップロード処理のＳ１０６にて起動されるローカルサーバ４３の処理であるローカルサーバ処理の手順について、図９のフローチャートを参照して説明する。ローカルサーバ処理は、ローカルサーバ４３が起動されたことを契機に、ＰＣ１のＣＰＵ１１にて実行される。
【００６６】
ローカルサーバ処理では、ＣＰＵ１１は、要求を受信したか否かを判断する（Ｓ２０１）。要求を受信していないと判断した場合（Ｓ２０１：ＮＯ）、ＣＰＵ１１は、要求を受信するまで待機する。
【００６７】
要求を受信したと判断した場合（Ｓ２０１：ＹＥＳ）（図４の手順６３、６６）、ＣＰＵ１１は、受信した要求がファビコン要求であるか否かを判断する（Ｓ２０２）（図４の手順６４）。Ｓ２０２は判定処理の一例である。そして、ファビコン要求であると判断した場合（Ｓ２０２：ＹＥＳ）、ＣＰＵ１１は、ファビコン要求に対する応答を行う（Ｓ２０３）（図４の手順６５）。Ｓ２０３は、特定応答処理の一例である。そしてＳ２０１に戻り、さらに要求を受信するまで待機する。
【００６８】
本形態のローカルサーバ４３は、ブラウザ４２から受信した要求がファビコン要求であると判定した場合、リダイレクト要求としての処理を行わない。そのため、ローカルサーバ４３は、終了されることなく、リダイレクト要求を待ち続ける。このことから、受信したファビコン要求によって、クラウドサーバの利用が許可されなかったと誤認識される可能性は低い。そして、ローカルサーバ４３は、再度要求を受信することで、リダイレクト要求を正しく受信する可能性が高まる。
【００６９】
なお、ファビコンはウェブページの表示エリアに表示されるものではなく、ファビコンを表示してもウェブページの内容は変更されない。つまり、ファビコンのデータをブラウザ４２に渡しても、認証のためにブラウザ４２が表示しているウェブページの内容が変更されることはなく、認証手続に支障はない。そのため、ローカルサーバ４３は、ファビコン要求に応答しても良い。一方、ウェブページの内容を変更するような要求には応答しないことが好ましい。なお、Ｓ２０３では、ＣＰＵ１１は、ファビコンの表示を行わない、という応答をしてもよい。
【００７０】
受信した要求がファビコン要求ではないと判断した場合（Ｓ２０２：ＮＯ）、ＣＰＵ１１は、認可コードを受信したか否かを判断する（Ｓ２０４）。認可コードを受信したと判断した場合（Ｓ２０４：ＹＥＳ）、ＣＰＵ１１は、認可コードをクラウドサーバに送信する（Ｓ２０５）（図４の手順６８）。そして、ＣＰＵ１１は、クラウドサーバから、アクセストークンとリフレッシュトークンとの組を受信する（Ｓ２０６）（図４の手順６９）。
【００７１】
さらに、ＣＰＵ１１は、認証結果が認証完了であることを示す完了画面を表示するようブラウザ４２に指示する（Ｓ２０７）（図４の手順７０）。Ｓ２０７は、認証結果表示処理の一例である。Ｓ２０７では、ＣＰＵ１１は、認証できたことを示す完了画面として、例えば、認証完了画面９８（図７参照）のウェブページデータをブラウザ４２に渡す。さらに、ＣＰＵ１１は、受信したアクセストークンとリフレッシュトークンとの組を、スキャンアプリ４１に渡す（Ｓ２０８）（図４の手順７１）。
【００７２】
認可コードではない情報を受信したと判断した場合（Ｓ２０４：ＮＯ）、ＣＰＵ１１は、認証結果が認証未完了であることを示すエラー情報をスキャンアプリ４１に渡す（Ｓ２０９）。受信した要求がファビコン要求ではなく、認可コードを受信できなかった場合、ＣＰＵ１１は、認証ができなかったことを示す完了画面を表示するようブラウザ４２に指示する（Ｓ２１０）。Ｓ２１０は、認証結果表示処理の一例である。Ｓ２１０では、ＣＰＵ１１は、認証できなかったことを示す完了画面として、例えば、図１０に示すように、認証がキャンセルされた場合の未認証画面９９のウェブページデータをブラウザ４２に渡す。
【００７３】
未認証画面９９は、認証手続が未完了である場合にブラウザ４２に表示させるウェブページであり、認証できなかったことをユーザに知らせるための完了画面である。図１０では、例えば、確認ページでキャンセルの操作を受け付けた場合の未認証画面９９の例を示している。図１０に示す未認証画面９９には、認証がキャンセルされた情報９９１と、スキャンアプリ４１の表示画面をアクティブな状態とすることを示す情報９９２と、が含まれる。情報９９２は、特定情報の一例である。
【００７４】
Ｓ２０７またはＳ２１０にてブラウザ４２に完了画面を表示する指示を行った場合、ブラウザ４２は、アクティブな状態となり、スキャンアプリ４１は、非アクティブな状態となる。これにより、完了画面が最前面に表示され、ユーザに認証状況が報知される。その一方で、その後の操作をスキャンアプリ４１にて行うためには、スキャンアプリ４１をユーザ操作によってアクティブな状態とすることが必要になる。本形態のスキャンアプリ４１は、完了画面である認証完了画面９８や未認証画面９９に、スキャンアプリ４１をアクティブな状態とすることを示す情報９８２、９９２が含まれることから、スキャンアプリ４１をアクティブな状態とする必要性が認識し易く、ユーザの困惑の軽減が期待できる。
【００７５】
そして、ＣＰＵ１１は、ローカルサーバ４３を終了させる終了コマンドを受信したか否かを判断する（Ｓ２１１）。終了コマンドを受信していないと判断した場合（Ｓ２１１：ＮＯ）、ＣＰＵ１１は、終了コマンドを受信するまで待機する。そして、終了コマンドを受信したと判断した場合（Ｓ２１１：ＹＥＳ）、ＣＰＵ１１は、ローカルサーバ処理を終了し、ローカルサーバ４３を終了させる。Ｓ２１１にてローカルサーバ４３を終了させる処理は、サーバ終了処理の一例である。なお、ローカルサーバ４３は、起動された後、所定時間が経過してもリダイレクト要求を受信しなかった場合、タイムアウトとして、自身を終了してもよい。
【００７６】
以上、詳細に説明したように、本形態のスキャンアプリ４１は、クラウドサーバへのサインインの指示を受け付けた場合、ローカルサーバ４３を起動させる。ローカルサーバ４３は、リダイレクト要求を受信する前に、稀にリダイレクト要求以外の特定の要求をブラウザ４２から受信することがある。例えば、ブラウザ４２の種類によっては、リダイレクト要求をローカルサーバ４３に送信する際、ファビコン要求もローカルサーバ４３に送信し、ローカルサーバ４３がそのファビコン要求をリダイレクト要求よりも先に受信してしまうことがある。本形態のローカルサーバ４３は、受信した要求がファビコン要求であるか否かを判定するので、ファビコン要求をリダイレクト要求と誤認識することを回避できる。そして、ローカルサーバ４３は、ファビコン要求を受信した場合には、ファビコン要求に対する応答を行い、ローカルサーバ４３を終了させない。従って、ローカルサーバ４３は、引き続きリダイレクト要求を待ち続けることができるので、クラウドサーバへの認証結果の誤認識を低減できる。
【００７７】
なお、本実施の形態は単なる例示にすぎず、本発明を何ら限定するものではない。したがって本発明は当然に、その要旨を逸脱しない範囲内で種々の改良、変形が可能である。例えば、ＰＣ１に接続されるデバイスは、スキャナ等の画像データを取得する装置に限らず、プリンタ等の画像データに基づく印刷を行う装置であっても良い。つまり、本明細書に開示される技術は、クラウドサーバに画像データをアップロードするアプリに限らず、クラウドサーバから画像データをダウンロードするアプリにおいても、適用可能である。
【００７８】
また、例えば、特定の要求は、ファビコン要求に限らず、リダイレクト要求以外の要求であればよい。また、例えば、リダイレクト要求であるか否かの判断が可能であれば、リダイレクト要求以外の要求を特定の要求であると判断しても良い。
【００７９】
また、リダイレクト要求を受信した後に、ファビコン要求を受け付けても良い。例えば、認可コードを受信した後、受信した認可コードをクラウドサーバへ送信するまでの間や、認可コードをクラウドサーバへ送信した後、トークンを受信するまでの間に、ファビコン要求を受け付けた場合、その要求に応答しても良い。
【００８０】
また、本形態では、完了画面にてスキャンアプリ４１をアクティブな状態とすることを示すとしたが、完了画面の表示後に、スキャンアプリ４１を自動的にアクティブな状態としてもよい。例えば、スキャンアプリ４１は、アップロード処理のＳ１１０、または、Ｓ１１１の後にてローカルサーバ４３を終了させた後、自身をアクティブな状態とする指示をＯＳ４０に行っても良い。
【００８１】
また、例えば、認証方式は、ＯＡｕｔｈ２．０を用いた認証方式に限らない。スキャンアプリ４１は、選択されたクラウドサーバにて採用されている認証方式に基づいて、認証要求を行うと良い。
【００８２】
また、実施の形態に開示されている処理は、単一のＣＰＵ、複数のＣＰＵ、ＡＳＩＣなどのハードウェア、またはそれらの組み合わせで実行されてもよい。また、実施の形態に開示されている処理は、その処理を実行するためのプログラムを記録した記録媒体、または方法等の種々の態様で実現することができる。
【符号の説明】
【００８３】
１  ＰＣ
１１  ＣＰＵ
１５  タッチパネル
４１  スキャンアプリ
４２  ブラウザ
４３  ローカルサーバ
【図１】
2019149134.tif 000003
【図２】
2019149134.tif 000004
【図３】
2019149134.tif 000005
【図４】
2019149134.tif 000006
【図５】
2019149134.tif 000007
【図６】
2019149134.tif 000008
【図７】
2019149134.tif 000009
【図８】
2019149134.tif 000010
【図９】
2019149134.tif 000011
【図１０】
2019149134.tif 000012