説明

ユーザ認証システム、ユーザ認証方法およびコンピュータが実行するためのプログラム

【課題】アプリケーションのユーザが外部サービスで必要とされる認証を考慮せずに、ユーザのログイン操作の中で自動的に認証手続きが実施され、利用が可能となる。
【解決手段】ログイン処理が開始されると、アクセス制御部11は、設定されたデータフローのフロー定義情報を取り出す。チェックしていない外部サービスが存在する場合は、フロー定義で利用する外部サービス情報を一つ取り出し、その外部サービスが第2の認証を要求している場合は、認証先として第2の認証をマークする。チェックしていない外部サービスが存在しない場合は、ログイン画面を表示し、ユーザが認証情報を入力すると第1の認証を実施する。第1の認証が成功すると、他に第2の認証部21がある場合は、認証を試みる。その認証が成功し、他に認証先が無い場合は、アプリケーション10を使って外部サービス20を利用する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザ認証システム、ユーザ認証方法およびプログラムに関し、詳細には、外部サービスを利用することを前提としたアプリケーションを備えた端末装置のユーザ認証システム、ユーザ認証方法およびプログラムに関する。
【背景技術】
【0002】
従来、外部サービスを利用することが前提となっているアプリケーションにおいて、外部サービスが要求するユーザ認証の機構をそのまま使い、アプリケーション自身のアクセス制御も行えるならば、利用者にとってもアプリケーション自身にとっても都合が良く、一般的にSSO(シングル・サイン・オン)機能という形で利用されている。
【0003】
ところが、現状では、外部サービスが、一般的なIDとパスワードにより認証を行う汎用的なユーザ認証手段(本明細書中では第1の認証手段という)ではなく、外部サービスの一部に組み込まれた認証手段(本明細書中では第2の認証手段という)を提供していることが多い。しかしながら、この第2の認証手段は、外部サービス以外で利用することを必ずしも想定していない。例えば、外部サービスを利用するアプリケーションには、認証結果として誰であるとして特定されたのかが伝達されず、認証に成功したのか失敗したのかしか伝達されないものもある。その結果、アプリケーション側には、認証に成功したユーザか否かの情報しか得られず、認証結果に基づいてきめ細かいアクセス制御機能を実現することは難しい。
【0004】
また、アプリケーション側でアクセス制御を行うためには、あらかじめ管理者がユーザに対して権限を割り当てておく必要がある。このような機能を実現するためには、候補となるユーザの一覧を取得し、そこからユーザを選んで権限を付与するという手順が必要となる。しかし、外部サービスにはユーザの一覧を提供する機能を持たない認証手段も存在する。
【0005】
この種の従来例としては、例えば下記に示す特許文献1〜3などがある。
【0006】
【特許文献1】特開2002−333928号公報
【特許文献2】特開2004−86490号公報
【特許文献3】特開2000−106552号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、このようなユーザ認証システムにあっては、ユーザ認証機構を有し、それに基づいてアクセス制御機能を提供する外部サービスがあったとしても、そのセキュリティ機能が、その装置内に閉じた機能しか提供されない場合には、十分なセキュリティと利便性とを確保することが難しいという問題がある。
【0008】
また、このような場合、認証手続きとサービス利用手続きとが組み合わさって不可分になっていることが多い。このため、複数の外部サービスを組み合わせて利用する場合には、手続きを「認証」と「サービスの利用」に分離して抽象化して扱えるならば、保守や機能拡張などの面で有利となる。しかし、上記したように個別に最適化された手続きになっている場合は、抽象化が阻害されてしまい、サービス毎に個別の対応が必要になってくるという問題がある。
【0009】
本発明は、上記に鑑みてなされたものであって、アプリケーションのユーザが外部サービスで必要とされる認証を考慮することなく、ユーザの最低限のログイン操作の中で自動的に必要な認証手続きが実施されて利用することができるユーザ認証システム、ユーザ認証方法、およびコンピュータが実行するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上述した課題を解決し、目的を達成するために、請求項1にかかる発明は、外部サービスを利用することを前提としたアプリケーションを備える端末装置と、前記端末装置に関するアクセス制御を行うアクセス制御手段と、前記端末装置のアプリケーションに対するアクセス制御の認証を行う第1の認証手段と、前記端末装置のアプリケーションが利用する外部サービスを提供する外部サービス機器と、前記外部サービス機器の一部に組み込まれ、外部サービスの利用時に認証を要求する第2の認証手段と、を備え、前記アクセス制御手段は、ユーザの入力した認証情報に基づいて前記第1の認証手段と前記第2の認証手段の認証を行い、両方の認証が成功した場合に前記アプリケーションの利用を可能とし、前記アプリケーション自身のアクセス制御を行う場合に前記第1の認証手段の結果得られた第1の認証子を利用することを特徴とする。
【0011】
また、請求項2にかかる発明は、請求項1に記載のユーザ認証システムであって、前記アクセス制御手段は、前記アプリケーションの機能および動作をカスタマイズする設定情報を検査し、その設定において必要な認証手段を抽出する抽出手段をさらに備え、前記アプリケーションの利用開始時の認証処理において、前記抽出手段で抽出された全ての認証手段に対して認証を試みることを特徴とする。
【0012】
また、請求項3にかかる発明は、請求項1に記載のユーザ認証システムであって、前記アクセス制御手段は、前記アプリケーションの機能および動作をカスタマイズする設定情報を作成する際に、設定に従った動作を行うのに必要な認証手段を抽出する抽出手段と、該抽出した認証手段と設定情報と対応付けて記録する記録手段とをさらに備え、前記アプリケーションの利用開始時の認証処理において、前記記録手段に記録されている全ての認証手段に対して認証を試みることを特徴とする。
【0013】
また、請求項4にかかる発明は、請求項1〜3のいずれか一つに記載のユーザ認証システムであって、前記第2の認証手段のうち、機能を実行するために必須の認証を必須認証手段とし、オプショナルな機能に関する認証をオプショナル認証手段として分類し、前記必須認証手段に関する認証が失敗すると認証に関わる処理を停止させるが、前記オプショナル認証手段に関する認証が失敗しても認証に関わる処理をスキップするだけで処理全体を停止させないようにすることを特徴とする。
【0014】
また、請求項5にかかる発明は、請求項4に記載のユーザ認証システムであって、前記必須認証手段と前記オプショナル認証手段との区別は、前記設定情報をカスタマイズする際に、管理者によって指定できるようにしたことを特徴とする。
【0015】
また、請求項6にかかる発明は、請求項4に記載のユーザ認証システムであって、前記必須認証手段と前記オプショナル認証手段との区別は、前記外部サービスの属性によって決定されることを特徴とする。
【0016】
また、請求項7にかかる発明は、請求項4に記載のユーザ認証システムであって、前記必須認証手段と前記オプショナル認証手段との区別は、前記アプリケーションが定義する外部サービスに対して与えられる役割によって決定することを特徴とする。
【0017】
上述した課題を解決し、目的を達成するために、請求項8にかかる発明は、外部サービスを利用することを前提としたアプリケーションを備える端末装置と、前記端末装置に関するアクセス制御を行うアクセス制御手段と、前記端末装置のアプリケーションが利用する外部サービスを提供する外部サービス機器と、前記外部サービス機器の一部に組み込まれ、外部サービスの利用時に認証を要求する第2の認証手段と、ユーザ属性が格納されたディレクトリサービスと、前記ディレクトリサービスを検索して、前記外部サービス機器に対するアクセス制御に必要なユーザ属性を取得する属性情報取得手段と、を備え、前記アクセス制御手段は、ユーザの入力した認証情報に基づいて前記第2の認証手段の認証を行い、認証が成功すると前記認証情報を使って前記属性情報取得手段により前記ディレクトリサービスを検索し、前記外部サービス機器へのアクセス制御に必要なユーザ属性を取得してアクセス制御を行うことを特徴とする。
【0018】
また、請求項9にかかる発明は、請求項8に記載のユーザ認証システムであって、前記第2の認証手段による認証の結果得られた第2の認証子と、前記ディレクトリサービスを検索した結果得られたユーザ属性とを組み合わせて第3の認証子を新たに作成し、前記アプリケーションは前記第2および第3の認証子を利用することを特徴とする。
【0019】
また、請求項10にかかる発明は、請求項1に記載のユーザ認証システムであって、前記アクセス制御手段は、前記第1の認証手段と前記第2の認証手段の認証を行って両方の認証が成功した後、前記第2の認証手段による認証の結果得られた第2の認証子と、認証後のセッション確立手続きで得られた外部サービスへの接続情報と、前記第1の認証手段による認証の結果得られた第1の認証子とを組み合わせて第4の認証子を生成し、前記端末装置のアプリケーションは、該第4の認証子を利用することを特徴とする。
【0020】
また、請求項11にかかる発明は、請求項8に記載のユーザ認証システムであって、前記アクセス制御手段は、前記第2の認証手段の認証を行って認証が成功した後、前記第2の認証手段による認証の結果得られた第2の認証子と、認証後のセッション確立手続きで得られた外部サービスへの接続情報と、前記属性情報取得手段により前記ディレクトリサービスを検索した結果得られた前記外部サービス機器へのアクセス制御に必要なユーザ属性とを組み合わせて第5の認証子を生成し、前記端末装置のアプリケーションは、該第5の認証子を利用することを特徴とする。
【0021】
上述した課題を解決し、目的を達成するために、請求項12にかかる発明は、外部サービスを利用することを前提としたアプリケーションを備えた端末装置のユーザ認証方法であって、前記端末装置のアクセス制御手段は、ユーザの入力した認証情報に基づいて、前記端末装置のアプリケーションに対するアクセス制御の認証を行う第1の認証と、前記外部サービス機器の一部に組み込まれ、外部サービスの利用時に認証を要求する第2の認証とを行うステップと、前記第1の認証と前記第2の認証の両方が成功した場合に前記アプリケーションの利用を可能とするステップと、前記アプリケーション自身のアクセス制御を行う場合に前記第1の認証の結果得られた第1の認証子を利用するステップと、を含むことを特徴とする。
【0022】
上述した課題を解決し、目的を達成するために、請求項13にかかる発明は、請求項12に記載のユーザ認証方法の各ステップをコンピュータに実行させることを特徴とするコンピュータが実行するためのプログラムである。
【発明の効果】
【0023】
本発明によれば、端末装置に外部サービスを利用することを前提としたアプリケーションを備え、アクセス制御手段により端末装置に関するアクセス制御を行い、第1の認証手段が端末装置のアプリケーションに対するアクセス制御の認証を行い、外部サービス機器は、端末装置のアプリケーションが利用する外部サービスを提供し、第2の認証手段は外部サービス機器の一部に組み込まれていて、外部サービスの利用時に認証を要求する。アクセス制御手段は、ユーザが入力した認証情報に基づいて第1の認証手段と第2の認証手段の認証を行い、両方の認証が成功するとアプリケーションの利用を可能とする。アプリケーション自身のアクセス制御には、第1の認証手段の結果得られた第1の認証子を利用する。このように、アプリケーションのユーザは、認証情報を入力すると、これに基づいてアクセス制御手段が第1の認証手段と第2の認証手段の認証を行い、両方の認証が成功するとアプリケーションの利用が可能になる。このため、外部サービスで要求される認証を考慮することなく、最低限のログイン操作を行うだけで自動的に必要な手続きが実施され、利用が可能になるという効果を奏する。特に、複数の外部サービスを利用する場合、あるいは使用される外部サービスが動的に変わる場合であっても、その対応を利用者の負担無しに行えるため、管理の手間や設定ミスなどを削減することができる。
【0024】
また、本発明によれば、端末装置に外部サービスを利用することを前提としたアプリケーションを備え、アクセス制御手段により端末装置に関するアクセス制御を行い、外部サービス機器は、端末装置のアプリケーションが利用する外部サービスを提供し、第2の認証手段は外部サービス機器の一部に組み込まれていて、ユーザ属性が格納されたディレクトリサービスを検索し、属性情報取得手段により外部サービス機器に対するアクセス制御に必要なユーザ属性を取得する。このように、アプリケーションは、ユーザに認証情報を入力させて、外部サービス機器の一部に組み込まれた第2の認証手段に対する認証を行い、認証に成功すると、同じ認証情報を使ってディレクトリサービスへユーザ属性の検索を行い、アプリケーション自身のアクセス制御を行う。これにより、外部サービス機器の第2の認証手段にユーザ認証機能を委ねることで、ユーザを一元管理することができ、認証機能に不足があってもユーザ属性をディレクトリサービスから取得することで、補うことができるという効果を奏する。
【発明を実施するための最良の形態】
【0025】
以下に添付図面を参照して、この発明にかかるユーザ認証システム、ユーザ認証方法およびコンピュータが実行するためのプログラムの最良な実施の形態を詳細に説明する。
【0026】
(第1の実施の形態)
図1は、本発明のユーザ認証システムの概略構成を示すブロック図である。図1に示すユーザ認証システムは、プリンタ機能といった外部サービスの利用を前提としたアプリケーション10を備える端末装置と、その端末装置に関するアクセス制御を行うアクセス制御部11と、端末装置のアプリケーション10に対するアクセス制御の認証を行う認証サーバなどの第1の認証部30と、端末装置のアプリケーション10が利用する外部サービス20を提供する外部サービス機器と、外部サービス機器の一部に組み込まれ、外部サービス20の利用時に認証を要求する第2の認証部21と、外部サービス20に関するアクセス制御を行うアクセス制御部22などによって構成されている。
【0027】
アプリケーション10は、事前に設定された設定情報に基づいて端末装置を利用するユーザに対し機能を提供するものである。その際の設定情報としては、外部サービス20を利用して機能を提供するように指定することが可能である。
【0028】
アクセス制御部11は、ユーザがアプリケーション10にアクセスするためのログイン処理の制御を行うものである。このアクセス制御部11の特徴は、ユーザの入力した認証情報に基づいて第1の認証部30と第2の認証部21の認証手続きが自動的に行われ、両方の認証が成功した場合は、アプリケーション10へのアクセスは勿論のこと、アプリケーション10を使って外部サービスの利用も可能となる。また、利用したい外部サービスが複数ある場合であっても、ユーザには最低限のログイン操作で利用できるようになる。
【0029】
外部サービス20は、端末装置のアプリケーション10が利用することを前提としているサービスであり、外部サービス機器により提供される。例えば、プリンタアプリケーションに対するプリンタであり、プリントサービスを提供する場合などが考えられる。
【0030】
第2の認証部21は、外部サービス20の一部として組み込まれた認証手段であって、通常は外部サービス以外で利用することを想定していない。このため、第2の認証部21は、認証機能を提供するものであるが、そのセキュリティ機能がその装置内に閉じた機能しか提供されない場合、十分なセキュリティ機能と利便性の両方を確保することは難しい。しかし、本発明では、ユーザの入力した認証情報に基づいてアクセス制御部11が第1の認証部30と第2の認証部21の認証手続きを自動的に行い、両方の認証が成功した場合にアプリケーション10へのアクセスと、アプリケーション10を使った外部サービス20の利用を可能とするため、セキュリティ機能と利便性の両方を確保することができる。
【0031】
アクセス制御部22は、外部サービス20にアクセスするためのログイン処理を制御するものである。本発明では、アプリケーション10のユーザが入力した認証情報に基づいてアクセス制御部11が第1の認証部30と第2の認証部21に対する認証手続きを行い、両方の認証が成功すると、アクセス制御部22はアプリケーション10から外部サービスへのアクセスを許可し、アプリケーションが外部サービスを利用することができる。
【0032】
第1の認証部30は、認証サーバなどで構成され、ユーザがユーザIDやパスワードを入力したユーザ情報に基づいて認証を行う汎用的な認証手段である。本発明では、アプリケーション10のユーザが入力した認証情報に基づいて第1の認証部30と第2の認証部21に対する認証手続きを行い、両方の認証が成功すると、ユーザがアプリケーション10へアクセスできると共に、そのアプリケーション10を使い外部サービス20を利用することができる。ユーザがアプリケーション10へアクセスする場合は、第1の認証部30による認証の結果得られた第1の認証子を利用する。
【0033】
図3は、図1の端末装置のアプリケーションにおける管理画面例を示す図である。第1の実施の形態におけるアプリケーションは、ユーザに一連の機能を提供するため、複数の外部サービスを組み合わせて利用するものである。このため、図3に示す管理画面では、アプリケーション10が実行するデータフローを簡単に表している。ここでは、例えば、文書データを管理画面のメインフロー上を左から投入すると(Svr(1)Input)、右に流れる過程で様々な処理が行われて必要な情報が付加され(Svr(7)OCR、Svr(8)Search)、最後に外部へ出力される(Svr(2)Output)。
【0034】
図4は、図3のように設定されたデータフローで参照される外部サービスの一覧表を示す図である。図3のようなデータフローを定義する場合は、図4の一覧表に登録されているサービスの中から選択するだけで、データフローを定義することができる。この外部サービスの一覧表には、外部サービスの名前、機能、接続先URL、認証方式、認証サービスのURLなどを関連付けられている。
【0035】
図5は、予め生成しておくユーザ認証システム内の認証方式のリスト例を示す図であり、処理フロー名や認証サービスのURLと関連づけられている。この認証方式のリストは予め生成しておき、図1のアクセス制御部11がアプリケーション10の機能および動作をカスタマイズする設定情報を検査し、その設定において必要な認証方式をリストから抽出する抽出手段としての抽出部(図示省略)をさらに備えている。このように、アプリケーション10の利用開始時に認証処理を行う場合、前記抽出部で抽出された全ての認証方式に対して認証を試みることができるので、利用したい外部サービスが複数あってもユーザは最低限度のログイン操作を行うだけで利用できるようになる。
【0036】
また、アクセス制御部11は、アプリケーション10の機能および動作をカスタマイズする設定情報を検査し、その設定に必要な認証方式をリストから抽出する前記抽出部に加え、その抽出された認証方式と設定情報とを対応付けて記録する記録手段としての記録部(図示省略)をさらに備えていてもよい。このように、アプリケーションの設定によって使用される外部サービスが動的に変わるアプリケーションの場合、必要な認証方式も変化する。しかし、ここでは設定に従った動作を行うのに必要な認証方式を抽出部で抽出し、抽出した認証方式と設定情報とを対応付けて記録部に記録し、その記録部に記録されている全ての認証方式に対して認証を試みるので、利用者の負担無しに行うことが可能となり、管理の手間や設定ミスなどを削減することができる。
【0037】
図2は、第1の実施の形態にかかる動作を説明するフローチャートである。アプリケーション10のユーザがログイン処理を開始すると、図2に示す手順で処理が自動的に実行され、その結果として、図2のログイン処理が成功してアプリケーションの利用を開始するか、ログイン失敗かが判明する。端末装置のユーザが外部サービス20の利用を前提としたアプリケーション10にアクセスする場合、ログイン処理が行われる。ログイン処理が開始されると、アクセス制御部11は、図3のように設定されたデータフローのフロー定義情報を図4の一覧表から取り出す(ステップS100)。
【0038】
ここで、チェックしていない外部サービスが存在するか否かを判断し(ステップS101)、外部サービスが存在する場合はフロー定義で利用する外部サービス情報を一つ取り出し(ステップS102)、その外部サービスが第2の認証を要求しているか否かを判断する(ステップS103)。第2の認証を要求している場合は、認証先として第2の認証をマークし(ステップS104)、第2の認証を要求していない場合はそのままの状態でステップS101に戻る。
【0039】
ステップS101において、チェックしていない外部サービスが存在しないか、認証先として全てマークし終わった場合は、不図示の端末装置の操作画面にログイン画面を表示する(ステップS105)。ここで、ユーザはログインに必要なユーザIDとパスワードを入力すると、アクセス制御部11は、この入力情報を使って第1の認証部30に対して第1の認証を実施する(ステップS106)。この第1の認証により得られた第1の認証子は、ユーザがアプリケーションに対してアクセス制御を行う場合に利用する。
【0040】
第1の認証が成功した場合は(ステップS107)、ステップS108に移行して、他に第2の認証部21などの認証先がマークされているか否かを判断する。他に認証先がある場合は、マークされた認証サービスに対して認証を試みる(ステップS109)。その結果認証が成功すると(ステップS110)、ステップS108に戻り、それ以外に認証先がマークされていないかを判断する。他に認証先が無く、実施すべき認証が全て成功している場合は、アプリケーション10を使って外部サービス20を利用することができる

