JP2018081572A - サービス提供システム、情報処理装置、プログラム及び情報処理システム - Google Patents

サービス提供システム、情報処理装置、プログラム及び情報処理システム Download PDF

Info

Publication number
JP2018081572A
JP2018081572A JP2016224326A JP2016224326A JP2018081572A JP 2018081572 A JP2018081572 A JP 2018081572A JP 2016224326 A JP2016224326 A JP 2016224326A JP 2016224326 A JP2016224326 A JP 2016224326A JP 2018081572 A JP2018081572 A JP 2018081572A
Authority
JP
Japan
Prior art keywords
application
access token
acquisition request
service
trusted
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.)
Pending
Application number
JP2016224326A
Other languages
English (en)
Inventor
博基 大▲崎▼
Hiromoto Osaki
博基 大▲崎▼
康治 福田
Koji Fukuda
康治 福田
近藤 誠一
Seiichi Kondo
誠一 近藤
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2016224326A priority Critical patent/JP2018081572A/ja
Publication of JP2018081572A publication Critical patent/JP2018081572A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】信頼できるアプリが追加された場合に、ユーザによる認可手続を増やすことなく、追加された信頼できるアプリと外部サービスとを連係させることができるサービス提供システムを提供すること。【解決手段】アクセストークンを利用して複数のアプリが外部サービスと連係したサービスを提供するサービス提供システムであって、アプリごとに信頼する他のアプリの一覧を対応付けて保存する手段と、外部サービスにより認可済みのアプリと対応付けて、認可の適用範囲及びアクセストークンを保存する手段と、アプリからのアクセストークン取得要求を受け付けた場合に、要求元のアプリが認可済み又は要求元のアプリの信頼するアプリであれば、要求元のアプリのアクセストークンの利用が可能と判定する手段と、アクセストークンの利用が可能と判定された要求元のアプリにアクセストークンを提供する手段とを有することにより上記課題を解決する。【選択図】 図1

Description

