(58)【調査した分野】(Int.Cl.,DB名)
前記認証機能利用手段は、前記第1の認証機能に対する連携認証要求に基づき、複数の前記第1の認証機能から選択した一つの前記第1の認証機能で認証を実行して第1の認証の情報を取得し、第1の認証の情報を利用した連携認証要求を複数の前記第1の認証機能から選択した一つの前記第1の認証機能に対して行って、前記第1の認証機能からの連携認証応答を前記管理手段に送信する
ことを特徴とする請求項1記載の情報処理システム。
前記認証機能利用手段は、第1の認証の情報を利用した連携認証要求を前記第1の認証機能に対して行って、前記第1の認証機能から連携認証応答を受信したあと、第1の認証の情報を削除する
ことを特徴とする請求項1又は2記載の情報処理システム。
前記管理手段は、前記第2の認証機能が第2の認証の情報を発行したときに第2の認証の情報に関する情報を記憶手段に記憶しておき、前記記憶手段に記憶しておいた第2の認証の情報に関する情報を利用して第2の認証の情報が正当であるかを判定する
ことを特徴とする請求項1乃至3何れか一項記載の情報処理システム。
前記管理手段は、外部装置からの連携認証要求に正当な第2の認証の情報が含まれていない場合に、前記第2の認証機能による認証を行うための画面を前記外部装置に表示させるように制御する
ことを特徴とする請求項1乃至5何れか一項記載の情報処理システム。
外部装置からの第2の認証の情報を利用した内部サービスに対する要求を内部サービスの前段で受信し、第2の認証の情報が正当でない場合に、前記第2の認証機能による認証を行うための画面を前記外部装置に表示させるように制御する代理手段
を更に有することを特徴とする請求項1乃至6何れか一項記載の情報処理システム。
前記振分手段は、前記第1の認証機能で認証を実行して取得した第1の認証の情報及び冗長化された前記第1の認証機能から一意に前記第1の認証機能を識別する識別情報を前記認証機能利用手段に送信し、前記認証機能利用手段からの第1の認証の情報を利用した連携認証要求を前記第1の認証機能を識別する識別情報に基づいて振り分ける
ことを特徴とする請求項8記載の情報処理システム。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について図面を参照しながら説明する。
[第1の実施形態]
<システム構成>
図1は第1の実施形態に係る情報処理システムの一例の構成図である。
図1の情報処理システム1000は、例えばオフィス内ネットワーク等のネットワークN1と、クラウドサービスに代表されるサービス提供システム1020のネットワークN2と、例えばインターネットなどのネットワークN3とを有する。
【0011】
ネットワークN1は、ファイヤウォールFWの内側にあるプライベートなネットワークである。ファイヤウォールFWはネットワークN1とネットワークN3との接点に設置され、不正なアクセスを検出及び遮断する。ネットワークN1にはクライアント端末1011、携帯端末1012、複合機などの画像形成装置1013が接続されている。
【0012】
クライアント端末1011は端末装置の一例である。クライアント端末1011は一般的なOSなどが搭載された情報処理装置によって実現できる。クライアント端末1011は無線による通信の手段または有線による通信の手段を有する。クライアント端末1011は、タブレットPC、ノートPCなど、ユーザが操作可能な端末である。
【0013】
携帯端末1012は端末装置の一例である。携帯端末1012は、無線による通信の手段または有線による通信の手段を有している。携帯端末1012は、スマートフォンや携帯電話、タブレットPC、ノートPCなど、ユーザが携帯可能な端末である。
【0014】
画像形成装置1013は複合機などの画像形成機能を有する装置である。画像形成装置1013は無線による通信の手段または有線による通信の手段を有する。画像形成装置1013は複合機、コピー機、スキャナ、プリンタ、レーザプリンタ、プロジェクタ、電子黒板など、画像形成に係る処理を行う装置である。
図1では、一例としてクライアント端末1011、携帯端末1012、画像形成装置1013がそれぞれ一台である例を示しているが複数台であってもよい。
【0015】
ネットワークN2はアクセス制御装置1021によってネットワークN3に接続されている。ネットワークN2はアクセス制御装置1021によってセキュリティが保護されている。ネットワークN2にはプリントサービス提供装置1022、スキャンサービス提供装置1023、ポータルサービス提供装置1024、他サービス提供装置1025が接続されている。
【0016】
図1の情報処理システム1000は、アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、ポータルサービス提供装置1024、他サービス提供装置1025がサービス提供システム1020を実現している。
【0017】
アクセス制御装置1021は、プリントサービス提供装置1022、スキャンサービス提供装置1023、ポータルサービス提供装置1024、他サービス提供装置1025などへのアクセスを制御する。
【0018】
アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、ポータルサービス提供装置1024、他サービス提供装置1025は一台以上の情報処理装置によって実現される。
【0019】
アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、ポータルサービス提供装置1024、他サービス提供装置1025は一台の情報処理装置に統合して実現してもよいし、複数の情報処理装置に分散して実現してもよい。
【0020】
ネットワークN2側のサービスの一部はネットワークN2以外にあってもよい。携帯端末1012は、オフィス内ネットワーク等のネットワークN1以外にあってもよい。
図1の情報処理システム1000では携帯端末1012がネットワークN1と、ネットワークN3とにある例を示している。ネットワークN3に接続されている外部サービス1031はオンラインストレージなどのサービスを提供する装置である。
【0021】
外部サービス1031はIdP(Identity Provider)が発行した認証・認可の情報に応じてクライアントにサービスを提供するSP(Service Provider)の一例である。サービス提供システム1020はIdPの一例である。
【0022】
図1のサービス提供システム1020の構成は一例であって、
図2に示すような構成によっても実現できる。
図2はサービス提供システムの他の例の構成図である。
図2に示したサービス提供システム1020は、ネットワークN2がファイヤウォールFWを介してネットワークN3に接続されている。
【0023】
ネットワークN2にはSaaS(Software as a Service)系のサービス提供装置、共通サービス(Network Service Platform)系のサービス提供装置、ストレージ(Storage)系の記憶装置が接続されている。なお、共通サービス系のサービス提供装置はSaaS系のサービス提供装置が共通で使えるサービスを提供する。
【0024】
SaaS系のサービス提供装置は、例えばポータルサービス提供装置1051、プリントサービス提供装置1052、スキャンサービス提供装置1053など、提供するサービスに応じたサービス提供装置が含まれる。また、共通サービス系のサービス提供装置は例えば認証サービス提供装置1061、データ処理サービス提供装置1062、一時データ保存サービス提供装置1063など、提供する共通サービスに応じたサービス提供装置が含まれる。ストレージ系の記憶装置は、例えば認証情報記憶装置1071、ジョブ情報記憶装置1072、一時データ記憶装置1073など、記憶する情報(データ)に応じた記憶装置が含まれる。
【0025】
図2のサービス提供システム1020はファイヤウォールFW、認証サービス提供装置1061が提供する認証サービスによってセキュリティが保護されている。なお、
図2のサービス提供システム1020の構成も一例であって、他の構成であってもよい。
【0026】
<ハードウェア構成>
図1のクライアント端末1011、携帯端末1012は例えば
図3に示すようなハードウェア構成のコンピュータにより実現される。また、アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、ポータルサービス提供装置1024、他サービス提供装置1025は、例えば
図3に示すようなハードウェア構成のコンピュータにより実現される。
【0027】
また、
図2のSaaS系のサービス提供装置、共通サービス系のサービス提供装置、ストレージ系の記憶装置も、例えば
図3に示すようなハードウェア構成のコンピュータにより実現される。
【0028】
図3はコンピュータの一例のハードウェア構成図である。
図3のコンピュータ100は入力装置101、表示装置102、外部I/F103、RAM104、ROM105、CPU106、通信I/F107、及びHDD108などを備え、それぞれがバスBで相互に接続されている。
【0029】
入力装置101はキーボードやマウス、タッチパネルなどを含み、ユーザが各操作信号を入力するのに用いられる。表示装置102はディスプレイ等を含み、コンピュータ100による処理結果を表示する。なお、入力装置101及び表示装置102は必要なときに接続して利用する形態であってもよい。
【0030】
通信I/F107は、コンピュータ100をネットワークN1〜N3に接続するインタフェースである。これにより、コンピュータ100は通信I/F107を介してデータ通信を行うことができる。
【0031】
HDD108はプログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには例えばコンピュータ100全体を制御する基本ソフトウェアであるOSや、OS上において各種機能を提供するアプリケーションソフトウェアなどがある。
【0032】
HDD108は格納しているプログラムやデータを所定のファイルシステム及び/又はDBにより管理している。外部I/F103は、外部装置とのインタフェースである。外部装置には、記録媒体103aなどがある。
【0033】
これにより、コンピュータ100は外部I/F103を介して記録媒体103aの読み取り及び/又は書き込みを行うことができる。記録媒体103aにはフレキシブルディスク、CD、DVD、SDメモリカード、USBメモリなどがある。
【0034】
ROM105は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。ROM105にはコンピュータ100の起動時に実行されるBIOS、OS設定、及びネットワーク設定などのプログラムやデータが格納されている。RAM104はプログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。
【0035】
CPU106は、ROM105やHDD108などの記憶装置からプログラムやデータをRAM104上に読み出し、処理を実行することで、コンピュータ100全体の制御や機能を実現する演算装置である。
【0036】
クライアント端末1011、携帯端末1012は、コンピュータ100のハードウェア構成により、後述するような各種処理を実現できる。アクセス制御装置1021、プリントサービス提供装置1022、スキャンサービス提供装置1023、ポータルサービス提供装置1024、他サービス提供装置1025は、コンピュータ100のハードウェア構成により、後述するような各種処理を実現できる。
【0037】
また、
図2のSaaS系のサービス提供装置、共通サービス系のサービス提供装置、ストレージ系の記憶装置も、コンピュータ100のハードウェア構成により、後述するような各種処理を実現できる。また、外部サービス1031も
図3のコンピュータ100のようなハードウェア構成により後述するような各種処理を実現できる。なお、画像形成装置1013、ファイヤウォールFWのハードウェア構成については説明を省略する。
【0038】
<ソフトウェア構成>
《サービス提供システム》
第1の実施形態に係るサービス提供システム1020は例えば
図4に示す処理ブロックにより実現される。
図4は、第1の実施形態に係るサービス提供システムの一例の処理ブロック図である。
【0039】
サービス提供システム1020はプログラムを実行することで、アプリケーション1101、共通サービス1102、データベース(DB)1103、アプリケーションAPI1104、プラットフォームAPI1105を実現している。
【0040】
アプリケーションAPI1104はクライアント端末1011などの端末装置がアプリケーション1101を利用するためのインタフェースである。アプリケーションAPI1104は端末装置からの要求をアプリケーション1101が受信するために設けられた予め定義されたインタフェースであり、例えば関数やクラス等により構成される。
【0041】
アプリケーションAPI1104は、サービス提供システム1020が複数の情報処理装置で構成される場合、ネットワーク経由で利用可能な例えばWeb APIにより実現できる。
【0042】
アプリケーション1101は、ポータルサービスアプリ1111、スキャンサービスアプリ1112、プリントサービスアプリ1113、認証エージェント1114及び1115を一例として有する。
【0043】
ポータルサービスアプリ1111は、ポータルサービスを提供するアプリケーションである。ポータルサービスは、サービス提供システム1020を利用するための入り口となるサービスを提供する。スキャンサービスアプリ1112はスキャンサービスを提供するアプリケーションである。プリントサービスアプリ1113はプリントサービスを提供するアプリケーションである。アプリケーション1101には、その他のサービスアプリが含まれていてもよい。
【0044】
認証エージェント1114及び1115はスキャンサービスアプリ1112及びプリントサービスアプリ1113を不正な要求から保護するものである。スキャンサービスアプリ1112及びプリントサービスアプリ1113は認証エージェント1114及び1115によって不正な要求から保護されており、正当な認証チケットを持つ端末装置等からの要求を受け付ける。
【0045】
プラットフォームAPI1105はポータルサービスアプリ1111、スキャンサービスアプリ1112、プリントサービスアプリ1113などのアプリケーション1101が共通サービス1102を利用するためのインタフェースである。プラットフォームAPI1105はアプリケーション1101からの要求を共通サービス1102が受信するために設けられた予め定義されたインタフェースであり、例えば関数やクラス等により構成される。
【0046】
プラットフォームAPI1105は、サービス提供システム1020が複数の情報処理装置で構成される場合、ネットワークN2経由で利用可能な例えばWeb APIにより実現できる。
【0047】
共通サービス1102は認証・認可部1121、組織管理部1122、ユーザ管理部1123、ライセンス管理部1124、機器管理部1125、一時画像保存部1126、画像処理ワークフロー制御部1127、ログ収集部1128、チケット管理部1129を有する。
【0048】
また、画像処理ワークフロー制御部1127はメッセージキュー1131、1つ以上のワーカー(Worker)1132を有する。ワーカー1132は画像変換や画像送信などの機能を実現する。
【0049】
認証・認可部1121は、クライアント端末1011や画像形成装置1013などのオフィス機器からのログイン要求に基づいて認証・認可を実行する。オフィス機器はクライアント端末1011、携帯端末1012、画像形成装置1013などの総称である。
【0050】
認証・認可部1121は、例えば後述するユーザ情報記憶部1143、ライセンス情報記憶部1144などにアクセスしてユーザを認証・認可する。また、認証・認可部1121は例えば後述する組織情報記憶部1142、ライセンス情報記憶部1144、機器情報記憶部1145などにアクセスして画像形成装置1013などを認証する。
【0051】
組織管理部1122は後述する組織情報記憶部1142に記憶されている組織情報を管理する。ユーザ管理部1123は、後述するユーザ情報記憶部1143に記憶されているユーザ情報を管理する。
【0052】
ライセンス管理部1124は後述するライセンス情報記憶部1144に記憶されているライセンス情報を管理する。機器管理部1125は後述する機器情報記憶部1145に記憶されている機器情報を管理する。一時画像保存部1126は後述する一時画像記憶部1146への一時画像の保存、一時画像記憶部1146からの一時画像の取得を行う。
【0053】
画像処理ワークフロー制御部1127はアプリケーション1101からの要求に基づいて画像処理に関するワークフローを制御する。メッセージキュー1131は処理の種類に対応するキューを有する。画像処理ワークフロー制御部1127は処理(ジョブ)に係るリクエストのメッセージを、そのジョブの種類に対応するキューに投入する。
【0054】
ワーカー1132は対応するキューを監視している。キューにメッセージが投入されるとワーカー1132は、対応するジョブの種類に応じた画像変換や画像送信などの処理を行う。なお、キューに投入されたメッセージはワーカー1132が主体的に読み出す(Pull)ようにしてもよいし、キューからワーカー1132に提供する(Push)ようにしてもよい。
【0055】
ログ収集部1128は後述するログ情報記憶部1141に記憶されているログ情報を管理する。チケット管理部1129はユーザに紐付く認証チケットの発行、認証チケットの正当性チェック、有効期限管理、上限管理などの機能を有する。
【0056】
データベース1103は、ログ情報記憶部1141、組織情報記憶部1142、ユーザ情報記憶部1143、ライセンス情報記憶部1144、機器情報記憶部1145、一時画像記憶部1146、ジョブ情報記憶部1147、アプリケーション固有の設定情報記憶部1148、チケット情報記憶部1149を有する。
【0057】
ログ情報記憶部1141は、ログ情報を記憶する。組織情報記憶部1142は、後述の組織情報を記憶する。ユーザ情報記憶部1143は、後述のユーザ情報を記憶する。ライセンス情報記憶部1144は、ライセンス情報を記憶する。機器情報記憶部1145は機器情報を記憶する。
【0058】
一時画像記憶部1146は一時画像を記憶する。一時画像は、例えばワーカー1132が処理するスキャン画像などのファイルやデータである。ジョブ情報記憶部1147は処理(ジョブ)に係るリクエストの情報(ジョブ情報)を記憶する。アプリケーション固有の設定情報記憶部1148はアプリケーション1101に固有の設定情報を記憶する。チケット情報記憶部1149は後述のチケット情報を記憶する。
【0059】
サービス提供システム1020は認証・認可や画像処理に関するワークフローなどの共通サービスを提供する統合基盤と、統合基盤の機能を利用してスキャンサービス、ポータルサービスなどのアプリサービスを提供するサービス群として機能する。統合基盤は例えば共通サービス1102、DB1103及びプラットフォームAPI1105によって構成される。サービス群は例えばアプリケーション1101及びアプリケーションAPI1104によって構成される。
【0060】
図4に示したサービス提供システム1020はサービス群と統合基盤とを分離した構成により、プラットフォームAPI1105を利用するアプリケーション1101を容易に開発できる。
【0061】
なお、
図4に示したサービス提供システム1020の処理ブロックの分類形態は一例であり、アプリケーション1101、共通サービス1102、DB1103が
図4に示されるような階層で分類されていることが必須ではない。第1の実施形態に係るサービス提供システム1020の処理を実施できるのであれば、
図4に示される階層関係などは特定のものに限定されない。
【0062】
《認証・認可部》
認証・認可部1121は例えば
図5の処理ブロックにより実現される。
図5は認証・認可部の一例の処理ブロック図である。認証・認可部1121はマルチベンダ判断部1201、OAuth部1202、代理認証部1203、ディレクトリサービス1204、認証サービス提供部1205及び1206を有する。
【0063】
OAuth部1202はOAuthプロトコルで外部サービス1031にAPI認可を行うものである。代理認証部1203は外部サービス1031との認証処理を代理で請け負うものである。ディレクトリサービス1204は組織情報やユーザ情報などのクラッド処理(作成、読み出し、更新、削除処理)を行うものである。
【0064】
マルチベンダ判断部1201は認証サービスを提供する認証サービス提供部1205や1206の利用判断を行うものである。マルチベンダ判断部1201はユーザからのリクエストに応じて、認証サービスを提供する認証サービス提供部1205や1206を判断して利用する。つまり、マルチベンダ判断部1201は実現したい認証サービスを提供する認証サービス提供部1205や1206を判断している。
【0065】
また、認証サービス提供部1205及び1206は認証サービスを提供するモジュールの一例である。認証サービス提供部1205はOpenAMによりモジュールを実現した例である。認証サービス提供部1206は何らかの認証サービスによりモジュールを実現する例である。
【0066】
認証サービス提供部1205は、OpenAMのチケット管理部、チケット記憶部及びSAML機能部を一例として有している。また、認証サービス提供部1206は何らかの認証サービスのチケット管理部、チケット記憶部及び認証連携機能部を一例として有している。なお、認証サービス提供部1205及び1206を利用する場合には、認証サービス提供部1205及び1206が発行した認証チケット(セッション)が必要となる。
【0067】
《組織情報》
図6は組織情報の一例のデータ構造図である。
図6の組織情報は項目として組織ID及び組織名を有する。組織IDは企業、部署などのグループを特定する情報である。組織IDは組織という言語に限定されるものではなく、例えば契約を識別する情報であってもよい。組織IDは一意である。組織名は企業、部署などのグループの名称を表している。
【0068】
《ユーザ情報》
図7はユーザ情報の一例の構成図である。ユーザ情報は項目としてユーザID、組織ID及びパスワードを有する。ユーザID及びパスワードはユーザを特定する情報の一例である。したがって、ユーザIDはユーザ名等であってもよい。また、パスワードは必須でない。同じ組織IDで管理されるユーザID及びパスワードは一意であるが、組織IDが異なれば重複していてもよい。
【0069】
さらに、ユーザIDはユーザが所持する電子媒体(例えばICカード)を識別する情報を用いてもよい。ユーザが所持する電子媒体としてはICカード、携帯電話、タブレット端末、電子書籍端末等を利用できる。電子媒体を識別する情報としては、カードID、シリアルID、携帯電話の電話番号、端末のプロフィール情報などを利用できる。電子媒体を識別する情報は組み合わせて利用してもよい。
【0070】
《チケット情報》
図8はチケット情報の一例の構成図である。
図8のチケットは項目として認証チケット識別子、組織ID、ユーザID、作成日時、参照日時を有する。認証チケット識別子は認証チケットを一意に識別する情報である。認証チケット識別子は予め決められたルールに基づいて生成される。
【0071】
また、チケット情報は認証チケット識別子からユーザを特定するために、組織ID及びユーザIDを認証チケット識別子と紐付けている。チケット情報は認証チケットの有効期限管理のため、作成日時及び参照日時を認証チケット識別子と紐付けている。チケット情報の作成日時及び参照日時を利用し、認証チケットは決められたルールに従って有効性が判断される。
【0072】
<処理の詳細>
《サービス提供システムが提供するアプリケーションの利用》
図9はサービス提供システムが提供するアプリケーションを利用する処理の一例を表したシーケンス図である。
図9のシーケンス図は、サービス提供システム1020の認証チケットで保護されているアプリケーション1101を利用する際のシーケンス図の一例を表している。
【0073】
ステップS1において、
図1のオフィス機器に搭載されたブラウザ(Client App)はサービス提供システム1020の認証チケットを持たない状態でスキャンサービスアプリ1112の利用をアプリケーションAPI1104からリクエストする。
【0074】
ステップS2において、認証エージェント1114はオフィス機器に搭載されたブラウザからスキャンサービスアプリ1112へのリクエストの認証チケットの正当性チェックをチケット管理部1129にリクエストする。チケット管理部1129は認証チケットの正当性チェックを行う。なお、ここでは認証チケットを持たない状態でのリクエストであるため、正当な認証チケットを持つ要求でないと判定される。
【0075】
ステップS3において、オフィス機器に搭載されたブラウザは認証エージェント1114にサービス提供システム1020のログイン画面へのリダイレクトを要求される。ブラウザはサービス提供システム1020のポータルサービスアプリ1111のログイン画面にリダイレクトされる。
【0076】
ユーザはログイン画面に組織ID、ユーザID、パスワードなどの認証情報を入力してログインを要求する。ステップS4において、ブラウザはポータルサービスアプリ1111にログインを要求する。ログインの要求には組織ID、ユーザID、パスワードが含まれる。
【0077】
ステップS5において、ポータルサービスアプリ1111はチケット管理部1129にブラウザからのログインの要求に含まれていた組織ID、ユーザID、パスワードによるログインを要求する。ステップS6において、チケット管理部1129はブラウザからのログインの要求に含まれていた組織ID、ユーザID、パスワードによる認証チケットの発行処理を開始する。
【0078】
ステップS7において、チケット管理部1129はブラウザからのログインの要求に含まれていた組織ID、ユーザID、パスワードの認証を認証・認可部1121に要求して行わせる。認証・認可部1121はブラウザからのログインの要求に含まれていた組織ID、ユーザID、パスワードの組みが、
図7に示すようなユーザ情報としてユーザ情報記憶部1143に記憶されているか確認する。
【0079】
ブラウザからのログインの要求に含まれていた組織ID、ユーザ名、パスワードの組みがユーザ情報記憶部1143に記憶されていれば、認証・認可部1121は認証の成功をチケット管理部1129に通知する。ここでは、認証の成功がチケット管理部1129に通知されたものとして説明を続ける。
【0080】
ステップS8において、チケット管理部1129はチケット情報記憶部1149に記憶されている
図8に示すようなチケット情報を参照し、認証に成功したユーザの発行済みの認証チケットのチェックを行う。例えばチケット管理部1129は認証に成功したユーザの発行済みの認証チケットの上限管理などを行う。
【0081】
ステップS9において、チケット管理部1129は認証チケットを生成する。ステップS10において、チケット管理部1129は認証チケット識別子を生成する。ステップS11において、チケット管理部1129は認証に成功したユーザの組織ID及びユーザIDと、生成した認証チケット識別子、作成日時とを紐付けるチケット情報をチケット情報記憶部1149に登録する。また、チケット管理部1129は認証チケットをログインの要求に対する応答としてブラウザに返す。
【0082】
ステップS12において、オフィス機器に搭載されたブラウザはログインの要求に対して返されたサービス提供システム1020の認証チケットを持つ状態でスキャンサービスアプリ1112の利用をアプリケーションAPI1104からリクエストする。
【0083】
ステップS13において、スキャンサービスアプリ1112の前段に配置されている認証エージェント1114はブラウザからスキャンサービスアプリ1112へのリクエストの認証チケットの正当性チェックをチケット管理部1129にリクエストする。ステップS14において、チケット管理部1129はチケット情報記憶部1149に記憶されている
図8のようなチケット情報を参照し、認証チケットの正当性チェックを行う。
【0084】
チケット管理部1129は、ブラウザからスキャンサービスアプリ1112へのリクエストの認証チケットがチケット情報記憶部1149に記憶されているため、正当な認証チケットを持つ要求であると判定する。チケット管理部1129は、ブラウザからスキャンサービスアプリ1112へのリクエストの認証チケットに紐付く組織ID及びユーザIDをチケット情報記憶部1149から取得する。なお、チケット情報記憶部1149に記憶されている
図8のようなチケット情報の参照日時は、ステップS14の処理により更新される。
【0085】
チケット管理部1129は、ステップS13のリクエストに対する応答として、ブラウザからスキャンサービスアプリ1112へのリクエストの認証チケットに紐付く組織ID及びユーザIDを認証エージェント1114に返す。
【0086】
認証エージェント1114はステップS15において、認証チケットに紐付く組織ID及びユーザIDを付加し、スキャンサービスアプリ1112の利用をスキャンサービスアプリ1112にリクエストする。
【0087】
このように、サービス提供システム1020はアプリケーション1101を不正な要求から保護するため、サービス提供システム1020の認証チケットを利用している。
【0088】
《外部サービスとの認証連携》
図10及び
図11は外部サービスとの認証連携する処理の一例を表したシーケンス図である。
図10及び
図11のシーケンス図は、サービス提供システム1020が外部サービス1031とSAMLによる認証連携(SAML連携)を行う際のシーケンス図の一例を表している。
【0089】
ステップS21において、
図1のオフィス機器に搭載されたブラウザはユーザから例えばアクセス先として外部サービス1031のURLを入力又はブックマークから選択されると、外部サービス1031にアクセスする。
【0090】
ステップS22、S23において、ブラウザはシングルサインオン設定されたサービス提供システム1020のエンドポイントにリダイレクトされる。ブラウザはリダイレクトにより、チケット管理部1129にSAML連携を要求する。
【0091】
チケット管理部1129はサービス提供システム1020の認証チケットを持たない状態でのリクエストであるため、ステップS24において、ログイン画面へのリダイレクトをブラウザに要求する。オフィス機器に搭載されたブラウザはチケット管理部1129にサービス提供システム1020のログイン画面へのリダイレクトを要求される。ブラウザはサービス提供システム1020のポータルサービスアプリ1111のログイン画面にリダイレクトされる。
【0092】
ユーザはログイン画面に組織ID、ユーザID、パスワードなどの認証情報を入力してログインを要求する。ステップS25において、ブラウザはポータルサービスアプリ1111にログインを要求する。ログインの要求には組織ID、ユーザID、パスワードが含まれる。
【0093】
ステップS26において、ポータルサービスアプリ1111はチケット管理部1129にブラウザからのログインの要求に含まれていた組織ID、ユーザID、パスワードによるログインを要求する。なお、ステップS27〜S30の処理は
図9のステップS6〜S11と同様であるため、説明を省略する。
【0094】
ステップS31において、
図1のオフィス機器に搭載されたブラウザはサービス提供システム1020の認証チケットを持つ状態でチケット管理部1129にSAML−Idp認証を要求する。ステップS32において、チケット管理部1129はチケット情報記憶部1149に記憶されている
図8に示すようなチケット情報を参照し、認証チケットの正当性のチェックを行う。
【0095】
チケット管理部1129はステップS31のSAML−Idp認証の要求に含まれていた認証チケットがチケット情報記憶部1149に記憶されていれば認証チケットが正当であると判定する。なお、SAML−Idp認証の要求に含まれていた認証チケットが正当である場合、チケット管理部1129はSAML−Idp認証の要求に含まれていた認証チケットと紐付く組織ID及びユーザIDをユーザ情報としてチケット情報記憶部1149から取得する。
【0096】
ステップS33において、チケット管理部1129は、取得したユーザ情報を用いてマルチベンダ判断部1201にSAML−Idp認証を要求する。マルチベンダ判断部1201はステップS34において、ユーザ情報記憶部1143を参照し、SAML−Idp認証にユーザ情報として含まれていた組織ID及びユーザIDに紐付くパスワードを取得する。
【0097】
ステップS35において、マルチベンダ判断部1201は取得した組織ID、ユーザID及びパスワードによるログインを認証サービス提供部1205の一例であるOpenAMに要求する。ここでOpenAMに対してログインを要求する理由は、SAML連携の機能をOpenAMが有しており、SAML連携の機能のAPIを利用する際にOpenAMの認証チケットが必要となるためである。OpenAMは認証に成功した場合にOpenAMの認証チケットを生成し、その認証チケットをログインの要求に対する応答としてマルチベンダ判断部1201に返す。
【0098】
ステップS36において、マルチベンダ判断部1201はOpenAMの認証チケットを用いてOpenAMに対し、SAML連携の要求(SAMLリクエスト)を行う。OpenAMは認証チケットの認証に成功すると、SAMLレスポンスを含んだJavascript(登録商標)を生成し、マルチベンダ判断部1201に返す。
【0099】
マルチベンダ判断部1201はSAMLレスポンスを含んだJavascriptを受け取った後、ステップS37において、OpenAMからログアウトし、OpenAMの認証チケットを破棄する。ステップS38において、マルチベンダ判断部1201はSAMLレスポンスを含んだJavascriptをチケット管理部1129からブラウザに返す。
【0100】
ステップS39において、ブラウザは外部サービス1031のACSへサービス提供システム1020のSAMLレスポンスをPOSTし、外部サービス1031とのSAML連携を実現する。
【0101】
つまり、OpenAMはSAMLレスポンスをPOSTする外部サービス1031の宛先を指定してブラウザにPOSTさせる。外部サービス1031はSAMLレスポンスを確認し、対応するユーザのサービス画面をブラウザに表示させる。
【0102】
このように、サービス提供システム1020はサービス提供システム1020を利用するための認証チケットと、認証連携機能を実現するOpenAMの認証チケットと、を別の認証チケットとしている。サービス提供システム1020は認証連携機能を利用するタイミングでOpenAMの認証チケットを発行し、利用後にOpenAMの認証チケットを削除することで、認証連携機能を実現するOpenAMの影響を減少させている。
【0103】
したがって、本実施形態のサービス提供システム1020はOpenAMのリリースやメンテナンスなどによる再起動によりOpenAMの認証チケットが無効になったとしても影響を抑えることができる。
【0104】
《OpenAMの負荷分散》
例えばOpenAMなどの認証サービス提供部1205、1206はアプリケーションデリバリコントローラ(ADC)等によりリクエスト先を制御することで冗長構成とすることができる。本実施形態のサービス提供システム1020では、複数台のOpenAMの前段にADC1210を配置することにより、OpenAMに対するリクエストの分散を行う。
【0105】
図12は外部サービスとの認証連携する処理の他の例を表したシーケンス図である。
図12のシーケンス図は例えば
図10のステップS21〜S30の処理の後で行われる処理である。
【0106】
ステップS41において、
図1のオフィス機器に搭載されたブラウザはサービス提供システム1020の認証チケットを持つ状態でチケット管理部1129にSAML−Idp認証を要求する。ステップS42において、チケット管理部1129はチケット情報記憶部1149に記憶されている
図8に示すようなチケット情報を参照し、認証チケットの正当性のチェックを行う。
【0107】
SAML−Idp認証の要求に含まれていた認証チケットが正当である場合、チケット管理部1129はSAML−Idp認証の要求に含まれていた認証チケットと紐付く組織ID及びユーザIDをユーザ情報としてチケット情報記憶部1149から取得する。
【0108】
また、チケット管理部1129はステップS43において、ユーザ情報記憶部1143を参照し、SAML−Idp認証にユーザ情報として含まれていた組織ID及びユーザIDに紐付くパスワード(ハッシュ化パスワードを含む)を取得する。ステップS44において、チケット管理部1129は、取得したユーザ情報を用いてマルチベンダ判断部1201にSAML−Idp認証を要求する。
【0109】
ステップS45において、マルチベンダ判断部1201は取得した組織ID、ユーザID及びパスワードによるログインを認証サービス提供部1205の一例であるOpenAM1205a又は1205bに要求する。OpenAM1205a又は1205bに要求されたログインはADC1210によりOpenAM1205a又は1205bに振り分けられる。ここではログインがOpenAM1205aに振り分けられたものとして説明を続ける。
【0110】
ステップS46において、ADC1210は要求されたログインをOpenAM1205aに振り分ける。OpenAM1205aは認証に成功した場合にOpenAM1205aの認証チケットを生成し、その認証チケットをログインの要求に対する応答としてADC1210に返す。
【0111】
ステップS47において、ADC1210は認証チケットを生成したOpenAM1205aの識別子を生成する。そして、ADC1210はステップS48においてOpenAM1205aの認証チケットとOpenAM1205aの識別子とをマルチベンダ判断部1201に返す。
【0112】
ステップS49において、マルチベンダ判断部1201はOpenAM1205aの認証チケットとOpenAM1205aの識別子とを用いてADC1210に対し、SAML連携の要求(SAMLリクエスト)を行う。ステップS50において、ADC1210はSAMLリクエストに含まれるOpenAM1205aの識別子に基づき、SAMLリクエストをOpenAM1205aに送信する。
【0113】
OpenAM1205aは認証チケットの認証に成功すると、SAMLレスポンスを含んだJavascriptを生成し、ADC1210からマルチベンダ判断部1201に返す。マルチベンダ判断部1201はSAMLレスポンスを含んだJavascriptをチケット管理部1129からブラウザに返す。
【0114】
この後、ブラウザは外部サービス1031のACSへサービス提供システム1020のSAMLレスポンスをPOSTし、外部サービス1031とのSAML連携を実現できるようになる。
【0115】
図12のシーケンス図ではOpenAM1205aで発行した認証チケットを含むSAMLリクエストをOpenAM1205bに送信すると認証エラーとなるため、OpenAM1205aの識別子を生成し、ADC1210による振り分けに利用している。
図12のシーケンス図ではOpenAMをactive−active構成で運用することができる。
【0116】
(まとめ)
本実施形態に係るサービス提供システム1020によれば、OpenAMによるSAML連携を実現した状態で、サービス提供システム1020の認証チケットをOpenAMから分離して管理するため、OpenAMの影響を減少できる。例えばOpenAMは再起動が必要なパッチ充てなどのリリースやメンテナンスを継続的に実施している。
【0117】
本実施形態に係るサービス提供システム1020では、OpenAMの再起動によりOpenAMの認証チケットがリセットされたとしても、サービス提供システム1020の認証チケットがリセットされない。したがって、本実施形態に係るサービス提供システム1020ではサービス提供システム1020のサービスを停止することなく、認証連携機能を実現するOpenAMなどの他の認証基盤のリリースやメンテナンスを実現することができる。また、本実施形態に係るサービス提供システム1020では、OpenAMをactive−active構成で運用することで、OpenAMの負荷分散を行うことができる。
【0118】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【0119】
なお、サービス提供システム1020の認証基盤は特許請求の範囲に記載した第2の認証機能の一例である。OpenAMは第1の認証機能の一例である。チケット管理部1129は管理手段の一例である。マルチベンダ判断部1201は認証機能利用手段の一例である。認証エージェント1114等は代理手段の一例である。アプリケーションデリバリコントローラ(ADC)1210は振分手段の一例である。
【0120】
サービス提供システム1020の認証チケットは第2の認証の情報の一例である。OpenAMの認証チケットは第1の認証の情報の一例である。SAMLリクエスト(レスポンス)は連携認証要求(応答)の一例である。アプリケーション1101は内部サービスの一例である。外部サービス1031は外部サービスの一例である。