(57)【要約】      （修正有）【課題】外部サービスとの連携設定を容易に追加できる情報処理システム、情報処理プログラム及び情報処理方法を提供する。【解決手段】情報処理システムは、コンポーネント設定受付部、外部サービス連携コンポーネント及び認可サービス部を備える。コンポーネント設定受付部は、外部サービスと連携する情報である外部サービス連携固定情報及び外部サービス連携変動情報（外部サービス連携情報）の登録を受け付ける。外部サービス連携コンポーネントは、外部サービス連携情報を管理する。認可サービス部は、外部サービス連携情報を用いて外部サービスからトークンを取得する。この構成により、開発者は、開発者サイトのコンポーネント開発画面から、外部サービスのＡＰＩを利用して、外部サービス連携情報を設定することが可能となる。さらに、開発者はＡＰＩで受け付けた情報を元に、外部サービス連携情報を即座に追加することが可能となる。【選択図】図４
2020087197.tif 000002
【特許請求の範囲】
【請求項１】
外部サービスと連携する情報である外部サービス連携情報の登録を受け付けるコンポーネント設定受付部と、
前記外部サービス連携情報を管理する外部サービス連携コンポーネントと、
前記外部サービス連携情報を用いて、前記外部サービスからトークンを取得する認可サービス部と、
を備える情報処理システム。
【請求項２】
前記外部サービス連携コンポーネントは前記外部サービス連携情報をユーザサイトに設定する請求項１に記載の情報処理システム。
【請求項３】
前記コンポーネント設定受付部は、前記外部サービス連携情報を、他のコンポーネントに公開する請求項１又は２に記載の情報処理システム。
【請求項４】
エンドユーザが外部サービス連携するためのＵＩであるユーザサイトを備える請求項１から３の何れか一項に記載の情報処理システム。
【請求項５】
前記認可サービス部は、前記外部サービスから取得したアクセストークン及びリフレッシュトークンをフェデレーション情報として、当該フェデレーション情報にユーザ情報を紐づけて管理する請求項１から４の何れか一項に記載の情報処理システム。
【請求項６】
前記外部サービス連携情報は、前記認可サービス部が前記外部サービスからトークン取得するとき、内容が変化する変動情報と、内容が変化しない固定情報とを含む請求項１から４の何れか一項に記載の情報処理システム。
【請求項７】
前記認可サービス部は、認可要求時に受け取った外部サービス連携情報を一時情報として管理する請求項１から６の何れか一項に記載の情報処理システム。
【請求項８】
コンピュータに、
外部サービスと連携する情報である外部サービス連携情報の登録を受け付けるステップと、
前記外部サービス連携情報を管理するステップと、
前記外部サービス連携情報を用いて、前記外部サービスからトークンを取得するステップと、
を実行させる情報処理プログラム。
【請求項９】
コンピュータで実行される情報処理方法であって、
外部サービスと連携する情報である外部サービス連携情報の登録を受け付けるステップと、
前記外部サービス連携情報を管理するステップと、
前記外部サービス連携情報を用いて、前記外部サービスからトークンを取得するステップと、
を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理プログラム及び情報処理方法に関する。
【背景技術】
【０００２】
特許文献１には、クライアントＩＤやクライアントシークレットといった外部サービスと連携する際、ユーザによるサービス利用時の認可手続きの回数を減らす技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に開示される従来技術では、連携する外部サービスを追加する方法が開示されていないため、外部サービスを容易に追加するというニーズに対応できないという課題があった。
【０００４】
本発明は、上記課題に鑑み、外部サービスとの連携設定を容易に追加できる。
【課題を解決するための手段】
【０００５】
上記課題に鑑み、本発明に係る情報処理システムは、外部サービスと連携する情報である外部サービス連携情報の登録を受け付けるコンポーネント設定受付部と、前記外部サービス連携情報を管理する外部サービス連携コンポーネントと、前記外部サービス連携情報を用いて、前記外部サービスからトークンを取得する認可サービス部と、を備える。
【発明の効果】
【０００６】
本発明によれば、外部サービスとの連携設定を容易に追加できるという効果を奏する。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施の形態に係る情報処理システム１の構成図である。
【図２】コンピュータシステム５００のハードウェア構成図である。
【図３】サービス提供システム５０の処理ブロック図である。
【図４】外部サービス１０３を追加するための機能について説明するための図である。
【図５】開発サイトの画面表示例を示す図である。
【図６】ユーザサイト１０２にアクセスしたときに表示される外部サービス連携の画面（マイページ）を示す図である。
【図７】フェデレーション情報の一例を示す図である。
【図８】外部サービス連携固定情報９０の一例を示す図である。
【図９】ユーザ情報の一例を示す図である。
【図１０】外部サービス連携変動情報９１の一例を示す図である。
【図１１】コンポーネントの登録動作を説明するためのシーケンスチャートである。
【図１２】外部サービスからトークンを取得する認可動作を説明するためのシーケンスチャートである。
【図１３】情報処理システム１の変形例に係る構成例を示す図である。
【図１４】情報処理システム１の変形例によるコンポーネントの登録動作を説明するためのシーケンスチャートである。
【図１５】情報処理システム１の変形例が外部サービスからトークンを取得する認可動作を説明するためのシーケンスチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明を実施するための形態について図面を用いて説明する。
【０００９】
図１は本発明の実施の形態に係る情報処理システム１の構成図である。情報処理システム１は、サービス提供システム５０及び外部サービスシステム３０を備える。
【００１０】
サービス提供システム５０は、アクセス制御装置２１、プリントサービス提供装置２２、スキャンサービス提供装置２３、管理設定サービス提供装置２４及び他サービス提供装置２５を備える。
【００１１】
アクセス制御装置２１は、プリントサービス提供装置２２が提供するプリントサービス、スキャンサービス提供装置２３が提供するスキャンサービス、管理設定サービス提供装置２４が提供する管理設定サービスなどへのログインを制御する。
【００１２】
アクセス制御装置２１、プリントサービス提供装置２２、スキャンサービス提供装置２３、管理設定サービス提供装置２４及び他サービス提供装置２５は、ネットワークＮ２に接続されている。ネットワークＮ２は、アクセス制御装置２１を介して、インターネット等のネットワークＮ４に接続されている。ネットワークＮ２はアクセス制御装置２１によってセキュリティが保護されている。
【００１３】
ネットワークＮ４には、オフィス内のファイアウォールＦＷが接続される。ファイアウォールＦＷには、ネットワークＮ１が接続される。ネットワークＮ１は、ファイアウォールＦＷの内側（例えばオフィス内など）に存在するプライベートネットワークである。ファイアウォールＦＷは、ネットワークＮ１とネットワークＮ４との接点に設置され、不正なアクセスを検出及び遮断する。
【００１４】
ネットワークＮ１には、クライアント端末１１と、携帯端末１２と、複合機などの画像形成装置１４と、プロジェクタ１５と、電子黒板等のその他の機器１６とが接続されている。
【００１５】
クライアント端末１１は、端末装置の一例である。クライアント端末１１は、一般的なＯＳなどが搭載された情報処理装置である。クライアント端末１１は、無線による通信の手段又は有線による通信の手段を備える。クライアント端末１１は、ユーザが操作可能な端末である。当該端末は、タブレットＰＣ（Personal Computer）、ノートＰＣなどである。携帯端末１２は、端末装置の一例である。携帯端末１２は、無線による通信の手段又は有線による通信の手段を備える。携帯端末１２は、ユーザが携帯可能な端末である。当該端末は、スマートフォン、携帯電話、タブレットＰＣ、ノートＰＣなどである。画像形成装置１４は、画像形成機能を備える装置である。当該装置は、複合機、コピー機、スキャナ、プリンタ、レーザプリンタなどである。画像形成装置１４は無線による通信の手段又は有線による通信の手段を備える。プロジェクタ１５は、画像を投影する装置である。プロジェクタ１５は無線による通信の手段又は有線による通信の手段を備える。
【００１６】
ネットワークＮ４にはアクセス制御装置３１が接続される。アクセス制御装置３１には、ネットワークＮ３が接続される。ネットワークＮ３は、クラウドサービスに代表されるような外部サービスシステム３０を構成するネットワークである。ネットワークＮ３は、アクセス制御装置３１によってセキュリティが保護されている。ネットワークＮ３には外部サービス提供装置３２が接続されている。アクセス制御装置３１は、外部サービス提供装置３２が提供する外部サービスへのログインを制御する。
【００１７】
情報処理システム１は、OAuthと呼ばれるＡＰＩ（Application Programming Interface）認可の標準的技術を利用している。サービス提供システム５０は、OAuthのコンシューマに相当する。外部サービスシステム３０は、OAuthのサービスプロバイダに相当する。外部サービスシステム３０がWebAPI（Application Programming Interface）を公開し、ユーザは、WebAPIを通じて、自身の権限の範囲内で、外部サービスシステム３０に保存されているリソースへのアクセス、そのリソースを扱うサービスへのアクセスなどが可能である。また、サービス提供システム５０のプリントサービス提供装置２２などは、ユーザから委譲された権限に基づく認可トークンを利用することで、ユーザから委譲された権限の範囲内で、外部サービスシステム３０に保存されているリソースへのアクセス、そのリソースを扱うサービスへのアクセスなどが可能となる。
【００１８】
図１に示されるクライアント端末１１、携帯端末１２、アクセス制御装置２１、プリントサービス提供装置２２、スキャンサービス提供装置２３、管理設定サービス提供装置２４、及び他サービス提供装置２５は、図２に示すコンピュータシステムにより実現される。また、図１に示されるアクセス制御装置３１及び外部サービス提供装置３２は、図２に示すコンピュータシステムにより実現される。
【００１９】
図２はコンピュータシステム５００のハードウェア構成図である。コンピュータシステム５００は、入力装置５０１、表示装置５０２、外部Ｉ／Ｆ５０３、ＲＡＭ（Random Access Memory）５０４、ＲＯＭ（Read Only Memory）５０５、ＣＰＵ（Central Processing Unit）５０６、通信Ｉ／Ｆ５０７、及びＨＤＤ（Hard Disk Drive）５０８を備える。これらは、バスＢによって相互に接続されている。入力装置５０１は、キーボード、マウス、タッチパネルなどであり、ユーザが各操作信号を入力するのに用いられる。表示装置５０２は、コンピュータシステム５００による処理結果を表示するディスプレイであり。通信Ｉ／Ｆ５０７は、コンピュータシステム５００をネットワークＮ１〜Ｎ４に接続するインタフェースである。これにより、コンピュータシステム５００は、通信Ｉ／Ｆ５０７を介してデータ通信を行うことができる。ＨＤＤ５０８は、プログラム、データなどを格納する不揮発性の記憶装置である。格納されるプログラム、データなどには、例えばコンピュータシステム５００全体を制御する基本ソフトウェアであるＯＳ（Operating System）、ＯＳ上において各種機能を提供するアプリケーションソフトウェアなどがある。ＨＤＤ５０８は格納しているプログラム、データなどを、所定のファイルシステム、ＤＢ（データベース）などにより管理している。
【００２０】
外部Ｉ／Ｆ５０３は、外部装置である記録媒体５０３ａとのインタフェースである。これにより、コンピュータシステム５００は、外部Ｉ／Ｆ５０３を介して記録媒体５０３ａの読み取り、書き込みなどを行うことができる。記録媒体５０３ａには、フレキシブルディスク、ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（SD Memory card）、ＵＳＢメモリ（Universal Serial Bus memory）などである。ＲＯＭ５０５は、電源を切ってもプログラム、データなどを保持できる不揮発性の半導体メモリ（記憶装置）である。ＲＯＭ５０５には、コンピュータシステム５００の起動時に実行されるＢＩＯＳ（Basic Input/Output System）、ＯＳ設定、及びネットワーク設定などのプログラムやデータが格納されている。ＲＡＭ５０４は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。ＣＰＵ５０６は、ＲＯＭ５０５やＨＤＤ５０８などの記憶装置からプログラムやデータをＲＡＭ５０４上に読み出し、処理を実行することで、コンピュータシステム５００全体の制御や機能を実現する演算装置である。
【００２１】
図１に示されるクライアント端末１１、携帯端末１２、アクセス制御装置２１、プリントサービス提供装置２２、スキャンサービス提供装置２３、管理設定サービス提供装置２４、及び他サービス提供装置２５は、図２に示される構成によって、後述する各種処理を実現できる。また、図１に示されるアクセス制御装置３１、外部サービス提供装置３２は、図２に示される構成によって、後述する各種処理を実現できる。
【００２２】
サービス提供システム５０の機能は、図３に示す処理ブロックにより実現される。図３はサービス提供システム５０の処理ブロック図である。サービス提供システム５０は、プログラムを実行することにより、サービスアプリ５１、プラットフォーム５２、管理データ記憶部５３及びプラットフォームＡＰＩ５４を実現している。
【００２３】
サービスアプリ５１は、プリントサービスアプリ６１、スキャンサービスアプリ６２、管理設定サービスアプリ６３、１つ以上のその他のサービスアプリ６４を一例として備える。プリントサービスアプリ６１はプリントサービスを提供するアプリケーションである。スキャンサービスアプリ６２はスキャンサービスを提供するアプリケーションである。管理設定サービスアプリ６３は管理設定サービスを提供するアプリケーションである。また、その他のサービスアプリ６４は何らかのサービスを提供するアプリケーションである。
【００２４】
プラットフォームＡＰＩ５４は、プリントサービスアプリ６１、スキャンサービスアプリ６２、管理設定サービスアプリ６３、その他のサービスアプリ６４などのサービスアプリ５１が、プラットフォーム５２を利用するためのインタフェースである。プラットフォームＡＰＩ５４は、サービスアプリ５１からの要求をプラットフォーム５２が受信するために設けられた予め定義されたインタフェースであり、例えば関数やクラス等により構成される。なお、サービス提供システム５０を複数の情報処理装置に分散して構成する場合、プラットフォームＡＰＩ５４には、ネットワーク経由で利用可能な例えばWebAPIを利用できる。
【００２５】
プラットフォーム５２は、機器通信部７２、データ処理部７４、コンポーネント情報管理部１０５、及び認証サービス部１０４を備える。
【００２６】
認証サービス部１０４は、クライアント端末１１、画像形成装置１４などのオフィス機器からのログイン要求に基づいて、認証を実行する。オフィス機器は、クライアント端末１１、携帯端末１２、画像形成装置１４、プロジェクタ１５、その他の機器１６などの総称である。機器通信部７２は、オフィス機器、外部サービスシステム３０などとの通信を実行する。また認証サービス部１０４は、オフィス機器と、図１に示す外部サービスシステム３０とのセッションを管理する。データ処理部７４は、サービスアプリ５１からの要求に基づいてデータ処理を実行する。
【００２７】
管理データ記憶部５３は、組織管理情報記憶部８１、ユーザ情報記憶部８２、認可設定情報記憶部８４、外部サービス情報記憶部８５、認可トークン情報記憶部８６、データ管理情報記憶部８７、及びデータストレージ８８を一例として備える。
【００２８】
組織管理情報記憶部８１は、組織管理情報を記憶する。ユーザ情報記憶部８２は、ユーザ管理情報を記憶する。認可設定情報記憶部８４は、認可設定情報を記憶する。外部サービス情報記憶部８５は、外部サービス情報を記憶する。認可トークン情報記憶部８６は、認可トークン情報を記憶する。データ管理情報記憶部８７はデータ管理情報を記憶する。データストレージ８８はその他のデータ等を記憶する。
【００２９】
サービス提供システム５０は、例えば認証や非同期変換といった機能を備えるクラウド基盤と、クラウド基盤の機能を利用してプリントサービス等のサービス提供を行うサービス群と、各サービスの管理設定を行う管理設定サービスとして機能する。クラウド基盤は、例えばプラットフォーム５２、管理データ記憶部５３、プラットフォームＡＰＩ５４によって構成される。サービス群は、例えばサービスアプリ５１によって構成される。管理設定サービスは、例えば管理設定サービスアプリ６３によって構成される。クラウド基盤が備える認証の機能は、例えば認証サービス部１０４と、認証用データベースとにより構成される。認証用データベースは、組織管理情報記憶部８１、ユーザ情報記憶部８２、認可設定情報記憶部８４、外部サービス情報記憶部８５、認可トークン情報記憶部８６などにより構成される。クラウド基盤が備える非同期変換の機能は、例えばデータ処理部７４と、データ管理情報記憶部８７と、データストレージ８８により構成される。サービスアプリ５１などのサービス群は、サービス提供システム５０のクラウド基盤が備える認証、非同期変換などの機能を利用し、サービスの提供を行う。また、サービス群は、図１に示す外部サービスシステム３０の機能と連携してサービスを提供する場合、クラウド基盤が備える認証の機能を介して、外部サービスシステム３０にアクセスするための認可トークンを取得する。管理設定サービスアプリ６３が行う管理設定には、認可処理の管理設定が含まれる。管理設定サービスアプリ６３は、認可手続きを行う為のＵＩ（User Interface）を備える。管理設定サービスアプリ６３は、認証サービス部１０４と連携し、後述の認可設定情報を登録する。
【００３０】
なお、図１に示す外部サービスシステム３０は、サービス提供システム５０の外部のシステムであり、クラウドサービスなどを提供する。本実施の形態では、外部サービスシステム３０が提供するサービス（機能）を、外部サービスと呼んでいる。外部サービスには、クラウドサービスとして提供されているオンラインストレージサービス、スキャン文書の保管サービス、スキャン文書の管理サービスなどが含まれる。また外部サービスシステム３０は、サービス提供システム５０の認証サービス部１０４からの要求に応じて認可トークンを発行する認可サーバとしての機能を備える。また、外部サービスシステム３０には、WebAPIが整備されている。外部サービスシステム３０のWebAPIは、認可トークンを利用した処理の要求を受け付け、サービス提供システム５０のサービスアプリ５１にサービスを提供するために利用される。
【００３１】
図３に示すサービス提供システム５０では、認可クライアントとしての機能を、認証サービス部１０４が備えることで、複数のサービスアプリ５１が共通に利用する組織管理情報、ユーザ管理情報、機器管理情報、認可設定情報、外部サービス情報、及び認可トークン情報を、一元管理することができ、セキュリティ性の向上と共に管理コストを低減できる。また、サービス提供システム５０では、認可設定情報、外部サービス情報、認可トークンなどの認可情報の管理処理と、認可処理とを、認証サービス部１０４に一元化することで、ユーザによる一度の認可手続きにより、サービスアプリ５１によらず、複数のサービスを連携させる様々なマッシュアップサービスを提供できる。
【００３２】
なお、サービス提供システム５０は、組織管理情報、ユーザ管理情報、機器管理情報、認可設定情報、外部サービス情報など、永続的に保存が必要となる情報を、例えば図２に示すＨＤＤ５０８に保存する。また、サービス提供システム５０は、認可トークン情報など有効期限が決まっており、組織管理情報、ユーザ管理情報、機器管理情報、認可設定情報、外部サービス情報などの、他の情報よりライフサイクルが短い情報を、ＨＤＤ５０８に替えて、例えばＲＡＭ５０４に（オンメモリ上に）保存するように構成してもよい。このように、ライフサイクルが短い情報が、オンメモリ上に保存されることによって、認可トークン情報の読み出し、書き込みなどは、高速になり、レスポンスが高速化する。
【００３３】
なお、サービスアプリ５１、管理設定サービスアプリ６３、認証サービス部１０４、データ処理部７４、組織管理情報、ユーザ管理情報、機器管理情報、認可設定情報、外部サービス情報、認可トークン情報などの詳細は、特許文献１に開示されるため、詳細な説明を割愛する。また、認可設定情報の登録の手順、認可トークン情報の保存の手順、外部サービスを利用する処理手順などの詳細は、特許文献１に開示されるため、詳細な説明を割愛する。
【００３４】
以下では本発明の特徴的な機能（外部サービスを容易に追加するための機能）について説明する。図４は外部サービス１０３を追加するための機能について説明するための図である。以下では「外部サービス１０３」を単位に「外部サービス」と称する場合がある。
【００３５】
開発サイト１００は、ワークフローを構成するコンポーネントと開発するＵＩである。図５は開発サイトの画面表示例を示す図である。図５に示されるように、開発サイトの画面には、外部サービス連携固定情報９０と外部サービス連携変動情報９１が表示される。
【００３６】
外部サービス連携固定情報９０は、外部サービスと連携するために必要な外部サービス連携情報の一つである。外部サービス連携情報は外部サービスと連携する情報である。外部サービス連携固定情報９０には、外部サービス識別子、クライアントＩＤ、クライアントシークレット、認可要求エンドポイントなどが含まれる。外部サービス識別子は、外部サービスを識別する識別子である。クライアントＩＤ及びクライアントシークレットは、外部サービスから発行されるクレデンシャルな情報である。クライアントＩＤは、クライアントと識別する情報である。クライアントシークレットは、クライアントＩＤの本人性を保証する為の秘密情報であり、パスワードのような役割を果たす情報である。認可要求エンドポイントは、エンドポイントである外部サービスのＡＰＩに関する情報である。その他、外部サービス連携固定情報９０にはトークン取得エンドポイント、トークン破棄エンドポイントなどが含まれる。
【００３７】
外部サービス連携変動情報９１は、外部サービスと連携するために必要な外部サービス連携情報の一つである。外部サービス連携変動情報９１には、スコープ情報、公開するコンポーネント情報などが含まれる。スコープ情報は、連携する外部サービスの全ての権限を取得することはできないため、例えばGoogle（登録商標）のサービスの内、Gメール（登録商標）、Googleカレンダー（登録商標）などの一部のサービスを指定する情報である。スコープは、例えば、Gメール（登録商標）へのアクセス許可、Googleカレンダー（登録商標）への上書き許可など、外部サービスに連携するユーザに許可を求める範囲を示す情報である。必要なスコープ情報は、外部サービスと連携する情報を利用するコンポーネントによって異なる。そのため、そのコンポーネントが変動情報としてスコープ情報を管理する。公開するコンポーネント情報は、ユーザが外部サービスに登録したクレデンシャルな情報が、SI-Cloud上の全てコンポーネントに使われることを防ぐため、それぞれのユーザが申請したコンポーネントなら使える範囲（公開範囲）を設定するパラメータである。
【００３８】
なお図５では、外部サービス連携変動情報９１の一例として、スコープ情報と公開するコンポーネント情報とが示されるが、外部サービス連携変動情報９１には、これらの情報以外にも、外部サービス識別子などを含めてもよい。外部サービス連携変動情報９１に含まれる情報を具体例については後述する。
【００３９】
コンポーネント情報管理部１０５は、ワークフローを構成するコンポーネントの情報を管理する。コンポーネントは、外部サービスの機能を利用するものもあり、コンポーネント情報管理部１０５は、コンポーネントのニーズに合わせて、外部サービスの必要なスコープ情報を管理している。コンポーネント情報管理部１０５は、コンポーネントに登録した外部サービスと連携するため情報を、他のコンポーネントからも参照できるようにするための情報を持つ。コンポーネント情報管理部１０５は、外部サービス連携コンポーネント１０５１、コンポーネント設定受付部１０５４及び外部サービス連携変動情報９１を備える。コンポーネント設定受付部１０５４は、参照コンポーネント１０５２及び管理コンポーネント１０５３を備える。
【００４０】
ユーザサイト１０２は、エンドユーザが利用するサイトであり、SI-Cloudのアカウントと外部サービスとの連携設定を行うためのＵＩを、ユーザに提供する。図６はユーザサイト１０２にアクセスしたときに表示される外部サービス連携の画面（マイページ）を示す図である。マイページに表示されるメニューの中から「外部サービス連携」が選択されると、図５の右側に示されるような表示画面が現れる。この表示画面には、連携可能な外部サービスが表示される。外部サービスの種類は、例えば、GoogleDrive（登録商標）、ROPC、FTPなどである。画面に表示される「連携する」というボタンが押されることで、OAuthのフローに沿って、連携する外部サービスからトークンと取得するためのフローが実行される。
【００４１】
認証サービス部１０４は、SI-CloudのユーザＩＤ管理、ＩＤ認証機能などを保持し、外部サービスと連携するための外部サービス設定情報を管理し、さらに、管理するユーザＩＤ（ユーザ情報の１つ）に紐づけて、フェデレーション情報(外部サービスと連携情報)を管理する。外部サービス設定情報は、図４に示される外部連携固定情報に相当する。外部連携固定情報とユーザ情報の詳細は子術する。認証サービス部１０４では、外部サービスと連携した結果を連携要求したユーザと紐づけて、フェデレーション情報として登録される。フェデレーション情報は、図５の開発画面にアクセスしたユーザの情報（ユーザ情報）に、外部サービスと連携するためのトークン情報を紐付けて管理するための情報である。フェデレーションとは、一度認証を通った後にその認証情報を使って許可されているすべてのサービスを使えるようにする仕組みのことである。
【００４２】
認証サービス部１０４は、認可サービス部１０４１及びデータ格納部１０４２を備える。認可サービス部１０４１は、外部サービス識別子のデータと外部サービスとを連携するために、OAuthのロジックを持つ。認可サービス部１０４１は、外部サービス連携情報を用いて、外部サービスからトークンを取得する。データ格納部１０４２には、フェデレーション情報、外部サービル連携固定情報及びユーザ情報が格納される。
【００４３】
フェデレーション情報の具体例を図７に示す。図７はフェデレーション情報の一例を示す図である。フェデレーション情報には、ユーザＩＤ、外部サービス識別子、アクセストークン、リフレッシュトークンなどが含まれる。ユーザＩＤには、外部サービスを利用するユーザの識別するための情報として、例えば、User0001、User0002などが登録される。外部サービス識別子には、外部サービスの内容を識別するための情報として、例えば、Google（登録商標）、office365（登録商標）などが登録される。アクセストークン及びリフレッシュトークンのそれぞれは、ユーザＩＤに登録されるユーザが利用する外部サービス毎に登録されている。
【００４４】
図４に示される外部サービス連携固定情報９０の具体例を図８に示す。図８は外部サービス連携固定情報９０の一例を示す図である。外部サービス連携固定情報９０に含まれる情報は、前述した通り、外部サービス識別子、クライアントＩＤ、クライアントシークレットなどである。外部サービス識別子には、外部サービスの内容を識別するための情報として、例えば、Google（登録商標）、office365（登録商標）などが登録される。クライアントＩＤには、外部サービスを提供するクライアントを識別するための情報として、例えば、client1、client2などが登録される。クライアントシークレットには、外部サービスを提供するクライアントが個別に設定したパスワード（Secret1、Secret2）などが登録される。
【００４５】
図４に示されるユーザ情報の具体例を図９に示す。図９はユーザ情報の一例を示す図である。ユーザ情報は、SI-Cloudに登録されているユーザを識別するための情報であり、例えばユーザＩＤ（User0001、User0002）、ユーザの姓名などを含む。ユーザ情報には、ユーザＩＤ、ユーザの姓名以外にも、パスワードなどを含めてもよい。
【００４６】
図４に示される外部サービス連携変動情報９１の具体例を図１０に示す。図１０は外部サービス連携変動情報９１の一例を示す図である。外部サービス連携固定情報９０に含まれる情報は、外部サービス識別子、スコープ情報、オーナーコンポーネント、参照可能コンポーネントなどが含まれる。外部サービス識別子には、外部サービスの内容を識別するための情報として、例えば、Google（登録商標）、office365（登録商標）などが登録される。スコープ情報には、例えば、Google（登録商標）が提供する複数のサービスの内、外部連携を指定するサービス（Mail、storegeなど）が登録される。
【００４７】
次に図１１及び図１２を用いて、情報処理システム１の動作を説明する。図１１はコンポーネントの登録動作を説明するためのシーケンスチャートである。ステップＳ１において、開発者が開発サイト１００のコンポーネント開発画面で、外部サービス連携情報を登録する。これにより、外部サービス連携変動情報が、管理コンポーネントと通じて、コンポーネント情報管理部１０５に登録される（ステップＳ２）。外部サービス連携情報の内、外部サービス連携固定情報が、管理コンポーネントから認証サービス部１０４に登録される（ステップＳ３）。ステップＳ４では、参照を許可する開発サイト１００に、許可したことを示す情報が送信され、開発者は参照が許可されたことを知得する（ステップＳ５）。
【００４８】
次にステップＳ６において、開発者が開発サイト１００のコンポーネント開発画面で、外部サービス設定を公開するコンポーネントを設定すると、管理コンポーネントに公開するコンポーネントが設定され（ステップＳ７）、さらに管理コンポーネントは、参照コンポーネントに、外部サービス連携変動情報の参照を許可し（ステップＳ８）、許可した旨をコンポーネント開発画面に通知する（ステップＳ９）。
【００４９】
図１２は外部サービスからトークンを取得する認可動作を説明するためのシーケンスチャートである。ステップＳ１１において、外部サービスを利用するエンドユーザがユーザサイト１０２で連携要求（ログイン）を行うと、ステップＳ１２において、ユーザサイト１０２からコンポーネント情報管理部１０５に対して、連携情報の取得が行われる。ステップＳ１３において、外部サービス連携コンポーネント１０５１は、外部サービス連携変動情報９１を参照して、外部サービス連携変動情報９１内のスコープ情報を取得し（ステップＳ１４）、ユーザサイト１０２に対してスコープ情報を送信する（ステップＳ１５）。
【００５０】
ステップＳ１６において、エンドユーザからの認可要求として、ログイン情報、外部サービス識別子、スコープ情報が送信されると、認証サービス部１０４がユーザを特定して（ステップＳ１７）、ユーザ情報を取得する（ステップＳ１８）。ステップＳ１９において、認証サービス部１０４が外部サービス連携固定情報を参照して、外部サービス識別子などの設定情報を取得する（ステップＳ２０）。これにより認可要求ＵＲＬが生成され（ステップＳ２１）、生成された認可要求ＵＲＬがユーザサイトに送信される（ステップＳ２２）。認可要求ＵＲＬには、例えばGoogle（登録商標）などの外部サービスなどが記述される。
【００５１】
ユーザが認可要求ＵＲＬにリダイレクトすると（ステップＳ２３）、認可要求が外部サービス１０３に送信される（ステップＳ２４）。これにより外部サービス１０３にリダイレクトされ（ステップＳ２５）、ユーザが認証サービス部に対してコールバックを行う（ステップＳ２６）。コールバックの中には例えばGoogle（登録商標）が発行した一時コードが含まれる。一時コードは、Google（登録商標）などからアクセストークン、リフレッシュトークンを取得するための情報である。
【００５２】
認証サービス部はユーザ情報を参照し（ステップＳ２７）、ユーザを特定するログイン情報をユーザ情報の中から取得する（ステップＳ２８）。さらに認証サービス部は外部サービス連携固定情報を参照し（ステップＳ２９）、設定情報を取得する（ステップＳ３０）。さらに認証サービス部は、外部サービス１０３に対してトークンの送信を要求する（ステップＳ３１）。トークンには一時コードが含まれるため、外部サービス１０３からアクセストークン及びリフレッシュトークンが発行される（ステップＳ３２）。このようにして連携設定が完了すると、ステップＳ３３において認証サービス部は、認証サービスが管理するユーザに紐づく形で、フェデレーション情報(外部サービスにアクセスするためのアクセストークンやリフレッシュトークン)を保存する（ステップＳ３３）。
【００５３】
図１３は情報処理システム１の変形例に係る構成例を示す図である。図４に示す構成例との違いは、図１３では、コンポーネント情報管理部１０５が、外部サービス連携固定情報と外部サービス連携変動情報とを、外部サービス連携情報９１Ａとして保持するように構成されている点である。すなわち、トークン取得に必要な情報、すなわち外部サービスと連携する外部サービス連携情報９１Ａが、コンポーネント情報管理部１０５に保持されていることである。そして、フェデレーション情報の生成は、認可サービス部１０４１で行われるため、トークン取得に必要な情報、すなわち外部サービスと連携する外部サービス連携情報９１Ａは、認可要求のタイミングで認証サービス部１０４に送信され、認証サービス部１０４はこの情報を一時情報として管理する。外部サービス連携固定情報と外部サービス連携変動情報が、クラウド上の認証サービス部１０４に一時的に保持されるため、秘匿性が向上する。
【００５４】
次に図１４及び図１５を用いて、図１３に示される構成を備えた情報処理システム１の動作を説明する。図１４は情報処理システム１の変形例によるコンポーネントの登録動作を説明するためのシーケンスチャートである。ステップＳ１１において、開発者が開発サイト１００のコンポーネント開発画面で、外部サービス連携情報９１Ａを登録する。
【００５５】
これにより、外部サービス連携情報９１Ａが、管理コンポーネントと通じて、コンポーネント情報管理部１０５に登録される（ステップＳ２１）。これにより、管理コンポーネントから認証サービス部１０４に外部サービス連携情報９１Ａが一時情報として格納される（ステップＳ３１）。
【００５６】
ステップＳ４では、参照を許可する開発サイト１００に、許可したことを示す情報が送信され、開発者は参照が許可されたことを知得する（ステップＳ５）。ステップＳ６において、開発者が開発サイト１００のコンポーネント開発画面で、外部サービス設定を公開するコンポーネントを設定すると、管理コンポーネントに公開するコンポーネントが設定され（ステップＳ７）、さらに管理コンポーネントは、参照コンポーネントに、外部サービス連携情報９１Ａの参照を許可し（ステップＳ８１）、許可した旨をコンポーネント開発画面に通知する（ステップＳ９）。
【００５７】
図１５は情報処理システム１の変形例が外部サービスからトークンを取得する認可動作を説明するためのシーケンスチャートである。ステップＳ１１において、外部サービスを利用するエンドユーザがユーザサイト１０２で連携要求（ログイン）を行うと、ステップＳ１２において、ユーザサイト１０２からコンポーネント情報管理部１０５に対して、連携情報の取得が行われる。
【００５８】
ステップＳ１３０、１４０において、外部サービス連携コンポーネント１０５１は、外部サービス連携情報９１Ａを取得し、取得した外部サービス連携情報９１Ａをユーザサイト１０２へ送信する（ステップＳ１５０）。
【００５９】
ステップＳ１６０において、エンドユーザからの認可要求として、ログイン情報、外部サービス識別子、外部サービス連携情報が送信されると、認証サービス部１０４がユーザを特定して（ステップＳ１７）、ユーザ情報を取得する（ステップＳ１８）。
【００６０】
認証サービス部１０４は、ユーザ情報、外部サービス連携情報を一時情報として保持し（ステップＳ１９０）、ユーザ情報に基づき認可要求ＵＲＬを生成する（ステップＳ２１０）。生成された認可要求ＵＲＬがユーザサイトに送信される（ステップＳ２２）。
【００６１】
ユーザが認可要求ＵＲＬにリダイレクトすると（ステップＳ２３）、認可要求が外部サービス１０３に送信される（ステップＳ２４）。これにより外部サービス１０３にリダイレクトされ（ステップＳ２５０）、ユーザが認証サービス部に対してコールバックを行う（ステップＳ２６０）。認証サービス部はユーザ情報を参照し（ステップＳ２７）、ユーザを特定するログイン情報をユーザ情報の中から取得する（ステップＳ２８）。
【００６２】
さらに認証サービス部は、一時情報（外部サービス連携情報）を参照し（ステップＳ２９０、Ｓ３００）、外部サービス１０３に対してトークンの送信を要求し（ステップＳ３１）、外部サービス１０３からはアクセストークン及びリフレッシュトークンが発行される（ステップＳ３２）。このようにして連携設定が完了すると、ステップＳ３３において認証サービス部は、認証サービスが管理するユーザに紐づく形で、フェデレーション情報(外部サービスにアクセスするためのアクセストークンやリフレッシュトークン)を保存する（ステップＳ３３）。
【００６３】
以上に説明したように本発明の実施の形態に係る情報処理システム１は、外部サービスと連携する情報である外部サービス連携情報の登録を受け付けるコンポーネントと、外部サービス連携情報を管理する外部サービス連携コンポーネント１０５１と、外部サービス連携情報を用いて、外部サービスからトークンを取得する認可サービス部とを備えるように構成されている。外部サービス連携情報の登録を受け付けるコンポーネントは、参照コンポーネント１０５２及び管理コンポーネント１０５３である。外部サービス連携情報は、外部サービス連携固定情報９０及び外部サービス連携変動情報９１である。この構成により、外部サービスシステム３０のWebAPIを利用して、開発者サイトのＵＩから、外部サービス連携情報を設定（登録）することが可能となる。そのため、開発者はWebAPIで受け付けた情報を元に、外部サービス連携情報（外部サービスとの連携設定）を即座に追加することが可能となり、外部サービスと連携するコンポーネントを即座に開発することが可能となる。
【００６４】
また実施の形態に係る情報処理プログラムは、コンピュータに、外部サービスと連携する情報である外部サービス連携情報の登録を受け付けるステップと、外部サービス連携情報を管理するステップと、外部サービス連携情報を用いて、外部サービスからトークンを取得するステップと、を実行させる。実施の形態に係る情報処理プログラムによれば、外部サービス連携情報を即座に追加することが可能となり、外部サービスと連携するコンポーネントを即座に開発することが可能となる。
【００６５】
また実施の形態に係る情報処理方法は、コンピュータで実行される情報処理方法であって、外部サービスと連携する情報である外部サービス連携情報の登録を受け付けるステップと、外部サービス連携情報を管理するステップと、外部サービス連携情報を用いて、外部サービスからトークンを取得するステップと、を含む。実施の形態に係る情報処理方法によれば、外部サービス連携情報を即座に追加することが可能となり、外部サービスと連携するコンポーネントを即座に開発することが可能となる。
【符号の説明】
【００６６】
１  情報処理システム、１１  クライアント端末、１２  携帯端末、１４  画像形成装置、１５  プロジェクタ、１６  機器、２１  アクセス制御装置、２２  プリントサービス提供装置、２３  スキャンサービス提供装置、２４  管理設定サービス提供装置、２５  他サービス提供装置、３０  外部サービス、３０  外部サービスシステム、３１  アクセス制御装置、３２  外部サービス提供装置、５０  サービス提供システム、５１  サービスアプリ、５２  プラットフォーム、５３  管理データ記憶部、５４  プラットフォームＡＰＩ、６１  プリントサービスアプリ、６２  スキャンサービスアプリ、６３  管理設定サービスアプリ、６４  サービスアプリ、７２  機器通信部、７４  データ処理部、８１  組織管理情報記憶部、８２  ユーザ情報記憶部、８４  認可設定情報記憶部、８５  外部サービス情報記憶部、８６  認可トークン情報記憶部、８７  データ管理情報記憶部、８８  データストレージ、９０  外部サービス連携固定情報、９１  外部サービス連携変動情報、１００  開発サイト、１０２  ユーザサイト、１０３  外部サービス、１０４  認証サービス部、１０５  コンポーネント情報管理部、５００  コンピュータシステム、５０１  入力装置、５０２  表示装置、５０３  外部Ｉ／Ｆ、５０３ａ  記録媒体、５０４  ＲＡＭ、５０５  ＲＯＭ、５０６  ＣＰＵ、５０７  通信Ｉ／Ｆ、５０８  ＨＤＤ、１０４１  認可サービス部、１０４２  データ格納部、１０５１  外部サービス連携コンポーネント、１０５２  参照コンポーネント、１０５３  管理コンポーネント、１０５４  コンポーネント設定受付部。
【先行技術文献】
【特許文献】
【００６７】
【特許文献１】特開２０１４−９２８２３号公報
【図１】
2020087197.tif 000003
【図２】
2020087197.tif 000004
【図３】
2020087197.tif 000005
【図４】
2020087197.tif 000006
【図５】
2020087197.tif 000007
【図６】
2020087197.tif 000008
【図７】
2020087197.tif 000009
【図８】
2020087197.tif 000010
【図９】
2020087197.tif 000011
【図１０】
2020087197.tif 000012
【図１１】
2020087197.tif 000013
【図１２】
2020087197.tif 000014
【図１３】
2020087197.tif 000015
【図１４】
2020087197.tif 000016
【図１５】
2020087197.tif 000017