(58)【調査した分野】(Int.Cl.,DB名)
サービス提供装置に対して、機器が該サービス提供装置にアクセスするための第1のURLと、IDトークンを該サービス提供装置に渡すための第3のURLを要求する要求手段と、
前記サービス提供装置に対して、前記機器が本認証連携装置にアクセスするための第2のURLを送信する送信手段
を有する認証連携装置。
認証連携装置からの要求に応じて、該認証連携装置に対して、機器が本サービス提供装置にアクセスするための第1のURLと、IDトークンを本サービス提供装置に渡すための第3のURLを送信する送信手段と、
該認証連携装置から、前記機器が前記認証連携装置にアクセスするための第2のURLを受信する受信手段
を有するサービス提供装置。
【発明を実施するための形態】
【0038】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係、ログイン等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(もちろんのことながら、全ての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という記載は、「Aであるか否かを判断し、Aであると判断した場合はBをする」の意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。また、「A、B、C」等のように事物を列挙した場合は、断りがない限り例示列挙であり、その1つのみを選んでいる場合(例えば、Aのみ)を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
【0039】
本実施の形態である認証連携システムは、機器130がサービス提供装置160が提供するサービスを利用するにあたって、認証連携を行うものであって、
図1の例に示すように、通信回線を介して接続されている認証連携装置100、機器130、サービス提供装置160を有している。ここでの認証連携は、機器130で行われた認証が、サービス提供装置160が提供するサービスを利用するにあたっての認証として認められるものである。
【0040】
また、認証連携装置100と機器130は、ファイアウォール190内に設置されており、サービス提供装置160は、ファイアウォール190外に設置されている。具体例として、認証連携装置100、機器130は社内のイントラネット(通信回線195aの一例)で接続されており、サービス提供装置160は社外のインターネット(通信回線195bの一例)に接続されている場合が該当する。ファイアウォール190は、外部(この例では、通信回線195b、サービス提供装置160等)からの不正なアクセスを、ファイアウォール190内の通信回線、機器等(この例では、通信回線195a、認証連携装置100、機器130等)に侵入させないようにしている。したがって、認証連携装置100又は機器130と、サービス提供装置160との間で通信を行うには、認証連携装置100又は機器130から、サービス提供装置160に対して最初に通信(送信)を開始する必要があり(認証連携装置100又は機器130からサービス提供装置160への通信が契機になることが通信の条件であり)、サービス提供装置160から認証連携装置100又は機器130に対して最初に(いきなり)通信を開始することはできない。
【0041】
認証連携装置100は、通信モジュール105、設定モジュール110、認証連携モジュール115を有している。
通信モジュール105は、通信回線195aを介して機器130の通信モジュール135と接続されており、通信回線195bを介してサービス提供装置160の通信モジュール165と接続されている。通信モジュール105は、機器130との通信、ファイアウォール190を介してサービス提供装置160との通信を行う。
【0042】
設定モジュール110は、通信モジュール105を介して、サービス提供装置160に対して、機器130がそのサービス提供装置160にアクセスするための第1のURL(Uniform Resource Locator)と、IDトークンをそのサービス提供装置160に渡すための第3のURLを要求する。なお、URLの概念には、URI(Uniform Resource Identifier)を含むものとする。
そして、設定モジュール110は、通信モジュール105を介して、サービス提供装置160に対して、機器130が認証連携装置100にアクセスするための第2のURLを送信する。
ここで、サービス提供装置160に対する要求と送信は、1回の通信で行ってもよい。つまり、第2のURLを送信することが、第1のURLと第3のURLの要求としてもよい。したがって、サービス提供装置160は、設定モジュール110から、第2のURLを受信した場合は、第1のURLと第3のURLの要求を受信したと解して、その第1のURLと第3のURLを送信してもよい。
さらに、要求においては、サービス提供装置160を識別する情報である識別情報、公開鍵方式における暗号鍵を要求してもよい。
そして、送信においては、さらに、公開鍵方式における署名鍵を送信してもよい。
ここで「公開鍵方式における」とは、鍵が公開鍵と秘密鍵に分けられている暗号化方式を用いることであり、もちろんのことながら、要求する暗号鍵は、暗号鍵の公開鍵であり、送信する署名鍵は、署名鍵の公開鍵である。
「IDトークン」は、認証の結果得られるトークンである。
「第1のURL」は、認証連携を開始するためのサービス提供装置160におけるURLである。
「第2のURL」は、IDトークンを発行するためのURLである。
「第3のURL」は、認証連携装置100が発行したIDトークンを受け渡すためのURLである。
また、設定モジュール110は、機器130に対して、その機器130がサービス提供装置160が提供するサービスを利用する場合に、その機器130が認証連携装置100に対してアクセスするためのURLを設定する。
設定モジュール110の処理によって、機器130がサービス提供装置160の提供するサービスを利用する前に、認証連携装置100は、第1のURL、第3のURLを、サービス提供装置160から取得していることになる。
【0043】
認証連携モジュール115は、機器130を介してのサービス提供装置160からのアクセスに対して、IDトークンを発行し、そのIDトークンをサービス提供装置160の第3のURLに格納する。
【0044】
機器130は、通信モジュール135、設定モジュール140、サービス利用処理モジュール145を有している。
通信モジュール135は、通信回線195aを介して認証連携装置100の通信モジュール105と接続されており、通信回線195bを介してサービス提供装置160の通信モジュール165と接続されている。通信モジュール135は、認証連携装置100との通信、ファイアウォール190を介してサービス提供装置160との通信を行う。
【0045】
設定モジュール140は、認証連携装置100からの通信にしたがって、機器130がサービス提供装置160が提供するサービスを利用する場合に、その機器130が認証連携装置100に対してアクセスするためのURLを設定する。
したがって、設定モジュール140の処理によって、機器130がサービス提供装置160の提供するサービスを利用する前に、機器130は、そのサービスを利用する場合に、認証連携装置100に対してアクセスするためのURLを、認証連携装置100から取得していることになる。
サービス利用処理モジュール145は、機器130がサービス提供装置160が提供するサービスを利用する場合は、通信モジュール135を介して、認証連携装置100に対してアクセスし、第1のURLを取得する。
そして、サービス利用処理モジュール145は、第1のURLを用いて、サービス提供装置160にアクセスする。
【0046】
サービス提供装置160は、通信モジュール165、設定モジュール170、サービス提供用認証モジュール175、サービス提供処理モジュール180を有している。
通信モジュール165は、通信回線195bを介して、認証連携装置100の通信モジュール105、機器130の通信モジュール135と接続されている。通信モジュール165は、ファイアウォール190を介して認証連携装置100、機器130との通信を行う。
【0047】
設定モジュール170は、通信モジュール165を介して、認証連携装置100からの要求に応じて、その認証連携装置100に対して、機器130がサービス提供装置160にアクセスするための第1のURLと、IDトークンをサービス提供装置160に渡すための第3のURLを送信する。
そして、設定モジュール170は、認証連携装置100から、機器130が認証連携装置100にアクセスするための第2のURLを受信する。これらの処理は、認証連携装置100の設定モジュール110の処理に対応するものである。したがって、「第1のURL」、「第2のURL」、「第3のURL」は、前述した通りである。
なお、前述したように、認証連携装置100に対する要求と送信(サービス提供装置160に対する送信と要求に該当)は、1回の通信で行ってもよい。
設定モジュール170の処理によって、機器130がサービス提供装置160の提供するサービスを利用する前に、サービス提供装置160は、第2のURLを、認証連携装置100から取得していることになる。
【0048】
サービス提供用認証モジュール175は、機器130からのアクセスに応答して、機器130を介して、認証連携装置100の第2のURLにアクセスする。
次に、サービス提供用認証モジュール175は、IDトークンが発行されたことを確認し、機器130にサービス提供を開始するように、サービス提供処理モジュール180を制御する。
サービス提供処理モジュール180は、サービス提供用認証モジュール175の制御にしたがって(IDトークンが発行されたことを確認された場合)、機器130にサービス提供を開始する。サービス提供処理モジュール180が、機器130に提供するサービスは、サービス提供処理モジュール180自身がそのサービスの処理を行ってもよいし、他の装置(後述するサービス装置265)が処理するサービスであってもよい。
【0049】
図2は、本実施の形態を利用したシステム構成例を示す説明図である。
認証連携装置100、機器130a、機器130b、機器130cは、通信回線195aを介してそれぞれ接続されている。
認証連携装置100は、前述した連携認証の機能の他に、通信回線195aに接続されている機器130の管理、機器130を利用するユーザーの管理等を行う。
機器130は、ユーザーが利用するものであって、例えば、パーソナルコンピュータ、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)等がある。機器130を利用するには、機器130による認証が必要である。認証として、ユーザーID(ユーザー名、メールアドレス等を含む)とパスワードの組み合わせ、ICカードの利用、指紋、虹彩、顔等の生体認証等がある。
ファイアウォール190は、前述したように、外部からの不正なアクセスを、ファイアウォール190内の通信回線、機器等に侵入させないようにしている。
通信回線195a、通信回線195bは、無線、有線、これらの組み合わせであってもよい。例えば、通信回線195aとして、通信インフラとしてのインターネット等、通信回線195bとして、通信インフラとしてのイントラネット等であってもよい。
認証連携装置100、機器130a、機器130b、機器130cは、通信回線195a、ファイアウォール190、通信回線195bを介して、サービス提供装置160、サービスD装置265D、サービスE装置265Eと接続されている。
【0050】
サービス提供装置160とサービスA装置265A、サービスB装置265B、サービスC装置265Cは、通信回線を介して接続されている。サービス提供装置160は、認証連携装置100等からの要求に応じて、サービスを提供する。ここでサービスとは、コンピュータ(コンピュータを内蔵している装置を含む)とソフトウェアが、利用者、他の機器、他のソフトウェア等に対して提供する機能群や働きのことをいう。また、文脈によっては、サービスは、そのサービスを提供するコンピュータ資源(コンピュータとソフトウェア)を指す。したがって、人間のみで提供するサービスは含まない。なお、サービスを提供するコンピュータは、1つであってもよいし、複数であってもよい。具体的には、サーバーと呼ばれるコンピュータであってもよいし、クラウド(サーバー群)等であってもよい。以下、サービスとしてクラウドサービスを例示して説明する。例えば、データセンター(文書共有を支援するクラウドサービス)、スキャナで読み込んだ文書を翻訳するクラウドサービス、移動先のプリンタからオンデマンドでプリントするクラウドサービス、スキャナで読み込んだレシートから経理処理を行うクラウドサービス等がある。サービス提供装置160は、これらのサービスそのものをサービス提供装置160自身が提供してもよいし、他の装置(サービス装置265)が提供するサービスのポータル(入り口)としての機能を有していてもよい。サービス提供装置160が提供するサービスの処理を行う他の装置として、サービス提供装置160に直接接続しているサービスA装置265A、サービスB装置265B、サービスC装置265C等の他に、通信回線195bを介して接続されているサービスD装置265D、サービスE装置265E等であってもよい。
【0051】
図3は、本実施の形態(主に、認証連携装置100、サービス提供装置160)による処理例を示すフローチャートである。この処理例は、サービス提供装置160の提供するサービスを機器130が利用する前に行われる、認証連携装置100とサービス提供装置160の設定処理である。
ステップS302では、認証連携装置100は、サービス提供装置160に対して、設定情報の提供及び要求を行う。設定情報の提供として、認証連携装置100はサービス提供装置160に提供情報テーブル400a1を送信する。
図4(a1)は、提供情報テーブル400a1のデータ構造例を示す説明図である。提供情報テーブル400a1は、認証エンドポイントURL欄415を有している。認証エンドポイントURL欄415は、認証エンドポイントURL(第2のURL)を記憶している。認証エンドポイントURLとは、IDトークン発行用のIDである。設定情報の要求として、認証連携装置100はサービス提供装置160に応答情報テーブル450b1を要求する。
図4(b1)は、応答情報テーブル450b1のデータ構造例を示す説明図である。応答情報テーブル450b1は、OpenIDConnect開始URL欄460、リダイレクトURL欄465を有している。OpenIDConnect開始URL欄460は、OpenIDConnect開始URL(第1のURL)を記憶する。リダイレクトURL欄465は、リダイレクトURL(第3のURL)を記憶する。もちろんのことながら、ステップS302の時点では、応答情報テーブル450b1内は空欄である。OpenIDConnect開始URLとは、OIDC開始用のサービス提供装置160へのURLである。リダイレクトURLとは、発行したIDトークンの受け渡し用のURLである。
【0052】
ステップS304では、サービス提供装置160は、ステップS302で受信した設定情報に基づく設定を行う。前述の提供情報テーブル400a1をサービス提供装置160内に設定する。
ステップS306では、サービス提供装置160は、認証連携装置100に対して、設定情報を提供する。サービス提供装置160は、前述の応答情報テーブル450b1に値をセットして、認証連携装置100に送信する。
ステップS308では、認証連携装置100は、ステップS306で受信した設定情報に基づく設定を行う。前述の応答情報テーブル450b1を認証連携装置100内に設定する。
【0053】
前述の提供情報テーブル400a1を提供情報テーブル400a2、応答情報テーブル450b1を応答情報テーブル450b2としてもよい。
図4(a2)は、提供情報テーブル400a2のデータ構造例を示す説明図である。提供情報テーブル400a2は、認証エンドポイントURL欄415、署名鍵欄420を有している。認証エンドポイントURL欄415は、認証エンドポイントURLを記憶している。署名鍵欄420は、署名鍵を記憶している。提供情報テーブル400a2は、提供情報テーブル400a1に署名鍵欄420を付加したものである。署名鍵とは、IDトークン署名用公開鍵である。なお、署名は秘密鍵で行い、公開鍵で検証する。
図4(b2)は、応答情報テーブル450b2のデータ構造例を示す説明図である。
応答情報テーブル450b2は、OpenIDConnect開始URL欄460、リダイレクトURL欄465、暗号鍵欄470を有している。OpenIDConnect開始URL欄460は、OpenIDConnect開始URLを記憶している。リダイレクトURL欄465は、リダイレクトURLを記憶している。暗号鍵欄470は、暗号鍵を記憶している。応答情報テーブル450b2は、応答情報テーブル450b1に暗号鍵欄470を付加したものである。暗号鍵とは、IDトークン暗号用公開鍵である。なお、公開鍵で暗号化し、秘密鍵で復号する。
【0054】
さらに、前述の提供情報テーブル400a1を提供情報テーブル400a3、応答情報テーブル450b1を応答情報テーブル450b3としてもよい。
図4(a3)は、提供情報テーブル400a3のデータ構造例を示す説明図である。
提供情報テーブル400a3は、issuer欄405、client_id欄410、認証エンドポイントURL欄415、署名鍵欄420、署名アルゴリズム欄425を有している。issuer欄405は、issuerを記憶している。client_id欄410は、本実施の形態において、クライアントを一意に識別するための情報(client_id:identification)を記憶している。認証エンドポイントURL欄415は、認証エンドポイントURLを記憶している。署名鍵欄420は、署名鍵を記憶している。署名アルゴリズム欄425は、署名アルゴリズムを記憶している。提供情報テーブル400a3は、提供情報テーブル400a2にissuer欄405、client_id欄410、署名アルゴリズム欄425を付加したものである。issuerとは、IDトークン発行者(認証連携装置100)のIDである。client_idとは、IDトークン発行者(認証連携装置100)がサービス提供装置160に割り振るIDである。暗号アルゴリズムとは、IDトークン暗号用のアルゴリズムのリストである。
なお、暗号アルゴリズムは双方(認証連携装置100、サービス提供装置160)が対応している(搭載している)必要があるため、次のようにして調停する。
・認証連携装置100が、認証連携装置100自身が使用可能な暗号アルゴリズムのリストを送信する。
・サービス提供装置160は受け取ったリストの中から、サービス提供装置160自身が使用可能な暗号アルゴリズムを一つ(ずつ)選択し、選択した暗号アルゴリズムを応答する。
なお、認証連携装置100がサービス提供装置160(又は、サービス提供装置160が認証連携装置100)に、一方的に使用する暗号アルゴリズムを伝えるようにしてもよい。
図4(b3)は、応答情報テーブル450b3のデータ構造例を示す説明図である。
応答情報テーブル450b3は、プロバイダID欄455、OpenIDConnect開始URL欄460、リダイレクトURL欄465、暗号鍵欄470、暗号アルゴリズム欄475を有している。プロバイダID欄455は、本実施の形態において、プロバイダを一意に識別するための情報(プロバイダID)を記憶している。OpenIDConnect開始URL欄460は、OpenIDConnect開始URLを記憶している。リダイレクトURL欄465は、リダイレクトURLを記憶している。暗号鍵欄470は、暗号鍵を記憶している。暗号アルゴリズム欄475は、暗号アルゴリズムを記憶している。応答情報テーブル450b3は、応答情報テーブル450b2にプロバイダID欄455、暗号アルゴリズム欄475を付加したものである。プロバイダIDとは、サービス提供装置160が認証連携装置100に割り振るIDである。署名アルゴリズムとは、IDトークン署名用のアルゴリズムのリストである。
なお、署名アルゴリズムは双方(認証連携装置100、サービス提供装置160)が対応している(搭載している)必要があるため、次のようにして調停する。
・認証連携装置100が、認証連携装置100自身が使用可能な署名アルゴリズムのリストを送信する。
・サービス提供装置160は受け取ったリストの中から、サービス提供装置160自身が使用可能な署名アルゴリズムを一つ(ずつ)選択し、選択した署名アルゴリズムを応答する。
なお、認証連携装置100がサービス提供装置160(又は、サービス提供装置160が認証連携装置100)に、一方的に使用する署名アルゴリズムを伝えるようにしてもよい。
【0055】
図5は、本実施の形態(主に、認証連携装置100、機器130)による処理例を示すフローチャートである。この処理例は、サービス提供装置160の提供するサービスを機器130が利用する前に行われる、認証連携装置100の設定処理である。
ステップS502では、認証連携装置100は、機器130に対して、設定情報を提供する。設定情報の提供として、認証連携装置100は機器130に機器設定情報テーブル600を送信する。
図6は、機器設定情報テーブル600のデータ構造例を示す説明図である。機器設定情報テーブル600は、認証連携装置URL欄605を有している。認証連携装置URL欄605は、機器130が連携認証装置100に対してアクセスするためのURLを記憶している。
ステップS504では、機器130は、設定情報に基づく設定を行う。前述の機器設定情報テーブル600を機器130内に設定する。
【0056】
図7は、本実施の形態(機器130、認証連携装置100、サービス提供装置160、サービス装置265)による処理例を示すフローチャートである。
認証連携装置100の管理対象となる機器130にログインすることで、機器130へのログインのみでサービス提供装置160へのログインは不要で、サービス装置265によるサービス(例えば、経理処理を行うクラウドサービス)の利用を可能とする。
認証連携装置100及びサービス提供装置160への認証処理シーケンスを示すものである。なお、サービス提供装置160は、OpenID Connect仕様にしたがったフレームワーク上で動作するため、認証連携においてもOpenID Connectを前提とした処理となる。
【0057】
ステップS702では、ユーザー710は、機器130に対して、カード認証/手打ち認証用のICカードの読み込ませ/ユーザーIDとパスワードの組み合わせの打ち込みを行う。
ステップS704では、機器130は、認証連携装置100に対して、認証を依頼する。もちろんのことながら、認証できない場合には、以下の処理は行われず、ユーザー710はサービス装置265によるサービスを利用することはできない。
【0058】
ステップS706では、ユーザー710は、機器130に対して、サービス装置265によるサービスを利用するための操作を行う。
ステップS708では、機器130は、認証連携装置100に対して、OIDC開始URL(第1のURL)を要求し、取得する。
【0059】
ステップS710では、機器130は、サービス提供装置160に対して、OIDC開始URLへアクセスする。
ステップS712では、サービス提供装置160は、機器130を経由して(リダイレクト機能を用いて)、認証連携装置100に対して、認可要求を行う。つまり、認証エンドポイントURL(第2のURL)へのアクセスを行う。そして、認証連携装置100は、IDトークンを発行し、そのIDトークンをリダイレクトURL(第3のURL)に格納する。
【0060】
ステップS714では、認証連携装置100は、機器130を経由して(リダイレクト機能を用いて)、サービス提供装置160に対して、IDトークンの応答を行う。
ステップS716では、サービス提供装置160は、機器130に対して、サービス用のトークンを応答する。
ステップS718では、機器130は、サービス装置265に対して、サービス用のトークンを用いて、サービスの利用を開始する。
【0061】
図8は、本実施の形態による処理例を示す説明図である。
認証連携装置100におけるユーザーの管理とサービス提供装置160におけるユーザーの管理との対応例を示している。機器130のユーザー(つまり、認証連携装置100が管理しているユーザー)は、サービス提供装置160によっても管理されている。ユーザーの管理は、木構造を用いている。認証連携装置100に登録されているユーザーをユーザー反映機能によりサービス提供装置160へ登録することが可能である。認証連携の対象となったユーザーは、サービス提供装置160内では属性変更不可となり、認証連携装置100側でのみ属性変更が可能となる。
例えば、認証連携装置100では、2つのテナント(テナント810、テナント826)があり、そのテナントの下には、ユーザー(ユーザー812等)又はユーザーグループ(例えば、ユーザーグループ814等)があり、ユーザーグループの下にはユーザー(ユーザー816等)がある。一方、サービス提供装置160では、3つのテナント(テナント840、テナント850、テナント858)があり、そのテナントの下には、ユーザー(ユーザー842等)がある。
なお、サービス提供装置160ではユーザーグループを省略しているが、サービス提供装置160内にもユーザーグループを設けてもよい。また、ユーザーグループの下にさらにユーザーグループを設けてもよい。
なお、テナントとは、認証連携装置100の所有者(会社等の法人を含む)とサービス提供装置160の所有者(会社等の法人を含む)との間に交わされた契約に対応し、サービス提供装置160が提供するユーザーグループの単位である。1つのテナントは、テナント管理者と一般ユーザーで構成され、サービス提供装置160からの招待メールを受け取って、テナントに参加したユーザーだけテナント(又は、サービス提供装置160)を利用できる。ただし、招待メールが発行されるきっかけは、テナント管理者が、認証連携装置100上で管理されるデータを編集し、ユーザーをテナントに関連付けることである。
【0062】
図9は、本実施の形態による処理例を示す説明図である。
イントラ内(ファイアウォール190内)に、アクティブ・ディレクトリー910、認証連携装置100、機器130が設置されており、イントラ外(ファイアウォール190外)に、サービス提供装置160が設置されている。
アクティブ・ディレクトリー910(Active Directory(登録商標))は、例えば、社内のユーザー、パーソナルコンピュータを管理する。認証連携装置100は、社内のユーザー、機器130を管理する。一般的には、認証連携装置100より先にアクティブ・ディレクトリー910が導入されており、アクティブ・ディレクトリー910が管理しているユーザー数も認証連携装置100が管理しているユーザーより多い。したがって、アクティブ・ディレクトリー910が管理しているユーザーを、認証連携装置100にも反映させている。そして、認証連携装置100のユーザーを、前述したようにサービス提供装置160にも反映させている。つまり、アクティブ・ディレクトリー910のユーザー情報を認証連携装置100がサービス提供装置160に反映すると共に、前述の
図3、
図5の例による設定処理によって、認証連携装置100とサービス提供装置160との間での信頼関係を構築する。つまり、ユーザー710が機器130aで認証された場合は、サービス提供装置160におけるサービスをログインなしで(ユーザー710のログイン処理は、機器130aでの1回だけで)利用できる環境を提供する。
これによって、認証連携装置100の管理者による工数を削減している。顧客におけるアクティブ・ディレクトリー910の改修をせずに、認証連携装置100がサービス提供装置160での認証へのアクティブ・ディレクトリー910のユーザー情報の同期(追加/更新/削除)を定期的に実施するため、管理者の工数を削減できる。さらに、認証連携装置100の機器130の管理により、一括で機器130への設定を反映することができる。
また、操作性を向上させることができる。ユーザー710は機器130の認証のみで、サービス提供装置160のサービスを利用することができるようになる。
【0063】
図10は、従来技術による処理例を示す説明図である。本実施の形態(認証連携装置100、機器130、サービス提供装置160)を用いない場合の例を示している。
イントラ内(ファイアウォール190内)に、アクティブ・ディレクトリー910、機器1030(
図10の例では複数)が設置されており、イントラ外(ファイアウォール190外)に、サービス提供装置1060が設置されている。
アクティブ・ディレクトリー910を利用している環境で、サービス提供装置1060が提供しているサービスを利用する場合、以下の状況となる。
ユーザー710は、サービス提供装置1060のサービスの利用時、機器1030とサービス提供装置1060が提供するサービスそれぞれで認証が必要となる。
図10の例では、サービスA連携、サービスB連携のそれぞれでログインが必要である。なお、初回のログイン時に機器1030のキャッシュ機能を使えば、次回以降ログインの手間が省ける。しかし、機器1030毎にキャッシュするため、別の機器1030ではログインが必要となり、ユーザー710の使い勝手は悪い。
図9の例に示したように、本実施の形態を用いた場合、ユーザー710は機器130の認証のみで、サービス提供装置160のサービスを利用することができるようになる。また、そのための環境を、認証連携装置100がサービス提供装置160、機器130への設定によって構築している。
【0064】
図11以降の図を用いて、本実施の形態のさらなる詳細を示す実施例を説明する。
図11〜
図15の例を用いて、本実施例を説明するにあたって前提となる技術を説明する。
図16〜
図22の例を用いて、本実施例を説明する。
【0065】
まず、証明書の概要について説明する。
証明書の目的について説明する。証明書は、署名検証や暗号処理に使用する公開鍵の身元を証明するものであり、PKI(Public Key Infrastructure、公開鍵暗号基盤)の構成要素である。
証明書には、証明書テーブル1100の情報が含まれる。
図11は、証明書テーブル1100のデータ構造例を示す説明図である。証明書テーブル1100は、名前欄1110、公開鍵欄1115、有効期間欄1120、発行者欄1125を有している。名前欄1110は、名前を記憶している。ここでの名前は、証明書の身元の名前である。公開鍵欄1115は、公開鍵を記憶している。ここでの公開鍵は、署名検証や暗号化に用いる鍵である。有効期間欄1120は、有効期間を記憶している。ここでの有効期間は、本証明書の有効期間である。発行者欄1125は、発行者を記憶している。ここでの発行者は、本証明書の発行者(本証明書の保証者)を示している。
証明書は認証局(CA:Certification Authority)が発行し、証明書の発行者にはその認証局の名前が記載される。
保証は、認証局の秘密鍵による署名で行われる。検証者は証明書に含まれる公開鍵で署名の正当性を検証する。
【0066】
認証局も自身を保証する証明書があり、その証明書は他の認証局が発行する。このように証明書は保証の関係がチェーンのように連なる。これを証明書チェーンという。
図12は、証明書チェーンの例を示す説明図である。
ルート証明書1210の保証者は自分自身となる(自己発行)。そのため、ルート証明書1210には社会的な信用が求められる。
中間CA証明書1220は、ルート証明書1210から発行(保証)される。中間CA証明書1220は、中間認証局の証明書である。
EE証明書1230(EndEntity)は、中間CA証明書1220から発行(保証)される。EE証明書1230は、サービスを提供するサーバー(例えば、サービス提供装置160)など、特定の実態に発行される証明書であり、証明書チェーンの末端に位置する。
この例は3つの証明書(ルート証明書1210、中間CA証明書1220、EE証明書1230)からなるチェーンだが、チェーンを構成する数に制限はなく、4つ以上、2つ、又は、1つの場合もある。特に1つの場合は、自己署名証明書と呼ばれ、EndEntityとなるサーバー自身が発行する証明書などであり、主にテスト環境等で使用されるケースが多い。
【0067】
次に、通信における証明書の利用について説明する。
秘匿通信のプロトコルとしてSSL(Secure Sockets Layer)/TLS(Transport Layer Security)がある(現在は、TLS1.2が主流である。以下SSLと記載する)。SSLでは通信確立時に、クライアントは「サーバー証明書検証」を行い、サーバーの身元を確認する。身元を確認できたら、証明書内の公開鍵を用いて、秘匿通信(通信内容を暗号化した通信)を行う。
【0068】
SSL通信の概要について、
図13の例を用いて説明する。なお、証明書のみについて簡略化している。なお、サーバー1310はサービス提供装置160、クライアント1320は認証連携装置100、機器130に該当する。
通信相手の身元を確認できるように、予め信用できる各証明書を所持している。所持する証明書は必ずしもルート証明書である必要はなく、証明書の検証処理では、サーバーが提示する証明書チェーンのいずれかの証明書が、所持する証明書のいずれかを用いて検証できればよい。サーバー1310は、自身の証明書(ルート証明書A1210A、中間CA証明書1220、EE証明書1230)を所持しており、クライアント1320は、ルート証明書A1210A、ルート証明書B1210B、ルート証明書C1210Cを検証用に所持している。
【0069】
ステップS1302では、クライアント1320がサーバー1310に対して、通信開始する。
ステップS1304では、サーバー1310がクライアント1320に対して、サーバー証明書を提示する。
【0070】
ステップS1306では、クライアント1320が、ステップS1304で提示されたサーバー証明書の検証を行う。具体的には、以下の2つの処理を行う。
(1)証明書の身元確認
提示されたチェーンの中のいずれかの証明書が、検証用に所持する証明書と一致するかを確認する。つまり、証明書の公開鍵を用いて署名を検証する。
(2)EE証明書の名前の確認
EE証明書の名前が通信開示時に指定した通信先の名前(IPアドレスやFQDN(サイト名))と一致することを確認する。
【0071】
ステップS1308では、クライアント1320がサーバー1310に対して、秘匿通信を開始する。クライアント1320は、証明書の公開鍵を用いてデータを暗号化して送信する。サーバー1310は、受信した暗号化データを、秘密鍵を用いて復号する。
【0072】
次に、フェデレーションについて説明する。
それぞれがユーザー管理(ユーザーデータの管理、認証、認可の実現)を持つシステム間(例えば、認証連携装置100とサービス提供装置160)で、認証や認可の連携を実現する仕組みを、フェデレーションと呼ぶ。
フェデレーションにより、SSO(Single Sign−On、シングルサインオン)を実現する。
なお、狭義のSSOは、単一のシステム内の各サーバー(サービス提供サーバー)へのアクセスを、高々1回の認証(ログイン)処理になるように実現することを指す。
狭義のSSOでは、ユーザー管理や認証処理を一元化し、認証結果をサーバー間で共有することで実現する。
一方、フェデレーションは主に、狭義のSSOのような一元化を実現することが困難な、大きなシステム間で連携を実現する方式を指す。
【0073】
図14は、連携認証処理例の概要を示す説明図である。
フェデレーションは、大きく、
(1)信頼関係の構築(ステップS1402に相当)
(2)ユーザーデータの同期(プロビジョニング:Provisioning)(ステップS1404に相当)
を事前に行い、それにより、
(3)認証処理の委譲(システムBへの認証をシステムAが代行)(ステップS1406に相当)
が実現される。
【0074】
ステップS1402では、システムB1420がシステムA1410を信頼するための信頼関係の構築を行う。信頼関係の構築は、予め、署名や暗号化のための公開鍵や、ステップS1406で用いるプロトコルで連携するための互いのアクセスポイント(URL)等の情報を交換しあうことで、信頼関係を構築する。
ステップS1404では、システムA1410がシステムB1420に対して、ユーザーデータの同期(プロビジョニング)を行う。つまり、システムA1410が管理しているユーザーデータA1415Aと、システムB1420が管理しているユーザーデータB1425Bを同期させる。
ステップS1406では、システムB1420がシステムA1410に対して、認証処理の委譲を行う。認証処理の委譲では、SAML、OIDC(OpenID Connect)といったプロトコルが使われる。
【0075】
図15は、従来技術による処理例(本実施例を用いない処理例)を示す説明図である。一般的な認証連携の手順を示すものである。
認証連携装置1500、アクティブ・ディレクトリー1510、機器1530が、通信回線を介して接続されている。機器1530、サービス提供装置1560が、通信回線を介して接続されている。機器1530とサービス提供装置1560間には、ファイアウォールがある。
ステップS1502では、機器1530のパネル(表示画面の一例)上で、ユーザーが機器1530にログインすると、認証連携装置1500に認証要求を行う。
認証連携装置1500がアクティブ・ディレクトリー1510と連携している場合は、ステップS1504で、認証処理をさらにアクティブ・ディレクトリー1510に要求する。
ステップS1502又はステップS1504で認証が成功したら、認証結果を機器1530に返す。
【0076】
ステップS1506では、機器1530は、サービス提供装置1560にアクセスする。前回のステップ1512で受け取ったOAuthトークン1535がある場合、それを提示する。その場合、ステップS1508、ステップS1510は省略され、ステップS1512に進む。
【0077】
ステップS1508では、サービス提供装置1560は機器1530にログイン画面を返す。
ステップS1510では、ユーザーが入力したログイン情報をサービス提供装置1560に渡す。
ステップS1512では、サービス提供装置1560は受け取ったログイン情報(又は、ステップS1506でOAuthトークン1535を受け取った場合は、そのOAuthトークン1535)を検証し、サービス用の画面情報を機器1530に返す。この時、サービスアクセス用のチケット(OAuthトークン1535)も返却する。
なお、ステップS1512で受け取ったOAuthトークン1535は、機器1530にキャッシュされる。有効期間が切れるまでは、以後このトークンを提示することで、ログイン操作はスキップされる。
【0078】
図16は、本実施例による処理例を示す説明図である。
図7の例に示したフローチャートによる処理例に相当する。
認証連携装置1600、アクティブ・ディレクトリー1610、機器1630が、通信回線を介して接続されている。機器1630、サービス提供装置1660が、通信回線を介して接続されている。機器1630とサービス提供装置1660間には、ファイアウォールがある。
【0079】
アクティブ・ディレクトリー1610は、イントラネット内のユーザーを管理するサーバーである。なお、必須構成要素ではない。
認証連携装置1600(認証連携装置100に相当)は、アクティブ・ディレクトリー1610やサービス提供装置1660との間で認証連携を実現するサーバーである。ユーザー管理サーバーを兼ねることもできる。特に、認証連携装置1600は、ユーザー管理の他、機器1630の管理も担う。例えば、機器1630の各種設定や連携を行う。
【0080】
機器1630(機器130に相当)は、顧客のイントラネットに配置され、認証連携装置1600に管理される機器である。例えば、複合機がある。また、機器1630は、複数あってもよい。
サービス提供装置1660(サービス提供装置160に相当)は、クラウドサービスを行う。認証を統括するプラットフォームである認証基盤や、各サービスを提供するサービス提供サービス等を担う。
【0081】
ステップS1602では、機器1630のパネル上で、ユーザーが機器1630にログインすると、認証連携装置1600に認証要求を行う。
認証連携装置1600がアクティブ・ディレクトリー1610と連携している場合は、ステップS1604で、認証処理をさらにアクティブ・ディレクトリー1610に要求する。
ステップS1602又はステップS1604で認証が成功したら、認証情報をCookieとして、ステップS1606で用いるURLとともに機器1630に返す。
【0082】
ステップS1606では、機器1630は、ステップS1602又はステップS1604で受け取ったURL(サービス提供装置1660)にアクセスする。
前回のステップS1614で受け取ったOAuthトークン1635がある場合、それを提示(機器1630がサービス提供装置1660にOAuthトークン1635を送信)する。その場合、ステップS1608〜ステップS1612は省略され、ステップS1614に進む。
【0083】
ステップS1608では、サービス提供装置1660は、機器1630にログイン画面を返す代わりに、認証連携装置1600の認証用URL(ステップS1610)へのリダイレクトを応答する。
ステップS1610では、リダイレクトを受けた機器1630は、認証連携装置1600へリダイレクトの通信を行う。この場合、ステップS1602の応答で返却された認証情報(Cookie)を付与して通信する。
【0084】
ステップS1612では、認証連携装置1600は、ステップS1608で受け取った認証情報(Cookie)を元に、ログインユーザーの情報を記載したIDトークン1605を生成し、そのIDトークン1605に署名と暗号を施し、サービス提供装置1660へのリダイレクトを応答する。応答を受けた機器1630は、IDトークン1605をサービス提供装置1660に渡す。
【0085】
ステップS1614では、サービス提供装置1660は受け取ったIDトークン1605を確認(復号と署名の検証)し(又は、ステップS1606でOAuthトークン1635を受け取った場合は、それを検証し)、サービス用の画面情報を機器1630に返す。この時、サービスアクセス用のチケット(OAuthトークン1635)も返却する。
なお、ステップS1614で受け取ったOAuthトークン1635は、機器1630にキャッシュされる。有効期間が切れるまでは、以後このトークンを提示することで、ステップS1608〜ステップS1612のステップは省略される。
【0086】
図17は、本実施例による機器1630の提示例を示す説明図である。
機器1630のパネルに画面1700を表示する。
図17(a)の例は、機器1630へのログイン画面を示している。画面1700AにユーザーID欄1705、パスワード欄1710を表示する。
ステップS1702では、機器1630は、ユーザーID、パスワードを受け付けて、ログイン処理する。
【0087】
図17(b)の例は、機器1630でのログイン後のトップ画面を示している。画面1700Bにコピーボタン1715、プリントボタン1720、サービスAボタン1725、サービスBボタン1730を表示する。
ステップS1704では、コピーやプリントなどの機器1630単体の機能(コピーボタン1715、プリントボタン1720)や、サービス提供装置1660が提供する各サービスと連携する機能(サービスAボタン1725、サービスBボタン1730)を実行するための、各種ボタンを配置表示する。
【0088】
本実施例における認証連携では、全ての機器1630において、常にサービスへのログイン画面(画面1700C)がスキップされる。つまり、ステップS1706を経ずに、ステップS1708に進む。
なお、従来のOAuth連携(
図15に示した処理例)では、機器1530毎に2回目以降のサービス利用では(OAuthトークンの有効期限が切れるまでは)、サービスへのログイン画面(画面1700C)がスキップされる。
【0089】
図17(c)の例は、サービス提供装置1660が提供するサービスへのログイン画面を示している。画面1700CにサービスAにおけるユーザーID欄1735、サービスAにおけるパスワード欄1740を表示する。
ステップS1706では、サービス用のボタン(例えば、サービスAボタン1725)が押されると、サービスAへのログイン画面を表示する。
なお、従来のOAuth連携(
図15に示した処理例)では、機器1530毎に最初の1回(及びトークンの有効期限が切れた後)は、サービスへのログイン操作(ステップS1706の処理)が必要になる。
【0090】
図17(d)の例は、サービス提供装置1660が提供するサービスログイン後のトップ画面を示している。画面1700DにサービスAのトップ画面1745を表示する。
ステップS1708では、サービスA用の画面を表示する。
【0091】
図18は、本実施例による処理例を示す説明図である。認証連携装置1600、アクティブ・ディレクトリー1610、機器1630、サービス提供装置1660間の処理例を示している。
構築手順として、次の3つがある。
(1)認証連携装置1600と機器1630との間での信頼関係を構築する。
図19の例を用いて後述する。
(2)認証連携装置1600(又はアクティブ・ディレクトリー1610)が管理するユーザー情報を、サービス提供装置1660に同期させる。
(3)認証連携装置1600が機器1630に設定する。
図20の例を用いて後述する。
【0092】
ステップS1802では、認証連携装置1600とサービス提供装置1660は、互いに公開鍵とURL1805等の情報を交換する。
認証連携装置1600がアクティブ・ディレクトリー1610と連携している場合は、ステップS1804で、アクティブ・ディレクトリー1610のユーザーデータ1810を認証連携装置1600のユーザーデータ1815としてコピーする。
ステップS1806では、認証連携装置1600のユーザーデータ1815をサービス提供装置1660に同期する。サービス提供装置1660はユーザーデータ1820を得る。
ステップS1808では、認証連携装置1600が機器1630に設定を行う。URL(機器設定情報テーブル600)と認証連携装置1600の証明書を設定する。
【0093】
図19は、信頼関係構築情報テーブル1900のデータ構造例を示す説明図である。
信頼関係の構築例を示すものである。認証連携装置1600からサービス提供装置1660への1回の通信で、信頼関係を構築する。例えば、信頼関係構築情報テーブル1900にしたがって、情報の交換処理を行う。
信頼関係構築情報テーブル1900の例に示すように、通信の上り(認証連携装置1600からサービス提供装置1660への通信)で、認証連携装置1600からの情報を提供し、通信の下り(サービス提供装置1660から認証連携装置1600への通信)で、サービス提供装置1660からの情報を入手する。
【0094】
具体的には、信頼関係構築情報テーブル1900は、項目1910、通信の上り1920、通信の下り1930を有している。そして、各行にプロバイダID1952、連携開始URL1954、認証用URL1956、IDトークン応答URL1958、署名検証用公開鍵1960、暗号用公開鍵1962を有している。
プロバイダID1952は、サービス提供装置1660が認証連携装置1600に割り当てた識別情報(ID)であり、通信の下り1930でサービス提供装置1660から認証連携装置1600に渡される。
連携開始URL1954は、
図16の例で示したステップ1606で用いるURLであり、通信の下り1930でサービス提供装置1660から認証連携装置1600に渡される。
認証用URL1956は、
図16の例で示したステップ1610で用いるURLであり、通信の上り1920で認証連携装置1600からサービス提供装置1660に渡される。
IDトークン応答URL1958は、
図16の例で示したステップ1612で用いるURLであり、通信の下り1930でサービス提供装置1660から認証連携装置1600に渡される。
署名検証用公開鍵1960は、サービス提供装置1660は、この署名検証用公開鍵1960を用いて署名を検証する。つまり、認証連携装置1600は、自身の秘密鍵で署名しているからである。通信の上り1920で認証連携装置1600からサービス提供装置1660に渡される。
暗号用公開鍵1962は、認証連携装置1600は、この暗号用公開鍵1962を用いて暗号化する。つまり、サービス提供装置1660は、自身の秘密鍵で復号するからである。通信の下り1930でサービス提供装置1660から認証連携装置1600に渡される。
【0095】
次に、認証連携装置1600が行う、機器1630への設定処理を示す。
図20は、認証連携装置1600でのSSL運用形態例を示す説明図である。
図21は、SSL運用形態と証明書との関係例を示す説明図である。
図22は、非SSLモードにおける証明書の発行処理例を示す説明図である。
認証連携装置1600は機器1630に、次の2つを設定する。
(1)開始URL。つまり、
図16の例で示したステップS1602で機器1630が認証連携装置1600にアクセスするURLである。
(2)認証連携装置1600の証明書。
【0096】
証明書の設定について、認証連携装置1500(従来の認証連携装置)のSSL運用形態は、
図20の例に示すSSL運用形態テーブル2000のようになっている。
SSL運用形態として「非SSLモード」である場合、認証連携装置1600外部の通信をHTTP(HyperText Transfer Protocol)で行う。なお、HTTPは、秘匿通信を行わない。
SSL運用形態として「SSLモード」である場合、認証連携装置1600外部の通信をHTTPS(HyperText Transfer Protocol Secure)で行う。なお、HTTPSは、秘匿通信を行う。
認証連携装置1500は、顧客のイントラネット内で運用されるため、その顧客の判断で、非SSLで運用する形態を用意している。
これは、SSLモードで運用するためには、第三者機関による証明書の発行や、認証連携装置1500や機器1530への各種設定が必要であり、構築のためには高度な知識と設定負担が必要になるためである。
しかし、本実施例(認証連携装置1600)における認証連携では、インターネット上のサービス提供装置1660と連携するため、たとえ非SSLモードであっても、認証連携装置1600とサービス提供装置1660間の通信では、セキュリティ上の観点から秘匿通信が強く求められる。
【0097】
そこで、例えば、
図21に示すSSL運用形態と証明書の関係テーブル2100にしたがって、SSL運用形態に応じて、証明書の設定処理を行う。
SSL運用形態として「非SSLモード」である場合、認証連携装置1600の証明書として「自己CA証明書2210」を用い、その発行者は「認証連携装置1600自身」であり、認証連携装置1600への設定は「不要」である。
SSL運用形態として「SSLモード」である場合、認証連携装置1600の証明書として「第三者機関発行の証明書」を用い、その発行者は「第三者機関」であり、認証連携装置1600への設定は「顧客が設定」することになる。
そして、非SSLモードにおける証明書は、
図22の例に示すように、自己CA証明書2210は、認証連携装置1600自身が自己発行したものであり、自己CA証明書2210を用いて、サービス提供装置証明書2220を発行(署名)する。
つまり、認証連携装置1600が認証局となり、自身用の自己CA証明書2210(サーバー証明書)を発行する。顧客には、認証連携装置1600を信用してもらうことになる。
認証連携装置1600が発行した認証局用の証明書(自己CA証明書2210)を機器1630に登録する。機器1630は、認証連携装置1600と通信する際に、この証明書(自己CA証明書2210)を用いて、認証連携装置1600の正当性を検証する。
自己CA証明書2210を機器1630に登録することで、認証連携装置1600の名前(IPアドレスやFQDN(サイト名))が変わっても、機器1630への再設定が不要となる。
【0098】
図23を参照して、本実施の形態(又は実施例)の認証連携装置100、機器130、サービス提供装置160、認証連携装置1600、機器1630、サービス提供装置1660のハードウェア構成例について説明する。
図23に示す構成は、例えばパーソナルコンピュータ(PC)等によって構成されるものであり、スキャナ等のデータ読み取り部2317と、プリンタ等のデータ出力部2318を備えたハードウェア構成例を示している。
【0099】
CPU(Central Processing Unit)2301は、前述の実施の形態において説明した各種のモジュール、すなわち、通信モジュール105、設定モジュール110、認証連携モジュール115、通信モジュール135、設定モジュール140、サービス利用処理モジュール145、通信モジュール165、設定モジュール170、サービス提供用認証モジュール175、サービス提供処理モジュール180等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【0100】
ROM(Read Only Memory)2302は、CPU2301が使用するプログラムや演算パラメータ等を格納する。RAM(Random Access Memory)2303は、CPU2301の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはCPUバス等から構成されるホストバス2304により相互に接続されている。
【0101】
ホストバス2304は、ブリッジ2305を介して、PCI(Peripheral Component Interconnect/Interface)バス等の外部バス2306に接続されている。
【0102】
キーボード2308、マウス等のポインティングデバイス2309は、操作者により操作されるデバイスである。ディスプレイ2310は、液晶表示装置又はCRT(Cathode Ray Tube)等があり、各種情報をテキストやイメージ情報として表示する。また、ポインティングデバイス2309とディスプレイ2310の両方の機能を備えているタッチスクリーン等であってもよい。その場合、キーボードの機能の実現について、キーボード2308のように物理的に接続しなくても、画面(タッチスクリーン)上にソフトウェアでキーボード(いわゆるソフトウェアキーボード、スクリーンキーボード等ともいわれる)を描画して、キーボードの機能を実現するようにしてもよい。
【0103】
HDD(Hard Disk Drive)2311は、ハードディスク(フラッシュ・メモリ等であってもよい)を内蔵し、ハードディスクを駆動し、CPU2301によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、提供情報テーブル400、応答情報テーブル450、機器設定情報テーブル600等が格納される。さらに、その他の各種データ、各種コンピュータ・プログラム等が格納される。
【0104】
ドライブ2312は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体2313に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース2307、外部バス2306、ブリッジ2305、及びホストバス2304を介して接続されているRAM2303に供給する。なお、リムーバブル記録媒体2313も、データ記録領域として利用可能である。
【0105】
接続ポート2314は、外部接続機器2315を接続するポートであり、USB、IEEE1394等の接続部を持つ。接続ポート2314は、インタフェース2307、及び外部バス2306、ブリッジ2305、ホストバス2304等を介してCPU2301等に接続されている。通信部2316は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部2317は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部2318は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【0106】
なお、
図23に示すハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、
図23に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに
図23に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器(携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む)、情報家電、ロボット、複写機、ファックス、スキャナ、プリンタ、複合機などに組み込まれていてもよい。
【0107】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray(登録商標) Disc)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分若しくは全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。