本発明は、サービス提供システム、情報処理装置、プログラム及び情報処理システムに関する。
クラウドが一般化するに伴い、複数のサービスを連携させて付加価値を創造する機会はますます増加している。
例えばアプリケーション(以下、アプリと呼ぶ)は外部サービスと連携するため、認可サービスに対して認可トークンの取得を要求する場合がある。その際にアプリがユーザに対して認可トークンの共有を許可する代行者の範囲を設定させる技術が従来から知られている。
このような従来の技術において、ユーザは、認可トークンの共有を許可する代行者の範囲に含まれていれば、認可トークンを用いて、外部サービスと連携できる(例えば特許文献1参照)。
例えば既存のアプリが外部サービスに認可されたあと、外部サービスと連係する新しいアプリが追加される場合がある。従来の技術では、認可済みのアプリと新しく追加されたアプリの提供元が同じ場合など、信頼できるアプリが追加された場合であっても、追加された新しいアプリに対し、認可を改めて行わなければならなかった。
本発明の実施の形態は、上記の点に鑑みなされたものであり、信頼できるアプリが追加された場合に、ユーザによる認可手続を増やすことなく、追加された信頼できるアプリと外部サービスとを連係させることができるサービス提供システムを提供することを目的とする。
上記した課題を達成するために、本願請求項1は、アクセストークンを利用して複数のアプリケーションが外部サービスと連係したサービスを提供するサービス提供システムであって、前記アプリケーションごとに信頼する他のアプリケーションの一覧を対応付けて保存する信頼アプリケーション情報保存手段と、前記外部サービスにより認可済みのアプリケーションと対応付けて、認可の適用範囲及び前記アクセストークンを保存する外部サービス連係情報保存手段と、前記アプリケーションからのアクセストークン取得要求を受け付けた場合に、前記アクセストークン取得要求元の前記アプリケーションが、認可済みのアプリケーション又は前記アクセストークン取得要求元のアプリケーションの信頼する前記他のアプリケーションであれば、前記アクセストークン取得要求元のアプリケーションの前記アクセストークンの利用が可能と判定する利用可否判定手段と、前記アクセストークンの利用が可能と判定された前記アクセストークン取得要求元のアプリケーションに、前記アクセストークンを提供するアクセストークン提供手段とを有することを特徴とする。
本発明の実施の形態によれば、信頼できるアプリが追加された場合に、ユーザによる認可手続を増やすことなく、追加された信頼できるアプリと外部サービスとを連係させることができる。
第1の実施形態に係る情報処理システムの一例の構成図である。 第1の実施形態に係るコンピュータの一例のハードウェア構成図である。 第1の実施形態に係る画像形成装置の一例のハードウェア構成図である。 第1の実施形態に係るサービス提供システムの一例の処理ブロック図である。 第1の実施形態に係る画像形成装置の一例の処理ブロック図である。 プリントサービスアプリの一例の処理ブロック図である。 認証・認可部の一例の処理ブロック図である。 信頼アプリ設定画面の一例のイメージ図である。 信頼アプリ情報テーブルの一例の構成図である。 ユーザによる認可手続きを含む処理の一例のシーケンス図である。 外部連係情報テーブルの一例の構成図である。 ユーザによる認可手続きを含まない処理の一例のシーケンス図である。 外部連係情報収集処理の一例のフローチャートである。 利用可否判定処理の一例のフローチャートである。 外部連係情報テーブルの他の例の構成図である。 外部連係情報テーブルの他の例の構成図である。
以下、本発明の実施形態について図面を参照しながら説明する。
[第1の実施形態]
<システム構成>
図1は第1の実施形態に係る情報処理システムの一例の構成図である。図1の情報処理システム1000は、例えばオフィス内ネットワーク等のネットワークN1と、例えばインターネットなどのネットワークN2とを有する。
ネットワークN1は、ファイヤウォールFWの内側にあるプライベートなネットワークである。ファイヤウォールFWはネットワークN1とネットワークN2との接点に設置され、不正なアクセスを検出及び遮断する。ネットワークN1にはクライアント端末1011、携帯端末1012、複合機などの画像形成装置1013が接続されている。
クライアント端末1011は端末装置の一例である。クライアント端末1011は一般的なOSなどが搭載された情報処理装置によって実現できる。クライアント端末1011は無線による通信の手段または有線による通信の手段を有する。クライアント端末1011は、デスクトップPC、ノートPCなど、ユーザが操作可能な端末装置である。
携帯端末1012は端末装置の一例である。携帯端末1012は、無線による通信の手段または有線による通信の手段を有している。携帯端末1012は、スマートフォンや携帯電話、タブレットPCなど、ユーザが携帯して操作可能な端末装置である。
画像形成装置1013は複合機などの画像形成機能を有する装置である。画像形成装置1013は無線による通信の手段または有線による通信の手段を有する。画像形成装置1013は複合機、コピー機、スキャナ、プリンタ、レーザプリンタ、プロジェクタ、電子黒板など、画像形成に係る処理を行う装置である。図1では、一例としてクライアント端末1011、携帯端末1012、画像形成装置1013がそれぞれ一台である例を示しているが複数台であってもよい。
また、ネットワークN2には、携帯端末1012、サービス提供システム1014及び外部サービス1015が接続されている。携帯端末1012は、オフィス内ネットワーク等のネットワークN1以外にあってもよく、ネットワークN1と、ネットワークN2とに接続されている例を図1に示している。
サービス提供システム1014及び外部サービス1015は一台以上の情報処理装置により実現される。また、サービス提供システム1014及び外部サービス1015は画像形成装置1013にサービスを提供する情報処理システムの一例である。図1に示した情報処理システム1000はサービス提供システム1014のアプリが外部サービス1015と連係する場合に、外部サービス1015を利用するためのアクセストークンを後述のようにアプリ間で共有する。
<ハードウェア構成>
《コンピュータ》
図1のクライアント端末1011、携帯端末1012は例えば図2に示すようなハードウェア構成のコンピュータにより実現される。また、サービス提供システム1014及び外部サービス1015を実現する一台以上の情報処理装置も図2に示すハードウェア構成のコンピュータにより実現される。
図2は、第1の実施形態に係るコンピュータの一例のハードウェア構成図である。図2のコンピュータ500は入力装置501、表示装置502、外部I/F503、RAM504、ROM505、CPU506、通信I/F507及びHDD508等を備え、それぞれがバスBで相互に接続されている。なお、入力装置501及び表示装置502は必要なときに接続して利用する形態であってもよい。
入力装置501はキーボードやマウス、タッチパネルなどを含み、ユーザが各操作信号を入力するのに用いられる。表示装置502はディスプレイ等を含み、コンピュータ500による処理結果を表示する。
通信I/F507はコンピュータ500を各種ネットワークに接続するインタフェースである。これにより、コンピュータ500は通信I/F507を介してデータ通信を行うことができる。また、HDD508は、プログラムやデータを格納している不揮発性の記憶装置の一例である。格納されるプログラムやデータには、コンピュータ500全体を制御する基本ソフトウェアであるOS、及びOS上において各種機能を提供するアプリなどがある。なお、コンピュータ500はHDD508に替え、記憶媒体としてフラッシュメモリを用いるドライブ装置(例えばソリッドステートドライブ:SSD)を利用するものであってもよい。
外部I/F503は、外部装置とのインタフェースである。外部装置には、記録媒体503aなどがある。これにより、コンピュータ500は外部I/F503を介して記録媒体503aの読み取り及び/又は書き込みを行うことができる。記録媒体503aにはフレキシブルディスク、CD、DVD、SDメモリカード、USBメモリなどがある。
ROM505は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)の一例である。ROM505にはコンピュータ500の起動時に実行されるBIOS、OS設定、及びネットワーク設定などのプログラムやデータが格納されている。RAM504はプログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)の一例である。
CPU506は、ROM505やHDD508などの記憶装置からプログラムやデータをRAM504上に読み出し、処理を実行することで、コンピュータ500全体の制御や機能を実現する演算装置である。
図1のクライアント端末1011、携帯端末1012は、コンピュータ500のハードウェア構成により、後述するような各種処理を実現できる。また、サービス提供システム1014及び外部サービス1015を実現する一台以上の情報処理装置もコンピュータ500のハードウェア構成により、後述するような各種処理を実現できる。
《画像形成装置》
図1の画像形成装置1013は、例えば図3に示すハードウェア構成のコンピュータにより実現される。図3は第1の実施形態に係る画像形成装置の一例のハードウェア構成図である。図3の画像形成装置1013は、コントローラ601、操作パネル602、外部I/F603、通信I/F604、プリンタ605及びスキャナ606などを備える。
コントローラ601はCPU611、RAM612、ROM613、NVRAM614及びHDD615などを備える。ROM613は、各種プログラムやデータが格納されている。RAM612はプログラムやデータを一時保持する。NVRAM614は、例えば設定情報等が格納されている。また、HDD615は各種プログラムやデータが格納されている。
CPU611は、ROM613やNVRAM614、HDD615などからプログラムやデータ、設定情報等をRAM612上に読み出し、処理を実行することで、画像形成装置1013全体の制御や機能を実現する。
操作パネル602はユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部I/F603は外部装置とのインタフェースである。外部装置には、記録媒体603aなどがある。これにより、画像形成装置1013は外部I/F603を介して記録媒体603aの読み取り及び/又は書き込みを行うことができる。記録媒体603aにはICカード、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
通信I/F604は、画像形成装置1013をネットワークN1に接続させるためのインタフェースである。これにより、画像形成装置1013は通信I/F604を介してデータ通信を行うことができる。
プリンタ605は印刷データを被搬送物に印刷するための印刷装置である。例えば被搬送物は紙、コート紙、厚紙、OHP、プラスチックフィルム、プリプレグ、銅箔など、紙に限定されない。スキャナ606は原稿から画像データ(電子データ)を読み取るための読取装置である。なお、図3は画像形成装置1013が複合機の例を示しており、画像形成装置1013が複合機でない場合、プリンタ605やスキャナ606を必ずしも備える必要はない。また、カメラ、ランプ光源など、図3に示した以外のハードウェアを有していてもよい。
<ソフトウェア構成>
《サービス提供システム》
第1の実施形態に係るサービス提供システム1014は例えば図4に示す処理ブロックにより実現される。図4は、第1の実施形態に係るサービス提供システムの一例の処理ブロック図である。サービス提供システム1014はプログラムを実行することで、図4に示すような処理ブロックを実現する。
図4のサービス提供システム1014は、アプリケーション1101、共通サービス1102、データベース(DB)1103及びプラットフォームAPI1106を実現している。
アプリケーション1101はポータルサービスアプリ1111、スキャンサービスアプリ1112及びプリントサービスアプリ1113を一例として有する。ポータルサービスアプリ1111はポータルサービスを提供するアプリである。スキャンサービスアプリ1112はスキャンサービスを提供するアプリである。プリントサービスアプリ1113はプリントサービスを提供するアプリである。なお、アプリケーション1101には、その他のサービスアプリが含まれていてもよい。
プラットフォームAPI1106はポータルサービスアプリ1111、スキャンサービスアプリ1112、プリントサービスアプリ1113などが共通サービス1102を利用するためのインタフェースである。プラットフォームAPI1106はアプリケーション1101からの要求を共通サービス1102が受信するために設けられた予め定義されたインタフェースであり、例えば関数やクラス等により構成される。
プラットフォームAPI1106は、サービス提供システム1014が複数の情報処理装置で構成される場合、ネットワーク経由で利用可能な例えばWeb APIにより実現できる。
共通サービス1102は、認証・認可部1121、テナント管理部1122、ユーザ管理部1123、クライアント管理部1124、ライセンス管理部1125、機器管理部1126、一時画像保存部1127、ログ収集部1128、画像処理ワークフロー制御部1130を有する。
また、画像処理ワークフロー制御部1130はメッセージキュー1131、1つ以上のワーカー(Worker)1132を有する。ワーカー1132は画像変換や画像送信などの機能を実現する。
認証・認可部1121は、クライアント端末1011、携帯端末1012や画像形成装置1013などのオフィス機器からの認証・認可要求に基づいて認証・認可に関する処理を実行する。認証・認可部1121は例えばデータベース1103にアクセスしてユーザを認証する。また、認証・認可部1121は後述のリダイレクトにより外部サービス1015へ認可リクエストを行い、外部サービス1015からアクセストークンを取得してプリントサービスアプリ1113等に提供する。
テナント管理部1122はテナント情報記憶部1142に記憶されているテナント情報を管理する。なお、テナントは企業や部門などのグループの単位である。ユーザ管理部1123はユーザ情報記憶部1143に記憶されているユーザ情報を管理する。クライアント管理部1124はクライアント情報記憶部1148に記憶されているクライアント情報を管理する。
ライセンス管理部1125はライセンス情報記憶部1144に記憶されているライセンス情報を管理する。機器管理部1126は機器情報記憶部1145に記憶されている機器情報を管理する。一時画像保存部1127は一時画像記憶部1146への一時画像の保存や一時画像記憶部1146からの一時画像の取得を行う。ログ収集部1128はログ情報記憶部1141に記憶されたログ情報を管理する。
画像処理ワークフロー制御部1130はアプリケーション1101からの要求に基づいて画像処理に関するワークフローを制御する。メッセージキュー1131は処理の種類に対応するキューを有する。画像処理ワークフロー制御部1130は処理(ジョブ)に係るリクエストのメッセージを、そのジョブの種類に対応するキューに投入する。
ワーカー1132は対応するキューを監視している。キューにメッセージが投入されるとワーカー1132は、対応するジョブの種類に応じた画像変換や画像送信などの処理を行う。なお、キューに投入されたメッセージはワーカー1132が主体的に読み出す(Pull)ようにしてもよいし、キューからワーカー1132に提供する(Push)ようにしてもよい。
図4のデータベース1103は、ログ情報記憶部1141、テナント情報記憶部1142、ユーザ情報記憶部1143、ライセンス情報記憶部1144、機器情報記憶部1145、一時画像記憶部1146、ジョブ情報記憶部1147、クライアント情報記憶部1148及びアプリケーション固有の設定情報記憶部1150を有する。
ログ情報記憶部1141はログ情報を記憶する。テナント情報記憶部1142はテナント情報を記憶する。ユーザ情報記憶部1143はユーザ情報を記憶する。ライセンス情報記憶部1144はライセンス情報を記憶している。また、機器情報記憶部1145は機器情報を記憶する。
一時画像記憶部1146は一時画像を記憶する。一時画像は、例えばワーカー1132が処理するスキャン画像などのファイルやデータである。ジョブ情報記憶部1147は処理(ジョブ)に係るリクエストの情報(ジョブ情報)を記憶する。クライアント情報記憶部1148はクライアント情報を記憶する。また、アプリケーション固有の設定情報記憶部1150はアプリケーション1101に固有の設定情報を記憶する。
サービス提供システム1014は、認証・認可や画像処理に関するワークフローなどの共通サービスを提供する統合基盤と、統合基盤の機能を利用してスキャンサービス、プリントサービスなどのアプリサービスを提供するサービス群として機能する。
統合基盤は、例えば共通サービス1102、DB1103及びプラットフォームAPI1106によって構成される。サービス群は、例えばアプリケーション1101によって構成される。図4に示したサービス提供システム1014はサービス群と統合基盤とを分離した構成により、プラットフォームAPI1106を利用するアプリケーション1101を容易に開発できる。
なお、図4に示したサービス提供システム1014の処理ブロックの分類形態は一例であり、アプリケーション1101、共通サービス1102、DB1103が図4に示されるような階層で分類されていることが必須ではない。第1の実施形態に係るサービス提供システム1014の処理を実施できるのであれば図4に示される階層関係などは特定のものに限定されない。
《画像形成装置》
第1の実施形態に係る画像形成装置1013は例えば図5に示すような処理ブロックにより実現される。図5は、第1の実施形態に係る画像形成装置の一例の処理ブロック図である。画像形成装置1013はプログラムを実行することで、図5に示す処理ブロックを実現する。
図5の画像形成装置1013はブラウザ10が搭載されており、ブラウザ10により操作受付部12、画面表示部14及びブラウザリクエスト部16を実現している。操作受付部12はユーザからの各種操作を受け付ける。画面表示部14はサービス提供システム1014や外部サービス1015から取得した画面データを表示する。ブラウザリクエスト部16はサービス提供システム1014や外部サービス1015に対して各種リクエストを行う。
ここではブラウザ10が搭載されたオフィス機器の一例として画像形成装置1013を説明したが、クライアント端末1011や携帯端末1012についても図5に示した処理ブロックと同様である。
《プリントサービスアプリ》
図6はプリントサービスアプリの一例の処理ブロック図である。図6のプリントサービスアプリ1113は、リクエスト受付部20、アプリリクエスト部22及びプリント処理部24を有する構成である。
リクエスト受付部20はブラウザ10のブラウザリクエスト部16から各種リクエストを受け付ける。アプリリクエスト部22は認証・認可部1121や外部サービス1015に対して各種リクエストを行う。プリント処理部24はプリントサービスに応じた各種プリント処理を行う。
ここではアプリの一例としてプリントサービスアプリ1113を説明したが、スキャンサービスアプリ1112や、その他のアプリについても、そのアプリが提供するサービスに応じた各種処理以外、図6に示した処理ブロックと同様である。
《認証・認可部》
図7は認証・認可部の一例の処理ブロック図である。図7の認証・認可部1121は認可要求受付部30、アクセストークン取得リクエスト部32、外部連係情報作成部34、アクセストークン提供部36、信頼アプリ設定部38、外部連係情報収集部40、利用可否判定部42、信頼アプリ情報テーブル44及び外部連係情報テーブル46を有する構成である。
認可要求受付部30はプリントサービスアプリ1113などのアプリから認可要求リクエストを受け付ける。アクセストークン取得リクエスト部32は外部サービス1015に対してアクセストークン取得リクエストを行い、アクセストークンを取得する。外部連係情報作成部34は後述の外部連係情報を作成する。
アクセストークン提供部36はプリントサービスアプリ1113などのアプリからのアクセストークン取得リクエストに対して、アクセストークンを提供する。信頼アプリ設定部38は後述するようにユーザから信頼するアプリの設定を受け付ける。なお、信頼するアプリの設定は、プリントサービスアプリ1113などのアプリ毎に受け付ける。
外部連係情報収集部40は後述のように外部連係情報を収集する。利用可否判定部42は後述のように利用可否判定を行い、信頼するアプリとして設定されていれば、アクセストークンを利用可と判定する。
信頼アプリ情報テーブル44は、プリントサービスアプリ1113などのアプリ毎に設定された信頼するアプリの情報を後述のように格納する。また、外部連係情報テーブル46は外部サービス1015から取得したアクセストークンに関する情報を後述のように格納する。
<処理の詳細>
以下では、第1の実施形態に係る情報処理システム1000の処理の詳細について説明する。なお、第1の実施形態では一例として、プリントサービスアプリ1113が信頼するアプリとして、スキャンサービスアプリ1112が設定される場合の処理について説明する。
《信頼アプリ設定》
図8は信頼アプリ設定画面の一例のイメージ図である。図8の信頼アプリ設定画面はプリントサービスアプリ1113が信頼するアプリの設定をユーザから受け付ける。図8の信頼アプリ設定画面はプリントサービスアプリ1113以外のアプリのid、名称及び説明が一覧表示されると共に、プリントサービスアプリ1113が信頼するアプリか否かの情報が項目「信頼」に表示されている。図8の信頼アプリ設定画面では、項目「信頼」に「○」が付与されているid「app20」と「app30」と「app40」のアプリが信頼するアプリとして設定されている。
例えばユーザは、クライアント端末1011、携帯端末1012又は画像形成装置1013などから認証・認可部1121にアクセスして、図8の信頼アプリ設定画面を表示させる。ユーザは、図8の信頼アプリ設定画面の項目「信頼」に「○」を付与することでプリントサービスアプリ1113が信頼するアプリを設定できる。
図8の信頼アプリ設定画面から設定された信頼アプリ情報は例えば図9の信頼アプリ情報テーブルに格納される。図9は信頼アプリ情報テーブルの一例の構成図である。図9の信頼アプリ情報は、信頼アプリ情報テーブルのレコードを識別するidと、アプリのidを表す「client_id」と、信頼するアプリのidを表す「relying_client_id」とが対応付けられて格納されている。
つまり、信頼アプリ情報テーブルは「client_id」で示されるアプリが「relying_client_id」で示されるアプリを信頼していることを表す。図9の信頼アプリ情報テーブルはid「app10」のアプリがid「app20」と「app30」と「app40」のアプリを信頼していることを表している。
《ユーザによる認可手続きを含む通常のシーケンス図》
図10はユーザによる認可手続きを含む処理の一例のシーケンス図である。図10のブラウザ10は画像形成装置1013に搭載されたものであってもよいし、クライアント端末1011又は携帯端末1012に搭載されたものであってもよい。ここでは画像形成装置1013に搭載されたブラウザ10の例を説明する。
ステップS11においてユーザは、操作パネル602に表示されたブラウザ10の画面から外部サービス1015の認可が必要なプリントサービスアプリ1113の処理を選択する操作を行う。ブラウザ10の操作受付部12はユーザからの操作を受け付ける。
ステップS12に進み、ブラウザ10のブラウザリクエスト部16はユーザから受け付けた操作に基づき、プリントサービスアプリ1113に操作リクエストを行う。プリントサービスアプリ1113のリクエスト受付部20はブラウザ10からの操作リクエストを受け付ける。ステップS13に進み、プリントサービスアプリ1113のアプリリクエスト部22はブラウザ10から受け付けた操作リクエストに基づき、認証・認可部1121に外部サービス1015の認可要求リクエストを行う。
認証・認可部1121の認可要求受付部30はプリントサービスアプリ1113からの認可要求リクエストを受け付ける。認証・認可部1121の認可要求受付部30は、外部サービス1015のリダイレクトURLを指定して外部サービス1015の認可問い合わせ画面へのリダイレクトを、プリントサービスアプリ1113経由でブラウザ10に要求する。
ステップS14に進み、ブラウザ10のブラウザリクエスト部16は外部サービス1015に認可リクエストを行い、外部サービス1015から認可問い合わせ画面データを取得する。ブラウザ10の画面表示部14は認可問い合わせ画面を表示する。
ステップS15に進み、ユーザは認可問い合わせ画面に、認可に必要な情報を入力した後で、外部サービス1015に許可リクエストを行う許可操作を選択する。ステップS16に進み、ブラウザ10のブラウザリクエスト部16は外部サービス1015に許可リクエストを行う。ここでは認可が成功したものとして説明を続ける。外部サービス1015はブラウザ10にリダイレクトする。また、ブラウザ10のブラウザリクエスト部16は認証・認可部1121にコールバックする。
ステップS18に進み、認証・認可部1121のアクセストークン取得リクエスト部32は外部サービス1015にアクセストークン取得リクエストを行い、外部サービス1015からアクセストークンを取得する。外部サービス1015からは、アクセストークンの他、リフレッシュトークン、スコープ(scope)を取得する。
ステップS19に進み、認証・認可部1121の外部連係情報作成部34は例えば図11に示すような外部連係情報を作成する。図11は外部連係情報テーブルの一例の構成図である。図11の外部連係情報テーブルは、外部連係情報IDと、ユーザを識別する「tenant_id」及び「user_id」と、認可要求リクエストを行ったアプリのid「client_id」と、外部サービス1015から取得した情報とが対応付けられている。
外部連係情報IDは外部連係情報テーブルのレコードを識別するidである。図11の外部連係情報テーブルでは上段のレコードがid「app10」のプリントサービスアプリ1113の外部連係情報を表している。
認証・認可部1121のアクセストークン取得リクエスト部32は外部連係情報IDを指定してブラウザ10にリダイレクトする。また、ブラウザ10のブラウザリクエスト部16はステップS20に進み、プリントサービスアプリ1113に外部連係情報IDを指定してコールバックする。
ステップS21に進み、プリントサービスアプリ1113のアプリリクエスト部22は外部連係情報IDを指定して認証・認可部1121にアクセストークン取得リクエストを行う。認証・認可部1121のアクセストークン提供部36は、図11に示した外部連係情報テーブルを参照し、指定された外部連係情報IDと対応付けられたアクセストークンをプリントサービスアプリ1113に提供する。
ステップS22に進み、プリントサービスアプリ1113のプリント処理部24は提供されたアクセストークンを指定して外部サービス1015にサービスリクエストを行うことで外部サービス1015と連係した処理を行うことができる。
《ユーザによる認可手続きを含まないシーケンス図》
図12はユーザによる認可手続きを含まない処理の一例のシーケンス図である。図12のシーケンス図の処理を図10のシーケンス図の処理の前に行うことで、第1の実施形態に係る情報処理システム1000では、ユーザによる認可手続きを増やすことなく、追加された信頼できるアプリと外部サービス1015とを連係させることができる。
ステップS31においてユーザは、操作パネル602に表示されたブラウザ10の画面から外部サービス1015の認可が必要なスキャンサービスアプリ1112の処理を選択する操作を行う。ブラウザ10の操作受付部12はユーザからの操作を受け付ける。
ステップS32に進み、ブラウザ10のブラウザリクエスト部16はユーザから受け付けた操作に基づき、スキャンサービスアプリ1112に操作リクエストを行う。スキャンサービスアプリ1112のリクエスト受付部はブラウザ10からの操作リクエストを受け付ける。
ステップS33に進み、スキャンサービスアプリ1112のアプリリクエスト部はブラウザ10から受け付けた操作リクエストに基づき、認証・認可部1121にユーザと紐付けて保存されている外部連係情報の取得リクエストを行う。スキャンサービスアプリ1112からの外部連係情報の取得リクエストを受け付けた認証・認可部1121の外部連係情報収集部40はステップS34に進み、後述の外部連係情報収集処理を行う。外部連係情報収集部40は後述の外部連係情報収集処理の結果リストをスキャンサービスアプリ1112に返す。
ステップS35に進み、スキャンサービスアプリ1112のアプリリクエスト部は返された結果リストの中から適切な外部連係情報として、必要とするスコープを含む外部連係情報を選択する。なお、スキャンサービスアプリ1112のアプリリクエスト部は返された結果リストの中から適切な外部連係情報が見つからない場合、図10に示した認可手続きに進む。
スキャンサービスアプリ1112のアプリリクエスト部は、返された結果リストの中から適切な外部連係情報が見つかった場合、ステップS36の処理に進む。スキャンサービスアプリ1112のアプリリクエスト部は、必要とするスコープを含む外部連係情報の外部連係情報IDを指定して、認証・認可部1121にアクセストークン取得リクエストを行う。
アクセストークン取得リクエストを受け付けた認証・認可部1121の利用可否判定部42はステップS37に進み、後述の利用可否判定処理を行う。利用可否判定処理の結果が「利用可」であれば、認証・認可部1121のアクセストークン提供部36は、図11に示した外部連係情報テーブルを参照し、指定された外部連係情報IDと対応付けられたアクセストークンをスキャンサービスアプリ1112に提供する。なお、利用可否判定処理の結果が「利用付加」であれば、認証・認可部1121のアクセストークン提供部36はアクセストークンの提供を行わない。
ステップS38に進み、スキャンサービスアプリ1112は提供されたアクセストークンを指定して外部サービス1015にサービスリクエストを行うことで外部サービス1015と連係した処理を行うことができる。
《ステップS34の外部連係情報収集処理》
図13は外部連係情報収集処理の一例のフローチャートである。ステップS101において認証・認可部1121の外部連係情報収集部40は図11の外部連係情報テーブル46からログインユーザに紐付くレコードを検索する。ここで検索されるレコードはログインユーザにより認可済みのアプリの外部連係情報となる。ステップS102に進み、外部連係情報収集部40は検索されたレコードについて一つずつステップS103〜S105の処理を行う。
検索されたレコードの項目「client_id」が外部連係情報の取得リクエスト元のスキャンサービスアプリ1112の「client_id」と一致すれば、外部連係情報収集部40はステップS104に進む。ステップS104において外部連係情報収集部40は取得リクエスト元のスキャンサービスアプリ1112がログインユーザにより認可済みのアプリであると判断する。外部連係情報収集部40は検索されたレコードの外部連係情報IDとスコープとを対応付けて結果リストに追加する。
検索されたレコードの項目「client_id」が外部連係情報の取得リクエスト元のスキャンサービスアプリ1112の「client_id」と一致しなければ、外部連係情報収集部40はステップS103に進む。外部連係情報収集部40は図9の信頼アプリ情報テーブル44から、ステップS101で検索されたレコードの「client_id」と一致するレコードを検索する。
なお、信頼アプリ情報テーブルは前述したように「client_id」で示されるアプリが「relying_client_id」で示されるアプリを信頼していることを表すものである。したがって、外部連係情報収集部40はログインユーザにより認可済みのアプリが信頼するアプリの「client_id」の一覧を取得できる。
外部連係情報収集部40は、ログインユーザにより認可済みのアプリが信頼するアプリの「client_id」の一覧に外部連係情報の取得リクエスト元のスキャンサービスアプリ1112の「client_id」が含まれていればステップS104に進む。
ステップS104において外部連係情報収集部40は外部連係情報の取得リクエスト元のスキャンサービスアプリ1112が、ログインユーザにより認可済みのアプリが信頼するアプリであると判断する。外部連係情報収集部40はステップS101で検索されたレコードのうち、ステップS103〜S105を処理中のレコードの外部連係情報IDとスコープとを対応付けて結果リストに追加する。
外部連係情報収集部40は信頼するアプリの「client_id」の一覧に外部連係情報の取得リクエスト元のスキャンサービスアプリ1112の「client_id」が含まれていなければ、次のレコードのステップS103〜S105の処理に移る。
外部連係情報収集部40は検索された全てのレコードについてステップS103〜S105の処理を行ったあと、ステップS107に進み、結果リストを外部連係情報収集処理の結果としてスキャンサービスアプリ1112に返す。
このように、ステップS34の外部連係情報収集処理によれば、認証・認可部1121はログインユーザにより認可済みのアプリと、その認可済みのアプリが信頼するアプリ一覧と、スコープとを対応付けた結果リストを収集して提供できる。
《ステップS37の利用可否判定処理》
図14は利用可否判定処理の一例のフローチャートである。外部連係情報IDを指定したアクセストークン取得リクエストを受け付けると、認証・認可部1121の利用可否判定部42はステップS121に進む。ステップS121において利用可否判定部42はアクセストークン取得リクエストで指定された外部連係情報IDをキーとして図11の外部連係情報テーブルを検索する。
アクセストークン取得リクエストで指定された外部連係情報IDのレコードが図11の外部連係情報テーブルから検索されると、利用可否判定部42は検索したレコードの「client_id」がアクセストークン取得リクエストの要求元と一致するか判定する。
検索したレコードの「client_id」がアクセストークン取得リクエストの要求元と一致していれば、利用可否判定部42はステップS124に進み、利用可否判定処理の結果を「利用可」と判定する。
一方、検索したレコードの「client_id」がアクセストークン取得リクエストの要求元と一致していなければ、利用可否判定部42はステップS122に進む。利用可否判定部42はステップS121で検索したレコードの「client_id」と一致する信頼アプリ情報のレコードを検索し、信頼するアプリ一覧を取得する。
取得した信頼するアプリ一覧にアクセストークン取得リクエストの要求元が含まれていれば、利用可否判定部42はステップS124に進み、利用可否判定処理の結果を「利用可」と判定する。
一方、アクセストークン取得リクエストで指定された外部連係情報IDのレコードが図11の外部連係情報テーブルから検索されなかった場合はステップS123に進み、利用可否判定処理の結果を「利用不可」と判定する。また、取得した信頼するアプリ一覧にアクセストークン取得リクエストの要求元が含まれていなかった場合もステップS123に進み、利用可否判定処理の結果を「利用不可」と判定する。
このように、ステップS37の利用可否判定処理によれば、利用可否判定部42は認可済みのアプリだけでなく、そのアプリが信頼するアプリに対してもアクセストークンの利用を許可できる。
《外部連係情報テーブルの他の例》
図15及び図16は外部連係情報テーブルの他の例の構成図である。図15の外部連係情報テーブルは、信頼するアプリをユーザが許可するか否かを項目「relying_client」に設定できるようにした例である。例えば項目「relying_client」が「false」の場合は、信頼するアプリによるアクセストークンの利用を許可しない。また、図16の外部連係情報テーブルは、外部連係情報を一時的に無効とするか否かを項目「status」に設定できるようにした例である。例えば項目「status」が「inactive」の外部連係情報は、無効化された外部連係情報である。無効化された外部連係情報は、信頼するアプリのみアクセストークンの利用を許可しないようにしてもよいし、項目「client_id」で表されるアプリも含めてアクセストークンの利用を許可しないようにしてもよい。
また、ステップS19の外部連係情報の作成時に、信頼するアプリの一覧をユーザに提示することで、認可手続きを行ったアプリ以外からも外部サービス1015が認可手続きなしに利用される可能性があることを伝えることもできる。また、ステップS19の外部連係情報の作成時に、信頼するアプリによるアクセストークンの利用を許可するか否かをユーザに選択させてもよい。
さらに、信頼するアプリの一覧にアプリが追加された場合に、その信頼するアプリと紐付けられている外部連係情報のユーザに通知してもよい。また、信頼するアプリの一覧にアプリが追加された場合には、その外部連係情報を一時的に無効化し、ユーザにメールで通知してもよい。メールには、一時的に無効化された外部連係情報を有効化するURLリンクを情報として含めてもよい。
<まとめ>
本実施形態に係る情報処理システム1000によれば、アプリからのアクセストークン取得リクエストに対して、認可済みのアプリだけでなく、認可済みのアプリが信頼するアプリとして設定されているアプリにも、アクセストークンの利用を許可できる。
ユーザはアプリごとに信頼アプリ情報を設定することができ、信頼できるアプリが追加された場合などに、ユーザによる認可手続を増やすことなく、追加されたアプリによるアクセストークンの利用が可能となる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えばクライアント端末1011、携帯端末1012及び画像形成装置1013は特許請求の範囲に記載したユーザが操作する装置の一例である。信頼アプリ情報テーブル44は信頼アプリケーション情報保存手段の一例である。外部連係情報テーブル46は外部サービス連係情報保存手段の一例である。スコープは認可の適用範囲の一例である。利用可否判定部42は利用可否判定手段の一例である。また、アクセストークン提供部36はアクセストークン提供手段の一例である。
10 ブラウザ
12 操作受付部
14 画面表示部
16 ブラウザリクエスト部
20 リクエスト受付部
22 アプリリクエスト部
24 プリント処理部
30 認可要求受付部
32 アクセストークン取得リクエスト部
34 外部連係情報作成部
36 アクセストークン提供部
38 信頼アプリ設定部
40 外部連係情報収集部
42 利用可否判定部
44 信頼アプリ情報テーブル
46 外部連係情報テーブル
500 コンピュータ
501 入力装置
502 表示装置
503 外部I/F
503a 記録媒体
504 RAM
505 ROM
506 CPU
507 通信I/F
508 HDD
601 コントローラ
602 操作パネル
603 外部I/F
603a 記録媒体
604 通信I/F
605 プリンタ
606 スキャナ
611 CPU
612 RAM
613 ROM
614 NVRAM
615 HDD
1000 情報処理システム
1011 クライアント端末
1012 携帯端末
1013 画像形成装置
1014 サービス提供システム
1015 外部サービス
1101 アプリケーション
1102 共通サービス
1103 データベース
1106 プラットフォームAPI(Application Programming Interface)
1111 ポータルサービスアプリ
1112 スキャンサービスアプリ
1113 プリントサービスアプリ
1121 認証・認可部
1122 テナント管理部
1123 ユーザ管理部
1124 クライアント管理部
1125 ライセンス管理部
1126 機器管理部
1127 一時画像保存部
1128 ログ収集部
1130 画像処理ワークフロー制御部
1131 メッセージキュー
1132 ワーカー
1141 ログ情報記憶部
1142 テナント情報記憶部
1143 ユーザ情報記憶部
1144 ライセンス情報記憶部
1145 機器情報記憶部
1146 一時画像記憶部
1147 ジョブ情報記憶部
1148 クライアント情報記憶部
1150 アプリケーション固有の設定情報記憶部
B バス
FW ファイヤウォール
N1〜N2 ネットワーク
特許第5858796号公報

