(57)【特許請求の範囲】
【請求項１】
情報処理装置であって、
前記情報処理装置において動作する複数のアプリケーションのそれぞれから、ユーザを証明するための情報を有するユーザクレデンシャルの複数の項目ごとに定義された、他のアプリケーションとの該ユーザクレデンシャルの共有条件をそれぞれ取得する取得手段と、
取得した前記共有条件から、各アプリケーション間でのユーザクレデンシャルの項目ごとに前記共有条件を定義した共有設定を生成するとともに、生成した該共有設定をメモリに保存する生成手段と、
少なくとも１つの前記アプリケーションから通知される前記ユーザクレデンシャルをメモリに保持する保持手段と、
何れかの前記アプリケーションから前記ユーザクレデンシャルを要求されると、メモリに保存された前記共有設定に従って、要求したアプリケーションに対して該ユーザクレデンシャルを提供する提供手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記生成手段は、前記情報処理装置の起動時、アプリケーションの起動時、及びユーザのログイン時の何れかのタイミングで前記共有設定を生成し、生成した前記共有設定と、メモリに既に保存されている共有設定とを比較し、差分があれば生成した前記共有設定をメモリに更新することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記保持手段は、さらに、
前記共有設定に定義されたユーザクレデンシャルの項目ごとの共有条件を、それぞれ有効にするか無効にするかを設定する利用設定をメモリに保持し、
前記提供手段は、前記利用設定が有効を示す場合に、前記共有設定に従って、要求したアプリケーションに対して該ユーザクレデンシャルを提供するか否かを決定することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
メモリに保持されている前記共有設定及び前記利用設定を変更するためのユーザインタフェースをさらに備えることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記提供手段は、
前記ユーザクレデンシャルを要求したアプリケーションが、前記共有設定において前記ユーザクレデンシャルについて共有するよう定義されていなければ該ユーザクレデンシャルを提供せず、
前記ユーザクレデンシャルを要求したアプリケーションが、前記共有設定において前記ユーザクレデンシャルについて共有するよう定義されていれば該ユーザクレデンシャルを提供することを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記提供手段は、
前記保持手段によって保持されている前記ユーザクレデンシャルを暗号化する暗号化手段と、
前記ユーザクレデンシャルを暗号化する際に用いられる暗号鍵を各アプリケーションに配信する配信手段と
を備えることを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記複数のアプリケーションには、認証したユーザのユーザクレデンシャルを発行するログインアプリケーションが含まれ、
前記保持手段は、前記ログインアプリケーションから発行された、該ログインアプリケーションが認証を実行したユーザのユーザクレデンシャルをメモリに保持し、該ユーザがログアウトすると、当該ユーザクレデンシャルをメモリから削除することを特徴とする請求項１乃至６の何れか１項に記載の情報処理装置。
【請求項８】
前記共有設定には、前記ユーザクレデンシャルの項目ごとに、該ユーザクレデンシャルの情報を参照可能なアプリケーションの情報と、該ユーザクレデンシャルの情報を更新可能なアプリケーションの情報とが含まれることを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項９】
情報処理装置の制御方法であって、
取得手段が、前記情報処理装置において動作する複数のアプリケーションのそれぞれから、ユーザを証明するための情報を有するユーザクレデンシャルの複数の項目ごとに定義された、他のアプリケーションとの該ユーザクレデンシャルの共有条件をそれぞれ取得する取得ステップと、
生成手段が、取得した前記共有条件から、各アプリケーション間でのユーザクレデンシャルの項目ごとに前記共有条件を定義した共有設定を生成するとともに、生成した該共有設定をメモリに保存する生成ステップと、
保持手段が、少なくとも１つの前記アプリケーションから通知される前記ユーザクレデンシャルをメモリに保持する保持ステップと、
提供手段が、何れかの前記アプリケーションから前記ユーザクレデンシャルを要求されると、メモリに保存された前記共有設定に従って、要求したアプリケーションに対して該ユーザクレデンシャルを提供する提供ステップと
を実行することを特徴とする情報処理装置の制御方法。
【請求項１０】
請求項９に記載の情報処理装置の制御方法が有する各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のアプリケーションをインストールすることができ、アプリケーション間でユーザクレデンシャルを共有する情報処理装置、その制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
ネットワークに接続可能な複写機やＭＦＰ（マルチファンクションペリフェラル装置）などの画像形成装置では、利用するユーザを認証するログインアプリケーションや、組込アプリケーションを追加インストールすることができる。また、当該画像形成装置で実行可能なアプリケーションには、スキャナから読み込んだドキュメント等をネットワークを介して外部サーバに送信するアプリケーションや、ネットワークを介して、外部サーバと接続し、外部リソースを取得するアプリケーションなどがある。これらのアプリケーションは、デバイスのハードウェアを提供するベンダとは異なるベンダが作成して、販売することができる。
【０００３】
このような画像形成装置において、外部リソースへのアクセスの度に、ユーザに認証行為を行わせるのはユーザに係る操作負荷が大きいことから、ユーザが行う認証行為を１回にしたシングルサインオン技術が知られている。例えば、特許文献１には、ネットワークシステム全体において、ネットワークプロバイダ間でコンピュータのユーザクレデンシャルや、外部システムにアクセスするためのユーザクレデンシャルを共有させる技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０８−２６３４１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術には以下に記載する問題がある。例えば、特許文献１のような、ユーザクレデンシャルを共有可能にしているネットワークプロバイダを持たない画像形成装置では、アプリケーション間でユーザクレデンシャルを共有することができなかった。また、無条件にアプリケーション間でユーザクレデンシャルを共有可能にすると、ユーザクレデンシャルを登録したアプリケーションと異なるアプリケーションが、ユーザクレデンシャルを外部に漏洩してしまうリスクがある。このため、アプリケーションを作成するベンダは、同一ベンダや信頼するベンダが作成したアプリケーションのみでユーザクレデンシャルを共有したいと考える。しかし、従来のユーザクレデンシャル共有手法においては、アプリケーションを作成するベンダがユーザクレデンシャル共有先のアプリケーションを限定する手法が無いという問題があった。
【０００６】
本発明は、上述の問題に鑑みて成されたものであり、アプリケーションを作成するベンダが意図したユーザクレデンシャルの共有条件でユーザクレデンシャルの共有サービスを提供する情報処理装置及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、例えば、情報処理装置として実現できる。情報処理装置は、前記情報処理装置において動作する複数のアプリケーションのそれぞれから、ユーザを証明するための情報を有するユーザクレデンシャルの複数の項目ごとに定義された、他のアプリケーションとの該ユーザクレデンシャルの共有条件をそれぞれ取得する取得手段と、取得した前記共有条件から、各アプリケーション間でのユーザクレデンシャルの項目ごとに前記共有条件を定義した共有設定を生成するとともに、生成した該共有設定をメモリに格納する生成手段と、少なくとも１つの前記アプリケーションから通知される前記ユーザクレデンシャルをメモリに保持する保持手段と、何れかの前記アプリケーションから前記ユーザクレデンシャルを要求されると、メモリに格納された前記共有設定に従って、要求したアプリケーションに対して該ユーザクレデンシャルを提供する提供手段とを備えることを特徴とする。
【発明の効果】
【０００８】
本発明は、アプリケーションを作成するベンダが意図したユーザクレデンシャルの共有条件でユーザクレデンシャルの共有サービスを提供する情報処理装置及びその制御方法を提供できる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係るネットワーク構成を示す図である。
【図２】第１の実施形態に係る画像形成装置のハードウェア構成を示す図である。
【図３】第１の実施形態に係る画像形成装置のソフトウェア構成を示す図である。
【図４】第１の実施形態に係るアプリケーションを管理する為のユーザインタフェースを示す図である。
【図５】第１の実施形態に係るユーザ認証情報入力が画面を示す図である。
【図６】第１の実施形態に係るユーザクレデンシャル共有サービスが備えるＡＰＩを示す図である。
【図７】第１の実施形態に係るアプリケーションが備えるマニフェストファイルを示す図である。
【図８】第１の実施形態に係るユーザクレデンシャル共有サービスの起動と設定に係るシーケンスを示す図である。
【図９】第１の実施形態に係るユーザクレデンシャル共有設定／利用設定を示す図である。
【図１０】第１の実施形態に係るユーザレデンシャル共有設定に対する利用設定を行う為のユーザインタフェースを示す図である。
【図１１】第１の実施形態に係るユーザレデンシャル共有設定を編集する為のユーザインタフェースを示す図である。
【図１２】第１の実施形態に係るユーザレデンシャル共有サービスの利用に係るシーケンスを示す図である。
【図１３】第１の実施形態に係るユーザクレデンシャルデータ管理テーブルを示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を用いて説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１１】
＜第１の実施形態＞
＜ネットワーク構成の説明＞
以下では、図１乃至図１３を参照して、本発明における第１の実施形態について説明する。まず、図１を参照して、本実施形態に係るネットワーク構成について説明する。本実施形態では、デバイスの一例としてＭＦＰ、プリンタ、ファックス、複写機などの画像形成装置（情報処理装置）を使用する例を示す。
【００１２】
図１に示すように、ローカルエリアネットワーク（ＬＡＮ）１０５には、画像形成装置１０１と、メールサーバ１０２と、ファイル共有サーバ１０３と、プロキシサーバ１０４とが相互通信可能に接続される。メールサーバ１０２は、ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）や、ＰＯＰ３（Ｐｏｓｔ  Ｏｆｆｉｃｅ  Ｐｒｏｔｏｃｏｌ Ｖｅｒｓｉｏｎ３）などのプロトコル実装を備える。ファイル共有サーバ１０３は、ＳＭＢ（Ｓｅｒｖｅｒ  Ｍｅｓｓａｇｅ  Ｂｌｏｃｋ）のプロトコル実装を備える。プロキシサーバ１０４は、ＬＡＮ１０５とインターネット（ＷＬＡＮ）１０６の両方に接続され、ＬＡＮ１０５に接続された端末からインターネット１０６に接続する際の代理端末として利用される。各サーバ１０２、１０３、１０４は、当該サーバを利用するユーザを認証するためにそれぞれのプロトコルに準拠したユーザ認証機能を備える。
【００１３】
＜画像形成装置のハードウェア構成＞
次に、図２を参照して、画像形成装置のハードウェア構成について説明する。画像形成装置１０１は、情報処理装置の一例であり、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、ＨＤＤ２０４、操作パネル２０５、ＩＣカード読取装置２０６、ネットワークＩ／Ｆ２０７、プリンタ２０８、及びスキャナ２０９を備える。ＣＰＵ２０１は、画像形成装置１０１全体を統括的に制御する。ＲＯＭ２０２は、ＣＰＵ２０１が実行するソフトウェアプログラムやフォントデータを格納するリード・オンリ・メモリである。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリア、受信バッファ、画像描画に使用されるランダム・アクセス・メモリである。ＨＤＤ（ハードディスドライブ）２０４は、ソフトウェアのプログラムコードや、ユーザ認証情報などのデータを記録する。
【００１４】
操作パネル２０５は、各種スイッチやボタン、並びにメッセージ表示用の液晶表示部で構成される。ＩＣカード読取装置２０６は、ユーザ認証に使用するＩＣカードの読取装置である。ネットワークＩ／Ｆ２０７は、画像形成装置１０１をネットワークに接続するためのインタフェースである。プリンタ２０８は、画像データに従って記録紙に印刷を行う。スキャナ２０９は、印刷されたドキュメントなどを読み込んで電子データに変換する。
【００１５】
＜画像形成装置のソフトウェア構成＞
次に、図３乃至図５を参照して、画像形成装置１０１のソフトウェア構成と、記憶情報とについて説明する。図３に示すように、画像形成装置１０１は、デバイスドライバ群３０１、オペレーティングシステム３０２、アプリケーションプラットフォーム３０３、ユーザクレデンシャル共有サービス３０４、ログインアプリケーション３０５、及びアプリケーション３０６〜３１３を備える。デバイスドライバ群３０１は、上記各種ハードウェアを制御するための複数のデバイスドライバを有する。オペレーティングシステム３０２は、デバイスドライバ群３０１のインタフェースを各アプリケーションに提供する。
【００１６】
アプリケーションプラットフォーム３０３は、画像形成装置１０１の組込アプリケーションをインストール／アンインストールするとともに、起動／停止などを制御する。例えば、アプリケーションプラットフォーム３０３は、ＪＡＶＡ（登録商標）プラットフォームや、ＯＳＧｉフレームワークを含む形で構成することができる。ＪＡＶＡ（登録商標）は、ＳｕｎＭｉｃｒｏｓｙｓｔｅｍｓ，Ｉｎｃの登録商標である。ＯＳＧｉフレームワークは、ＯＳＧｉ Ａｌｌｉａｎｃｅ（標準化団体）が定義したＪＡＶＡベースのサービスプラットフォームである。アプリケーションプラットフォーム３０３には、画像形成装置１０１が工場出荷時から備えるアプリケーションに加えて、ユーザが追加でアプリケーションをインストールすることができる。例えば、アプリケーションプラットフォーム３０３は、アプリケーションを管理するための、図４に示すユーザインタフェースを備えるサーブレットをユーザに提供する。画像形成装置１０１の管理者は、ネットワークを介して、アプリケーションの実行ファイル（ＪＡＲファイル）を指定して、アプリケーションの追加インストールを実施することができる。
【００１７】
＜アプリケーションの種別＞
ここで、アプリケーションの種別について説明する。アプリケーションプラットフォーム３０３上で動作可能なアプリケーションとしては、例えば、システムアプリケーション、ログインアプリケーション、及び一般アプリケーションがある。以下では、特にアプリケーションの種別を限定しない場合は、単にアプリケーションと記述する。システムアプリケーションは、画像形成装置１０１が工場出荷時から備えるアプリケーションである。ログインアプリケーションは、画像形成装置１０１にログインするユーザを認証するための特別なアプリケーションである。一般アプリケーションは、ログインアプリケーション以外のユーザがインストール／アンインストール可能なアプリケーションである。
【００１８】
図３の説明に戻る。ユーザクレデンシャル共有サービス３０４は、システムアプリケーションとして動作する。ログインアプリケーション３０５は、操作パネル上に図５の５０１に示すようなユーザアカウント／パスワードを入力するためのユーザインタフェースを表示してユーザ認証を行う。例えば、図５の５０２に示すように、“ＩＣカードをＩＣカード読取装置にかざしてください”というようなメッセージを表示して、ＩＣカード読取装置２０６から取得したＩＣカード情報をもとにユーザ認証を行ってもよい。アプリケーション３０６〜３１３は、一般アプリケーションである。
【００１９】
＜ユーザクレデンシャル＞
本実施形態では、下記のようなユーザ認証や、ユーザ認証後に生成されるユーザを証明する情報を総称してユーザクレデンシャルと称する。ユーザクレデンシャルには、ユーザＩＤ、パスワード、ドメイン名、パスワードのハッシュ値、暗号化されたパスワード、ＫｅｒｂｅｒｏｓのＴＧＴやＳＡＭＬ（Ｓｅｃｕｒｉｔｙ Ａｓｓｅｒｔｉｏｎ  Ｍａｒｋｕｐ Ｌａｎｇｕａｇｅ）などのチケット、指紋などの生体情報、ユーザが所有するＩＣカード情報などが含まれる。
【００２０】
＜ユーザクレデンシャル共有サービス３０４＞
次に、図６を参照して、ユーザクレデンシャル共有サービス３０４について説明する。ユーザクレデンシャル共有サービス３０４は、各アプリケーション間でユーザクレデンシャルの共有を可能にするサービスを提供する。ユーザクレデンシャル共有サービス３０４は、図６に示すＡＰＩ６０１〜６０３を備え、アプリケーションからの利用を可能にしている。ＳｅｔＵｓｅｒＣｒｅｄｅｎｔｉａｌＡＰＩ６０１は、アプリケーションに指定されたユーザクレデンシャルをＲＡＭ２０３等のメモリに保存する。ＧｅｔＵｓｅｒＣｒｅｄｅｎｔｉａｌＡＰＩ６０２は、ＲＡＭ２０３に保存したユーザクレデンシャルを取得して、アプリケーションに返却する。ユーザクレデンシャル共有サービス３０４は、ユーザのログアウトや、画像形成装置１０１のシャットダウンを検知すると、ＲＡＭ２０３に保存したユーザクレデンシャルデータを破棄する。ＧｅｔＫｅｙｆｏｒＥｎｃｒｙｐｔＣｒｅｄｅｎｔｉａｌＡＰＩ６０３は、生成した鍵情報を、アプリケーションに返却する。図６のＡＰＩ６０１〜６０３で使用するユーザクレデンシャルの識別子（項目）を、以下では、クレデンシャルＩＤと称する。
【００２１】
＜マニフェストファイル＞
次に、図７を参照して、マニフェストファイルについて説明する。ログインアプリケーション３０５及び一般アプリケーション３０６〜３１３の実行ファイルはそれぞれ、図７に示すマニフェストファイル７０１〜７０９を備える。マニフェストファイルは、ベンダがアプリケーション作成時に記述する。これによりアプリケーションを作成するベンダが、マニフェストファイルにユーザクレデンシャル共有条件に相当する情報を定義することができる。マニフェストファイルは、アプリケーションのインストール時や起動時にアプリケーションプラットフォーム３０３によって読み取られる。また、ユーザクレデンシャル共有サービス３０４は、アプリケーションプラットフォーム３０５から、アプリケーションや画像形成装置１０１の起動時、ユーザのログイン時にマニフェストファイルを取得して、後述するユーザクレデンシャル共有設定を生成する。マニフェストファイルには、項目名と値が記述される。本実施形態では、マニフェストファイルに記述する項目を下記のように定義する。
・ＡｐｐｌｉｃａｔｉｏｎＩＤ
アプリケーションを一意に特定するための識別子。
・ＡｐｐｌｉｃａｔｏｎＴｙｐｅ
アプリケーションの種別を示す。７０１の値のＬｏｇｉｎは、ログインアプリケーションを示し、７０２〜７０９の値のＡｐｐｌｉｃａｔｉｏｎは、一般アプリケーションを示す。
・ＴｒｕｓｔＡｐｐｌｉｃａｔｉｏｎＩＤ
信頼するアプリケーションの識別子。信頼するアプリケーションを限定しない場合は、＊が記述される。
・ＲｅｆｅｒｅｎｃｅＣｒｅｄｅｎｔｉａｌＩＤ
ユーザクレデンシャルの参照のみを行うクレデンシャルＩＤ。
・ＲｅａｄＯｎｌｙＳｈｒｅｄＣｒｅｄｅｎｔｉａｌＩＤ
信頼するアプリケーションに対して、参照のみを許可するクレデンシャルＩＤ。
・ＷｒｉｔａｂｌｅＳｈａｒｅｄＣｒｅｄｅｎｔｉａｌＩＤ
信頼するアプリケーションに対して、参照と保存・更新を許可するクレデンシャルＩＤ。
・ＷｒｉｔａｂｌｅＥｎｃｒｙｐｔＳｈａｒｅｄＣｒｅｄｅｎｔｉａｌＩＤ
信頼するアプリケーションに対して、参照と保存・更新を許可するクレデンシャルＩＤ。ユーザクレデンシャルは、暗号化した状態で、ＲＡＭ２０３上のユーザクレデンシャル共有サービス３０４が管理する領域に保存する。
・ＣｒｅｄｅｎｔｉａｌＴｙｐｅ
共有するクレデンシャルの型。ユーザアカウント、パスワード、ドメイン名などの文字列、パスワードのハッシュ値、暗号化されたパスワード、ＫｅｒｂｅｒｏｓのＴＧＴやＳＡＭＬなどのチケット、指紋などの生体情報、ユーザが所有するＩＣカード情報などの種別が記述される。記述が無い場合は、文字列とする。
【００２２】
＜ログインアプリケーション３０５＞
ログインアプリケーション３０５は、マニフェストファイル７０１を有する。ログインアプリケーション３０５は、ログイン画面５０１に入力されたアカウントとパスワードを取得して、画像形成装置１０１を利用するユーザの認証を行う。認証が成功したユーザのアカウントとパスワードは、ユーザクレデンシャル共有サービス３０４のＡＰＩを利用してＲＡＭ２０３に記録される。７１０は、ログインアプリケーション３０５がクレデンシャルＩＤ（ＬｏｇｉｎＡｃｃｏｕｎｔ／ＬｏｇｉｎＰａｓｓｗｏｒｄ）を他のアプリケーションが参照可能なユーザクレデンシャルとして保存すること示す。７１１は、値が＊（ワイルドカード）であるため、ＬｏｇｉｎＡｃｃｏｕｎｔ／ＬｏｇｉｎＰａｓｓｗｏｒｄを参照するアプリケーションを限定せず、全てのアプリケーションに対して参照を許可することを示す。
【００２３】
＜アプリケーション３０６、３０７＞
アプリケーション３０６、３０７は、メールサーバ１０２にアクセスして電子メールの送受信を行う機能を備える一般アプリケーションである。アプリケーション３０６、３０７は、それぞれマニフェストファイル７０２、７０３を有する。７１２は、アプリケーション３０６がユーザクレデンシャル共有サービス３０４のＡＰＩを利用してログインアプリケーション３０５が保存したＬｏｉｇｎＡｃｃｏｕｎｔ／ＬｏｇｉｎＰａｓｓｗｏｒｄを参照することを示す。アプリケーション３０６は、ＬｏｇｉｎＡｃｃｏｕｎｔ／ＬｏｇｉｎＰａｓｓｗｏｒｄをメールサーバ１０２へアクセスする際の認証に利用する。他のアプリケーション３０７〜３１３も同様に、ＬｏｇｉｎＡｃｃｏｕｎｔ／ＬｏｇｉｎＰａｓｓｗｏｒｄを外部サーバにアクセスする際の認証情報として利用する。７１３は、アプリケーション３０６、３０７が相互に信頼関係があることを示す。７１４は、アプリケーション３０６、３０７がメールサーバ１０２にアクセスするためのアカウントとパスワードを、ＭａｉｌＡｃｃｏｕｎｔ／ＭａｉｌＰａｓｓｗｏｒｄとして、ユーザクレデンシャル共有サービス３０４を介して共有することを示す。
【００２４】
＜アプリケーション３０８、３０９、３１０、３１１＞
アプリケーション３０８、３０９、３１０、３１１は、ファイル共有サーバ１０３にアクセスする一般アプリケーションである。例えば、スキャナ２０９から読み込んだドキュメントをＰＤＦに変換してファイル共有サーバ１０３に送信する機能や、ファイル共有サーバ１０３から取得したドキュメントをプリンタ２０８で印刷する機能を備える。アプリケーション３０８、３０９、３１０、３１１は、それぞれマニフェストファイル７０４、７０５、７０６，７０７を備える。７１５は、各アプリケーションが、ファイル共有サーバ１０３にアクセスするためのアカウント／パスワードをＦｉｌｅＳｅｒｖｅｒＡｃｃｏｕｎｔ／ＦｉｌｅＳｅｒｖｅｒＭａｉｌＰａｓｓｗｏｒｄとして、ユーザクレデンシャル共有サービス３０４を介して共有することを示す。７１６は、アプリケーション３０８がアプリケーション３０９、３１０と相互に信頼関係があるが、アプリケーション３０９と３１０との間に相互の信頼関係が無いことを示す。更に、アプリケーション３１１は、アプリケーション３０８に信頼をおいているが、アプリケーション３０８からは信頼されていないこと示す。
【００２５】
＜アプリケーション３１２、３１３＞
アプリケーション３１２、３１３は、インターネット（ＷＡＮ１０６）上のＷｅｂサーバにアクセスして情報を取得する一般アプリケーションである。アプリケーション３１２、３１３は、プロキシサーバ１０４を介して、インターネット（ＷＡＮ１０６）にアクセスするため、プロキシサーバ１０４を利用する際に認証が求められる。アプリケーション３１２、３１３は、それぞれマニフェストファイル７０８、７０９を備える。７１７は、アプリケーション３１２、３１３が相互に信頼関係があることを示す。７１８は、アプリケーション３１２と３１３とがプロキシサーバ１０４にアクセスするためのアカウントとパスワードを、ＷｅｂＰｒｏｘｙＡｃｃｏｕｎｔとＷｅｂＰｒｏｘｙＰａｓｓｗｏｒｄとして、データを暗号化した状態で共有することを示す。
【００２６】
＜ユーザクレデンシャル共有サービス３０４の起動に関する動作＞
次に、図８を参照して、本実施形態に係るユーザクレデンシャル共有サービス３０４の起動に係る動作について説明する。なお、以下で説明する処理は、ＣＰＵ２０１がＲＯＭ２０２やＨＤＤ２０４からプログラムを読み出して実行することにより実現される。
【００２７】
Ｓ８０１において、ユーザクレデンシャル共有サービス３０４は、アプリケーションプラットフォーム３０３から起動処理を呼び出されることによって起動処理を開始する。続いて、Ｓ８０２において、ユーザクレデンシャル共有サービス３０４は、アプリケーションプラットフォーム３０３を介して、起動している全てのアプリケーションのマニフェストファイルの記述を取得する。次に、Ｓ８０３において、ユーザクレデンシャル共有サービス３０４は、取得した全てのマニフェストファイルを解析して、図９に示すように、各アプリケーション間での共有条件を定義した、適切なユーザクレデンシャル共有設定９０１を生成する。ユーザクレデンシャル共有設定は下記の項目を含む。
・クレデンシャルＩＤ。
・ユーザクレデンシャルの種別。
・ユーザクレデンシャル共有サービス３０４が発行したユーザクレデンシャルの保存領域を示す管理ＩＤ。
・管理ＩＤが示す保存領域のユーザクレデンシャルを保存・更新可能なアプリケーションのＡｐｐｌｉｃａｔｉｏｎＩＤ。
・管理ＩＤが示す保存領域のユーザクレデンシャルを参照可能なアプリケーションのＡｐｐｌｉｃａｔｉｏｎＩＤ。
【００２８】
例えば、マニフェストファイルの７１５、７１６を解析したユーザクレデンシャル共有サービス３０４は、ＦｉｌｅＳｅｒｖｅｒＰａｓｓｗｏｒｄを保存するための領域を示す管理ＩＤを３つ生成する。管理ＩＤのＦｉｌｅＳｅｒｖｅｒＰａｓｓｗｏｒｄ＿００１は、アプリケーション３０８、３０９がＦｉｌｅＳｅｒｖｅｒＰａｓｓｏｒｄを共有するための領域を示す。同様に、管理ＩＤのＦｉｌｅＳｅｒｖｅｒＰａｓｓｗｏｒｄ＿００２は、アプリケーション３０８、３１０がＦｉｌｅＳｅｒｖｅｒＰａｓｓｏｒｄを共有するための領域を示す。管理ＩＤのＦｉｌｅＳｅｒｖｅｒＰａｓｓｗｏｒｄ＿００３は、アプリケーション３１１だけが保存・更新する領域を示す。アプリケーション３０８は、アプリケーション３１１に信頼されているため、ＦｉｌｅＳｅｒｖｅｒＰａｓｓｗｏｒｄ＿００３のユーザクレデンシャルを参照可能である。しかしながら、アプリケーション３０８は、アプリケーション３１１を信頼していないため、アプリケーション３１１が参照可能なＦｉｌｅＳｅｒｖｅｒＰａｓｓｗｏｒｄ＿００３へのクレデンシャルの保存・更新は行わないように、共有設定を生成する。
【００２９】
次に、Ｓ８０４において、ユーザクレデンシャル共有サービス３０４は、以前起動した際に生成したユーザクレデンシャル共有設定９０１と利用設定９０２とがＨＤＤ２０４に記録されていれば、これを参照して取得する。利用設定９０２は、ユーザクレデンシャル共有設定９０１が示すユーザクレデンシャルの共有機能をユーザが利用するか否かを示す情報である。ＴＵＲＥ（有効）は、利用することを示し、ＦＡＬＳＥ（無効）は利用しないことを示す。つまり、ユーザクレデンシャル共有サービス３０４は、利用設定９０２がＴＲＵＥの場合は、ユーザクレデンシャル共有設定９０１に従って、対応するユーザクレデンシャルをアプリケーションに提供するか否かを決定する。ユーザクレデンシャル共有サービス３０４は、以前のユーザクレデンシャル共有設定がＨＤＤ２０４から取得できた場合は、新たに生成したユーザクレデンシャル共有設定と比較し、差分を確認する。
【００３０】
次に、Ｓ８０５において、ユーザクレデンシャル共有サービス３０４は、情報に追加があればユーザクレデンシャル共有設定を更新し、Ｓ８０６においてＨＤＤ２０４に保存する。また、Ｓ８０５において、利用設定も同様に、以前の利用設定がＨＤＤ２０４から取得できた場合は、情報に追加があれば新規に情報を追加して更新する。ＨＤＤ２０４から利用設定が取得できなかった場合は、ユーザクレデンシャル共有サービス３０４は、利用設定を生成して初期値を設定する。本実施形態では、利用設定の初期値として、ＴＲＵＥ(利用する)を設定する。生成および更新した利用設定は、Ｓ８０６でＨＤＤ２０４に保存される。
【００３１】
ユーザクレデンシャル共有サービス３０４は、アプリケーションプラットフォーム３０３を介して新しいアプリケーションのインストールや起動を知ることが可能である。この場合、ユーザクレデンシャル共有サービス３０４は、新しいアプリケーションのマニフェストファイルを解析して、ＨＤＤ２０４に記録したユーザクレデンシャル共有設定／利用設定を更新する。
【００３２】
上述したように、ユーザクレデンシャル共有サービス３０４は、アプリケーションから取得したマニフェストファイルに記述された情報を利用して、ユーザクレデンシャル共有設定を自動生成する。これにより、ユーザクレデンシャル共有のために詳細な設定を行うことが煩わしいユーザも特に設定を意識することなく、ユーザクレデンシャル共有サービス３０４を安全に利用することができる。
【００３３】
＜ユーザクレデンシャル共有サービス３０４の設定に関する動作＞
ユーザクレデンシャル共有サービス３０４は、図１０に示すユーザクレデンシャル共有設定の利用設定を行うユーザインタフェース１０００を操作パネル２０５に表示する機能を備える。ユーザインタフェース１０００は、画像形成装置１０１の管理者のみが操作可能なように構成される。１００１は、ユーザクレデンシャル共有サービス３０４が生成したユーザクレデンシャル共有設定９０１に対する利用設定９０２を変更するためのチェックボックスである。管理者は、利用する設定に対してチェックを入力する。本実施形態では、初期状態では全ての設定にチェックが入った状態になっているものとする。管理者は利用したくない設定のチェックボックスを外すことが可能である。つまり、利用設定９０２には、ユーザクレデンシャル共有設定９０１に定義されたユーザクレデンシャルの項目ごとの共有条件を、それぞれ有効にするか無効にするか設定が定義される。
【００３４】
更に、ユーザクレデンシャル共有サービス３０４は、図１１に示すようなユーザクレデンシャル共有設定を編集するためのユーザインタフェース１１００を操作パネル２０５に表示する機能を備える。例えば、編集対象の設定のチェックボックス１１０１にチェックを入力して、編集ボタン１１０２を押下すると、図１１の１１１０が操作パネル２０５に表示される。１１１０では、更新可能なアプリケーションのリスト１１０３や参照可能アプリケーションのリスト１１０４を表示して、管理者が対象のアプリケーションを追加・削除できるように構成される。
【００３５】
次に、図８の説明に戻り、ユーザクレデンシャル共有サービス３０４の設定に係る動作について説明する。管理者からのアクセスを検知すると、Ｓ８０８において、ユーザクレデンシャル共有サービス３０４は、ＨＤＤ２０４からユーザクレデンシャル共有設定９０１と利用設定９０２とを取得して、ユーザインタフェース１０００、１１００を表示する。例えば管理者が利用設定の変更操作を行ったことを検知すると、Ｓ８０９において、ユーザクレデンシャル共有サービス３０４は、利用設定９０２を更新して、ＨＤＤ２０４に記録する。管理者が利用すると設定したユーザクレデンシャル共有設定に対して、更に、画像形成装置１０１を利用する一般ユーザ毎の利用設定が可能なように構成してもよい。管理者がユーザインタフェース１１００、１１１０を用いてユーザクレデンシャル共有設定を編集したことを検知すると、Ｓ８１０において、ユーザクレデンシャル共有サービス３０４は、ユーザクレデンシャル共有設定９０１を更新して、ＨＤＤ２０４に記録する。
【００３６】
アプリケーションを利用するユーザには、ユーザクレデンシャルの漏洩を気にするユーザもいれば、シングルサインオンができることの利便性を重視するユーザもいる。本実施形態によれば、ユーザクレデンシャル共有設定９０１や利用設定９０２をユーザが変更可能なユーザインタフェースを備えることで、ユーザが意図した共有設定に変更することを可能にしている。さらに、ユーザが、自動生成されたユーザクレデンシャル共有設定を利用しない選択も可能であるため、ユーザクレデンシャルの漏洩を防止することもできる。ユーザが自動生成されたユーザクレデンシャル共有設定９０１を変更して、更に多くのアプリケーション間でユーザクレデンシャルの共有を可能にすることにより、シングルサインオンを行うことの利便性を上げることもできる。
【００３７】
＜ユーザクレデンシャル共有サービス３０４の運用時に関する動作＞
次に、図１２を参照して、ユーザクレデンシャル共有サービス３０４が他のアプリケーションから利用される際の動作例について説明する。また、ここでは、ユーザが画像形成装置１０１にログイン後に、始めにアプリケーション３１２を使用し、その後アプリケーション３１３を使用してログアウトした場合の動作を例として説明する。なお、以下で説明するユーザクレデンシャル共有サービス３０４、ログインアプリケーション３０５、アプリケーション３１２、３１３の処理は、ＣＰＵ２０１がＲＯＭ２０２やＨＤＤ２０４からプログラムを読み出して実行することにより実現される。
【００３８】
Ｓ１２００において、ユーザが画像形成装置１０１の操作パネル２０５に表示されたログイン画面５０１に、アカウントとパスワードを入力してログイン操作を行う。続いて、Ｓ１２０１において、ログインアプリケーション３０５は、入力されたアカウントとパスワードを検証して正規のユーザであることを確認すると、ユーザがログインしたことをユーザクレデンシャル共有サービス３０４に通知する。ユーザのログイン通知を受信したユーザクレデンシャル共有サービス３０４は、Ｓ１２０２において、ＨＤＤ２０４に保存されたユーザクレデンシャル共有設定９０１及び利用設定９０２を参照する。
【００３９】
ユーザクレデンシャル共有設定９０１に暗号化が必要なＷｅｂＰｒｏｘｙＡｃｃｏｕｎｔ＿００１／ＷｅｂＰｒｏｘｙＰａｓｓｗｏｒｄ＿００１があれば、Ｓ１２０３において、ユーザクレデンシャル共有サービス３０４は、データを暗号化・復号化するための暗号鍵を生成して、ＲＡＭ２０３上に保持する。鍵の生成には、ＡＥＳなどの共通鍵暗号方式などが利用される。例えば、ＲＡＭ２０３上には、管理ＩＤと関連づけてデータを管理するためのユーザクレデンシャルデータ管理テーブル１３００が用意される。ここでは、暗号鍵データ００１と暗号鍵データ００２を生成して、ＷｅｂＰｒｏｘｙＡｃｃｏｕｎｔ＿００１とＷｅｂＰｒｏｘｙＰａｓｓｗｏｒｄ＿００２と関連付けて保存する。
【００４０】
次に、Ｓ１２０４において、ユーザクレデンシャル共有サービス３０４は、生成した暗号鍵を、ＷｅｂＰｒｏｘｙＡｃｃｏｕｎｔ＿００１とＷｅｂＰｒｏｘｙＰａｓｓｗｏｒｄ＿００２とを利用するアプリケーション３１２、３１３に配信する。ユーザクレデンシャル共有サービス３０４が、各アプリケーションが任意のタイミングで暗号鍵を取得できるＡＰＩ６０３を備えてもよい。続いて、Ｓ１２０５において、ログインアプリケーション３０５は、ＳｅｔＵｓｅｒＣｒｅｄｅｎｔｉａｌＡＰＩ６０１を利用して、Ｓ１２００で取得したアカウントとパスワードを、ユーザクレデンシャル共有サービス３０４に保存要求する。ユーザクレデンシャル共有サービス３０４は、ユーザクレデンシャル共有設定９０１及び利用設定９０２を参照して、ログインアプリケーション３０５が、ＬｏｇｉｎＡｃｃｏｕｎｔ＿００１／ＬｏｇｉｎＰａｓｓｗｏｒｄ＿００１を更新可能であるかを確認する。ユーザクレデンシャル共有サービス３０４は、ユーザクレデンシャルデータ管理テーブル１３００に、アカウント／パスワード（Ａｌｉｃｅ／ＡｌｉｃｅＬｏｇｉｎ）をＬｏｇｉｎＡｃｃｏｕｎｔ＿００１／ＬｏｇｉｎＰａｓｓｗｏｒｄ＿００１と関連付けて保存する。さらに、最終更新アプリケーションのＡｐｐｌｉｃａｔｉｏｎＩＤや、更新日時も合わせて記録する。
【００４１】
次に、Ｓ１２０６において、アプリケーション３１２は、インターネットアクセスを要するユーザ操作を検知する。続いて、Ｓ１２０７において、アプリケーション３１２は、ＧｅｔＵｓｅｒＣｒｅｄｅｎｔｉａｌＡＰＩ６０２を利用してユーザクレデンシャル共有サービス３０４に、ＷｅｂＰｒｏｘｙＡｃｃｏｕｎｔ／ＷｅｂＰｒｏｘｙＰａｓｓｗｏｒｄの取得を要求する。ユーザクレデンシャル共有サービス３０４は、ユーザクレデンシャルデータ管理テーブル１３００を参照するが、ログイン直後はＷｅｂＰｒｏｘｙＡｃｃｏｕｎｔ_００１／ＷｅｂＰｒｏｘｙＰａｓｓｗｏｒｄ＿００１が保存されていないため、ＮＵＬＬを返却する。
【００４２】
ＷｅｂＰｒｏｘｙＡｃｃｏｕｎｔ／ＷｅｂＰｒｏｘｙＰａｓｓｗｏｒｄが取得できなかったアプリケーション３１２は、Ｓ１２０８において、ＬｏｇｉｎＡｃｃｏｕｎｔ／ＬｏｇｉｎＰａｓｓｗｏｒｄの取得をユーザクレデンシャル共有サービス３０４に要求する。ユーザクレデンシャル共有サービス３０４は、ＬｏｇｉｎＡｃｃｏｕｎｔ（Ａｌｉｃｅ）／ＬｏｇｉｎＰａｓｓｗｏｒｄ（ＡｌｉｃｅＬｏｇｉｎ）を返却する。その後、Ｓ１２０９において、アプリケーション３１２は、プロキシサーバ１０４にアクセスして、Ｓ１２０８で取得したアカウントとパスワードを用いて認証を試みる。ここで、アカウント（Ａｌｉｃｅ）とパスワード（ＡｌｉｃｅＬｏｇｉｎ）が、プロキシサーバ１０４に登録されていれば認証が成功する。この場合、ユーザはプロキシサーバ１０４の認証を意識することなく、インターネットにアクセスできる。一方、アカウント（Ａｌｉｃｅ）とパスワード（ＡｌｉｃｅＬｏｇｉｎ）がプロキシサーバ１０４に登録されていなければ、認証エラーが通知される。
【００４３】
認証エラーが通知された場合を想定して、この後の処理を説明する。プロキシサーバ１０４の認証に失敗したアプリケーション３１２は、Ｓ１２１０において、プロキシ認証画面５０３を表示して、ユーザにプロキシ認証のためのアカウント／パスワードの入力を促す。その後、アプリケーション３１２は、Ｓ１２１１でユーザからのプロキシ認証用のアカウント／パスワードの入力操作を検知すると、Ｓ１２１２において、入力されたアカウント／パスワードを用いて再びプロキシサーバ１０４にアクセスして認証処理を行う。プロキシ認証が成功すると、Ｓ１２１３において、アプリケーション３１２は、プロキシ認証に成功したアカウント／パスワードをＳ１２０４で取得した暗号鍵を用いて暗号化する。その後、Ｓ１２１４において、アプリケーション３１２は、暗号化したアカウント／パスワードを、ＳｅｔＵｓｅｒＣｒｅｄｅｎｔｉａｌＡＰＩ６０１を利用して、ユーザクレデンシャル共有サービスに保存する。
【００４４】
次に、Ｓ１２１５において、アプリケーション３１３は、インターネットアクセスを要するユーザ操作を検知する。Ｓ１２１６において、アプリケーション３１３は、ＧｅｔＵｓｅｒＣｒｅｄｅｎｔｉａｌＡＰＩ６０２を利用してユーザクレデンシャル共有サービス３０４へＷｅｂＰｒｏｘｙＡｃｃｏｕｎｔ／ＷｅｂＰｒｏｘｙＰａｓｓｗｏｒｄの取得を要求する。ユーザクレデンシャル共有サービス３０４は、ユーザクレデンシャル共有設定９０１及び利用設定９０２を参照し、アプリケーション３１３がＷｅｂＰｒｏｘｙＡｃｃｏｕｎｔ_００１／ＷｅｂＰｒｏｘｙＰａｓｓｗｏｒｄ＿００１を参照可能であるかを確認する。参照可能であれば、ユーザクレデンシャル共有サービス３０４は、ユーザクレデンシャルデータ管理テーブル１３００を参照して、ＷｅｂＰｒｏｘｙＡｃｃｏｕｎｔ_００１／ＷｅｂＰｒｏｘｙＰａｓｓｗｏｒｄ＿００１に保存された暗号化されたアカウント／パスワードを返却する。１つのクレデンシャルＩＤに対して複数の管理ＩＤ関連づけられたアカウント／パスワードが参照可能である場合は、複数のアカウント／パスワードを返却する。この際、保存を行ったアプリケーションや更新日時などを考慮して、優先度の高い順にソートして返却しても良い。
【００４５】
暗号化されたアカウント／パスワードの取得に成功したアプリケーション３１３は、Ｓ１２１７において、Ｓ１２０４で取得した暗号鍵を使用して暗号化されたデータを復号化して、アカウント／パスワードを取得する。続いて、Ｓ１２１８において、アプリケーション３１３は、取得したアカウント／パスワードを用いてプロキシサーバ１０４にアクセスして認証処理を行う。
【００４６】
ログインアプリケーション３０５は、Ｓ１２１９においてユーザのログアウト操作を検知すると、Ｓ１２２０においてユーザクレデンシャル共有サービス３０４にログアウト通知を行う。ログアウト通知を受信したユーザクレデンシャル共有サービス３０４は、Ｓ１２２１において、ユーザクレデンシャルデータ管理テーブル１３００に記録したデータを全て破棄する。
【００４７】
＜ＳｅｔＵｓｅｒＣｒｅｄｅｎｔｉａｌＡＰＩの補足説明＞
ＳｅｔＵｓｅｒＣｒｅｄｅｎｔｉａｌＡＰＩ６０１は、引数に指定されたＣｒｅｄｅｎｔｉａｌＩＤと関連付いた更新可能な管理ＩＤが複数存在する場合は、管理ＩＤが示す領域の全にユーザクレデンシャルの保存を行う。例えば、アプリケーション３０８が、ＣｒｅｄｅｎｔｉａｌＩＤにＦｉｌｅＳｅｒｖｅｒＰａｓｓｗｏｒｄを指定してＳｅｔＵｓｅｒＣｒｅｄｅｎｔｉａｌＡＰＩ６０１を呼び出した場合の動作を説明する。ユーザクレデンシャル共有サービス３０４は、ユーザクレデンシャル共有設定９０１及び利用設定９０２を参照して、アプリケーション３０８がＦｉｌｅＳｅｒｖｅｒＰａｓｓｗｏｒｄ＿００１／ＦｉｌｅＳｅｒｖｅｒＰａｓｓｗｏｒｄ＿００２を更新可能なことを確認する。そして、ユーザクレデンシャルデータ管理テーブル１３００のＦｉｌｅＳｅｒｖｅｒＰａｓｓｗｏｒｄ＿００１／ＦｉｌｅＳｅｒｖｅｒＰａｓｓｗｏｒｄ＿００２それぞれと関連付けて、引数に指定されたユーザクレデンシャルデータを保存する。
【００４８】
＜その他の実施形態＞
上記実施形態では、ユーザクレデンシャル共有サービス３０４を利用してアカウント／パスワードを共有する例を示した。しかしながら、本発明はこれに限定されない。例えば、他のユーザクレデンシャルとして、パスワードのハッシュ値、ＫｅｒｂｅｒｏｓのＴＧＴやＳＡＭＬなどのチケット、指紋などの生体情報、ユーザが所有するＩＣカード情報などを、ユーザクレデンシャル共有サービス３０４を利用して共有可能にしてもよい。
【００４９】
また、上記実施形態において、共有先アプリケーションを示す情報として、マニフェストファイルに、ＴｒｕｓｔＡｐｐｌｉｃａｔｉｏｎＩＤとしてアプリケーションＩＤを記述する例を示したが、アプリケーションに関係する情報であればその他の情報でもよい。例えば、アプリケーションを作成したベンダの情報をマニフェストファイルに記述して、該当ベンダが作成した全てのアプリケーションを共有先として指定してもよい。また、アプリケーショングループ情報をマニフェストファイルに記述して、アプリケーショングループに属する全てのアプリケーションを共有先として指定してもよい。
【００５０】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005620781.tif 000002
【図２】
0005620781.tif 000003
【図３】
0005620781.tif 000004
【図４】
0005620781.tif 000005
【図５】
0005620781.tif 000006
【図６】
0005620781.tif 000007
【図７】
0005620781.tif 000008
【図８】
0005620781.tif 000009
【図９】
0005620781.tif 000010
【図１０】
0005620781.tif 000011
【図１１】
0005620781.tif 000012
【図１２】
0005620781.tif 000013
【図１３】
0005620781.tif 000014