【0041】
しかし、ステップS107において、第1の認証部30における認証がエラーになるか、第1の認証が成功しても第2の認証部21、あるいはそれ以外にマークされた認証部における認証がエラーになった場合は(ステップS110)、ログイン失敗として処理される。
【0042】
このように、第1の実施の形態によれば、アプリケーションに対するアクセス制御の認証を行う第1の認証部と、外部サービス機器の一部に組み込まれ、外部サービス利用時に認証を要求する第2の認証部とがあった場合でも、ユーザは最低限のログイン操作を行うだけで両方の認証処理が自動的に行われ、両方の認証が成功した場合にアプリケーションを使って外部サービスを利用することができる。
【0043】
また、第1の実施の形態によれば、アプリケーションのアクセス制御部は、機能および動作をカスタマイズする設定情報を検査して認証方式のリストを作成し、設定に応じて必要とする認証方式をリストから抽出し、その抽出された全ての認証方式に対して認証を試みるので、利用したい外部サービスが複数あったとしても、ユーザは最低限度のログイン操作を行うだけで利用できるようになる。
【0044】
さらに、第1の実施の形態によれば、アプリケーションのアクセス制御部は、設定に応じて必要とする認証方式をリストから抽出し、その抽出された認証方式と設定情報とを対応付けて記録するため、設定によって使用される外部サービスが動的に変わるアプリケーションであっても、認証方式と設定情報とが対応付けられ記録された全ての認証方式に対して認証を試みるので、利用者の負担無しに行うことが可能となり、管理の手間や設定ミスなどを削減することができる。
【0045】
(第2の実施の形態)
第2の実施の形態の特徴は、図1に示した第2の認証部21をアプリケーションの機能を実行するために必須の認証を行う必須認証手段としての必須認証部と、オプショナルな機能に関する認証を行うオプショナル認証手段としてのオプショナル認証部との2つに分類して処理する点にある。この必須認証部とオプショナル認証部とは、図1には図示していないが、第2の認証部21内に設けられ、必須認証部に関する認証が失敗した場合は、認証処理を停止させるが、オプショナル認証部に関する認証が失敗したとしても認証処理をスキップさせるだけで、認証処理全体は停止させないようにする。
【0046】
図6は、第2の実施の形態にかかる動作を説明するフローチャートである。図6のフローチャートは、図2のフローチャートの第2の認証処理動作に関する部分を変更したものである。すなわち、図6のステップS200〜ステップS203は、図2のステップS105〜ステップS108に対応しているが、その後のステップS204〜ステップS207における処理が異なっている。
【0047】
図7は、管理者がデータフローを設計する際に必須の認証かオプショナルな機能に関する認証かを明示的に分類できるようにした管理画面例を示す図である。例えば、管理者は、文書データを入力したり(Svr(1)Input)、最後に外部へ出力したりするサービス(Svr(2)Output)の認証は必須と判断し、入力された文書データを光学読み取りしたり(Svr(7)OCR)、その読み取ったデータに基づいて検索したりする付加的なサービス(Svr(8)Search)については、オプショナルな機能に関する認証と判断したとする。その場合、管理者は、データフローを設計する際に、図7に示すような管理画面上でオプショナルな機能に対しては「Optional」と記入し、それ以外は必須の認証サービスとして明示することができる。
【0048】
また、図8は、管理者がデータフローを設計する際に必須の認証かオプショナルな機能に関する認証かを明示的に分類できるようにした別の管理画面例を示す図である。図8に示すように、データフローの左右の端点を構成するサービス(Svr(1)Input、Svr(2)Output)については、これを省略することが不可能なため、(×)マークを入れることで必須の認証であることを表し、それ以外のフローの途中に位置するデータ加工などを受け持つサービス(Svr(7)OCR、Svr(8)Search)についてはオプショナルな機能に関する認証として、(×)マークを記入しないことで明示することができる。
【0049】
さらに、図9は、管理者がデータフローを設計する際に必須の認証かオプショナルな機能に関する認証かを外部サービスの持つ属性情報を判定基準として分類した外部サービスの一覧表を示す図である。図9の一覧表では、外部サービスの持つ属性情報を判定基準として必須の認証かオプショナルな機能に関する認証なのかを判定している。判定基準の一例としては、サービスの機能やサービスタイプなどで省略が可能なサービスであるか、省略すると機能が成立しなくなる必須のサービスなのかを判定することで分類することができる。ここでは、サービスの機能とサービスタイプに基づき、基幹サービスである(Svr(1)Input、Svr(2)Output、Svr(9)Output)は必須の認証であり、フィルターである(Svr(7)OCR、Svr(8)Search)はオプショナルな機能に関する認証であると判定される。
【0050】
そこで、図6のフローチャートを用いて第2の実施の形態にかかる動作を説明する。図6は、図2のステップS101に続いている。不図示の端末装置の操作画面にログイン画面が表示され(ステップS200)、ユーザはログインに必要なユーザIDとパスワードを入力すると、アクセス制御部11は、この入力情報を使って第1の認証部30に対して第1の認証を実施する(ステップS201)。この第1の認証により得られた第1の認証子は、ユーザがアプリケーションに対してアクセス制御を行う場合に利用される。
【0051】
第1の認証が成功した場合は(ステップS202)、ステップS203に移行して、他に第2の認証部21などの認証先があるか否かを判断する。他に認証先がある場合は、指定された認証サービスに対して認証を試みる(ステップS204)。その結果、認証が成功すると(ステップS205)、ステップS203に戻り、他に第2の認証先があるか否かが判断される。他に認証先が無く、実施すべき認証が全て成功している場合は、アプリケーション10を使って外部サービス20を利用する。
【0052】
また、ステップS204において、指定された認証サービスに対して認証を試みた結果、認証エラーになると(ステップS205)、ステップS206に移行して第2の認証が必須の認証か否かを判定する。ここで、図7に示すように、管理者によって指定された分類結果、図8に示すように、データフローのどの位置を構成するサービスかといった外部サービスの役割りによる分類結果、あるいは、図9に示すように、サービスの機能やサービスタイプといった外部サービスの持つ属性(カテゴリ情報等)による分類結果などに基づいて判定される。ステップS206において、必須の認証において認証エラーが生じた場合は、ログイン失敗となり、認証処理を中止する。また、ステップS202において、第1の認証処理で認証エラーとなった場合も同様にログイン失敗となり、認証処理を中止する。
【0053】
また、ステップS206において、オプショナルな機能に関する認証で認証エラーが生じた場合は、認証処理全体をエラーにするのではなく、当該認証に対応したサービスだけを使用しないようにスキップさせ、該当サービスに利用不可マークを記録して、ステップS203に戻る。
【0054】
このように、第2の実施の形態によれば、第2の認証がエラーになった場合に一律に認証処理を中止するのではなく、第2の認証が必須の認証であった場合は、認証処理を停止するが、オプショナルな機能に関する認証の場合は、その認証に関わる処理をスキップして認証処理全体は停止させないようにする。このため、複数の外部サービスを利用してユーザに機能を提供するアプリケーションにおいて、全ての外部サービスに権限を持たないと、アプリケーションを全く使えないという不便を解消することができる。また、一部のサービスに関する権限さえ持っていれば、基本的な機能だけは利用できるといった使い方も可能になる。
【0055】
(第3の実施の形態)
第3の実施の形態の特徴は、第2の認証を要求する外部サービスを利用するアプリケーションがユーザの入力した認証情報に基づいて第2の認証を行い、ログインに成功した場合に、その認証情報に基づいてディレクトリサービスを検索し、ユーザ属性を取得して、そのユーザ属性に基づいてアプリケーション自身のアクセス制御を行う点にある。
【0056】
図10は、第3の実施の形態にかかる動作を説明するフローチャートである。図10のフローチャートは、図2のフローチャートのログイン画面表示後の動作を変更したものである。すなわち、図10のステップS300は、図2のステップS105に対応しており、その後のステップS301〜ステップS305における処理が異なっている。
【0057】
第3の実施の形態において、ユーザ属性が格納されたディレクトリサービスは、図1のアプリケーション10内に持っている。また、属性情報取得手段としてのアクセス制御部11は、ユーザの入力した認証情報に基づいてディレクトリサービス内を検索し、ユーザの認証情報に対応したユーザ属性が検索できなかった場合は、ログインが失敗となる。外部サービス20へのアクセス制御に必要なユーザ属性を取得すると、このユーザ属性に基づいてアプリケーション自身のアクセス制御が行われる。
【0058】
また、第2の認証の結果得られた第2の認証子と、ディレクトリサービスを検索した結果得られたユーザ属性とを組み合わせて第3の認証子を新たに作成し、アプリケーションはこの第2および第3の認証子を利用するようにする。
【0059】
図11は、第3の認証子の一例を示す図である。図11に示すように、外部サービス20に関連した認証結果は、外部認証情報として、新しく作られる認証子の一部として包含されている。その他には、例えば、組織情報、社員区分、メンバーとして登録されている管理グループ名の一覧などが、認証子に含まれているが、これらは、別途ディレクトリサービスから取得することができる。これらはユーザの権限レベルなどを判定するための情報として、認証子から取り出してアプリケーション内部で利用することができる。
【0060】
そこで、図10のフローチャートを用いて第3の実施の形態にかかる動作を説明する。図10は、図2のステップS101に続いている。不図示の端末装置の操作画面にログイン画面が表示され(ステップS300)、ユーザはログインに必要なユーザIDとパスワードを入力すると、アクセス制御部11は、この入力情報を使って第2の認証部21に対して第2の認証を実施する(ステップS301)。
【0061】
第2の認証が成功した場合は(ステップS302)、ステップS303に移行して、ユーザが入力した認証情報を使いユーザ属性が格納されているディレクトリサービスを検索する(ステップS303)。検索の結果、アクセス制御に必要なユーザ属性情報が取得できた場合は(ステップS304でNO)、第2の認証の結果得られた第2の認証子と、ディレクトリサービスの検索結果とを融合させて新たな第3の認証子を作成する(ステップS305)。アプリケーションは、この第2および第3の認証子を使って利用を開始する。
【0062】
上記第2の認証の結果がエラーとなった場合(ステップS302)、およびディレクトリサービスを検索した結果、検索エラーが出た場合は(ステップS304)、ログイン失敗として認証処理を停止する。
【0063】
このように、第3の実施の形態によれば、外部サービス20の第2の認証部21にユーザ認証機能を委ねることによって、ユーザを一元管理し、その認証機能に不足があった場合でも、ディレクトリサービスを使ってユーザ属性を取得することにより、認証機能の不足を補うことができる。
【0064】
また、第3の実施の形態によれば、第2の認証結果とユーザの身元情報(ユーザ属性)とを新たな第3の認証子としてまとめることによって、認証機構の機能に違いが生じたとしても、その結果を利用する際に、その差を意識することなく活用することができる。
【0065】
(第4の実施の形態)
第4の実施の形態の特徴は、上記第1の実施の形態と同様に第1の認証と第2の認証とを行い、両方の認証が成功した後、第2の認証の結果得られた第2の認証子と、認証後のセッション確立手続きで得られた外部サービスへの接続情報と、第1の認証の結果得られた第1の認証子とを融合させて第4の認証子を生成し、アプリケーションはその第4の認証子を利用するようにした点にある。
【0066】
また、第4の実施の形態の特徴は、上記第3の実施の形態と同様に第2の認証を行って認証が成功した後、第2の認証の結果得られた第2の認証子と、認証後のセッション確立手続きで得られた外部サービスへの接続情報と、属性情報取得手段によってディレクトリサービスを検索した結果得られた外部サービスへのアクセス制御に必要なユーザ情報とを組み合わせて第5の認証子を生成し、アプリケーションはその第5の認証子を利用するようにした点にある。
【0067】
このように、第4の実施の形態では、認証手続きの結果得られる認証子を用いて、外部サービスを利用したり、ユーザ情報を取得したりするようにする。認証に成功した後、アプリケーションが受け取る認証子(認証証明書)に、認証結果としてアプリケーションが必要とする全ての情報をまとめるようにする。アプリケーションが必要とする情報には、外部サービスへの接続情報やユーザ自身の身元情報などが含まれる。このように、アプリケーションが外部サービスを利用する場合、あるいは、アプリケーション自身でアクセス制御を行う場合には、常に認証子に含まれている情報を利用するよう処理を統一する。
【0068】
図12は、外部サービスでユーザ認証機能が提供される場合の提供機能形態をパターン毎に分類した図である。基本機能としては、まずユーザ認証を行い、成功すると実際のサービス機能が利用できるようになるものであり、この点は共通しているが、具体的な設計結果としては色々なパターンで実装されている。
【0069】
図12の右側には正規化された機能分割が示され、左側には外部サービスの機能分割の例が示されている。ここでは、左側に示すサービスインターフェイスを右側に示すようなサービスインターフェイスに変換可能であることを示している。アプリケーションは常に、この正規化されたサービスインターフェイスを使えるようになる。
【0070】
まず、個々のサービスインターフェイスの機能について説明する。login(userName, password) ⇒ Credentialについては、「ユーザが入力した認証情報」と「本人である事を確認できる情報」とを照合して、利用者の識別を行う。この結果得られるCredentialとは、識別された利用者情報の証明書であり、後でアプリケーションなどが利用者情報を利用する際に、その内容が正しいことを確認することができる。
【0071】
startSession(Credential) ⇒ sessionIdについては、アプリケーションがサービスを繰り返し利用するような場合に、その都度利用者の身元確認をするのは効率が悪いため、最初に身元確認を行った後、サービスがアプリケーションに対して有効期限付きのSessionIdを発行する。サービスは、アプリケーションから提示されたSessionIdの確認だけ行えばよく、ユーザの身元確認を最初から行う必要は無くなる。また、適切に実装を行えばセキュリティ上の脆弱性も生じない。
【0072】
useService(SessionId, otherParameters)については、サービスが本来提供する機能を代表している。呼び出した結果や、得られる情報はさまざまなので特に個々には記述していない。パラメータとしてSessionIdなどを渡すようになっているが、この部分は、認証を必要とするか、サービスとの間でSessionを使って通信を行っているかで変化する。
【0073】
続いて、各パターン毎の変換方法について説明する。パターン1では、ユーザ認証を行い、次にその結果(Credential)を持ってアプリケーションとサービスとの間でSessionを確立し、その後、本来のサービス機能が利用できるようになる。これは、最も基本的な機能提供形態であり、認証機能とそれ以外の提供機能が完全に分かれているため、独立した認証サービスを利用する場合(第1の認証)も、このような実装になっていることが多い。正規化されたサービスインターフェイスでは、セッションに関してはインターフェイス上に明確に現れていないが、SessionIdをCredential内に含めてしまうことにより、アプリケーションからSessionを隠蔽して、正規化パターンに合わせることが可能である。
【0074】
パターン2は、Sessionをベースにしたサービスインターフェイスであるが、認証とセッション開始要求が一つの機能として融合している。このパターンと、正規化パターンとを比較すると、形の上では、やり取りするデータをCredentialからSessionIdに置き換えただけの違いとなっている。しかし、ここで示したCredentialの本来の機能は、認証結果を示すだけであり(改ざん対策などは施す)、そのデータ自体で完結したものである。しかし、SessionIdの方は、サービス側に一時的に記録されたユーザ接続情報への参照情報を意味しているため、データを破棄する際にはサービス側にもそれを伝えて、サービス側のデータも破棄する必要がある。そのため、正規化パターンではlogoutを呼び出してサービス側に伝達するようにしている。
【0075】
パターン3は、パターン2と呼び出しメソッド名が異なるのみで内容は同じものであるため重複説明を省略する。
【0076】
パターン4は、サービスとアプリケーションとの間にセッションを持たないインターフェイスとなっている。サービスの提供する機能によってはわざわざセッションを生成する必要の無いケースもある。正規化パターンでは、logoutを呼び出すようになっているが、このパターンのサービスに対しては、logoutに対応して情報を伝達する必要はない。
【0077】
パターン5は、サービスインターフェイスの仕様として、先にセッションを確立して、その後、ユーザの確認を行う順序となっている。匿名セッションでのサービス利用がある(身元を明かさないでサービスの提供を受ける)場合には、このような手順で機能を提供する場合がある。このような場合でも、SessionIDとCredentialを融合して、正規化を行う事が可能である。
【0078】
パターン6は、サービスインターフェイスの仕様として、独立した認証機能もSessionの概念も無く、サービス利用時に利用者の身元情報を提示するインターフェイスも考えられる。この場合には、Credential=認証情報と見なして、インターフェイスの違いを隠蔽することが可能である。logoutに関しては、上記パターン4と同様にサービスに対しては特に伝達する情報はない。
【0079】
このように、第4の実施の形態によれば、各種外部サービスとその認証機能を利用する際に、認証機能に関する利用方法を統一して扱えるようになったため、アプリケーションは認証に関する共通の手続きを実行することにより、未知の外部アプリケーションであっても同様の手続きにより利用することができる。
【図面の簡単な説明】
【0080】
【図1】本発明のユーザ認証システムの概略構成を示すブロック図である。
【図2】第1の実施の形態にかかる動作を説明するフローチャートである。
【図3】図1の端末装置のアプリケーションにおける管理画面例を示す図である。
【図4】図3のように設定されたデータフローで参照される外部サービスの一覧表を示す図である。
【図5】予め生成しておくユーザ認証システム内の認証方式のリスト例を示す図である。
【図6】第2の実施の形態にかかる動作を説明するフローチャートである。
【図7】管理者がデータフローを設計する際に必須の認証かオプショナルな機能に関する認証かを明示的に分類できるようにした管理画面例を示す図である。
【図8】管理者がデータフローを設計する際に必須の認証かオプショナルな機能に関する認証かを明示的に分類できるようにした別の管理画面例を示す図である。
【図9】管理者がデータフローを設計する際に必須の認証かオプショナルな機能に関する認証かを外部サービスの持つ属性情報を判定基準として分類した外部サービスの一覧表を示す図である。
【図10】第3の実施の形態にかかる動作を説明するフローチャートである。
【図11】第3の認証子の一例を示す図である。
【図12】外部サービスでユーザ認証機能が提供される場合の提供機能形態をパターン毎に分類した図である。
【符号の説明】
【0081】
10 アプリケーション
11 アクセス制御部
20 外部サービス
21 第2の認証部
22 アクセス制御部
30 第1の認証部