Claims (7)

  1. アクセストークンを利用して複数のアプリケーションが外部サービスと連係したサービスを提供するサービス提供システムであって、
    前記アプリケーションごとに信頼する他のアプリケーションの一覧を対応付けて保存する信頼アプリケーション情報保存手段と、
    前記外部サービスにより認可済みのアプリケーションと対応付けて、認可の適用範囲及び前記アクセストークンを保存する外部サービス連係情報保存手段と、
    前記アプリケーションからのアクセストークン取得要求を受け付けた場合に、前記アクセストークン取得要求元の前記アプリケーションが、認可済みのアプリケーション又は前記アクセストークン取得要求元のアプリケーションの信頼する前記他のアプリケーションであれば、前記アクセストークン取得要求元のアプリケーションの前記アクセストークンの利用が可能と判定する利用可否判定手段と、
    前記アクセストークンの利用が可能と判定された前記アクセストークン取得要求元のアプリケーションに、前記アクセストークンを提供するアクセストークン提供手段と
    を有するサービス提供システム。
  2. 前記アプリケーションごとに信頼する前記他のアプリケーションの設定をユーザから受け付ける信頼アプリケーション設定画面を、前記ユーザの操作する装置に表示させ、前記信頼アプリケーション設定画面から前記ユーザにより前記アプリケーションごとに設定された信頼する前記他のアプリケーションを、前記信頼アプリケーション情報保存手段に保存する信頼アプリケーション設定手段
    を更に有する請求項1記載のサービス提供システム。
  3. 前記利用可否判定手段は、前記アプリケーションからのアクセストークン取得要求を受け付けた場合に、前記アクセストークン取得要求元の前記アプリケーションが、認可済みのアプリケーションでなく、前記アクセストークン取得要求元のアプリケーションの信頼する前記他のアプリケーションでもなければ、前記アクセストークン取得要求元のアプリケーションの前記アクセストークンの利用が不可と判定すること
    を特徴とする請求項1又は2記載のサービス提供システム。
  4. 前記利用可否判定手段は、前記外部サービス連係情報保存手段に、信頼する前記他のアプリケーションに前記アクセストークンの利用を許可しない情報が設定されていれば、前記アクセストークン取得要求元の前記アプリケーションが、前記アクセストークン取得要求元のアプリケーションの信頼する前記他のアプリケーションであっても、前記アクセストークン取得要求元のアプリケーションの前記アクセストークンの利用が不可と判定すること
    を特徴とする請求項1乃至3何れか一項記載のサービス提供システム。
  5. アクセストークンを利用して複数のアプリケーションが外部サービスと連係したサービスを提供する情報処理装置であって、
    前記アプリケーションごとに信頼する他のアプリケーションの一覧を対応付けて保存する信頼アプリケーション情報保存手段と、
    前記外部サービスにより認可済みのアプリケーションと対応付けて、認可の適用範囲及び前記アクセストークンを保存する外部サービス連係情報保存手段と、
    前記アプリケーションからのアクセストークン取得要求を受け付けた場合に、前記アクセストークン取得要求元の前記アプリケーションが、認可済みのアプリケーション又は前記アクセストークン取得要求元のアプリケーションの信頼する前記他のアプリケーションであれば、前記アクセストークン取得要求元のアプリケーションの前記アクセストークンの利用が可能と判定する利用可否判定手段と、
    前記アクセストークンの利用が可能と判定された前記アクセストークン取得要求元のアプリケーションに、前記アクセストークンを提供するアクセストークン提供手段と
    を有する情報処理装置。
  6. アクセストークンを利用して複数のアプリケーションが外部サービスと連係したサービスを提供する情報処理装置を、
    前記アプリケーションごとに信頼する他のアプリケーションの一覧を対応付けて保存する信頼アプリケーション情報保存手段、
    前記外部サービスにより認可済みのアプリケーションと対応付けて、認可の適用範囲及び前記アクセストークンを保存する外部サービス連係情報保存手段、
    前記アプリケーションからのアクセストークン取得要求を受け付けた場合に、前記アクセストークン取得要求元の前記アプリケーションが、認可済みのアプリケーション又は前記アクセストークン取得要求元のアプリケーションの信頼する前記他のアプリケーションであれば、前記アクセストークン取得要求元のアプリケーションの前記アクセストークンの利用が可能と判定する利用可否判定手段、
    前記アクセストークンの利用が可能と判定された前記アクセストークン取得要求元のアプリケーションに、前記アクセストークンを提供するアクセストークン提供手段
    として機能させるためのプログラム。
  7. ユーザが操作する装置と、前記装置からの指示に従い、アクセストークンを利用して複数のアプリケーションが外部サービスと連係したサービスを提供するサービス提供システムと、を有する情報処理システムであって、
    前記アプリケーションごとに信頼する他のアプリケーションの一覧を対応付けて保存する信頼アプリケーション情報保存手段と、
    前記外部サービスにより認可済みのアプリケーションと対応付けて、認可の適用範囲及び前記アクセストークンを保存する外部サービス連係情報保存手段と、
    前記アプリケーションからのアクセストークン取得要求を受け付けた場合に、前記アクセストークン取得要求元の前記アプリケーションが、認可済みのアプリケーション又は前記アクセストークン取得要求元のアプリケーションの信頼する前記他のアプリケーションであれば、前記アクセストークン取得要求元のアプリケーションの前記アクセストークンの利用が可能と判定する利用可否判定手段と、
    前記アクセストークンの利用が可能と判定された前記アクセストークン取得要求元のアプリケーションに、前記アクセストークンを提供するアクセストークン提供手段と
    を有する情報処理システム。
