説明

情報処理装置、その制御方法、及びプログラム

【課題】アプリケーションを作成するベンダが意図したユーザクレデンシャルの共有条件でユーザクレデンシャルの共有サービスを提供する情報処理装置及びその制御方法を提供する。
【解決手段】本情報処理装置は、各アプリケーションから取得したマニフェストファイルに従って各アプリケーション間でのユーザクレデンシャルの項目ごとに共有条件を定義した共有設定を生成し、何れかのアプリケーションからユーザクレデンシャルを要求されると、生成した共有設定に従って、要求したアプリケーションに対して当該ユーザクレデンシャルを提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のアプリケーションをインストールすることができ、アプリケーション間でユーザクレデンシャルを共有する情報処理装置、その制御方法、及びプログラムに関するものである。
【背景技術】
【0002】
ネットワークに接続可能な複写機やMFP(マルチファンクションペリフェラル装置)などの画像形成装置では、利用するユーザを認証するログインアプリケーションや、組込アプリケーションを追加インストールすることができる。また、当該画像形成装置で実行可能なアプリケーションには、スキャナから読み込んだドキュメント等をネットワークを介して外部サーバに送信するアプリケーションや、ネットワークを介して、外部サーバと接続し、外部リソースを取得するアプリケーションなどがある。これらのアプリケーションは、デバイスのハードウェアを提供するベンダとは異なるベンダが作成して、販売することができる。
【0003】
このような画像形成装置において、外部リソースへのアクセスの度に、ユーザに認証行為を行わせるのはユーザに係る操作負荷が大きいことから、ユーザが行う認証行為を1回にしたシングルサインオン技術が知られている。例えば、特許文献1には、ネットワークシステム全体において、ネットワークプロバイダ間でコンピュータのユーザクレデンシャルや、外部システムにアクセスするためのユーザクレデンシャルを共有させる技術が提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平08−263417号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術には以下に記載する問題がある。例えば、特許文献1のような、ユーザクレデンシャルを共有可能にしているネットワークプロバイダを持たない画像形成装置では、アプリケーション間でユーザクレデンシャルを共有することができなかった。また、無条件にアプリケーション間でユーザクレデンシャルを共有可能にすると、ユーザクレデンシャルを登録したアプリケーションと異なるアプリケーションが、ユーザクレデンシャルを外部に漏洩してしまうリスクがある。このため、アプリケーションを作成するベンダは、同一ベンダや信頼するベンダが作成したアプリケーションのみでユーザクレデンシャルを共有したいと考える。しかし、従来のユーザクレデンシャル共有手法においては、アプリケーションを作成するベンダがユーザクレデンシャル共有先のアプリケーションを限定する手法が無いという問題があった。
【0006】
本発明は、上述の問題に鑑みて成されたものであり、アプリケーションを作成するベンダが意図したユーザクレデンシャルの共有条件でユーザクレデンシャルの共有サービスを提供する情報処理装置及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、例えば、情報処理装置として実現できる。情報処理装置は、前記情報処理装置において動作する複数のアプリケーションのそれぞれから、ユーザを証明するための情報を有するユーザクレデンシャルの複数の項目ごとに定義された、他のアプリケーションとの該ユーザクレデンシャルの共有条件をそれぞれ取得する取得手段と、取得した前記共有条件から、各アプリケーション間でのユーザクレデンシャルの項目ごとに前記共有条件を定義した共有設定を生成するとともに、生成した該共有設定をメモリに格納する生成手段と、少なくとも1つの前記アプリケーションから通知される前記ユーザクレデンシャルをメモリに保持する保持手段と、何れかの前記アプリケーションから前記ユーザクレデンシャルを要求されると、メモリに格納された前記共有設定に従って、要求したアプリケーションに対して該ユーザクレデンシャルを提供する提供手段とを備えることを特徴とする。
【発明の効果】
【0008】
本発明は、アプリケーションを作成するベンダが意図したユーザクレデンシャルの共有条件でユーザクレデンシャルの共有サービスを提供する情報処理装置及びその制御方法を提供できる。
【図面の簡単な説明】
【0009】
【図1】第1の実施形態に係るネットワーク構成を示す図である。
【図2】第1の実施形態に係る画像形成装置のハードウェア構成を示す図である。
【図3】第1の実施形態に係る画像形成装置のソフトウェア構成を示す図である。
【図4】第1の実施形態に係るアプリケーションを管理する為のユーザインタフェースを示す図である。
【図5】第1の実施形態に係るユーザ認証情報入力が画面を示す図である。
【図6】第1の実施形態に係るユーザクレデンシャル共有サービスが備えるAPIを示す図である。
【図7】第1の実施形態に係るアプリケーションが備えるマニフェストファイルを示す図である。
【図8】第1の実施形態に係るユーザクレデンシャル共有サービスの起動と設定に係るシーケンスを示す図である。
【図9】第1の実施形態に係るユーザクレデンシャル共有設定/利用設定を示す図である。
【図10】第1の実施形態に係るユーザレデンシャル共有設定に対する利用設定を行う為のユーザインタフェースを示す図である。
【図11】第1の実施形態に係るユーザレデンシャル共有設定を編集する為のユーザインタフェースを示す図である。
【図12】第1の実施形態に係るユーザレデンシャル共有サービスの利用に係るシーケンスを示す図である。
【図13】第1の実施形態に係るユーザクレデンシャルデータ管理テーブルを示す図である。
【発明を実施するための形態】
【0010】
以下、本発明を実施するための形態について図面を用いて説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【0011】
<第1の実施形態>
<ネットワーク構成の説明>
以下では、図1乃至図13を参照して、本発明における第1の実施形態について説明する。まず、図1を参照して、本実施形態に係るネットワーク構成について説明する。本実施形態では、デバイスの一例としてMFP、プリンタ、ファックス、複写機などの画像形成装置(情報処理装置)を使用する例を示す。
【0012】
図1に示すように、ローカルエリアネットワーク(LAN)105には、画像形成装置101と、メールサーバ102と、ファイル共有サーバ103と、プロキシサーバ104とが相互通信可能に接続される。メールサーバ102は、SMTP(Simple Mail Transfer Protocol)や、POP3(Post Office Protocol Version3)などのプロトコル実装を備える。ファイル共有サーバ103は、SMB(Server Message Block)のプロトコル実装を備える。プロキシサーバ104は、LAN105とインターネット(WLAN)106の両方に接続され、LAN105に接続された端末からインターネット106に接続する際の代理端末として利用される。各サーバ102、103、104は、当該サーバを利用するユーザを認証するためにそれぞれのプロトコルに準拠したユーザ認証機能を備える。
【0013】
<画像形成装置のハードウェア構成>
次に、図2を参照して、画像形成装置のハードウェア構成について説明する。画像形成装置101は、情報処理装置の一例であり、CPU201、ROM202、RAM203、HDD204、操作パネル205、ICカード読取装置206、ネットワークI/F207、プリンタ208、及びスキャナ209を備える。CPU201は、画像形成装置101全体を統括的に制御する。ROM202は、CPU201が実行するソフトウェアプログラムやフォントデータを格納するリード・オンリ・メモリである。RAM203は、CPU201のワークエリア、受信バッファ、画像描画に使用されるランダム・アクセス・メモリである。HDD(ハードディスドライブ)204は、ソフトウェアのプログラムコードや、ユーザ認証情報などのデータを記録する。
【0014】
操作パネル205は、各種スイッチやボタン、並びにメッセージ表示用の液晶表示部で構成される。ICカード読取装置206は、ユーザ認証に使用するICカードの読取装置である。ネットワークI/F207は、画像形成装置101をネットワークに接続するためのインタフェースである。プリンタ208は、画像データに従って記録紙に印刷を行う。スキャナ209は、印刷されたドキュメントなどを読み込んで電子データに変換する。
【0015】
<画像形成装置のソフトウェア構成>
次に、図3乃至図5を参照して、画像形成装置101のソフトウェア構成と、記憶情報とについて説明する。図3に示すように、画像形成装置101は、デバイスドライバ群301、オペレーティングシステム302、アプリケーションプラットフォーム303、ユーザクレデンシャル共有サービス304、ログインアプリケーション305、及びアプリケーション306〜313を備える。デバイスドライバ群301は、上記各種ハードウェアを制御するための複数のデバイスドライバを有する。オペレーティングシステム302は、デバイスドライバ群301のインタフェースを各アプリケーションに提供する。
【0016】
アプリケーションプラットフォーム303は、画像形成装置101の組込アプリケーションをインストール/アンインストールするとともに、起動/停止などを制御する。例えば、アプリケーションプラットフォーム303は、JAVA(登録商標)プラットフォームや、OSGiフレームワークを含む形で構成することができる。JAVA(登録商標)は、SunMicrosystems,Incの登録商標である。OSGiフレームワークは、OSGi Alliance(標準化団体)が定義したJAVAベースのサービスプラットフォームである。アプリケーションプラットフォーム303には、画像形成装置101が工場出荷時から備えるアプリケーションに加えて、ユーザが追加でアプリケーションをインストールすることができる。例えば、アプリケーションプラットフォーム303は、アプリケーションを管理するための、図4に示すユーザインタフェースを備えるサーブレットをユーザに提供する。画像形成装置101の管理者は、ネットワークを介して、アプリケーションの実行ファイル(JARファイル)を指定して、アプリケーションの追加インストールを実施することができる。
【0017】
<アプリケーションの種別>
ここで、アプリケーションの種別について説明する。アプリケーションプラットフォーム303上で動作可能なアプリケーションとしては、例えば、システムアプリケーション、ログインアプリケーション、及び一般アプリケーションがある。以下では、特にアプリケーションの種別を限定しない場合は、単にアプリケーションと記述する。システムアプリケーションは、画像形成装置101が工場出荷時から備えるアプリケーションである。ログインアプリケーションは、画像形成装置101にログインするユーザを認証するための特別なアプリケーションである。一般アプリケーションは、ログインアプリケーション以外のユーザがインストール/アンインストール可能なアプリケーションである。
【0018】
図3の説明に戻る。ユーザクレデンシャル共有サービス304は、システムアプリケーションとして動作する。ログインアプリケーション305は、操作パネル上に図5の501に示すようなユーザアカウント/パスワードを入力するためのユーザインタフェースを表示してユーザ認証を行う。例えば、図5の502に示すように、“ICカードをICカード読取装置にかざしてください”というようなメッセージを表示して、ICカード読取装置206から取得したICカード情報をもとにユーザ認証を行ってもよい。アプリケーション306〜313は、一般アプリケーションである。
【0019】
<ユーザクレデンシャル>
本実施形態では、下記のようなユーザ認証や、ユーザ認証後に生成されるユーザを証明する情報を総称してユーザクレデンシャルと称する。ユーザクレデンシャルには、ユーザID、パスワード、ドメイン名、パスワードのハッシュ値、暗号化されたパスワード、KerberosのTGTやSAML(Security Assertion Markup Language)などのチケット、指紋などの生体情報、ユーザが所有するICカード情報などが含まれる。
【0020】
<ユーザクレデンシャル共有サービス304>
次に、図6を参照して、ユーザクレデンシャル共有サービス304について説明する。ユーザクレデンシャル共有サービス304は、各アプリケーション間でユーザクレデンシャルの共有を可能にするサービスを提供する。ユーザクレデンシャル共有サービス304は、図6に示すAPI601〜603を備え、アプリケーションからの利用を可能にしている。SetUserCredentialAPI601は、アプリケーションに指定されたユーザクレデンシャルをRAM203等のメモリに保存する。GetUserCredentialAPI602は、RAM203に保存したユーザクレデンシャルを取得して、アプリケーションに返却する。ユーザクレデンシャル共有サービス304は、ユーザのログアウトや、画像形成装置101のシャットダウンを検知すると、RAM203に保存したユーザクレデンシャルデータを破棄する。GetKeyforEncryptCredentialAPI603は、生成した鍵情報を、アプリケーションに返却する。図6のAPI601〜603で使用するユーザクレデンシャルの識別子(項目)を、以下では、クレデンシャルIDと称する。
【0021】
<マニフェストファイル>
次に、図7を参照して、マニフェストファイルについて説明する。ログインアプリケーション305及び一般アプリケーション306〜313の実行ファイルはそれぞれ、図7に示すマニフェストファイル701〜709を備える。マニフェストファイルは、ベンダがアプリケーション作成時に記述する。これによりアプリケーションを作成するベンダが、マニフェストファイルにユーザクレデンシャル共有条件に相当する情報を定義することができる。マニフェストファイルは、アプリケーションのインストール時や起動時にアプリケーションプラットフォーム303によって読み取られる。また、ユーザクレデンシャル共有サービス304は、アプリケーションプラットフォーム305から、アプリケーションや画像形成装置101の起動時、ユーザのログイン時にマニフェストファイルを取得して、後述するユーザクレデンシャル共有設定を生成する。マニフェストファイルには、項目名と値が記述される。本実施形態では、マニフェストファイルに記述する項目を下記のように定義する。
・ApplicationID
アプリケーションを一意に特定するための識別子。
・ApplicatonType
アプリケーションの種別を示す。701の値のLoginは、ログインアプリケーションを示し、702〜709の値のApplicationは、一般アプリケーションを示す。
・TrustApplicationID
信頼するアプリケーションの識別子。信頼するアプリケーションを限定しない場合は、*が記述される。
・ReferenceCredentialID
ユーザクレデンシャルの参照のみを行うクレデンシャルID。
・ReadOnlyShredCredentialID
信頼するアプリケーションに対して、参照のみを許可するクレデンシャルID。
・WritableSharedCredentialID
信頼するアプリケーションに対して、参照と保存・更新を許可するクレデンシャルID。
・WritableEncryptSharedCredentialID
信頼するアプリケーションに対して、参照と保存・更新を許可するクレデンシャルID。ユーザクレデンシャルは、暗号化した状態で、RAM203上のユーザクレデンシャル共有サービス304が管理する領域に保存する。
・CredentialType
共有するクレデンシャルの型。ユーザアカウント、パスワード、ドメイン名などの文字列、パスワードのハッシュ値、暗号化されたパスワード、KerberosのTGTやSAMLなどのチケット、指紋などの生体情報、ユーザが所有するICカード情報などの種別が記述される。記述が無い場合は、文字列とする。
【0022】
<ログインアプリケーション305>
ログインアプリケーション305は、マニフェストファイル701を有する。ログインアプリケーション305は、ログイン画面501に入力されたアカウントとパスワードを取得して、画像形成装置101を利用するユーザの認証を行う。認証が成功したユーザのアカウントとパスワードは、ユーザクレデンシャル共有サービス304のAPIを利用してRAM203に記録される。710は、ログインアプリケーション305がクレデンシャルID(LoginAccount/LoginPassword)を他のアプリケーションが参照可能なユーザクレデンシャルとして保存すること示す。711は、値が*(ワイルドカード)であるため、LoginAccount/LoginPasswordを参照するアプリケーションを限定せず、全てのアプリケーションに対して参照を許可することを示す。
【0023】
<アプリケーション306、307>
アプリケーション306、307は、メールサーバ102にアクセスして電子メールの送受信を行う機能を備える一般アプリケーションである。アプリケーション306、307は、それぞれマニフェストファイル702、703を有する。712は、アプリケーション306がユーザクレデンシャル共有サービス304のAPIを利用してログインアプリケーション305が保存したLoignAccount/LoginPasswordを参照することを示す。アプリケーション306は、LoginAccount/LoginPasswordをメールサーバ102へアクセスする際の認証に利用する。他のアプリケーション307〜313も同様に、LoginAccount/LoginPasswordを外部サーバにアクセスする際の認証情報として利用する。713は、アプリケーション306、307が相互に信頼関係があることを示す。714は、アプリケーション306、307がメールサーバ102にアクセスするためのアカウントとパスワードを、MailAccount/MailPasswordとして、ユーザクレデンシャル共有サービス304を介して共有することを示す。
【0024】
<アプリケーション308、309、310、311>
アプリケーション308、309、310、311は、ファイル共有サーバ103にアクセスする一般アプリケーションである。例えば、スキャナ209から読み込んだドキュメントをPDFに変換してファイル共有サーバ103に送信する機能や、ファイル共有サーバ103から取得したドキュメントをプリンタ208で印刷する機能を備える。アプリケーション308、309、310、311は、それぞれマニフェストファイル704、705、706,707を備える。715は、各アプリケーションが、ファイル共有サーバ103にアクセスするためのアカウント/パスワードをFileServerAccount/FileServerMailPasswordとして、ユーザクレデンシャル共有サービス304を介して共有することを示す。716は、アプリケーション308がアプリケーション309、310と相互に信頼関係があるが、アプリケーション309と310との間に相互の信頼関係が無いことを示す。更に、アプリケーション311は、アプリケーション308に信頼をおいているが、アプリケーション308からは信頼されていないこと示す。
【0025】
<アプリケーション312、313>
アプリケーション312、313は、インターネット(WAN106)上のWebサーバにアクセスして情報を取得する一般アプリケーションである。アプリケーション312、313は、プロキシサーバ104を介して、インターネット(WAN106)にアクセスするため、プロキシサーバ104を利用する際に認証が求められる。アプリケーション312、313は、それぞれマニフェストファイル708、709を備える。717は、アプリケーション312、313が相互に信頼関係があることを示す。718は、アプリケーション312と313とがプロキシサーバ104にアクセスするためのアカウントとパスワードを、WebProxyAccountとWebProxyPasswordとして、データを暗号化した状態で共有することを示す。
【0026】
<ユーザクレデンシャル共有サービス304の起動に関する動作>
次に、図8を参照して、本実施形態に係るユーザクレデンシャル共有サービス304の起動に係る動作について説明する。なお、以下で説明する処理は、CPU201がROM202やHDD204からプログラムを読み出して実行することにより実現される。
【0027】
S801において、ユーザクレデンシャル共有サービス304は、アプリケーションプラットフォーム303から起動処理を呼び出されることによって起動処理を開始する。続いて、S802において、ユーザクレデンシャル共有サービス304は、アプリケーションプラットフォーム303を介して、起動している全てのアプリケーションのマニフェストファイルの記述を取得する。次に、S803において、ユーザクレデンシャル共有サービス304は、取得した全てのマニフェストファイルを解析して、図9に示すように、各アプリケーション間での共有条件を定義した、適切なユーザクレデンシャル共有設定901を生成する。ユーザクレデンシャル共有設定は下記の項目を含む。
・クレデンシャルID。
・ユーザクレデンシャルの種別。
・ユーザクレデンシャル共有サービス304が発行したユーザクレデンシャルの保存領域を示す管理ID。
・管理IDが示す保存領域のユーザクレデンシャルを保存・更新可能なアプリケーションのApplicationID。
・管理IDが示す保存領域のユーザクレデンシャルを参照可能なアプリケーションのApplicationID。
【0028】
例えば、マニフェストファイルの715、716を解析したユーザクレデンシャル共有サービス304は、FileServerPasswordを保存するための領域を示す管理IDを3つ生成する。管理IDのFileServerPassword_001は、アプリケーション308、309がFileServerPassordを共有するための領域を示す。同様に、管理IDのFileServerPassword_002は、アプリケーション308、310がFileServerPassordを共有するための領域を示す。管理IDのFileServerPassword_003は、アプリケーション311だけが保存・更新する領域を示す。アプリケーション308は、アプリケーション311に信頼されているため、FileServerPassword_003のユーザクレデンシャルを参照可能である。しかしながら、アプリケーション308は、アプリケーション311を信頼していないため、アプリケーション311が参照可能なFileServerPassword_003へのクレデンシャルの保存・更新は行わないように、共有設定を生成する。
【0029】
次に、S804において、ユーザクレデンシャル共有サービス304は、以前起動した際に生成したユーザクレデンシャル共有設定901と利用設定902とがHDD204に記録されていれば、これを参照して取得する。利用設定902は、ユーザクレデンシャル共有設定901が示すユーザクレデンシャルの共有機能をユーザが利用するか否かを示す情報である。TURE(有効)は、利用することを示し、FALSE(無効)は利用しないことを示す。つまり、ユーザクレデンシャル共有サービス304は、利用設定902がTRUEの場合は、ユーザクレデンシャル共有設定901に従って、対応するユーザクレデンシャルをアプリケーションに提供するか否かを決定する。ユーザクレデンシャル共有サービス304は、以前のユーザクレデンシャル共有設定がHDD204から取得できた場合は、新たに生成したユーザクレデンシャル共有設定と比較し、差分を確認する。
【0030】
次に、S805において、ユーザクレデンシャル共有サービス304は、情報に追加があればユーザクレデンシャル共有設定を更新し、S806においてHDD204に保存する。また、S805において、利用設定も同様に、以前の利用設定がHDD204から取得できた場合は、情報に追加があれば新規に情報を追加して更新する。HDD204から利用設定が取得できなかった場合は、ユーザクレデンシャル共有サービス304は、利用設定を生成して初期値を設定する。本実施形態では、利用設定の初期値として、TRUE(利用する)を設定する。生成および更新した利用設定は、S806でHDD204に保存される。
【0031】
ユーザクレデンシャル共有サービス304は、アプリケーションプラットフォーム303を介して新しいアプリケーションのインストールや起動を知ることが可能である。この場合、ユーザクレデンシャル共有サービス304は、新しいアプリケーションのマニフェストファイルを解析して、HDD204に記録したユーザクレデンシャル共有設定/利用設定を更新する。
【0032】
上述したように、ユーザクレデンシャル共有サービス304は、アプリケーションから取得したマニフェストファイルに記述された情報を利用して、ユーザクレデンシャル共有設定を自動生成する。これにより、ユーザクレデンシャル共有のために詳細な設定を行うことが煩わしいユーザも特に設定を意識することなく、ユーザクレデンシャル共有サービス304を安全に利用することができる。
【0033】
<ユーザクレデンシャル共有サービス304の設定に関する動作>
ユーザクレデンシャル共有サービス304は、図10に示すユーザクレデンシャル共有設定の利用設定を行うユーザインタフェース1000を操作パネル205に表示する機能を備える。ユーザインタフェース1000は、画像形成装置101の管理者のみが操作可能なように構成される。1001は、ユーザクレデンシャル共有サービス304が生成したユーザクレデンシャル共有設定901に対する利用設定902を変更するためのチェックボックスである。管理者は、利用する設定に対してチェックを入力する。本実施形態では、初期状態では全ての設定にチェックが入った状態になっているものとする。管理者は利用したくない設定のチェックボックスを外すことが可能である。つまり、利用設定902には、ユーザクレデンシャル共有設定901に定義されたユーザクレデンシャルの項目ごとの共有条件を、それぞれ有効にするか無効にするか設定が定義される。
【0034】
更に、ユーザクレデンシャル共有サービス304は、図11に示すようなユーザクレデンシャル共有設定を編集するためのユーザインタフェース1100を操作パネル205に表示する機能を備える。例えば、編集対象の設定のチェックボックス1101にチェックを入力して、編集ボタン1102を押下すると、図11の1110が操作パネル205に表示される。1110では、更新可能なアプリケーションのリスト1103や参照可能アプリケーションのリスト1104を表示して、管理者が対象のアプリケーションを追加・削除できるように構成される。
【0035】
次に、図8の説明に戻り、ユーザクレデンシャル共有サービス304の設定に係る動作について説明する。管理者からのアクセスを検知すると、S808において、ユーザクレデンシャル共有サービス304は、HDD204からユーザクレデンシャル共有設定901と利用設定902とを取得して、ユーザインタフェース1000、1100を表示する。例えば管理者が利用設定の変更操作を行ったことを検知すると、S809において、ユーザクレデンシャル共有サービス304は、利用設定902を更新して、HDD204に記録する。管理者が利用すると設定したユーザクレデンシャル共有設定に対して、更に、画像形成装置101を利用する一般ユーザ毎の利用設定が可能なように構成してもよい。管理者がユーザインタフェース1100、1110を用いてユーザクレデンシャル共有設定を編集したことを検知すると、S810において、ユーザクレデンシャル共有サービス304は、ユーザクレデンシャル共有設定901を更新して、HDD204に記録する。
【0036】
アプリケーションを利用するユーザには、ユーザクレデンシャルの漏洩を気にするユーザもいれば、シングルサインオンができることの利便性を重視するユーザもいる。本実施形態によれば、ユーザクレデンシャル共有設定901や利用設定902をユーザが変更可能なユーザインタフェースを備えることで、ユーザが意図した共有設定に変更することを可能にしている。さらに、ユーザが、自動生成されたユーザクレデンシャル共有設定を利用しない選択も可能であるため、ユーザクレデンシャルの漏洩を防止することもできる。ユーザが自動生成されたユーザクレデンシャル共有設定901を変更して、更に多くのアプリケーション間でユーザクレデンシャルの共有を可能にすることにより、シングルサインオンを行うことの利便性を上げることもできる。
【0037】
<ユーザクレデンシャル共有サービス304の運用時に関する動作>
次に、図12を参照して、ユーザクレデンシャル共有サービス304が他のアプリケーションから利用される際の動作例について説明する。また、ここでは、ユーザが画像形成装置101にログイン後に、始めにアプリケーション312を使用し、その後アプリケーション313を使用してログアウトした場合の動作を例として説明する。なお、以下で説明するユーザクレデンシャル共有サービス304、ログインアプリケーション305、アプリケーション312、313の処理は、CPU201がROM202やHDD204からプログラムを読み出して実行することにより実現される。
【0038】
S1200において、ユーザが画像形成装置101の操作パネル205に表示されたログイン画面501に、アカウントとパスワードを入力してログイン操作を行う。続いて、S1201において、ログインアプリケーション305は、入力されたアカウントとパスワードを検証して正規のユーザであることを確認すると、ユーザがログインしたことをユーザクレデンシャル共有サービス304に通知する。ユーザのログイン通知を受信したユーザクレデンシャル共有サービス304は、S1202において、HDD204に保存されたユーザクレデンシャル共有設定901及び利用設定902を参照する。
【0039】
ユーザクレデンシャル共有設定901に暗号化が必要なWebProxyAccount_001/WebProxyPassword_001があれば、S1203において、ユーザクレデンシャル共有サービス304は、データを暗号化・復号化するための暗号鍵を生成して、RAM203上に保持する。鍵の生成には、AESなどの共通鍵暗号方式などが利用される。例えば、RAM203上には、管理IDと関連づけてデータを管理するためのユーザクレデンシャルデータ管理テーブル1300が用意される。ここでは、暗号鍵データ001と暗号鍵データ002を生成して、WebProxyAccount_001とWebProxyPassword_002と関連付けて保存する。
【0040】
次に、S1204において、ユーザクレデンシャル共有サービス304は、生成した暗号鍵を、WebProxyAccount_001とWebProxyPassword_002とを利用するアプリケーション312、313に配信する。ユーザクレデンシャル共有サービス304が、各アプリケーションが任意のタイミングで暗号鍵を取得できるAPI603を備えてもよい。続いて、S1205において、ログインアプリケーション305は、SetUserCredentialAPI601を利用して、S1200で取得したアカウントとパスワードを、ユーザクレデンシャル共有サービス304に保存要求する。ユーザクレデンシャル共有サービス304は、ユーザクレデンシャル共有設定901及び利用設定902を参照して、ログインアプリケーション305が、LoginAccount_001/LoginPassword_001を更新可能であるかを確認する。ユーザクレデンシャル共有サービス304は、ユーザクレデンシャルデータ管理テーブル1300に、アカウント/パスワード(Alice/AliceLogin)をLoginAccount_001/LoginPassword_001と関連付けて保存する。さらに、最終更新アプリケーションのApplicationIDや、更新日時も合わせて記録する。
【0041】
次に、S1206において、アプリケーション312は、インターネットアクセスを要するユーザ操作を検知する。続いて、S1207において、アプリケーション312は、GetUserCredentialAPI602を利用してユーザクレデンシャル共有サービス304に、WebProxyAccount/WebProxyPasswordの取得を要求する。ユーザクレデンシャル共有サービス304は、ユーザクレデンシャルデータ管理テーブル1300を参照するが、ログイン直後はWebProxyAccount_001/WebProxyPassword_001が保存されていないため、NULLを返却する。
【0042】
WebProxyAccount/WebProxyPasswordが取得できなかったアプリケーション312は、S1208において、LoginAccount/LoginPasswordの取得をユーザクレデンシャル共有サービス304に要求する。ユーザクレデンシャル共有サービス304は、LoginAccount(Alice)/LoginPassword(AliceLogin)を返却する。その後、S1209において、アプリケーション312は、プロキシサーバ104にアクセスして、S1208で取得したアカウントとパスワードを用いて認証を試みる。ここで、アカウント(Alice)とパスワード(AliceLogin)が、プロキシサーバ104に登録されていれば認証が成功する。この場合、ユーザはプロキシサーバ104の認証を意識することなく、インターネットにアクセスできる。一方、アカウント(Alice)とパスワード(AliceLogin)がプロキシサーバ104に登録されていなければ、認証エラーが通知される。
【0043】
認証エラーが通知された場合を想定して、この後の処理を説明する。プロキシサーバ104の認証に失敗したアプリケーション312は、S1210において、プロキシ認証画面503を表示して、ユーザにプロキシ認証のためのアカウント/パスワードの入力を促す。その後、アプリケーション312は、S1211でユーザからのプロキシ認証用のアカウント/パスワードの入力操作を検知すると、S1212において、入力されたアカウント/パスワードを用いて再びプロキシサーバ104にアクセスして認証処理を行う。プロキシ認証が成功すると、S1213において、アプリケーション312は、プロキシ認証に成功したアカウント/パスワードをS1204で取得した暗号鍵を用いて暗号化する。その後、S1214において、アプリケーション312は、暗号化したアカウント/パスワードを、SetUserCredentialAPI601を利用して、ユーザクレデンシャル共有サービスに保存する。
【0044】
次に、S1215において、アプリケーション313は、インターネットアクセスを要するユーザ操作を検知する。S1216において、アプリケーション313は、GetUserCredentialAPI602を利用してユーザクレデンシャル共有サービス304へWebProxyAccount/WebProxyPasswordの取得を要求する。ユーザクレデンシャル共有サービス304は、ユーザクレデンシャル共有設定901及び利用設定902を参照し、アプリケーション313がWebProxyAccount_001/WebProxyPassword_001を参照可能であるかを確認する。参照可能であれば、ユーザクレデンシャル共有サービス304は、ユーザクレデンシャルデータ管理テーブル1300を参照して、WebProxyAccount_001/WebProxyPassword_001に保存された暗号化されたアカウント/パスワードを返却する。1つのクレデンシャルIDに対して複数の管理ID関連づけられたアカウント/パスワードが参照可能である場合は、複数のアカウント/パスワードを返却する。この際、保存を行ったアプリケーションや更新日時などを考慮して、優先度の高い順にソートして返却しても良い。
【0045】
暗号化されたアカウント/パスワードの取得に成功したアプリケーション313は、S1217において、S1204で取得した暗号鍵を使用して暗号化されたデータを復号化して、アカウント/パスワードを取得する。続いて、S1218において、アプリケーション313は、取得したアカウント/パスワードを用いてプロキシサーバ104にアクセスして認証処理を行う。
【0046】
ログインアプリケーション305は、S1219においてユーザのログアウト操作を検知すると、S1220においてユーザクレデンシャル共有サービス304にログアウト通知を行う。ログアウト通知を受信したユーザクレデンシャル共有サービス304は、S1221において、ユーザクレデンシャルデータ管理テーブル1300に記録したデータを全て破棄する。
【0047】
<SetUserCredentialAPIの補足説明>
SetUserCredentialAPI601は、引数に指定されたCredentialIDと関連付いた更新可能な管理IDが複数存在する場合は、管理IDが示す領域の全にユーザクレデンシャルの保存を行う。例えば、アプリケーション308が、CredentialIDにFileServerPasswordを指定してSetUserCredentialAPI601を呼び出した場合の動作を説明する。ユーザクレデンシャル共有サービス304は、ユーザクレデンシャル共有設定901及び利用設定902を参照して、アプリケーション308がFileServerPassword_001/FileServerPassword_002を更新可能なことを確認する。そして、ユーザクレデンシャルデータ管理テーブル1300のFileServerPassword_001/FileServerPassword_002それぞれと関連付けて、引数に指定されたユーザクレデンシャルデータを保存する。
【0048】
<その他の実施形態>
上記実施形態では、ユーザクレデンシャル共有サービス304を利用してアカウント/パスワードを共有する例を示した。しかしながら、本発明はこれに限定されない。例えば、他のユーザクレデンシャルとして、パスワードのハッシュ値、KerberosのTGTやSAMLなどのチケット、指紋などの生体情報、ユーザが所有するICカード情報などを、ユーザクレデンシャル共有サービス304を利用して共有可能にしてもよい。
【0049】
また、上記実施形態において、共有先アプリケーションを示す情報として、マニフェストファイルに、TrustApplicationIDとしてアプリケーションIDを記述する例を示したが、アプリケーションに関係する情報であればその他の情報でもよい。例えば、アプリケーションを作成したベンダの情報をマニフェストファイルに記述して、該当ベンダが作成した全てのアプリケーションを共有先として指定してもよい。また、アプリケーショングループ情報をマニフェストファイルに記述して、アプリケーショングループに属する全てのアプリケーションを共有先として指定してもよい。
【0050】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
情報処理装置であって、
前記情報処理装置において動作する複数のアプリケーションのそれぞれから、ユーザを証明するための情報を有するユーザクレデンシャルの複数の項目ごとに定義された、他のアプリケーションとの該ユーザクレデンシャルの共有条件をそれぞれ取得する取得手段と、
取得した前記共有条件から、各アプリケーション間でのユーザクレデンシャルの項目ごとに前記共有条件を定義した共有設定を生成するとともに、生成した該共有設定をメモリに保存する生成手段と、
少なくとも1つの前記アプリケーションから通知される前記ユーザクレデンシャルをメモリに保持する保持手段と、
何れかの前記アプリケーションから前記ユーザクレデンシャルを要求されると、メモリに保存された前記共有設定に従って、要求したアプリケーションに対して該ユーザクレデンシャルを提供する提供手段と
を備えることを特徴とする情報処理装置。
【請求項2】
前記生成手段は、前記情報処理装置の起動時、アプリケーションの起動時、及びユーザのログイン時の何れかのタイミングで前記共有設定を生成し、生成した前記共有設定と、メモリに既に保存されている共有設定とを比較し、差分があれば生成した前記共有設定をメモリに更新することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記保持手段は、さらに、
前記共有設定に定義されたユーザクレデンシャルの項目ごとの共有条件を、それぞれ有効にするか無効にするかを設定する利用設定をメモリに保持し、
前記提供手段は、前記利用設定が有効を示す場合に、前記共有設定に従って、要求したアプリケーションに対して該ユーザクレデンシャルを提供するか否かを決定することを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
メモリに保持されている前記共有設定及び前記利用設定を変更するためのユーザインタフェースをさらに備えることを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記提供手段は、
前記ユーザクレデンシャルを要求したアプリケーションが、前記共有設定において前記ユーザクレデンシャルについて共有するよう定義されていなければ該ユーザクレデンシャルを提供せず、
前記ユーザクレデンシャルを要求したアプリケーションが、前記共有設定において前記ユーザクレデンシャルについて共有するよう定義されていれば該ユーザクレデンシャルを提供することを特徴とする請求項1乃至4の何れか1項に記載の情報処理装置。
【請求項6】
前記提供手段は、
前記保持手段によって保持されている前記ユーザクレデンシャルを暗号化する暗号化手段と、
前記ユーザクレデンシャルを暗号化する際に用いられる暗号鍵を各アプリケーションに配信する配信手段と
を備えることを特徴とする請求項1乃至5の何れか1項に記載の情報処理装置。
【請求項7】
前記複数のアプリケーションには、認証したユーザのユーザクレデンシャルを発行するログインアプリケーションが含まれ、
前記保持手段は、前記ログインアプリケーションから発行された、該ログインアプリケーションが認証を実行したユーザのユーザクレデンシャルをメモリに保持し、該ユーザがログアウトすると、当該ユーザクレデンシャルをメモリから削除することを特徴とする請求項1乃至6の何れか1項に記載の情報処理装置。
【請求項8】
前記共有設定には、前記ユーザクレデンシャルの項目ごとに、該ユーザクレデンシャルの情報を参照可能なアプリケーションの情報と、該ユーザクレデンシャルの情報を更新可能なアプリケーションの情報とが含まれることを特徴とする請求項1乃至7の何れか1項に記載の情報処理装置。
【請求項9】
情報処理装置の制御方法であって、
取得手段が、前記情報処理装置において動作する複数のアプリケーションのそれぞれから、ユーザを証明するための情報を有するユーザクレデンシャルの複数の項目ごとに定義された、他のアプリケーションとの該ユーザクレデンシャルの共有条件をそれぞれ取得する取得ステップと、
生成手段が、取得した前記共有条件から、各アプリケーション間でのユーザクレデンシャルの項目ごとに前記共有条件を定義した共有設定を生成するとともに、生成した該共有設定をメモリに保存する生成ステップと、
保持手段が、少なくとも1つの前記アプリケーションから通知される前記ユーザクレデンシャルをメモリに保持する保持ステップと、
提供手段が、何れかの前記アプリケーションから前記ユーザクレデンシャルを要求されると、メモリに保存された前記共有設定に従って、要求したアプリケーションに対して該ユーザクレデンシャルを提供する提供ステップと
を実行することを特徴とする情報処理装置の制御方法。
【請求項10】
請求項9に記載の情報処理装置の制御方法が有する各ステップをコンピュータに実行させるためのプログラム。

【図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

【図13】
image rotate


【公開番号】特開2012−84081(P2012−84081A)
【公開日】平成24年4月26日(2012.4.26)
【国際特許分類】
【出願番号】特願2010−231884(P2010−231884)
【出願日】平成22年10月14日(2010.10.14)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】