【特許請求の範囲】
【請求項1】
外部サービスを利用することを前提としたアプリケーションを備える端末装置と、
前記端末装置に関するアクセス制御を行うアクセス制御手段と、
前記端末装置のアプリケーションに対するアクセス制御の認証を行う第1の認証手段と、
前記端末装置のアプリケーションが利用する外部サービスを提供する外部サービス機器と、
前記外部サービス機器の一部に組み込まれ、外部サービスの利用時に認証を要求する第2の認証手段と、
を備え、前記アクセス制御手段は、ユーザの入力した認証情報に基づいて前記第1の認証手段と前記第2の認証手段の認証を行い、両方の認証が成功した場合に前記アプリケーションの利用を可能とし、前記アプリケーション自身のアクセス制御を行う場合に前記第1の認証手段の結果得られた第1の認証子を利用することを特徴とするユーザ認証システム。
【請求項2】
前記アクセス制御手段は、前記アプリケーションの機能および動作をカスタマイズする設定情報を検査し、その設定において必要な認証手段を抽出する抽出手段をさらに備え、
前記アプリケーションの利用開始時の認証処理において、前記抽出手段で抽出された全ての認証手段に対して認証を試みることを特徴とする請求項1に記載のユーザ認証システム。
【請求項3】
前記アクセス制御手段は、前記アプリケーションの機能および動作をカスタマイズする設定情報を作成する際に、設定に従った動作を行うのに必要な認証手段を抽出する抽出手段と、該抽出した認証手段と設定情報と対応付けて記録する記録手段とをさらに備え、
前記アプリケーションの利用開始時の認証処理において、前記記録手段に記録されている全ての認証手段に対して認証を試みることを特徴とする請求項1に記載のユーザ認証システム。
【請求項4】
前記第2の認証手段のうち、機能を実行するために必須の認証を必須認証手段とし、オプショナルな機能に関する認証をオプショナル認証手段として分類し、
前記必須認証手段に関する認証が失敗すると認証に関わる処理を停止させるが、前記オプショナル認証手段に関する認証が失敗しても認証に関わる処理をスキップするだけで処理全体を停止させないようにすることを特徴とする請求項1〜3のいずれか一つに記載のユーザ認証システム。
【請求項5】
前記必須認証手段と前記オプショナル認証手段との区別は、前記設定情報をカスタマイズする際に、管理者によって指定できるようにしたことを特徴とする請求項4に記載のユーザ認証システム。
【請求項6】
前記必須認証手段と前記オプショナル認証手段との区別は、前記外部サービスの属性によって決定されることを特徴とする請求項4に記載のユーザ認証システム。
【請求項7】
前記必須認証手段と前記オプショナル認証手段との区別は、前記アプリケーションが定義する外部サービスに対して与えられる役割によって決定することを特徴とする請求項4に記載のユーザ認証システム。
【請求項8】
外部サービスを利用することを前提としたアプリケーションを備える端末装置と、
前記端末装置に関するアクセス制御を行うアクセス制御手段と、
前記端末装置のアプリケーションが利用する外部サービスを提供する外部サービス機器と、
前記外部サービス機器の一部に組み込まれ、外部サービスの利用時に認証を要求する第2の認証手段と、
ユーザ属性が格納されたディレクトリサービスと、
前記ディレクトリサービスを検索して、前記外部サービス機器に対するアクセス制御に必要なユーザ属性を取得する属性情報取得手段と、
を備え、前記アクセス制御手段は、ユーザの入力した認証情報に基づいて前記第2の認証手段の認証を行い、認証が成功すると前記認証情報を使って前記属性情報取得手段により前記ディレクトリサービスを検索し、前記外部サービス機器へのアクセス制御に必要なユーザ属性を取得してアクセス制御を行うことを特徴とするユーザ認証システム。
【請求項9】
前記第2の認証手段による認証の結果得られた第2の認証子と、前記ディレクトリサービスを検索した結果得られたユーザ属性とを組み合わせて第3の認証子を新たに作成し、
前記アプリケーションは前記第2および第3の認証子を利用することを特徴とする請求項8に記載のユーザ認証システム。
【請求項10】
前記アクセス制御手段は、前記第1の認証手段と前記第2の認証手段の認証を行って両方の認証が成功した後、前記第2の認証手段による認証の結果得られた第2の認証子と、認証後のセッション確立手続きで得られた外部サービスへの接続情報と、前記第1の認証手段による認証の結果得られた第1の認証子とを組み合わせて第4の認証子を生成し、
前記端末装置のアプリケーションは、該第4の認証子を利用することを特徴とする請求項1に記載のユーザ認証システム。
【請求項11】
前記アクセス制御手段は、前記第2の認証手段の認証を行って認証が成功した後、前記第2の認証手段による認証の結果得られた第2の認証子と、認証後のセッション確立手続きで得られた外部サービスへの接続情報と、前記属性情報取得手段により前記ディレクトリサービスを検索した結果得られた前記外部サービス機器へのアクセス制御に必要なユーザ属性とを組み合わせて第5の認証子を生成し、
前記端末装置のアプリケーションは、該第5の認証子を利用することを特徴とする請求項8に記載のユーザ認証システム。
【請求項12】
外部サービスを利用することを前提としたアプリケーションを備えた端末装置のユーザ認証方法であって、
前記端末装置のアクセス制御手段は、ユーザの入力した認証情報に基づいて、前記端末装置のアプリケーションに対するアクセス制御の認証を行う第1の認証と、前記外部サービス機器の一部に組み込まれ、外部サービスの利用時に認証を要求する第2の認証とを行うステップと、
前記第1の認証と前記第2の認証の両方が成功した場合に前記アプリケーションの利用を可能とするステップと、
前記アプリケーション自身のアクセス制御を行う場合に前記第1の認証の結果得られた第1の認証子を利用するステップと、
を含むことを特徴とするユーザ認証方法。
【請求項13】
請求項12に記載のユーザ認証方法の各ステップをコンピュータに実行させることを特徴とするコンピュータが実行するためのプログラム。





【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2009−223739(P2009−223739A)
【公開日】平成21年10月1日(2009.10.1)
【国際特許分類】
【出願番号】特願2008−68987(P2008−68987)
【出願日】平成20年3月18日(2008.3.18)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】