JP2016224326A 2016-11-17 2016-11-17 サービス提供システム、情報処理装置、プログラム及び情報処理システム Pending JP2018081572A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016224326A JP2018081572A (ja) 2016-11-17 2016-11-17 サービス提供システム、情報処理装置、プログラム及び情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016224326A JP2018081572A (ja) 2016-11-17 2016-11-17 サービス提供システム、情報処理装置、プログラム及び情報処理システム

Publications (1)

Publication Number Publication Date
JP2018081572A true JP2018081572A (ja) 2018-05-24

Family

ID=62198457

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016224326A Pending JP2018081572A (ja) 2016-11-17 2016-11-17 サービス提供システム、情報処理装置、プログラム及び情報処理システム

Country Status (1)

Country Link
JP (1) JP2018081572A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020025197A (ja) * 2018-08-07 2020-02-13 富士ゼロックス株式会社 情報処理装置及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020025197A (ja) * 2018-08-07 2020-02-13 富士ゼロックス株式会社 情報処理装置及びプログラム
JP7124539B2 (ja) 2018-08-07 2022-08-24 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム

Similar Documents

Publication Publication Date Title
JP6476760B2 (ja) 情報処理システム、情報処理装置、ログイン方法、及びプログラム
JP6291826B2 (ja) 情報処理システム及びライセンス管理方法
JP6179083B2 (ja) 情報処理装置、出力システム及びプログラム
US9514291B2 (en) Information processing system, information processing device, and authentication information management method
JP6372311B2 (ja) 情報処理システム、電子機器、サービス認可方法及びプログラム
JP2017033339A (ja) サービス提供システム、情報処理装置、プログラム及びサービス利用情報作成方法
JP6848340B2 (ja) 情報処理システム、更新方法、情報処理装置及びプログラム
JP6183035B2 (ja) サービス提供システム、サービス提供方法及びプログラム
US20180270246A1 (en) Information processing system, information processing apparatus, and information processing method
US10063745B2 (en) Information processing system, information processing apparatus, and information processing method
JP6716899B2 (ja) 情報処理システム、情報処理装置及びプログラム
US9282091B2 (en) Information processing system, information processing device, and authentication method
JP6927282B2 (ja) 情報処理装置、端末装置、プログラム及び情報処理システム
JP6060573B2 (ja) 出力システム、出力制御装置、出力装置及びプログラム
JP2014059697A (ja) 出力制御装置、プログラム及び出力システム
US20150081834A1 (en) Information processing system and method
JP6451888B2 (ja) 情報処理装置、システム及びプログラム
JP2014089678A (ja) 情報処理装置、システム及び情報提供方法
JP2018081572A (ja) サービス提供システム、情報処理装置、プログラム及び情報処理システム
JP6747047B2 (ja) 情報処理システム、ログイン方法、情報処理装置及びプログラム
JP6299101B2 (ja) サービス提供システム、サービス提供方法及びプログラム
JP6304408B2 (ja) 情報処理装置、情報提供方法及びプログラム
JP6296190B2 (ja) 情報処理システム、出力制御方法及びプログラム
JP2006235751A (ja) 仮想ストレージ装置、仮想ストレージ方法およびプログラム
JP6337532B2 (ja) 情報処理システム、及び情報処理方法