JP7534112B2 - 情報処理装置及び情報処理装置の制御方法 - Google Patents

情報処理装置及び情報処理装置の制御方法 Download PDF

Info

Publication number
JP7534112B2
JP7534112B2 JP2020053662A JP2020053662A JP7534112B2 JP 7534112 B2 JP7534112 B2 JP 7534112B2 JP 2020053662 A JP2020053662 A JP 2020053662A JP 2020053662 A JP2020053662 A JP 2020053662A JP 7534112 B2 JP7534112 B2 JP 7534112B2
Authority
JP
Japan
Prior art keywords
authorization code
end application
external service
application
code flow
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020053662A
Other languages
English (en)
Other versions
JP2021152835A (ja
Inventor
健治 横山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba TEC Corp
Original Assignee
Toshiba TEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba TEC Corp filed Critical Toshiba TEC Corp
Priority to JP2020053662A priority Critical patent/JP7534112B2/ja
Priority to US16/995,657 priority patent/US11516209B2/en
Publication of JP2021152835A publication Critical patent/JP2021152835A/ja
Priority to US17/951,012 priority patent/US11818118B2/en
Application granted granted Critical
Publication of JP7534112B2 publication Critical patent/JP7534112B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/44Secrecy systems
    • H04N1/4406Restricting access, e.g. according to user identity
    • H04N1/4413Restricting access, e.g. according to user identity involving the use of passwords, ID codes or the like, e.g. PIN

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Facsimiles In General (AREA)

Description

本発明の実施形態は、情報処理装置及び情報処理装置の制御方法に関する。
従来、認可コードフローを伴う外部サービス(例えばOAuthなど)と連携する内蔵アプリが搭載された情報処理装置がある。このような内蔵アプリは、主要な機能、認可コードフローの制御、及び外部サービスの制御などが集約されて構成される。内蔵アプリは、ユーザインタフェース(UI)を持たないバックエンドアプリ、及びUIを持ち且つエンドユーザが直接操作する機能を有するフロントエンドアプリなどがある。
従来、フロントエンドアプリに外部サービスの仕様に応じて認可コードフローの制御を行う為の構成が含まれている。この為、フロントエンドアプリは、外部サービス毎に、認可コードフローの制御の為の構成を有する必要がある。即ち、外部サービスの仕様によってフロントエンドアプリの一部の構成が決定されてしまい、汎用性を欠くという課題がある。
特開2018-5379号公報
本発明が解決しようとする課題は、利便性が高い情報処理装置及び情報処理装置の制御方法を提供することである。
一実施形態に係る画像形成装置は、通信インタフェースと、プロセッサと、メモリと、を具備する。通信インタフェースは、認可コードフローを含む外部サービスと通信する。メモリは、前記プロセッサにより実行されるプログラムであって、UIを持つフロントエンドアプリと、UIを持たず且つ前記外部サービスに登録されたバックエンドアプリとを記憶する。プロセッサは、前記フロントエンドアプリからの要求に応じて、前記バックエンドアプリの情報により、前記外部サービスに前記認可コードフローを実行させ、認可コードを前記外部サービスから受け取り、前記外部サービス上で前記バックエンドアプリに予め対応付けられたURLを用いて、前記フロントエンドアプリにリダイレクトを行わせ、前記認可コードを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する。前記バックエンドアプリは、前記外部サービスの認可コードフロー開始URL及びシークレットIDの情報を有し、前記プロセッサは、前記フロントエンドアプリから前記認可コードフローの開始が要求された場合、前記バックエンドアプリの前記認可コードフロー開始URLを用いて、前記外部サービスに前記認可コードフローを実行させ、前記認可コードを受け取った場合、前記バックエンドアプリのシークレットIDを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する。
図1は、一実施形態に係る画像形成装置の構成例について説明する為の図である。 図2は、一実施形態に係る画像形成装置のメモリの構成例について説明する為の図である。 図3は、一実施形態に係る画像形成装置の動作の例について説明する為の図である。
以下、実施の形態について図面を参照して説明する。
図1は、一実施形態に係る情報処理システム1の例について説明する為の説明図である。
情報処理システム1は、情報処理装置としての画像形成装置11及び外部サービスを提供するクラウドサーバ12を備える。画像形成装置11とクラウドサーバ12とは、例えば公衆回線などのネットワーク13を介して接続されている。情報処理システム1は、画像形成装置11がクラウドサーバ12に情報を送信し、クラウドサーバ12が受信した情報に基づく処理を実行し、処理結果を画像形成装置11に送信するシステムである。
画像形成装置11は、例えば、印刷媒体などの記録媒体を搬送しながら画像形成等の各種処理を行うマルチファンクションプリンタ(MFP)である。画像形成装置11は、例えば、印刷媒体などの記録媒体を搬送しながら画像形成等の各種処理を行うLEDアレイを走査する固体走査方式のプリンタ(例えばLEDプリンタ)である。また、画像形成装置11は、インクを吐出するインクジェットヘッドを走査するインクジェット方式のプリンタ(インクジェットプリンタ)、または他の方式のプリンタであってもよい。
画像形成装置11は、トナーにより印刷媒体に画像を形成する。また、画像形成装置11は、紙葉類を光学的に読み取ることにより、紙葉類の画像(画像データ)を取得する。また、画像形成装置11は、取得または生成したファイル(画像データまたは文書ファイルなど)を、ネットワーク13を介してクラウドサーバ12に送信することができる。なお、画像形成装置11は、クラウドサーバ12に限らず、様々な外部サービス提供用のサーバに対して情報を送信することができる。
クラウドサーバ12は、プロセッサとメモリと通信インタフェースとを備えるサーバ装置である。クラウドサーバ12は、プロセッサがメモリのプログラムを実行することにより、種々の処理を行う。例えば、クラウドサーバ12は、画像形成装置11からファイルを受け取った場合、受け取ったファイルを記憶するクラウドストレージとして機能する。即ち、クラウドサーバ12は、クライアントである画像形成装置11に対してサービス(外部サービス)を提供することができる。
クラウドサーバ12は、OAuthに基づく認可コードフローを実行することにより、クライアントに対して権限の認可を行う。クラウドサーバ12は、認可が正常に行われ、アクセストークンが発行されたクライアントに対して、上記の外部サービスを提供することができる。なお、クラウドサーバ12は、認可コードフローを実行する装置と、外部サービスをクライアントに対して提供する装置が別に構成されていてもよい。
まず、画像形成装置11の構成について説明する。
画像形成装置11は、システムコントローラ21、通信インタフェース22、ディスプレイ23、操作インタフェース24、画像読取部25、搬送部26、及び画像形成部27を備える。システムコントローラ21、通信インタフェース22、ディスプレイ23、操作インタフェース24、画像読取部25、搬送部26、及び画像形成部27は、図示されない筐体に収容される。
システムコントローラ21は、画像形成装置11の制御を行う。システムコントローラ21は、例えば、プロセッサ31及びメモリ32を備える。
プロセッサ31は、演算処理を実行する演算素子(たとえば、CPU)である。プロセッサ31は、システムコントローラ21の動作の主体となる。プロセッサ31は、メモリ32に記憶されているプログラムなどのデータに基づいて種々の処理を行う。プロセッサ31は、メモリ32に格納されているプログラムを実行することにより、種々の動作を実行可能な制御部として機能する。
メモリ32は、プログラム及びプログラムで用いられるデータなどを記憶する記憶装置である。また、メモリ32は、プロセッサ31の処理中のデータなどを一時的に格納する。メモリ32は、不揮発性メモリとして構成される。
通信インタフェース22は、ネットワークを介して、印刷ジョブを供給するクライアント装置などと通信を行う為のインタフェースである。また、通信インタフェース22は、ネットワーク13を介して、クラウドサーバ12と種々の情報を送受信する。
ディスプレイ23は、システムコントローラ21または図示されないグラフィックコントローラなどの表示制御部から入力される映像信号に応じて画面を表示する。例えば、ディスプレイ23は、画像形成装置11の種々の設定の為の画面を表示する。また、ディスプレイ23は、画像形成装置11のメモリ32に記憶された種々のアプリケーションに応じた画面を表示する。
操作インタフェース24は、種々の操作部材を有する。操作インタフェース24は、操作部材の操作に応じた操作信号をシステムコントローラ21に供給する。操作部材は、例えば、タッチセンサ、テンキー、電源キー、用紙フィードキー、種々のファンクションキー、またはキーボードなどである。タッチセンサは、例えば、抵抗膜式タッチセンサ、または静電容量式タッチセンサ等である。タッチセンサは、ある領域内において指定された位置を示す情報を取得する。タッチセンサは、ディスプレイ23と一体にタッチパネルとして構成されることにより、ディスプレイ23に表示された画面上のタッチされた位置を示す信号をシステムコントローラ21に入力する。
画像読取部25は、紙葉類から画像を読み取る構成である。画像読取部25は、例えば、スキャナと自動原稿送り機(ADF)とを備える。画像読取部25は、ADFにより紙葉類をスキャナの読取位置に通過させつつ、スキャナにより画像を取得することができる。また、画像読取部25は、スキャナを移動させつつ、ガラス板に配置された紙葉類から画像を取得することができる。
搬送部26は、印刷用の媒体(印刷媒体)を画像形成部27に供給するとともに、画像形成部27により画像が形成された印刷媒体を筐体から排出する構成である。搬送部26は、印刷媒体を収容する図示されない給紙カセットに収容されている印刷媒体を、一枚ずつ画像形成部27に供給する。また、搬送部26は、画像形成部27により画像が形成された印刷媒体を、筐体外部の排紙トレイに排出する。
画像形成部27は、システムコントローラ21の制御に基づいて印刷媒体に画像を形成する。画像形成部27は、感光ドラム、帯電チャージャ、露光器、現像器、転写機構、及び定着器を備える。画像形成部27は、帯電チャージャにより感光ドラムを帯電させ、露光器により感光ドラムに対して印刷用の画像データに応じた光を照射する。これにより、感光ドラムに静電潜像が形成される。画像形成部27は、現像器により感光ドラムに形成された潜像にトナーを付着させ、潜像に付着したトナーを転写機構により印刷媒体に転写する。画像形成部27は、トナーが転写された印刷媒体に対して、定着器により熱及び圧力を与えることにより、印刷媒体にトナー像を定着させる。
画像形成部27は、トナーの色毎に感光ドラム、帯電チャージャ、露光器、及び現像器を備えていてもよい。トナーの色は、例えば、シアン(C)、マゼンダ(M)、イエロー(Y)、ブラック(K)などである。画像形成部27は、CMYKの各色のトナー像を媒体に定着させることにより、媒体にカラーの画像を形成する。
次に、メモリ32に記憶されている種々のアプリケーションについて説明する。
図2は、メモリ32に記憶されている種々のアプリケーションの例について説明する為の説明図である。図2に示されるように、ブラウザ41、フロントエンドアプリ42、バックエンドアプリ43、アプリフレームワーク44、及び内部中継モジュール45がメモリ32に記憶されている。ブラウザ41、フロントエンドアプリ42、バックエンドアプリ43、アプリフレームワーク44、及び内部中継モジュール45は、クラウドサーバ12に外部サービスを提供させる為の構成である。
ブラウザ41は、画面表示用のファイルをレンダリングし、閲覧用の画面をディスプレイ23に表示させるアプリケーションである。
アプリフレームワーク44は、メモリ32の各アプリケーションの起動などを制御する為のプログラムである。
フロントエンドアプリ42は、任意の機能の実行を要求するアプリケーションである。フロントエンドアプリ42は、UIを持ち且つエンドユーザが直接操作する機能を有する。例えば、フロントエンドアプリ42は、エンドユーザの操作に応じて、外部サービスへのファイルの保存をバックエンドアプリ43に要求する。
バックエンドアプリ43は、フロントエンドアプリ42からの要求に応じた処理を実行するアプリケーションである。バックエンドアプリ43は、UIを持たず、エンドユーザが直接操作することができないアプリケーションである。例えば、バックエンドアプリ43は、フロントエンドアプリ42から外部サービスへのファイルの保存が要求された場合、ファイルを保存する外部サービスを決定し、外部サービスへのファイルの保存を行う。例えば、バックエンドアプリ43は、サービスA用、サービスB用のように、外部サービス毎に予め設定される。
内部中継モジュール45は、後述する認可コードフローの前処理及び後処理を行うアプリケーションである。
上記したように、クラウドサーバ12は、OAuthに基づく認可コードフローを実行し、クライアントに対してアクセストークンを発行する。クラウドサーバ12は、アクセストークンを含むサービスの要求を受け取った場合、要求に応じた処理を実行する。この為に、クラウドサーバ12の外部サービスには、種々の情報が登録される。また、外部サービスの仕様に応じた種々の情報が、メモリ32上の種々のアプリケーションに登録される。
アプリフレームワーク44は、バックエンドアプリ43に対応付けられて、外部サービスに登録されるリダイレクトURLを予め規定する。リダイレクトURLは、認可コードフローの後処理において用いられるURLである。リダイレクトURLは、例えば内部中継モジュールのURLが用いられる。
また、アプリフレームワーク44は、内部中継モジュール45の認可コードフロー完了URLを予め規定する。認可コードフロー完了URLは、認可コードフローが完了したことをフロントエンドアプリ42に通知する為のURLである。
また、アプリフレームワーク44は、パラメータとしてバックエンドアプリ43の識別子を含み、フロントエンドアプリ42の識別子を含まないように構成されている。
バックエンドアプリ43は、認可コードフローを伴う外部サービスに、予めリダイレクトURLを登録する。
また、バックエンドアプリ43は、認可コードフローを伴う外部サービスに、予めクライアントシークレットID(単にクライアントIDと称する)を登録する。
また、バックエンドアプリ43は、例えば、メタプロパティに、予め認可コードフロー開始URL及びクライアントIDを登録する。認可コードフロー開始URLは、外部サービスに、認証リクエストを送信する為のURLであり、外部サービスの認可コードフローの仕様に応じる。
次に、メモリ32に記憶されている種々のアプリケーションによる認可コードフローについて説明する。
図3は、外部サービスに機能Aを実行させる為の処理について説明する為のシーケンス図である。プロセッサ31は、メモリ32に記憶されたブラウザ41、フロントエンドアプリ42、バックエンドアプリ43、アプリフレームワーク44、及び内部中継モジュール45を実行することにより、種々の処理を実行する。なお、アプリケーション間(プロセス間)では、例えばアプリ間通信APIまたは他の何らかの手法によってデータが受け渡される。
まず、エンドユーザが操作インタフェースを操作することにより、ブラウザ41によって表示される画面(Tab1)上において、機能Aの実行を選択したとする(ACT11)。
ブラウザ41は、画面上で機能Aの実行が選択されると、フロントエンドアプリ42に対して機能Aの実行を要求する(ACT12)。
フロントエンドアプリ42は、ブラウザ41から機能Aの実行が要求されると、バックエンドアプリ43に対して、機能Aの実行を要求(機能実行要求を送信)する(ACT13)。
バックエンドアプリ43は、フロントエンドアプリ42から機能Aの実行の要求を受け取ると、機能Aに対応する外部サービスのアクセストークンを取得済みであるか否か確認する。バックエンドアプリ43は、機能Aに対応する外部サービスのアクセストークンを取得済みではない場合、外部サービスに対して認可コードフローの実行を要求し、アクセストークンを取得する必要があることを示す情報を、実行結果としてフロントエンドアプリ42に対して送信する(ACT14)。即ち、バックエンドアプリ43は、フロントエンドアプリ42に、認可コードフローの要否を通知する。
フロントエンドアプリ42は、外部サービスに対して認可コードフローの実行を要求し、アクセストークンを取得する必要があると判断すると、認可コードフロー開始要求を出力する(ACT15)。フロントエンドアプリ42では、機能Aの外部サービスに応じて、どのバックエンドアプリ43と連携するかが予め設定されている。フロントエンドアプリ42は、認可コードフローの実行が必要な場合、バックエンドアプリ43を特定するための識別子(バックエンドアプリの識別子)を指定し、アプリフレームワーク44に対して認可コードフロー開始要求を出力する。
アプリフレームワーク44は、フロントエンドアプリ42から認可コードフロー開始要求を受け取ると、要求元であるフロントエンドアプリ42の識別子を取得する(ACT16)。
また、アプリフレームワーク44は、認可コードフロー開始要求で指定されたバックエンドアプリ43のメタプロパティから、認可コードフロー開始URLを取得する(ACT17)。
また、アプリフレームワーク44は、フロントエンドアプリ42の識別子と認可コードフロー開始URLとを指定し、内部中継モジュール45の認可コードフロー開始準備URLを作成する(ACT18)。なお、アプリフレームワーク44は、フロントエンドアプリ42から指定されたバックエンドアプリ43の識別子も、認可コードフロー開始準備URLに組み込む、または対応付ける。
アプリフレームワーク44は、認可コードフローの前処理を行うことをフロントエンドアプリ42に通知する(ACT19)。また、アプリフレームワーク44は、ブラウザ41によって表示される画面(Tab2)に、認可コードフロー開始準備URLに応じた画面を表示させる(ACT20)。即ち、アプリフレームワーク44は、バックエンドアプリ43から接続の為の情報を取得し、ブラウザ41に表示を行わせる。
ブラウザ41は、内部中継モジュール45に認可コードフロー開始準備URLを要求する(ACT21)。この要求には、フロントエンドアプリ42の識別子が含まれている。
内部中継モジュール45は、認可コードフロー開始準備URLが要求された場合、要求元の識別子、即ちフロントエンドアプリ42の識別子をメモリ32上の所定の領域(セッション状態内)に記憶する(ACT22)。
内部中継モジュール45は、ブラウザ41に対して認可コードフロー開始URLを含むリダイレクトを行う(ACT23)。これにより、ブラウザ41は、Tab2に認可コードフロー開始URLに応じた画面を表示させることができる。
上記のACT21乃至ACT23は、ディスプレイ23にログイン画面を表示させる手前の段階の処理である。上記のACT21乃至ACT23により、内部中継モジュール45は、ログイン画面を表示させる前のフロントエンドアプリ42の状態をメモリ32に記憶させておくことができる。
ブラウザ41は、内部中継モジュール45から認可コードフロー開始URLを含むリダイレクトを受け取ると、外部サービスを提供するクラウドサーバ12に、認証リクエスト(Authorization Request)を送信する(ACT24)。
クラウドサーバ12は、認証リクエストに応じてログインページ(Login page)をブラウザ41に送信する(ACT25)。
ブラウザ41によりディスプレイ23にログインページが表示されると、エンドユーザは、操作インタフェース24による操作に基づいて、ログイン操作を行う(ACT26)。ここでは、外部サービスにおけるログインID及びパスワードなどが入力される。
ブラウザ41は、入力された外部サービスを提供するクラウドサーバ12に、End-User Authentication & Consent(ログインID及びパスワードなどを含む認証用の情報)を送信する(ACT27)。
クラウドサーバ12は、End-User Authentication & Consentに応じて認証を行い、認証OKである場合、ブラウザ41にリダイレクトを行わせる(ACT28)。クラウドサーバ12は、認証OKである場合、バックエンドアプリ43に対応付けられて登録されていたリダイレクトURL、authResponse(認証レスポンス)、及びauthCode(認可コード)をブラウザ41に送信する。
上記したように、リダイレクトURLは、内部中継モジュール45のURLである。この為、ブラウザ41は、クラウドサーバ12から送信されたリダイレクトURLに基づいて、内部中継モジュール45に、認証レスポンス及び認可コードを送信し、認可コードフロー完了URLを要求する(ACT29)。
内部中継モジュール45は、認可コードフロー完了URLが要求された場合、要求元識別子を復元する(ACT30)。即ち、内部中継モジュール45は、ACT22でメモリ32上のセッション内に保存したフロントエンドアプリ42の識別子を取得する。
内部中継モジュール45は、ブラウザ41を介して、識別子が示すフロントエンドアプリ42に、認可コードフロー完了を通知する。具体的には、内部中継モジュール45は、外部サービスから送られてきた認証レスポンス及び認可コードと、認可コードフロー完了URLとをブラウザに送信する(ACT31)。ブラウザ41は、認可コードと認可コードフロー完了URLとをフロントエンドアプリ42に送信する(ACT32)。
フロントエンドアプリ42は、内部中継モジュール45から認可コードフロー完了が通知された場合、即ち、ブラウザ41から認可コード及び認可コードフロー完了URLを受け取った場合、バックエンドアプリ43に認可コードフロー完了を通知する(ACT33)。即ち、フロントエンドアプリ42は、ACT15でバックエンドアプリ43に認可コードフロー開始要求を出力すると、内部中継モジュール45から認可コード及び認可コードフロー完了URLを受け取ることができる。
バックエンドアプリ43は、フロントエンドアプリ42から認可コードフロー完了が通知されると、アクセストークンをクラウドサーバ12の外部サービスに要求する(ACT34)。即ち、バックエンドアプリ43は、アクセストークンリクエストをクラウドサーバ12の外部サービスに送信する。アクセストークンリクエストは、認可コード及び予め登録されたクライアントID(クライアントシークレットID)を含む。
クラウドサーバ12は、アクセストークンリクエストを受け取ると、アクセストークンリクエストが有効であるか否か判断する。クラウドサーバ12は、アクセストークンリクエストの認可コード及び予め登録されたクライアントIDが承認されたものであるか否か判断する。クラウドサーバ12は、アクセストークンリクエストが有効であると判断した場合、バックエンドアプリ43に対してアクセストークンを発行する(ACT35)。
バックエンドアプリ43は、クラウドサーバ12からアクセストークンを受け取ると、フロントエンドアプリ42にアクセストークンが発行されたことを通知する(ACT36)。これ以降、バックエンドアプリ43は、フロントエンドアプリ42からの機能Aの実行が要求された場合(ACT37)、機能Aを外部サービスに実行するよう要求することができる(ACT38)。この場合、バックエンドアプリ43は、機能Aの実行の要求と、アクセストークンとをクラウドサーバ12に送信する。
クラウドサーバ12は、アクセストークンと機能Aの実行の要求とを受信した場合、機能Aを実行し、実行結果をバックエンドアプリ43に通知する(ACT39)。
バックエンドアプリ43は、クラウドサーバ12から機能Aの実行結果を受け取ると、フロントエンドアプリ42に機能Aの実行結果を通知する(ACT40)。
フロントエンドアプリ42に機能Aの実行結果を受け取ると、機能Aの完了通知をブラウザ41に通知し(ACT41)、ブラウザ41に画面更新を行わせることにより(ACT42)、機能Aの完了をエンドユーザに報知させる。
上記したように、情報処理装置としての画像形成装置11は、通信インタフェース22と、プロセッサ31と、メモリ32と、を備える。通信インタフェース22は、認可コードフローを含む外部サービスと通信するように構成されている。メモリ32には、プロセッサ31により実行されるプログラムであって、UIを持つフロントエンドアプリ42と、UIを持たず且つ外部サービスに登録されたバックエンドアプリ43とが記憶されている。プロセッサ31は、フロントエンドアプリ42からの要求に応じて、バックエンドアプリ43の情報により、外部サービスに認可コードフローを実行させる。また、プロセッサ31は、認可コードを外部サービスから受け取った場合、外部サービス上でバックエンドアプリ43に予め対応付けられたURL(リダイレクトURL)を用いて、フロントエンドアプリ42にリダイレクトを行わせる。さらに、プロセッサ31は、外部サービスから受け取った認可コードを用いて、バックエンドアプリ43により外部サービスからアクセストークンを取得する。
これにより、フロントエンドアプリ42を、特定の外部サービスと直接連携しないように構成することができる。また、プロセッサ31が上記のように動作することにより、UIをもたないバックエンドアプリ43を外部サービスに登録することができる。この結果、バックエンドアプリ43を外部サービスに登録しておき、様々なフロントエンドアプリ42からバックエンドアプリ43に外部サービスの機能の実行を要求することができる。言い換えると、フロントエンドアプリ42が、外部サービスに応じて所定の構成を備える必要がなくなる。これにより、フロントエンドアプリ42汎用性が向上し、情報処理装置の利便性を向上させることができる。
また、バックエンドアプリ43は、外部サービスの認可コードフロー開始URL及びクライアントシークレットIDの情報を有する。プロセッサ31は、フロントエンドアプリ42から認可コードフローの開始が要求された場合、バックエンドアプリ43の認可コードフロー開始URLを用いて、外部サービスに認可コードフローを実行させる。また、プロセッサ31は、外部サービスから認可コードを受け取った場合、バックエンドアプリ43のクライアントシークレットIDを用いて、バックエンドアプリ43により外部サービスからアクセストークンを取得することができる。
また、プロセッサ31は、フロントエンドアプリ42からバックエンドアプリ43への機能実行要求に応じて、アクセストークン及び機能実行要求の外部サービスへの送信を、バックエンドアプリ43に実行させることができる。
また、プロセッサ31は、認可コードフロー開始URLにアクセスする前のセッション状態(フロントエンドアプリの識別子など)をメモリ32に記憶させる。これにより、プロセッサ31は、認可コードフローの完了後、記憶されたセッション状態を復元することができる。
なお、バックエンドアプリ43は、複数の外部サービスをサポートするように構成されていてもよい。例えば、バックエンドアプリ43は、メタプロパティではなく、他の場所に、外部サービス毎(または機能ごと)の認可コードフロー開始URL及びクライアントシークレットIDを保持する構成であってもよい。この場合、バックエンドアプリ43は、フロントエンドアプリ42からの機能実行要求、またはアプリフレームワーク44からの要求に応じて、認可コードフロー開始URL及びクライアントシークレットIDを出力する。この構成によると、バックエンドアプリ43は、要求に応じて、動的に出力する情報を切り替えることができる。
なお、上述の各実施の形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
なお、以下に本願の出願当初の特許請求の範囲の記載を付記する。
[C1]
認可コードフローを含む外部サービスと通信する通信インタフェースと、
プロセッサと、
前記プロセッサにより実行されるプログラムであって、UIを持つフロントエンドアプリと、UIを持たず且つ前記外部サービスに登録されたバックエンドアプリとを記憶するメモリと、
を具備し、
前記プロセッサは、
前記フロントエンドアプリからの要求に応じて、前記バックエンドアプリの情報により、前記外部サービスに前記認可コードフローを実行させ、
認可コードを前記外部サービスから受け取り、
前記外部サービス上で前記バックエンドアプリに予め対応付けられたURLを用いて、前記フロントエンドアプリにリダイレクトを行わせ、
前記認可コードを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する、
情報処理装置。
[C2]
前記バックエンドアプリは、前記外部サービスの認可コードフロー開始URL及びシークレットIDの情報を有し、
前記プロセッサは、
前記フロントエンドアプリから前記認可コードフローの開始が要求された場合、前記バックエンドアプリの前記認可コードフロー開始URLを用いて、前記外部サービスに前記認可コードフローを実行させ、
前記認可コードを受け取った場合、前記バックエンドアプリのシークレットIDを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する、 [C1]に記載の情報処理装置。
[C3]
前記プロセッサは、
前記フロントエンドアプリから前記バックエンドアプリへの機能実行要求に応じて、前記アクセストークン及び前記機能実行要求の前記外部サービスへの送信を、前記バックエンドアプリに実行させる[C2]に記載の情報処理装置。
[C4]
前記プロセッサは、前記認可コードフローの開始前のセッション状態を記憶し、前記認可コードフローの完了後、記憶された前記セッション状態に基づいて、前記フロントエンドアプリにリダイレクトを行わせる[C1]に記載の情報処理装置。
[C5]
認可コードフローを含む外部サービスと通信する通信インタフェースと、プロセッサと、メモリと、を具備する情報処理装置の制御方法であって、
前記メモリは、前記プロセッサにより実行されるプログラムであって、UIを持つフロントエンドアプリと、UIを持たず且つ前記外部サービスに登録されたバックエンドアプリとを記憶し、
前記プロセッサは、
前記フロントエンドアプリからの要求に応じて、前記バックエンドアプリの情報により、前記外部サービスに前記認可コードフローを実行させ、
認可コードを前記外部サービスから受け取り、
前記外部サービス上で前記バックエンドアプリに予め対応付けられたURLを用いて、前記フロントエンドアプリにリダイレクトを行わせ、
前記認可コードを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する、
情報処理装置の制御方法。
1…情報処理システム、11…画像形成装置、12…クラウドサーバ、13…ネットワーク、21…システムコントローラ、22…通信インタフェース、23…ディスプレイ、24…操作インタフェース、25…画像読取部、26…搬送部、27…画像形成部、31…プロセッサ、32…メモリ、41…ブラウザ、42…フロントエンドアプリ、43…バックエンドアプリ、44…アプリフレームワーク、45…内部中継モジュール。

Claims (4)

  1. 認可コードフローを含む外部サービスと通信する通信インタフェースと、
    プロセッサと、
    前記プロセッサにより実行されるプログラムであって、UIを持つフロントエンドアプリと、UIを持たず且つ前記外部サービスに登録されたバックエンドアプリとを記憶するメモリと、
    を具備し、
    前記プロセッサは、
    前記フロントエンドアプリからの要求に応じて、前記バックエンドアプリの情報により、前記外部サービスに前記認可コードフローを実行させ、
    認可コードを前記外部サービスから受け取り、
    前記外部サービス上で前記バックエンドアプリに予め対応付けられたURLを用いて、前記フロントエンドアプリにリダイレクトを行わせ、
    前記認可コードを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する、情報処理装置であって、
    前記バックエンドアプリは、前記外部サービスの認可コードフロー開始URL及びシークレットIDの情報を有し、
    前記プロセッサは、
    前記フロントエンドアプリから前記認可コードフローの開始が要求された場合、前記バックエンドアプリの前記認可コードフロー開始URLを用いて、前記外部サービスに前記認可コードフローを実行させ、
    前記認可コードを受け取った場合、前記バックエンドアプリのシークレットIDを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する、
    情報処理装置
  2. 前記プロセッサは、
    前記フロントエンドアプリから前記バックエンドアプリへの機能実行要求に応じて、前記アクセストークン及び前記機能実行要求の前記外部サービスへの送信を、前記バックエンドアプリに実行させる請求項に記載の情報処理装置。
  3. 前記プロセッサは、前記認可コードフローの開始前のセッション状態を記憶し、前記認可コードフローの完了後、記憶された前記セッション状態に基づいて、前記フロントエンドアプリにリダイレクトを行わせる請求項1に記載の情報処理装置。
  4. 認可コードフローを含む外部サービスと通信する通信インタフェースと、プロセッサと、メモリと、を具備する情報処理装置の制御方法であって、
    前記メモリは、前記プロセッサにより実行されるプログラムであって、UIを持つフロントエンドアプリと、UIを持たず且つ前記外部サービスに登録されたバックエンドアプリとを記憶し、
    前記プロセッサは、
    前記フロントエンドアプリからの要求に応じて、前記バックエンドアプリの情報により、前記外部サービスに前記認可コードフローを実行させ、
    認可コードを前記外部サービスから受け取り、
    前記外部サービス上で前記バックエンドアプリに予め対応付けられたURLを用いて、前記フロントエンドアプリにリダイレクトを行わせ、
    前記認可コードを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する、情報処理装置の制御方法であって、
    前記バックエンドアプリは、前記外部サービスの認可コードフロー開始URL及びシークレットIDの情報を有し、
    前記プロセッサは、
    前記フロントエンドアプリから前記認可コードフローの開始が要求された場合、前記バックエンドアプリの前記認可コードフロー開始URLを用いて、前記外部サービスに前記認可コードフローを実行させ、
    前記認可コードを受け取った場合、前記バックエンドアプリのシークレットIDを用いて、前記バックエンドアプリにより前記外部サービスからアクセストークンを取得する、
    情報処理装置の制御方法
JP2020053662A 2020-03-25 2020-03-25 情報処理装置及び情報処理装置の制御方法 Active JP7534112B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020053662A JP7534112B2 (ja) 2020-03-25 2020-03-25 情報処理装置及び情報処理装置の制御方法
US16/995,657 US11516209B2 (en) 2020-03-25 2020-08-17 Information processing apparatus and method for controlling information processing apparatus
US17/951,012 US11818118B2 (en) 2020-03-25 2022-09-22 Information processing apparatus and method for controlling information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020053662A JP7534112B2 (ja) 2020-03-25 2020-03-25 情報処理装置及び情報処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2021152835A JP2021152835A (ja) 2021-09-30
JP7534112B2 true JP7534112B2 (ja) 2024-08-14

Family

ID=77854778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020053662A Active JP7534112B2 (ja) 2020-03-25 2020-03-25 情報処理装置及び情報処理装置の制御方法

Country Status (2)

Country Link
US (2) US11516209B2 (ja)
JP (1) JP7534112B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11936638B2 (en) * 2019-06-28 2024-03-19 Salesforce Inc. Link protocol agents for inter-application communications
US20230185893A1 (en) * 2021-12-10 2023-06-15 Konica Minolta Business Solutions U.S.A., Inc. Method and system for secure cloud access via password-less single sign-on (sso) for native marketplace applications on multifunction printers
JP2024017502A (ja) * 2022-07-28 2024-02-08 キヤノン株式会社 ネットワークシステム、及び方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007213419A (ja) 2006-02-10 2007-08-23 Fuji Xerox Co Ltd 情報処理装置、セッションの制御方法、及びプログラム
JP2017084378A (ja) 2016-12-07 2017-05-18 株式会社リコー クラウドサービス提供システム及びクラウドサービス提供方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7940408B2 (en) 2006-03-21 2011-05-10 Ricoh Company, Ltd. Bi-directional status and control between image capture device and backend device
US9338007B1 (en) * 2012-10-26 2016-05-10 Google Inc. Secure delegated authentication for applications
US10540515B2 (en) * 2012-11-09 2020-01-21 autoGraph, Inc. Consumer and brand owner data management tools and consumer privacy tools
JP2017037469A (ja) 2015-08-10 2017-02-16 株式会社リコー 情報処理システム、優先処理方法、情報処理装置及びプログラム
MX2018003879A (es) * 2015-09-29 2018-08-16 Morphotrust Usa Llc Sistema y metodo para utilizar un simbolo como instruccion para iniciar la trasferencia de informacion de identidad movil autentificada.
US10511589B2 (en) * 2016-09-14 2019-12-17 Oracle International Corporation Single logout functionality for a multi-tenant identity and data security management cloud service
US10846390B2 (en) * 2016-09-14 2020-11-24 Oracle International Corporation Single sign-on functionality for a multi-tenant identity and data security management cloud service
US10242214B2 (en) * 2016-10-19 2019-03-26 International Business Machines Corporation Dynamic change in plurality of security layers based on projected risk
JP2018205840A (ja) * 2017-05-30 2018-12-27 キヤノン株式会社 システム、その方法およびそのプログラム
JP6926692B2 (ja) * 2017-06-06 2021-08-25 コニカミノルタ株式会社 印刷システムおよびプログラム
US11303635B2 (en) * 2020-06-08 2022-04-12 Capital One Services, Llc Assisted third-party password authentication

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007213419A (ja) 2006-02-10 2007-08-23 Fuji Xerox Co Ltd 情報処理装置、セッションの制御方法、及びプログラム
JP2017084378A (ja) 2016-12-07 2017-05-18 株式会社リコー クラウドサービス提供システム及びクラウドサービス提供方法

Also Published As

Publication number Publication date
US20210306318A1 (en) 2021-09-30
JP2021152835A (ja) 2021-09-30
US20230015882A1 (en) 2023-01-19
US11516209B2 (en) 2022-11-29
US11818118B2 (en) 2023-11-14

Similar Documents

Publication Publication Date Title
JP7534112B2 (ja) 情報処理装置及び情報処理装置の制御方法
JP5002277B2 (ja) ジョブ処理装置、ジョブ処理装置の制御方法、記憶媒体及びプログラム
JP6928894B2 (ja) 印刷システムおよびプログラム
KR102094058B1 (ko) 작업 처리 장치, 작업 처리 장치의 제어 방법, 프로그램, 및 기억 매체
US10970023B2 (en) Printing system for directly transmitting a print job to printer when a server is unavailable and printer driver program
US10974516B2 (en) Device, method for controlling device, and storage medium
US11645024B2 (en) Resuming print job by using accounting information
JP6188833B2 (ja) 画像形成システムおよび画像形成装置
JP2006239947A (ja) 画像形成装置およびその制御方法
US8760682B2 (en) Job processing apparatus, control method therefor, and computer-readable storage medium
JP6457818B2 (ja) 情報処理装置、及び情報処理システム
JP4730241B2 (ja) 画像処理システム、画像処理装置およびプログラム
US11632484B2 (en) Image processing apparatus and non-transitory computer readable medium for preventing disclosure of contents of image data
US11972157B2 (en) Printing system including a printing service system and printing control method
US11736650B2 (en) System, and image processing apparatus and method for controlling the same
JP6019912B2 (ja) 画像処理装置、画像処理システム及び画像処理装置の制御プログラム
US20240106937A1 (en) Image processing apparatus and control method of the image processing apparatus
US20240053934A1 (en) Printing apparatus, control method, and storage medium therefor
KR20240047911A (ko) 정보 처리 장치, 그 제어 방법, 및 그 프로그램과 인쇄 시스템
JP2022156531A (ja) 画像形成システム
JP2012099119A (ja) ジョブ処理装置、ジョブ処理装置の制御方法、記憶媒体及びプログラム

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20230104

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240618

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240801

R150 Certificate of patent or registration of utility model

Ref document number: 7534112

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150