(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024153870
(43)【公開日】2024-10-29
(54)【発明の名称】情報処理装置及び情報処理装置の制御方法
(51)【国際特許分類】
G06F 21/33 20130101AFI20241022BHJP
G06F 21/44 20130101ALI20241022BHJP
H04N 1/00 20060101ALI20241022BHJP
【FI】
G06F21/33
G06F21/44
H04N1/00 127A
【審査請求】有
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2024126127
(22)【出願日】2024-08-01
(62)【分割の表示】P 2020053662の分割
【原出願日】2020-03-25
(71)【出願人】
【識別番号】000003562
【氏名又は名称】東芝テック株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】横山 健治
(57)【要約】 (修正有)
【課題】利便性が高い情報処理装置及び制御方法を提供する。
【解決手段】情報処理システム1において、画像形成装置は、通信インタフェースと、プロセッサと、メモリと、を具備する。通信インタフェースは、認可コードフローを含む外部サービスと通信する。メモリは、プロセッサにより実行されるプログラムであって、UIを持つフロントエンドアプリと、UIを持たず且つ外部サービスに登録されたバックエンドアプリと、を記憶する。プロセッサは、フロントエンドアプリからの要求に応じて、バックエンドアプリの情報により、外部サービスに認可コードフローを実行させ、認可コードを外部サービスから受け取り、外部サービス上でバックエンドアプリに予め対応付けられたURLを用いて、フロントエンドアプリにリダイレクトを行わせ、認可コードを用いて、バックエンドアプリにより外部サービスからアクセストークンを取得する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
認可コードフローを含む外部サービスと通信する通信インタフェースと、
プロセッサと、
前記プロセッサにより実行されるプログラムであって、UIを持つフロントエンドアプリと、UIを持たず且つ前記外部サービスに登録されたバックエンドアプリとを記憶するメモリと、
を具備し、
前記プロセッサは、
前記フロントエンドアプリからの要求に応じて、前記バックエンドアプリの情報により、前記外部サービスに前記認可コードフローを実行させ、
認可コードを前記外部サービスから受け取り、
前記外部サービス上で前記バックエンドアプリに予め対応付けられたURLを用いて、前記フロントエンドアプリにリダイレクトを行わせ、
前記認可コードを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する、
情報処理装置。
【請求項2】
前記バックエンドアプリは、前記外部サービスの認可コードフロー開始URL及びシークレットIDの情報を有し、
前記プロセッサは、
前記フロントエンドアプリから前記認可コードフローの開始が要求された場合、前記バックエンドアプリの前記認可コードフロー開始URLを用いて、前記外部サービスに前記認可コードフローを実行させ、
前記認可コードを受け取った場合、前記バックエンドアプリのシークレットIDを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する、
請求項1に記載の情報処理装置。
【請求項3】
前記プロセッサは、
前記フロントエンドアプリから前記バックエンドアプリへの機能実行要求に応じて、前記アクセストークン及び前記機能実行要求の前記外部サービスへの送信を、前記バックエンドアプリに実行させる請求項2に記載の情報処理装置。
【請求項4】
前記プロセッサは、前記認可コードフローの開始前のセッション状態を記憶し、前記認可コードフローの完了後、記憶された前記セッション状態に基づいて、前記フロントエンドアプリにリダイレクトを行わせる請求項1に記載の情報処理装置。
【請求項5】
認可コードフローを含む外部サービスと通信する通信インタフェースと、プロセッサと、メモリと、を具備する情報処理装置の制御方法であって、
前記メモリは、前記プロセッサにより実行されるプログラムであって、UIを持つフロントエンドアプリと、UIを持たず且つ前記外部サービスに登録されたバックエンドアプリとを記憶し、
前記プロセッサは、
前記フロントエンドアプリからの要求に応じて、前記バックエンドアプリの情報により、前記外部サービスに前記認可コードフローを実行させ、
認可コードを前記外部サービスから受け取り、
前記外部サービス上で前記バックエンドアプリに予め対応付けられたURLを用いて、前記フロントエンドアプリにリダイレクトを行わせ、
前記認可コードを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する、
情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置及び情報処理装置の制御方法に関する。
【背景技術】
【0002】
従来、認可コードフローを伴う外部サービス(例えばOAuthなど)と連携する内蔵アプリが搭載された情報処理装置がある。このような内蔵アプリは、主要な機能、認可コードフローの制御、及び外部サービスの制御などが集約されて構成される。内蔵アプリは、ユーザインタフェース(UI)を持たないバックエンドアプリ、及びUIを持ち且つエンドユーザが直接操作する機能を有するフロントエンドアプリなどがある。
【0003】
従来、フロントエンドアプリに外部サービスの仕様に応じて認可コードフローの制御を行う為の構成が含まれている。この為、フロントエンドアプリは、外部サービス毎に、認可コードフローの制御の為の構成を有する必要がある。即ち、外部サービスの仕様によってフロントエンドアプリの一部の構成が決定されてしまい、汎用性を欠くという課題がある。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明が解決しようとする課題は、利便性が高い情報処理装置及び情報処理装置の制御方法を提供することである。
【課題を解決するための手段】
【0006】
一実施形態に係る画像形成装置は、通信インタフェースと、プロセッサと、メモリと、を具備する。通信インタフェースは、認可コードフローを含む外部サービスと通信する。メモリは、前記プロセッサにより実行されるプログラムであって、UIを持つフロントエンドアプリと、UIを持たず且つ前記外部サービスに登録されたバックエンドアプリとを記憶する。プロセッサは、前記フロントエンドアプリからの要求に応じて、前記バックエンドアプリの情報により、前記外部サービスに前記認可コードフローを実行させ、認可コードを前記外部サービスから受け取り、前記外部サービス上で前記バックエンドアプリに予め対応付けられたURLを用いて、前記フロントエンドアプリにリダイレクトを行わせ、前記認可コードを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する。
【図面の簡単な説明】
【0007】
【
図1】
図1は、一実施形態に係る画像形成装置の構成例について説明する為の図である。
【
図2】
図2は、一実施形態に係る画像形成装置のメモリの構成例について説明する為の図である。
【
図3】
図3は、一実施形態に係る画像形成装置の動作の例について説明する為の図である。
【発明を実施するための形態】
【0008】
以下、実施の形態について図面を参照して説明する。
図1は、一実施形態に係る情報処理システム1の例について説明する為の説明図である。
【0009】
情報処理システム1は、情報処理装置としての画像形成装置11及び外部サービスを提供するクラウドサーバ12を備える。画像形成装置11とクラウドサーバ12とは、例えば公衆回線などのネットワーク13を介して接続されている。情報処理システム1は、画像形成装置11がクラウドサーバ12に情報を送信し、クラウドサーバ12が受信した情報に基づく処理を実行し、処理結果を画像形成装置11に送信するシステムである。
【0010】
画像形成装置11は、例えば、印刷媒体などの記録媒体を搬送しながら画像形成等の各種処理を行うマルチファンクションプリンタ(MFP)である。画像形成装置11は、例えば、印刷媒体などの記録媒体を搬送しながら画像形成等の各種処理を行うLEDアレイを走査する固体走査方式のプリンタ(例えばLEDプリンタ)である。また、画像形成装置11は、インクを吐出するインクジェットヘッドを走査するインクジェット方式のプリンタ(インクジェットプリンタ)、または他の方式のプリンタであってもよい。
【0011】
画像形成装置11は、トナーにより印刷媒体に画像を形成する。また、画像形成装置11は、紙葉類を光学的に読み取ることにより、紙葉類の画像(画像データ)を取得する。また、画像形成装置11は、取得または生成したファイル(画像データまたは文書ファイルなど)を、ネットワーク13を介してクラウドサーバ12に送信することができる。なお、画像形成装置11は、クラウドサーバ12に限らず、様々な外部サービス提供用のサーバに対して情報を送信することができる。
【0012】
クラウドサーバ12は、プロセッサとメモリと通信インタフェースとを備えるサーバ装置である。クラウドサーバ12は、プロセッサがメモリのプログラムを実行することにより、種々の処理を行う。例えば、クラウドサーバ12は、画像形成装置11からファイルを受け取った場合、受け取ったファイルを記憶するクラウドストレージとして機能する。即ち、クラウドサーバ12は、クライアントである画像形成装置11に対してサービス(外部サービス)を提供することができる。
【0013】
クラウドサーバ12は、OAuthに基づく認可コードフローを実行することにより、クライアントに対して権限の認可を行う。クラウドサーバ12は、認可が正常に行われ、アクセストークンが発行されたクライアントに対して、上記の外部サービスを提供することができる。なお、クラウドサーバ12は、認可コードフローを実行する装置と、外部サービスをクライアントに対して提供する装置が別に構成されていてもよい。
【0014】
まず、画像形成装置11の構成について説明する。
画像形成装置11は、システムコントローラ21、通信インタフェース22、ディスプレイ23、操作インタフェース24、画像読取部25、搬送部26、及び画像形成部27を備える。システムコントローラ21、通信インタフェース22、ディスプレイ23、操作インタフェース24、画像読取部25、搬送部26、及び画像形成部27は、図示されない筐体に収容される。
【0015】
システムコントローラ21は、画像形成装置11の制御を行う。システムコントローラ21は、例えば、プロセッサ31及びメモリ32を備える。
【0016】
プロセッサ31は、演算処理を実行する演算素子(たとえば、CPU)である。プロセッサ31は、システムコントローラ21の動作の主体となる。プロセッサ31は、メモリ32に記憶されているプログラムなどのデータに基づいて種々の処理を行う。プロセッサ31は、メモリ32に格納されているプログラムを実行することにより、種々の動作を実行可能な制御部として機能する。
【0017】
メモリ32は、プログラム及びプログラムで用いられるデータなどを記憶する記憶装置である。また、メモリ32は、プロセッサ31の処理中のデータなどを一時的に格納する。メモリ32は、不揮発性メモリとして構成される。
【0018】
通信インタフェース22は、ネットワークを介して、印刷ジョブを供給するクライアント装置などと通信を行う為のインタフェースである。また、通信インタフェース22は、ネットワーク13を介して、クラウドサーバ12と種々の情報を送受信する。
【0019】
ディスプレイ23は、システムコントローラ21または図示されないグラフィックコントローラなどの表示制御部から入力される映像信号に応じて画面を表示する。例えば、ディスプレイ23は、画像形成装置11の種々の設定の為の画面を表示する。また、ディスプレイ23は、画像形成装置11のメモリ32に記憶された種々のアプリケーションに応じた画面を表示する。
【0020】
操作インタフェース24は、種々の操作部材を有する。操作インタフェース24は、操作部材の操作に応じた操作信号をシステムコントローラ21に供給する。操作部材は、例えば、タッチセンサ、テンキー、電源キー、用紙フィードキー、種々のファンクションキー、またはキーボードなどである。タッチセンサは、例えば、抵抗膜式タッチセンサ、または静電容量式タッチセンサ等である。タッチセンサは、ある領域内において指定された位置を示す情報を取得する。タッチセンサは、ディスプレイ23と一体にタッチパネルとして構成されることにより、ディスプレイ23に表示された画面上のタッチされた位置を示す信号をシステムコントローラ21に入力する。
【0021】
画像読取部25は、紙葉類から画像を読み取る構成である。画像読取部25は、例えば、スキャナと自動原稿送り機(ADF)とを備える。画像読取部25は、ADFにより紙葉類をスキャナの読取位置に通過させつつ、スキャナにより画像を取得することができる。また、画像読取部25は、スキャナを移動させつつ、ガラス板に配置された紙葉類から画像を取得することができる。
【0022】
搬送部26は、印刷用の媒体(印刷媒体)を画像形成部27に供給するとともに、画像形成部27により画像が形成された印刷媒体を筐体から排出する構成である。搬送部26は、印刷媒体を収容する図示されない給紙カセットに収容されている印刷媒体を、一枚ずつ画像形成部27に供給する。また、搬送部26は、画像形成部27により画像が形成された印刷媒体を、筐体外部の排紙トレイに排出する。
【0023】
画像形成部27は、システムコントローラ21の制御に基づいて印刷媒体に画像を形成する。画像形成部27は、感光ドラム、帯電チャージャ、露光器、現像器、転写機構、及び定着器を備える。画像形成部27は、帯電チャージャにより感光ドラムを帯電させ、露光器により感光ドラムに対して印刷用の画像データに応じた光を照射する。これにより、感光ドラムに静電潜像が形成される。画像形成部27は、現像器により感光ドラムに形成された潜像にトナーを付着させ、潜像に付着したトナーを転写機構により印刷媒体に転写する。画像形成部27は、トナーが転写された印刷媒体に対して、定着器により熱及び圧力を与えることにより、印刷媒体にトナー像を定着させる。
【0024】
画像形成部27は、トナーの色毎に感光ドラム、帯電チャージャ、露光器、及び現像器を備えていてもよい。トナーの色は、例えば、シアン(C)、マゼンダ(M)、イエロー(Y)、ブラック(K)などである。画像形成部27は、CMYKの各色のトナー像を媒体に定着させることにより、媒体にカラーの画像を形成する。
【0025】
次に、メモリ32に記憶されている種々のアプリケーションについて説明する。
図2は、メモリ32に記憶されている種々のアプリケーションの例について説明する為の説明図である。
図2に示されるように、ブラウザ41、フロントエンドアプリ42、バックエンドアプリ43、アプリフレームワーク44、及び内部中継モジュール45がメモリ32に記憶されている。ブラウザ41、フロントエンドアプリ42、バックエンドアプリ43、アプリフレームワーク44、及び内部中継モジュール45は、クラウドサーバ12に外部サービスを提供させる為の構成である。
【0026】
ブラウザ41は、画面表示用のファイルをレンダリングし、閲覧用の画面をディスプレイ23に表示させるアプリケーションである。
【0027】
アプリフレームワーク44は、メモリ32の各アプリケーションの起動などを制御する為のプログラムである。
【0028】
フロントエンドアプリ42は、任意の機能の実行を要求するアプリケーションである。フロントエンドアプリ42は、UIを持ち且つエンドユーザが直接操作する機能を有する。例えば、フロントエンドアプリ42は、エンドユーザの操作に応じて、外部サービスへのファイルの保存をバックエンドアプリ43に要求する。
【0029】
バックエンドアプリ43は、フロントエンドアプリ42からの要求に応じた処理を実行するアプリケーションである。バックエンドアプリ43は、UIを持たず、エンドユーザが直接操作することができないアプリケーションである。例えば、バックエンドアプリ43は、フロントエンドアプリ42から外部サービスへのファイルの保存が要求された場合、ファイルを保存する外部サービスを決定し、外部サービスへのファイルの保存を行う。例えば、バックエンドアプリ43は、サービスA用、サービスB用のように、外部サービス毎に予め設定される。
【0030】
内部中継モジュール45は、後述する認可コードフローの前処理及び後処理を行うアプリケーションである。
【0031】
上記したように、クラウドサーバ12は、OAuthに基づく認可コードフローを実行し、クライアントに対してアクセストークンを発行する。クラウドサーバ12は、アクセストークンを含むサービスの要求を受け取った場合、要求に応じた処理を実行する。この為に、クラウドサーバ12の外部サービスには、種々の情報が登録される。また、外部サービスの仕様に応じた種々の情報が、メモリ32上の種々のアプリケーションに登録される。
【0032】
アプリフレームワーク44は、バックエンドアプリ43に対応付けられて、外部サービスに登録されるリダイレクトURLを予め規定する。リダイレクトURLは、認可コードフローの後処理において用いられるURLである。リダイレクトURLは、例えば内部中継モジュールのURLが用いられる。
【0033】
また、アプリフレームワーク44は、内部中継モジュール45の認可コードフロー完了URLを予め規定する。認可コードフロー完了URLは、認可コードフローが完了したことをフロントエンドアプリ42に通知する為のURLである。
【0034】
また、アプリフレームワーク44は、パラメータとしてバックエンドアプリ43の識別子を含み、フロントエンドアプリ42の識別子を含まないように構成されている。
【0035】
バックエンドアプリ43は、認可コードフローを伴う外部サービスに、予めリダイレクトURLを登録する。
【0036】
また、バックエンドアプリ43は、認可コードフローを伴う外部サービスに、予めクライアントシークレットID(単にクライアントIDと称する)を登録する。
【0037】
また、バックエンドアプリ43は、例えば、メタプロパティに、予め認可コードフロー開始URL及びクライアントIDを登録する。認可コードフロー開始URLは、外部サービスに、認証リクエストを送信する為のURLであり、外部サービスの認可コードフローの仕様に応じる。
【0038】
次に、メモリ32に記憶されている種々のアプリケーションによる認可コードフローについて説明する。
図3は、外部サービスに機能Aを実行させる為の処理について説明する為のシーケンス図である。プロセッサ31は、メモリ32に記憶されたブラウザ41、フロントエンドアプリ42、バックエンドアプリ43、アプリフレームワーク44、及び内部中継モジュール45を実行することにより、種々の処理を実行する。なお、アプリケーション間(プロセス間)では、例えばアプリ間通信APIまたは他の何らかの手法によってデータが受け渡される。
【0039】
まず、エンドユーザが操作インタフェースを操作することにより、ブラウザ41によって表示される画面(Tab1)上において、機能Aの実行を選択したとする(ACT11)。
【0040】
ブラウザ41は、画面上で機能Aの実行が選択されると、フロントエンドアプリ42に対して機能Aの実行を要求する(ACT12)。
【0041】
フロントエンドアプリ42は、ブラウザ41から機能Aの実行が要求されると、バックエンドアプリ43に対して、機能Aの実行を要求(機能実行要求を送信)する(ACT13)。
【0042】
バックエンドアプリ43は、フロントエンドアプリ42から機能Aの実行の要求を受け取ると、機能Aに対応する外部サービスのアクセストークンを取得済みであるか否か確認する。バックエンドアプリ43は、機能Aに対応する外部サービスのアクセストークンを取得済みではない場合、外部サービスに対して認可コードフローの実行を要求し、アクセストークンを取得する必要があることを示す情報を、実行結果としてフロントエンドアプリ42に対して送信する(ACT14)。即ち、バックエンドアプリ43は、フロントエンドアプリ42に、認可コードフローの要否を通知する。
【0043】
フロントエンドアプリ42は、外部サービスに対して認可コードフローの実行を要求し、アクセストークンを取得する必要があると判断すると、認可コードフロー開始要求を出力する(ACT15)。フロントエンドアプリ42では、機能Aの外部サービスに応じて、どのバックエンドアプリ43と連携するかが予め設定されている。フロントエンドアプリ42は、認可コードフローの実行が必要な場合、バックエンドアプリ43を特定するための識別子(バックエンドアプリの識別子)を指定し、アプリフレームワーク44に対して認可コードフロー開始要求を出力する。
【0044】
アプリフレームワーク44は、フロントエンドアプリ42から認可コードフロー開始要求を受け取ると、要求元であるフロントエンドアプリ42の識別子を取得する(ACT16)。
【0045】
また、アプリフレームワーク44は、認可コードフロー開始要求で指定されたバックエンドアプリ43のメタプロパティから、認可コードフロー開始URLを取得する(ACT17)。
【0046】
また、アプリフレームワーク44は、フロントエンドアプリ42の識別子と認可コードフロー開始URLとを指定し、内部中継モジュール45の認可コードフロー開始準備URLを作成する(ACT18)。なお、アプリフレームワーク44は、フロントエンドアプリ42から指定されたバックエンドアプリ43の識別子も、認可コードフロー開始準備URLに組み込む、または対応付ける。
【0047】
アプリフレームワーク44は、認可コードフローの前処理を行うことをフロントエンドアプリ42に通知する(ACT19)。また、アプリフレームワーク44は、ブラウザ41によって表示される画面(Tab2)に、認可コードフロー開始準備URLに応じた画面を表示させる(ACT20)。即ち、アプリフレームワーク44は、バックエンドアプリ43から接続の為の情報を取得し、ブラウザ41に表示を行わせる。
【0048】
ブラウザ41は、内部中継モジュール45に認可コードフロー開始準備URLを要求する(ACT21)。この要求には、フロントエンドアプリ42の識別子が含まれている。
【0049】
内部中継モジュール45は、認可コードフロー開始準備URLが要求された場合、要求元の識別子、即ちフロントエンドアプリ42の識別子をメモリ32上の所定の領域(セッション状態内)に記憶する(ACT22)。
【0050】
内部中継モジュール45は、ブラウザ41に対して認可コードフロー開始URLを含むリダイレクトを行う(ACT23)。これにより、ブラウザ41は、Tab2に認可コードフロー開始URLに応じた画面を表示させることができる。
【0051】
上記のACT21乃至ACT23は、ディスプレイ23にログイン画面を表示させる手前の段階の処理である。上記のACT21乃至ACT23により、内部中継モジュール45は、ログイン画面を表示させる前のフロントエンドアプリ42の状態をメモリ32に記憶させておくことができる。
【0052】
ブラウザ41は、内部中継モジュール45から認可コードフロー開始URLを含むリダイレクトを受け取ると、外部サービスを提供するクラウドサーバ12に、認証リクエスト(Authorization Request)を送信する(ACT24)。
【0053】
クラウドサーバ12は、認証リクエストに応じてログインページ(Login page)をブラウザ41に送信する(ACT25)。
【0054】
ブラウザ41によりディスプレイ23にログインページが表示されると、エンドユーザは、操作インタフェース24による操作に基づいて、ログイン操作を行う(ACT26)。ここでは、外部サービスにおけるログインID及びパスワードなどが入力される。
【0055】
ブラウザ41は、入力された外部サービスを提供するクラウドサーバ12に、End-User Authentication & Consent(ログインID及びパスワードなどを含む認証用の情報)を送信する(ACT27)。
【0056】
クラウドサーバ12は、End-User Authentication & Consentに応じて認証を行い、認証OKである場合、ブラウザ41にリダイレクトを行わせる(ACT28)。クラウドサーバ12は、認証OKである場合、バックエンドアプリ43に対応付けられて登録されていたリダイレクトURL、authResponse(認証レスポンス)、及びauthCode(認可コード)をブラウザ41に送信する。
【0057】
上記したように、リダイレクトURLは、内部中継モジュール45のURLである。この為、ブラウザ41は、クラウドサーバ12から送信されたリダイレクトURLに基づいて、内部中継モジュール45に、認証レスポンス及び認可コードを送信し、認可コードフロー完了URLを要求する(ACT29)。
【0058】
内部中継モジュール45は、認可コードフロー完了URLが要求された場合、要求元識別子を復元する(ACT30)。即ち、内部中継モジュール45は、ACT22でメモリ32上のセッション内に保存したフロントエンドアプリ42の識別子を取得する。
【0059】
内部中継モジュール45は、ブラウザ41を介して、識別子が示すフロントエンドアプリ42に、認可コードフロー完了を通知する。具体的には、内部中継モジュール45は、外部サービスから送られてきた認証レスポンス及び認可コードと、認可コードフロー完了URLとをブラウザに送信する(ACT31)。ブラウザ41は、認可コードと認可コードフロー完了URLとをフロントエンドアプリ42に送信する(ACT32)。
【0060】
フロントエンドアプリ42は、内部中継モジュール45から認可コードフロー完了が通知された場合、即ち、ブラウザ41から認可コード及び認可コードフロー完了URLを受け取った場合、バックエンドアプリ43に認可コードフロー完了を通知する(ACT33)。即ち、フロントエンドアプリ42は、ACT15でバックエンドアプリ43に認可コードフロー開始要求を出力すると、内部中継モジュール45から認可コード及び認可コードフロー完了URLを受け取ることができる。
【0061】
バックエンドアプリ43は、フロントエンドアプリ42から認可コードフロー完了が通知されると、アクセストークンをクラウドサーバ12の外部サービスに要求する(ACT34)。即ち、バックエンドアプリ43は、アクセストークンリクエストをクラウドサーバ12の外部サービスに送信する。アクセストークンリクエストは、認可コード及び予め登録されたクライアントID(クライアントシークレットID)を含む。
【0062】
クラウドサーバ12は、アクセストークンリクエストを受け取ると、アクセストークンリクエストが有効であるか否か判断する。クラウドサーバ12は、アクセストークンリクエストの認可コード及び予め登録されたクライアントIDが承認されたものであるか否か判断する。クラウドサーバ12は、アクセストークンリクエストが有効であると判断した場合、バックエンドアプリ43に対してアクセストークンを発行する(ACT35)。
【0063】
バックエンドアプリ43は、クラウドサーバ12からアクセストークンを受け取ると、フロントエンドアプリ42にアクセストークンが発行されたことを通知する(ACT36)。これ以降、バックエンドアプリ43は、フロントエンドアプリ42からの機能Aの実行が要求された場合(ACT37)、機能Aを外部サービスに実行するよう要求することができる(ACT38)。この場合、バックエンドアプリ43は、機能Aの実行の要求と、アクセストークンとをクラウドサーバ12に送信する。
【0064】
クラウドサーバ12は、アクセストークンと機能Aの実行の要求とを受信した場合、機能Aを実行し、実行結果をバックエンドアプリ43に通知する(ACT39)。
【0065】
バックエンドアプリ43は、クラウドサーバ12から機能Aの実行結果を受け取ると、フロントエンドアプリ42に機能Aの実行結果を通知する(ACT40)。
【0066】
フロントエンドアプリ42に機能Aの実行結果を受け取ると、機能Aの完了通知をブラウザ41に通知し(ACT41)、ブラウザ41に画面更新を行わせることにより(ACT42)、機能Aの完了をエンドユーザに報知させる。
【0067】
上記したように、情報処理装置としての画像形成装置11は、通信インタフェース22と、プロセッサ31と、メモリ32と、を備える。通信インタフェース22は、認可コードフローを含む外部サービスと通信するように構成されている。メモリ32には、プロセッサ31により実行されるプログラムであって、UIを持つフロントエンドアプリ42と、UIを持たず且つ外部サービスに登録されたバックエンドアプリ43とが記憶されている。プロセッサ31は、フロントエンドアプリ42からの要求に応じて、バックエンドアプリ43の情報により、外部サービスに認可コードフローを実行させる。また、プロセッサ31は、認可コードを外部サービスから受け取った場合、外部サービス上でバックエンドアプリ43に予め対応付けられたURL(リダイレクトURL)を用いて、フロントエンドアプリ42にリダイレクトを行わせる。さらに、プロセッサ31は、外部サービスから受け取った認可コードを用いて、バックエンドアプリ43により外部サービスからアクセストークンを取得する。
【0068】
これにより、フロントエンドアプリ42を、特定の外部サービスと直接連携しないように構成することができる。また、プロセッサ31が上記のように動作することにより、UIをもたないバックエンドアプリ43を外部サービスに登録することができる。この結果、バックエンドアプリ43を外部サービスに登録しておき、様々なフロントエンドアプリ42からバックエンドアプリ43に外部サービスの機能の実行を要求することができる。言い換えると、フロントエンドアプリ42が、外部サービスに応じて所定の構成を備える必要がなくなる。これにより、フロントエンドアプリ42汎用性が向上し、情報処理装置の利便性を向上させることができる。
【0069】
また、バックエンドアプリ43は、外部サービスの認可コードフロー開始URL及びクライアントシークレットIDの情報を有する。プロセッサ31は、フロントエンドアプリ42から認可コードフローの開始が要求された場合、バックエンドアプリ43の認可コードフロー開始URLを用いて、外部サービスに認可コードフローを実行させる。また、プロセッサ31は、外部サービスから認可コードを受け取った場合、バックエンドアプリ43のクライアントシークレットIDを用いて、バックエンドアプリ43により外部サービスからアクセストークンを取得することができる。
【0070】
また、プロセッサ31は、フロントエンドアプリ42からバックエンドアプリ43への機能実行要求に応じて、アクセストークン及び機能実行要求の外部サービスへの送信を、バックエンドアプリ43に実行させることができる。
【0071】
また、プロセッサ31は、認可コードフロー開始URLにアクセスする前のセッション状態(フロントエンドアプリの識別子など)をメモリ32に記憶させる。これにより、プロセッサ31は、認可コードフローの完了後、記憶されたセッション状態を復元することができる。
【0072】
なお、バックエンドアプリ43は、複数の外部サービスをサポートするように構成されていてもよい。例えば、バックエンドアプリ43は、メタプロパティではなく、他の場所に、外部サービス毎(または機能ごと)の認可コードフロー開始URL及びクライアントシークレットIDを保持する構成であってもよい。この場合、バックエンドアプリ43は、フロントエンドアプリ42からの機能実行要求、またはアプリフレームワーク44からの要求に応じて、認可コードフロー開始URL及びクライアントシークレットIDを出力する。この構成によると、バックエンドアプリ43は、要求に応じて、動的に出力する情報を切り替えることができる。
【0073】
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
【0074】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0075】
1…情報処理システム、11…画像形成装置、12…クラウドサーバ、13…ネットワーク、21…システムコントローラ、22…通信インタフェース、23…ディスプレイ、24…操作インタフェース、25…画像読取部、26…搬送部、27…画像形成部、31…プロセッサ、32…メモリ、41…ブラウザ、42…フロントエンドアプリ、43…バックエンドアプリ、44…アプリフレームワーク、45…内部中継モジュール。
【手続補正書】
【提出日】2024-08-27
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
認可コードフローを含む外部サービスと通信する通信インタフェースと、
ユーザインタフェースを持つフロントエンドアプリと、ユーザインタフェースを持たず且つ前記外部サービスに登録されたバックエンドアプリと、のアプリケーションを実行するプロセッサと、
前記プロセッサにより実行される前記フロントエンドアプリと、前記バックエンドアプリとのプログラムを記憶するメモリと、
を具備し、
前記プロセッサは、
前記フロントエンドアプリに対する機能の実行の要求に応じて、前記バックエンドアプリの情報により、前記外部サービスに前記認可コードフローを実行させ、
前記外部サービス上で前記バックエンドアプリに予め対応付けられたURLと、認可コードとを前記外部サービスから受け取り、
前記URLに基づいて、前記フロントエンドアプリに前記認可コードフロー完了を通知し、前記フロントエンドアプリに前記バックエンドアプリへ前記認可コードフローの完了を通知させ、
前記認可コードを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する、情報処理装置であって、
前記バックエンドアプリは、前記外部サービスの認可コードフロー開始URL及びシークレットIDの情報を有し、
前記プロセッサは、
前記フロントエンドアプリに対して機能の実行が要求された場合、前記バックエンドアプリの前記認可コードフロー開始URLを用いて、前記外部サービスに前記認可コードフローを実行させ、
前記認可コードを受け取った場合、前記バックエンドアプリのシークレットIDを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する、
情報処理装置。
【請求項2】
前記プロセッサは、
前記フロントエンドアプリに対する機能の実行の要求に応じて、前記フロントエンドアプリから前記バックエンドアプリへ機能実行要求を送信し、前記アクセストークン及び前記機能実行要求の前記外部サービスへの送信を、前記バックエンドアプリに実行させる請求項1に記載の情報処理装置。
【請求項3】
前記プロセッサは、前記認可コードフローの開始前のセッション状態を記憶し、前記認可コードフローの完了後、記憶された前記セッション状態に基づいて、前記フロントエンドアプリに前記認可コードフロー完了を通知する請求項1に記載の情報処理装置。
【請求項4】
認可コードフローを含む外部サービスと通信する通信インタフェースと、ユーザインタフェースを持つフロントエンドアプリと、ユーザインタフェースを持たず且つ前記外部サービスに登録されたバックエンドアプリと、のアプリケーションを実行するプロセッサと、メモリと、を具備する情報処理装置の制御方法であって、
前記メモリは、前記プロセッサにより実行される前記フロントエンドアプリと、前記バックエンドアプリとのプログラムを記憶し、
前記プロセッサは、
前記フロントエンドアプリに対する機能の実行の要求に応じて、前記バックエンドアプリの情報により、前記外部サービスに前記認可コードフローを実行させ、
前記外部サービス上で前記バックエンドアプリに予め対応付けられたURLと、認可コードとを前記外部サービスから受け取り、
前記URLに基づいて、前記フロントエンドアプリに前記認可コードフロー完了を通知し、前記フロントエンドアプリに前記バックエンドアプリへ前記認可コードフローの完了を通知させ、
前記認可コードを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する、情報処理装置の制御方法であって、
前記バックエンドアプリは、前記外部サービスの認可コードフロー開始URL及びシークレットIDの情報を有し、
前記プロセッサは、
前記フロントエンドアプリに対して機能の実行が要求された場合、前記バックエンドアプリの前記認可コードフロー開始URLを用いて、前記外部サービスに前記認可コードフローを実行させ、
前記認可コードを受け取った場合、前記バックエンドアプリのシークレットIDを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する、
情報処理装置の制御方法。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0006
【補正方法】変更
【補正の内容】
【0006】
一実施形態に係る画像形成装置は、通信インタフェースと、プロセッサと、メモリと、を具備する。通信インタフェースは、認可コードフローを含む外部サービスと通信する。プロセッサは、ユーザインタフェースを持つフロントエンドアプリと、ユーザインタフェースを持たず且つ前記外部サービスに登録されたバックエンドアプリと、のアプリケーションを実行する。メモリは、前記プロセッサにより実行される前記フロントエンドアプリと、前記バックエンドアプリとのプログラムを記憶する。プロセッサは、前記フロントエンドアプリに対する機能の実行の要求に応じて、前記バックエンドアプリの情報により、前記外部サービスに前記認可コードフローを実行させ、前記外部サービス上で前記バックエンドアプリに予め対応付けられたURLと、認可コードとを前記外部サービスから受け取り、前記URLに基づいて、前記フロントエンドアプリに前記認可コードフロー完了を通知し、前記フロントエンドアプリに前記バックエンドアプリへ前記認可コードフローの完了を通知させ、前記認可コードを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する。前記バックエンドアプリは、前記外部サービスの認可コードフロー開始URL及びシークレットIDの情報を有し、前記プロセッサは、前記フロントエンドアプリに対して機能の実行が要求された場合、前記バックエンドアプリの前記認可コードフロー開始URLを用いて、前記外部サービスに前記認可コードフローを実行させ、前記認可コードを受け取った場合、前記バックエンドアプリのシークレットIDを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0074
【補正方法】変更
【補正の内容】
【0074】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
なお、以下に本願の出願当初の特許請求の記載を付記する。
[C1]
認可コードフローを含む外部サービスと通信する通信インタフェースと、
プロセッサと、
前記プロセッサにより実行されるプログラムであって、UIを持つフロントエンドアプリと、UIを持たず且つ前記外部サービスに登録されたバックエンドアプリとを記憶するメモリと、
を具備し、
前記プロセッサは、
前記フロントエンドアプリからの要求に応じて、前記バックエンドアプリの情報により、前記外部サービスに前記認可コードフローを実行させ、
認可コードを前記外部サービスから受け取り、
前記外部サービス上で前記バックエンドアプリに予め対応付けられたURLを用いて、前記フロントエンドアプリにリダイレクトを行わせ、
前記認可コードを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する、
情報処理装置。
[C2]
前記バックエンドアプリは、前記外部サービスの認可コードフロー開始URL及びシークレットIDの情報を有し、
前記プロセッサは、
前記フロントエンドアプリから前記認可コードフローの開始が要求された場合、前記バックエンドアプリの前記認可コードフロー開始URLを用いて、前記外部サービスに前記認可コードフローを実行させ、
前記認可コードを受け取った場合、前記バックエンドアプリのシークレットIDを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する、
[C1]に記載の情報処理装置。
[C3]
前記プロセッサは、
前記フロントエンドアプリから前記バックエンドアプリへの機能実行要求に応じて、前記アクセストークン及び前記機能実行要求の前記外部サービスへの送信を、前記バックエンドアプリに実行させる[C2]に記載の情報処理装置。
[C4]
前記プロセッサは、前記認可コードフローの開始前のセッション状態を記憶し、前記認可コードフローの完了後、記憶された前記セッション状態に基づいて、前記フロントエンドアプリにリダイレクトを行わせる[C1]に記載の情報処理装置。
[C5]
認可コードフローを含む外部サービスと通信する通信インタフェースと、プロセッサと、メモリと、を具備する情報処理装置の制御方法であって、
前記メモリは、前記プロセッサにより実行されるプログラムであって、UIを持つフロントエンドアプリと、UIを持たず且つ前記外部サービスに登録されたバックエンドアプリとを記憶し、
前記プロセッサは、
前記フロントエンドアプリからの要求に応じて、前記バックエンドアプリの情報により、前記外部サービスに前記認可コードフローを実行させ、
認可コードを前記外部サービスから受け取り、
前記外部サービス上で前記バックエンドアプリに予め対応付けられたURLを用いて、前記フロントエンドアプリにリダイレクトを行わせ、
前記認可コードを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する、
情報処理装置の制御方法。