説明

異機種フェデレーテッド環境におけるネイティブ認証プロトコルのための方法およびシステム

【課題】 フェデレーテッド・ドメインがフェデレーテッド環境内で対話する方法を提供することにある。
【解決手段】 あるフェデレーション内のドメインは、他のフェデレーテッド・ドメインのユーザに関するフェデレーテッド・シングル・サイン操作を開始することができる。あるドメイン内のポイントオブコンタクト・サーバは、そのドメインとフェデレーションとの間の信頼関係を管理するためにそのドメイン内のトラスト・プロキシを当てにする。トラスト・プロキシは、必要に応じて他のフェデレーテッド・ドメインからのアサーションを解釈する。トラスト・プロキシは1つまたは複数のトラスト・ブローカとの信頼関係を有することができ、トラスト・プロキシはアサーションを解釈する際の支援のためにトラスト・ブローカを当てにすることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、改良されたデータ処理システムに関し、特に、マルチコンピュータ・データ転送のための方法および装置に関する。より詳細には、本発明は、ネットワーク・コンピュータ・システムを対象とする。
【背景技術】
【0002】
関連出願の相互参照
本出願は、本出願人による以下の出願に関連するものである。
出願日未定(filed (TBD))で、「Efficient browser-based identity management providingpersonal control and anonymity」という発明の名称の米国特許出願(代理人整理番号CH920020006)
2002年xx月xx日に出願され、「Method and System for Proof-of-Possession Operations Associated withAuthentication Assertions in a Heterogeneous Federated Environment」という発明の名称の米国特許出願(代理人整理番号AUS920020410US1)
2002年xx月xx日に出願され、「Local Architecture for Federated Heterogeneous System」という発明の名称の米国特許出願(代理人整理番号AUS920020411US1)
2002年xx月xx日に出願され、「Method and System for Attribute Exchange in a HeterogeneousFederated Environment」という発明の名称の米国特許出願(代理人整理番号AUS920020412US1)
2002年xx月xx日に出願され、「Method and System for Authentication in a Heterogeneous FederatedEnvironment」という発明の名称の米国特許出願(代理人整理番号AUS920020413US1)
2002年xx月xx日に出願され、「Method and System for Consolidated Sign-off in a HeterogeneousFederated Environment」という発明の名称の米国特許出願(代理人整理番号AUS920020461US1)
【0003】
企業は一般に、インターネットを含む様々なネットワーク全体にわたって保護リソースへのセキュア・アクセスを許可ユーザにフレンドリに提供することを望んでいる。セキュア認証メカニズムを提供することは保護リソースへの無許可アクセスのリスクを低減するが、反面、同じ認証メカニズムが保護リソースとのユーザ対話にとって障害になる場合もある。ユーザは一般に、これらのアプリケーションをサポートする特定の各システムを保護する認証の障害を意識せずに、あるアプリケーションとの対話から他のアプリケーションに移行できることを望む。
【0004】
ユーザがより洗練されるのにつけ、ユーザの負担が削減されるようにコンピュータ・システムがその動作を調整することをユーザは期待する。このようなタイプの期待は認証プロセスにも適用される。ユーザが何らかのコンピュータ・システムによって認証されると、その認証は、そのユーザにとってほとんど見えない様々なコンピュータ・アーキテクチャ境界を意識せずに、そのユーザの作業セッション全体にわたってまたは少なくとも特定の期間の間、有効でなければならないと、ユーザが期待し得る。企業は一般に、ユーザをなだめるためだけでなく、ユーザ効率(ユーザ効率が従業員の生産性に関連するか顧客満足度に関連するかにかかわらず)を高めるためにも、その配置システムの動作特性においてこのような期待に応えようとする。
【0005】
より具体的には、共通ブラウザによりアクセス可能なWebベース・ユーザ・インターフェースを多くのアプリケーションが有する現行コンピューティング環境により、ユーザは、より使いやすいこと、あるWebベース・アプリケーションから他のWebベース・アプリケーションへの移行に対する障害が低いかまたは少ないことを期待する。これに関連して、ユーザは、特定の各ドメインを保護する認証の障害を意識せずに、あるインターネット・ドメイン上のアプリケーションとの対話から他のドメイン上の他のアプリケーションに移行できることを期待するようになる。しかし、多くのシステムが使いやすいWebベース・インターフェースによりセキュア認証を提供する場合でも、ユーザは依然として、1組のドメインの全域でユーザ・アクセスを妨害する複数の認証プロセスを考慮に入れざるを得ない可能性がある。所与の時間フレーム内にユーザを複数の認証プロセスにかけることは、ユーザの効率に著しく影響する可能性がある。
【0006】
ユーザおよびコンピュータ・システム管理者の認証負担を低減するために、様々な技法が使用されてきた。これらの技法は、ユーザがサインオン操作を完了した後、すなわち、認証された後に、そのユーザはその後、他の認証操作を実行する必要がないという共通目的があるので、一般に「シングル・サインオン」(SSO:single-sign-on)プロセスと記述される。このため、目標は、ユーザが特定のユーザ・セッション中に1つの認証プロセスのみ完了することを要求されるであろうということである。
【0007】
このようなシングル・サインオン・ソリューションは、所与の企業内で実現したときは上首尾であった。しかし、より多くの企業がインターネットによって接続されたe−commerceマーケットプレイスまたはその他のコラボレーション努力に参加するにつれて、複数の認証プロセスまたはシステムによって提起される障害はますます一般的なものになっている。企業間の以前のシングル・サインオン・ソリューションは、参加企業間の事業協定が事前に確立されている同種環境に限られていた。これらの事業協定は、部分的に、信頼を確立し、企業間で情報を安全に転送する方法を制限し定義するために使用される。また、これらの事業協定は、ある企業から他の企業にユーザID(identity)を変換またはマッピングする方法ならびに参加企業間でユーザの保証人となるために使用される情報を転送する方法に関するルールに関する技術協定も含む。
【0008】
換言すれば、以前のシングル・サインオン・ソリューションは、ある企業が事前交渉または事前構成された協定に基づいて異なる企業によって生成された認証アサーション(そのアサーションで提供されるユーザIDとともに)を信頼できるようにするものである。それぞれの別個の企業は、e−commerceマーケットプレイス内の企業など、同様の協定を取り交わした他の企業によって理解されうる認証アサーションを作成し解釈する方法を把握している。これらのシステム間にはユーザIDをマッピングするために企業が把握している決定的関係が存在するので、これらの同種環境は緊密に結合される。シングル・サインオン環境を確立するために事業協定が使用されるので、この緊密結合が可能である。
【0009】
参加企業はこれらの以前のシングル・サインオン・ソリューションを使用することにより同種環境内で協働することができるが、複数の同種環境、たとえば、相互接続e−commerceマーケットプレイスを相互接続する必要性または要望を考慮すると、これらの環境は限定的なものである。
【特許文献1】出願日未定(filed (TBD))で、「Efficient browser-based identity management providingpersonal control and anonymity」という発明の名称の米国特許出願(代理人整理番号CH920020006)
【特許文献2】2002年xx月xx日に出願され、「Method and System for Proof-of-Possession Operations Associated withAuthentication Assertions in a Heterogeneous Federated Environment」という発明の名称の米国特許出願(代理人整理番号AUS920020410US1)
【特許文献3】2002年xx月xx日に出願され、「Local Architecture for Federated Heterogeneous System」という発明の名称の米国特許出願(代理人整理番号AUS920020411US1)
【特許文献4】2002年xx月xx日に出願され、「Method and System for Attribute Exchange in a HeterogeneousFederated Environment」という発明の名称の米国特許出願(代理人整理番号AUS920020412US1)
【特許文献5】2002年xx月xx日に出願され、「Method and System for Authentication in a Heterogeneous FederatedEnvironment」という発明の名称の米国特許出願(代理人整理番号AUS920020413US1)
【特許文献6】2002年xx月xx日に出願され、「Method and System for Consolidated Sign-off in a HeterogeneousFederated Environment」という発明の名称の米国特許出願(代理人整理番号AUS920020461US1)
【非特許文献1】1993年9月発行のInternetEngineering Task Force (IETF) Request for Comments (RFC) 1510に掲載されたKohl他による「TheKerberos Network Authentication Service (V5)」
【非特許文献2】2002年5月31日発行のCommitteeSpecification 01に掲載された「Assertions and Protocol for the OASIS Security AssertionMarkup Language (SAML)」
【発明の開示】
【発明が解決しようとする課題】
【0010】
したがって、参加企業間の所定の事業および技術変換協定がない場合に企業がユーザに対して同様のシングル・サインオン経験を提供できる方法およびシステムを備えることは有利なことになるであろう。
【課題を解決するための手段】
【0011】
フェデレーテッド(federated)ドメインがフェデレーテッド環境内で対話する方法、装置、システム、およびコンピュータ・プログラムが提示される。あるフェデレーション(federation)内のドメインは、他のフェデレーテッド・ドメインのユーザに関するフェデレーテッド・シングル・サイン操作を開始することができる。あるドメイン内のポイントオブコンタクト(point-of-contact)サーバは、そのドメインとフェデレーションとの間の信頼関係を管理するためにそのドメイン内のトラスト・プロキシ(trustproxy)を当てにする。トラスト・プロキシは、必要に応じて他のフェデレーテッド・ドメインからのアサーションを解釈する。トラスト・プロキシは1つまたは複数のトラスト・ブローカ(trustbroker)との信頼関係を有することができ、トラスト・プロキシはアサーションを解釈する際の支援のためにトラスト・ブローカを当てにすることができる。
【0012】
本発明に特有と思われる新規の特徴は特許請求の範囲に示されている。本発明そのもの、その他の目的、およびその利点は、添付図面に併せて読んだときに以下に示す詳細な説明を参照することにより最も良く理解されるであろう。
【発明を実施するための最良の形態】
【0013】
一般に、本発明を含むかまたは本発明に関する可能性のある装置は多様なデータ処理技術を含む。したがって、本発明をより詳細に説明する前に、背景として、分散データ処理システム内のハードウェアおよびソフトウェア・コンポーネントの典型的な編成について説明する。
【0014】
次に添付図面を参照すると、図1は、そのそれぞれが本発明を実現可能な複数データ処理システムの典型的なネットワークを描写している。分散データ処理システム100はネットワーク101を含み、そのネットワークは、分散データ処理システム100内で一緒に接続された様々な装置およびコンピュータ間の通信リンクを提供するために使用できるメディアである。ネットワーク101は、ワイヤもしくは光ファイバ・ケーブルなどの永続接続または電話もしくはワイヤレス通信により行われる一時接続を含むことができる。描写した例では、サーバ102およびサーバ103は、ストレージ・ユニット104とともにネットワーク101に接続されている。加えて、クライアント105〜107もネットワーク101に接続されている。クライアント105〜107およびサーバ102〜103は、メインフレーム、パーソナル・コンピュータ、携帯情報端末(PDA:personal digital assistant)などの多様なコンピューティング・デバイスによって表すことができる。分散データ処理システム100は、図示されていない追加のサーバ、クライアント、ルータ、その他の装置、およびピアツーピア・アーキテクチャを含むことができる。
【0015】
描写した例では、分散データ処理システム100は、LDAP(軽量ディレクトリ・アクセス・プロトコル(Lightweight Directory Access Protocol))、TCP/IP(伝送制御プロトコル/インターネット・プロトコル(TransportControl Protocol/Internet Protocol))、HTTP(ハイパーテキスト転送プロトコル(HyperText TransportProtocol))などの様々なプロトコルを使用して互いに通信するネットワークおよびゲートウェイの世界的な集合を表すネットワーク101とともにインターネットを含むことができる。当然のことながら、分散データ処理システム100は、たとえば、イントラネット、ローカル・エリア・ネットワーク(LAN:localarea network)、または広域ネットワーク(WAN:wide area network)などのいくつかの異なるタイプのネットワークも含むことができる。たとえば、サーバ102はクライアント109およびネットワーク110を直接サポートし、そのネットワークはワイヤレス通信リンクを組み込んでいる。ネットワーク対応電話(network-enabledphone)111はワイヤレス・リンク112によりネットワーク110に接続し、PDA113はワイヤレス・リンク114によりネットワーク110に接続する。電話111およびPDA113は、いわゆるパーソナル・エリア・ネットワークまたはパーソナル・アドホック・ネットワーク(personalad-hoc network)を作成するために、Bluetooth(商標)ワイヤレス技術などの適切な技術を使用して、ワイヤレス・リンク115を越えて両者間でデータを直接転送することもできる。同様に、PDA113は、ワイヤレス通信リンク116を介してPDA107にデータを転送することができる。
【0016】
本発明は、様々なハードウェア・プラットフォームおよびソフトウェア環境で実現することができるであろう。図1は、本発明に関するアーキテクチャ制限としてのものではなく、異機種コンピューティング環境の一例としてのものである。
【0017】
次に図2を参照すると、同図は、本発明を実現可能な、図1に示したものなどのデータ処理システムの典型的なコンピュータ・アーキテクチャを描写している。データ処理システム120は、内部システム・バス123に接続された1つまたは複数の中央演算処理装置(CPU:central processing unit)122を含み、その内部システム・バス123は、ランダム・アクセス・メモリ(RAM:randomaccess memory)124、読取り専用メモリ126、および入出力アダプタ128を相互接続し、その入出力アダプタ128は、プリンタ130、ディスク・ユニット132、またはオーディオ出力システムなどの図示していないその他の装置などの様々な入出力装置をサポートする。また、システム・バス123は、通信リンク136へのアクセスを可能にする通信アダプタ134も接続する。ユーザ・インターフェース・アダプタ148は、キーボード140とマウス142、またはタッチ・スクリーン、スタイラス、マイクロホンなどの図示していないその他の装置などの様々なユーザ装置を接続する。ディスプレイ・アダプタ144はシステム・バス123をディスプレイ装置146に接続する。
【0018】
当業者であれば、図2のハードウェアはシステム実現例に応じて様々になる可能性があることが分かるであろう。たとえば、システムは、Intel(商標)のPentium(商標)ベースのプロセッサおよびデジタル・シグナル・プロセッサ(DSP)などの1つまたは複数のプロセッサと、1つまたは複数のタイプの揮発性および不揮発性メモリとを有する可能性がある。図2に描写したハードウェアに加えてまたはその代わりに、その他の周辺装置を使用することもできる。描写した例は、本発明に関するアーキテクチャ制限を示すためのものではない。
【0019】
様々なハードウェア・プラットフォームで実現できることに加えて、本発明は、様々なソフトウェア環境で実現することができる。各データ処理システム内のプログラム実行を制御するために、典型的なオペレーティング・システムを使用することができる。たとえば、ある装置はUnix(商標)オペレーティング・システムを実行することができ、他の装置は単純なJava(商標)ランタイム環境を含む。代表的なコンピュータ・プラットフォームはブラウザを含むことができ、そのブラウザは、グラフィック・ファイル、ワード・プロセッシング・ファイル、拡張可能マークアップ言語(XML:Extensible Markup Language)、ハイパーテキスト・マークアップ言語(HTML:Hypertext MarkupLanguage)、ハンドヘルド・デバイス・マークアップ言語(HDML:Handheld Device Markup Language)、ワイヤレス・マークアップ言語(WML:WirelessMarkup Language)、および様々なその他のフォーマットおよびタイプのファイルなど、様々なフォーマットのハイパーテキスト・ドキュメントにアクセスするための周知のソフトウェア・アプリケーションである。また、図1に示した分散データ処理システムは、様々なピアツーピア・サブネットおよびピアツーピア・サービスを完全にサポートできるものとして企図されていることにも留意されたい。
【0020】
次に図3を参照すると、データ・フロー・ダイアグラムは、クライアントがサーバ側の保護リソースにアクセスしようと試みるときに使用できる典型的な認証プロセスを示している。図示した通り、クライアント・ワークステーション150側のユーザは、クライアント・ワークステーション上で実行されるユーザのWebブラウザにより、コンピュータ・ネットワークを越えてサーバ151上の保護リソースにアクセスしようとする。保護リソースは、認証許可ユーザのみによってアクセス可能なユニフォーム・リソース・ロケータ(URL:Uniform Resource Locator)、またはより一般的には、ユニフォーム・リソース・アイデンティファイア(URL:UniformResource Identifier)によって識別される。コンピュータ・ネットワークは、図1または図2に示した通り、インターネット、イントラネット、またはその他のネットワークにすることができ、サーバは、Webアプリケーション・サーバ(WAS:WebApplication Server)、サーバ・アプリケーション、サーブレット・プロセスなどにすることができる。
【0021】
プロセスは、ユーザが「ibm.com」というドメイン内のWebページなどの保護リソースを要求したときに開始される(ステップ152)。Webブラウザ(または関連アプリケーションもしくはアプレット)は、「ibm.com」というドメインをホストとして処理するWebサーバに送信されるHTTP要求メッセージを生成する(ステップ153)。サーバは、それがクライアントに関するアクティブ・セッションを持っていないと判断し(ステップ154)、したがって、サーバは、何らかのタイプの認証質問(authentication challenge)をクライアントに送信することにより(ステップ155)、認証プロセスを実行するようユーザに要求する。認証質問は、ハイパーテキスト・マークアップ言語(HTML)形式などの様々なフォーマットにすることができる。次にユーザは、ユーザIDおよび関連パスワードなどの要求された情報または必要な情報を提供する(ステップ156)か、またはクライアントは特定の情報を自動的に返す場合もある。
【0022】
認証応答情報はサーバに送信され(ステップ157)、その時点でサーバは、たとえば、前にサブミットされた登録情報を検索し、提示された認証情報とユーザの保管情報とを突き合わせることにより、ユーザまたはクライアントを認証する(ステップ158)。認証が成功したと想定して、認証ユーザまたはクライアントに関するアクティブ・セッションが確立される。
【0023】
次にサーバは、要求されたWebページを検索し、HTTP応答メッセージをクライアントに送信する(ステップ159)。その時点でユーザは、ハイパーテキスト・リンクをクリックすることによりブラウザ内で「ibm.com」内の他のページを要求することができ(ステップ160)、ブラウザは他のHTTP要求をサーバに送信する(ステップ161)。その時点でサーバは、ユーザがアクティブ・セッションを持っていることを認識し(ステップ162)、サーバは他のHTTP応答メッセージで要求されたWebページをクライアントに返送する(ステップ163)。図3は典型的な従来技術のプロセスを描写しているが、アクティブ・セッションを備えたユーザを識別するためにCookieを使用することなど、他の代替セッション状態管理技法を描写することもでき、認証を証明するために使用されるのと同じCookieを使用することを含む可能性もあることに留意されたい。
【0024】
次に図4を参照すると、ネットワーク・ダイアグラムは、本発明を実現可能な典型的なWebベース環境を示している。この環境では、クライアント171側のブラウザ170のユーザは、DNSドメイン173内のWebアプリケーション・サーバ172上またはDNSドメイン175内のWebアプリケーション・サーバ174上の保護リソースにアクセスすることを所望する。
【0025】
図3に示したものと同様に、ユーザは多くのドメインのうちの1つで保護リソースを要求することができる。特定のドメインにおいて単一サーバのみを示す図3とは対照的に、図4の各ドメインは複数のサーバを有する。特に、各ドメインは関連認証サーバ176および177を有することができる。
【0026】
この例では、クライアント171がドメイン173で保護リソースに関する要求を発行した後、Webアプリケーション・サーバ172は、それがクライアント171に関するアクティブ・セッションを持っていないと判断し、認証サーバ176がクライアント171との適切な認証操作を実行することを要求する。認証サーバ176は、認証操作の結果をWebアプリケーション・サーバ172に伝達する。ユーザ(またはユーザに代わってブラウザ170またはクライアント171)が正常に認証された場合、Webアプリケーション・サーバ172は、クライアント171に関するセッションを確立し、要求された保護リソースを返す。概して、ユーザが認証サーバによって認証されると、Cookieを設定し、それをブラウザ内のCookieキャッシュに保管することができる。図4は単に、特に認証操作を実行するために、あるドメインの処理リソースを複数サーバ間で共用できる方法の一例に過ぎない。
【0027】
同様に、クライアント171がドメイン175で保護リソースに関する要求を発行した後、認証サーバ177はクライアント171との適切な認証操作を実行し、その後、Webアプリケーション・サーバ174は、クライアント171に関するセッションを確立し、要求された保護リソースを返す。
【0028】
このため、図4は、クライアント171が異なるドメインにおける複数の並行セッションを持つことができるが、それらの並行セッションを確立するために複数の認証操作を完了する必要があることを示している。
【0029】
次に図5を参照すると、ブロック図は、ユーザからの複数の認証操作を必要とする可能性のある典型的なオンライン・トランザクションの一例を描写している。もう一度、図3および図4を参照すると、ユーザは、図3に示した通り、被制御リソースにアクセスする前に認証操作を完了する必要がある可能性がある。図3に示していないが、ユーザを認証するために必要なユーザ情報を検索し使用するために、サーバ151上に認証マネージャを配置することができる。図4に示した通り、ユーザは異なるドメイン173および175内で複数の現行セッションを持っている可能性があり、それらは図4に示されていないが、各ドメインは、認証サーバの代わりにまたはそれに加えて認証マネージャを使用することができる。同様に、図5は1組のドメインも描写しており、そのそれぞれは何らかのタイプの認証マネージャをサポートする。図5は、各ドメインに関する認証操作を完了することをユーザに要求する複数のドメインにアクセスするときにユーザが経験する可能性のある障害のいくつかを示している。
【0030】
ユーザ190はISPドメイン191で登録することができ、そのドメイン191は、ドメイン191に関するトランザクションを完了するためにユーザ190を認証する認証マネージャ192をサポートすることができる。ISPドメイン191は、インターネット接続サービス、Eメール・サービス、およびおそらくその他のe−commerceサービスを提供するインターネット・サービス・プロバイダ(ISP:Internet Service Provider)にすることができる。代わって、ISPドメイン191は、ユーザ190によって頻繁にアクセスされるインターネット・ポータルにすることもできる。
【0031】
同様に、ドメイン193、195、および197は、典型的なWebサービス・プロバイダを表している。行政ドメイン193は、様々な行政関連トランザクションを完了するためにユーザを認証する認証マネージャ194をサポートする。銀行用ドメイン195は、オンライン銀行とのトランザクションを完了するためにユーザを認証する認証マネージャ196をサポートする。e−commerceドメイン197は、オンライン購入を完了するためにユーザを認証する認証マネージャ198をサポートする。
【0032】
上記の通り、異なるドメインでリソースにアクセスすることにより、ユーザがインターネットまたはワールド・ワイド・ウェブ内のあるドメインから他のドメインに移動しようと試みる場合、ユーザは、複数のユーザ認証要求または要件にかけられる可能性があり、それは1組のドメインの全域でユーザの進行を著しく遅らせる可能性がある。例示的な環境として図5を使用すると、ユーザ190は、少なくとも18歳であり、有効な運転免許証、有効なクレジット・カード、および米国銀行預金口座を有するユーザに制限されているオンライン・サービスをユーザが購入しようと試みているe−commerceドメイン197との複雑なオンライン・トランザクションに関係する可能性がある。このオンライン・トランザクションは、ドメイン191、193、195、および197を伴う可能性がある。
【0033】
概して、ユーザは、典型的なオンライン・トランザクションに参加する各ドメイン内のIDを維持していない可能性がある。この例では、ユーザ190は、そのユーザのISPに自分のIDを登録している可能性があるが、オンライン・トランザクションを完了するためには、ユーザは、ドメイン193、195、および197に対する認証も受ける必要がある可能性がある。それぞれのドメインがそのユーザに関するIDを維持していない場合、そのユーザのオンライン・トランザクションは失敗する可能性がある。ユーザが各ドメインによって認証される場合でも、そのユーザのトランザクションを完了するために異なるドメインがそれらの間で情報を転送できることは保証されていない。図5に示したユーザ190の場合、シングル・サインオンのために、ユーザ190が第1のWebサイト、たとえば、ISP191に対する認証を受け、次にドメイン193、195、および197などの他のWebサービス・プロバイダに認証トークンを転送できるようにする従来技術の環境はまったく存在しない。
【0034】
何らかの現行技術に関する前述の簡単な説明を考慮すると、残りの図面の説明は、本発明が機能しうるフェデレーテッド・コンピュータ環境に関するものである。しかし、本発明をより詳細に論ずる前に、いくつかの用語について紹介する。
【0035】
用語
「エンティティ」または「パーティ」という用語は一般に、ある組織、個人、またはシステムに代わって機能する組織、個人、または他のシステムを指す。「ドメイン」という用語はネットワーク環境内の追加の特性を意味するが、「エンティティ」、「パーティ」、および「ドメイン」という用語は区別なく使用することができる。たとえば、「ドメイン」という用語は、DNS(ドメイン・ネーム・システム)ドメイン、またはより一般的に、外部エンティティにとって論理装置として現れる様々なデバイスおよびアプリケーションを含むデータ処理システムも指すことができる。
【0036】
「要求」および「応答」という用語は、メッセージ、通信プロトコル情報、またはその他の関連情報など、特定の操作に関係する情報の転送に適切なデータ・フォーマットを含むものと理解しなければならない。保護リソースは、それに関するアクセスが制御または制限されるリソース(アプリケーション、オブジェクト、ドキュメント、ページ、ファイル、実行可能コード、またはその他の計算リソース、通信タイプのリソースなど)である。
【0037】
トークンは、正常動作の直接的証拠を提供し、操作を実行するエンティティによって生成され、たとえば、認証トークンは正常認証操作後に生成される。Kerberosトークンは、本発明で使用可能な認証トークンの一例である。Kerberosに関する詳細は、1993年9月発行のInternet Engineering Task Force (IETF) Request for Comments (RFC)1510に掲載されたKohl他による「The Kerberos Network Authentication Service (V5)」で見つけることができる。
【0038】
アサーション(assertion)は、何らかのアクションの間接的証拠を提供する。アサーションは、ID、認証、属性、許可決定、その他の情報あるいは操作またはその両方の間接的証拠を提供することができる。認証アサーションは、認証サービスではないが、認証サービスを聴取したエンティティによる認証の間接的証拠を提供する。
【0039】
セキュリティ・アサーション・マークアップ言語(SAML:Security Assertion Markup Language)アサーションは、本発明内で使用可能なアサーション・フォーマットの一例である。SAMLは、非営利グローバル・コンソーシアムであるOrganization for the Advancement of Structured Information Standards(OASIS)によって公布されたものである。SAMLは、2002年5月31日発行のCommitteeSpecification 01に掲載された「Assertions and Protocol for the OASIS Security AssertionMarkup Language (SAML)」に記載されている。
【0040】
セキュリティ・アサーション・マークアップ言語(SAML)は、セキュリティ情報を交換するためのXMLベースのフレームワークである。このセキュリティ情報はサブジェクトに関するアサーションの形で表され、サブジェクトは何らかのセキュリティ・ドメイン内のIDを有するエンティティ(人またはコンピュータのいずれか)である。サブジェクトの典型的な例は、特定のインターネットDNSドメイン内の自分のEメール・アドレスによって識別される人である。アサーションは、サブジェクトによって実行される認証行為、サブジェクトの属性、およびサブジェクトが特定のリソースにアクセスできるかどうかに関する許可決定に関する情報を搬送することができる。アサーションは、XML構成体として表され、ネストされた構造を有し、それにより、単一アサーションは認証、許可、および属性に関する数種類の内部ステートメントを含む可能性がある。認証ステートメントを含むアサーションは単に前に発生した認証の行為を記述するに過ぎないことに留意されたい。アサーションは、SAML機関、すなわち、認証機関、属性機関、およびポリシー決定点(policy decision point)によって発行される。SAMLは、それによりクライアントがSAML機関からアサーションを要求し、SAML機関からの応答を取得できるプロトコルを定義する。このプロトコルは、XMLベースの要求および応答メッセージ・フォーマットからなり、多種多様な基礎となる通信およびトランスポート・プロトコルにバインドすることができ、現在、SAMLはHTTPによるSOAPへのバインディングを定義する。SAML機関は、その応答を作成する際に、外部ポリシー・ストアや、要求において入力として受信したアサーションなどの様々な情報ソースを使用することができる。したがって、クライアントは常にアサーションを消費するが、SAML機関はアサーションの作成者と消費者のいずれにもなりうる。
【0041】
SAML規格では、アサーションは発行者によって作成された1つまたは複数のステートメントを提供する情報のパッケージであることを示している。SAMLにより、発行者は、指定のサブジェクトが特定の時期に特定の手段によって認証されたという認証、指定のサブジェクトが指定のリソースにアクセスできるようにするための要求が認可または拒否されたという許可、および指定のサブジェクトが提供された属性に関連付けられる属性という3種類のアサーション・ステートメントを作成することができる。以下に詳述する通り、必要なときに、様々なアサーション・フォーマットを他のアサーション・フォーマットに変換することができる。
【0042】
認証は、ユーザによってまたはユーザに代わって提供される1組の信用証明情報(credential)を妥当性検査するプロセスである。認証は、ユーザが把握しているもの、ユーザが持っているもの、またはユーザが何者であるか、すなわち、ユーザに関する何らかの物理的特性を検証することによって実施される。ユーザが把握しているものとしては、ユーザのパスワードなど、または特定のユーザにのみ把握されているものを検証することにより、ユーザの暗号鍵などの共有秘密鍵(sharedsecret)を含むことができる。ユーザが持っているものとしては、スマートカードまたはハードウェア・トークンを含むことができる。ユーザに関する何らかの物理的特性としては、指紋または網膜マップなどのバイオメトリック入力を含むことができるであろう。
【0043】
認証信用証明情報は、様々な認証プロトコルで使用される1組の質問/応答情報である。たとえば、ユーザ名とパスワードの組合せは、最も普通の形式の認証信用証明情報である。他の形式の認証信用証明情報としては、様々な形式の質問/応答情報、公開鍵インフラストラクチャ(PKI:Public Key Infrastructure)証明書、スマートカード、バイオメトリクスなどを含むことができる。認証信用証明情報は認証アサーションとは差異化され、すなわち、認証信用証明情報は認証サーバまたはサービスとの認証プロトコル・シーケンスの一部としてユーザによって提示されるものであり、認証アサーションはユーザの認証信用証明情報の正常な提示および妥当性検査に関するステートメントであって、その後、必要なときにエンティティ間で転送されるものである。
【0044】
従来技術のシングル・サインオン・ソリューションの区別
上記の通り、従来技術のシングル・サインオン・ソリューションは、参加企業間で事業協定が事前確立されている同種環境に制限されている。これらの事業協定は、信頼を確立し、企業間の安全な情報転送を定義する。また、これらの事業協定は、ある企業から他の企業にユーザIDを変換またはマッピングする方法ならびに参加企業間でユーザの保証人となるために使用される情報を転送する方法に関するルールに関する技術協定も含む。
【0045】
換言すれば、以前のシングル・サインオン・ソリューションは、ある企業が事前交渉または事前構成された協定に基づいて異なる企業によって生成された認証アサーション(そのアサーションで提供されるユーザIDとともに)を信頼できるようにするものである。それぞれの別個の企業は、e−commerceマーケットプレイス内の企業など、同様の協定を取り交わした他の企業によって理解されうる認証アサーションを作成し解釈する方法を把握している。これらのシステム間にはユーザIDをマッピングするために企業が把握している決定的関係が存在するので、これらの同種環境は緊密に結合される。シングル・サインオン環境を確立するために事業協定が使用されるので、この緊密結合は可能である。
【0046】
本発明のフェデレーション・モデル
ワールド・ワイド・ウェブに関連して、ユーザは、特定の各ドメイン間の情報バリアを最小限に考慮して、あるインターネット・ドメイン上のアプリケーションとの対話から他のドメイン上の他のアプリケーションにジャンプする能力を期待するようになる。ユーザは、単一トランザクションの場合に複数のドメインに対する認証を受けなければならないことによって引き起こされる欲求不満を望まない。換言すれば、ユーザは複数組織が相互運用することを期待するが、ユーザは一般に複数ドメインがユーザのプライバシを尊重することを希望する。加えて、ユーザは、私有情報を永続的に保管するドメインを制限する方を好む可能性がある。このようなユーザの期待は、多くの企業および組織が競合する認証技法を公布している、急速進化中の異機種環境に存在する。
【0047】
従来技術のシステムとは対照的に、本発明は、特定の企業間の特定の事前確立された事業および技術協定がない場合に企業がユーザに対してシングル・サインオン経験を提供できるようにするためのフェデレーション・モデルを提供する。換言すれば、本発明は、フェデレーテッド異機種環境をサポートする。本発明の目的の一例として、もう一度、図5を参照すると、ユーザ190は、ドメイン191に対する認証を受け、トランザクションに関係する可能性のある各ダウンストリーム・ドメインに対し適切なアサーションをドメイン191から提供してもらうことができる。これらのダウンストリーム・ドメインは、ドメイン191と他のダウンストリーム・ドメインとの間に事前確立されたアサーション・フォーマットがまったくない場合でも、認証アサーションあるいはその他のタイプのアサーションまたはその両方を理解し信頼できることが必要である。アサーションを認識することに加えて、ダウンストリーム・ドメインは、事前確立されたIDマッピング関係がまったくない場合でも、アサーション内に含まれるIDを、特定のドメイン内のユーザ190を表すIDに変換できることが必要である。
【0048】
本発明は、フェデレーテッド環境を対象とする。一般に、企業は、独自のユーザ・レジストリを有し、独自のユーザ・セットとの関係を維持する。各企業は概して、これらのユーザを認証する独自の手段を有する。しかし、本発明のフェデレーテッド方式により、複数の企業は、ある企業が企業フェデレーションに参加することによりその企業のユーザが1組の企業との関係を強化できるように、集合的に協働することができる。ユーザは、各企業との直接的関係を有する場合と同様に、フェデレーテッド企業のうちのいずれかの企業側のリソースへのアクセスが許可される可能性がある。ユーザは、関心のある各事業に登録する必要はなく、自分自身を識別し認証することを絶えず要求されるわけではない。このため、このフェデレーテッド環境内では、認証方式により、情報技術において急速進化中の異機種環境内のシングル・サインオン経験が可能になる。
【0049】
本発明では、フェデレーションは、シングル・サインオンの使いやすい経験をユーザに提供するために協働する、企業、組織、団体などの1組の別個のエンティティである。本発明では、フェデレーテッド環境は、2つの企業がユーザに関するどの情報をどのように転送するかを定義する直接的で事前確立された関係を有する必要がないという点で、典型的なシングル・サインオン環境とは異なる。フェデレーテッド環境内のエンティティは、ユーザを認証すること、他のエンティティによって提示される認証アサーション、たとえば、認証トークンを受諾すること、ならびに保証対象のユーザ(vouched-for user)のIDをローカル・エンティティ内で理解されるものに変換する何らかの形式の変換を提供することを扱うサービスを提供する。
【0050】
フェデレーションは、サービス・プロバイダの管理負担を緩和する。サービス・プロバイダは、全体としてフェデレーションに関するその信頼関係を当てにすることができ、ユーザの認証ホーム・ドメインによって実施される認証を当てにすることができるので、ユーザ・パスワード情報などの認証情報を管理する必要がない。
【0051】
また、本発明は、疎結合の認証サービス、ユーザ登録サービス、ユーザ・プロファイル管理サービス、あるいは許可サービスまたはこれらのサービスの組合せがセキュリティ・ドメインの全域でコラボレーションする基礎を確立するフェデレーテッドID管理システムにも関係する。フェデレーテッドID管理により、まったく異なる複数のセキュリティ・ドメインに常駐するサービスは、これらのまったく異なる複数ドメインにおいて基礎となるセキュリティ・メカニズムおよびオペレーティング・システム・プラットフォームに相違点が存在する可能性がある場合でも、安全に相互運用しコラボレーションすることができる。ユーザがフェデレーションへの参加を確立すると、シングル・サインオン経験が確立される。
【0052】
ホーム・ドメイン、発行側パーティ(issuingparty)、および依存側パーティ(relying party)
以下により詳細に説明する通り、本発明は、ユーザにとって重大な利点をもたらすものである。本発明により、ユーザは、以下でユーザのホーム・ドメインまたは認証ホーム・ドメインとも呼ばれる第1のエンティティで認証を受けることができる。この第1のエンティティは、第2のエンティティで使用するためにユーザに関する認証アサーションを発行する発行側パーティとして動作することができる。次にユーザは、第2のエンティティで明示的に再認証を受ける必要なしに、第1のエンティティによって発行された認証アサーションを提示することにより、依存側パーティと呼ばれる第2の別個のエンティティで保護リソースにアクセスすることができる。発行側パーティから依存側パーティに渡される情報はアサーションの形になっており、このアサーションは、種々のタイプの情報をステートメントの形で含むことができる。たとえば、あるアサーションは、あるユーザの認証済みIDに関するステートメントである場合もあれば、特定のユーザに関連するユーザ属性情報に関するステートメントである場合もある。
【0053】
次に図6を参照すると、ブロック図は、第1のフェデレーテッド企業に対してユーザによって開始され、それに応答して、フェデレーテッド環境内のダウンストリーム・エンティティでアクションを呼び出すトランザクションに関するフェデレーテッド環境の用語を描写している。図6は、所与のフェデレーテッド操作に関するフェデレーション内のエンティティの視点(perspective)に応じて用語が異なる可能性があることを示している。ユーザ202は、企業204の保護リソースに関する要求によりトランザクションを開始する。ユーザ202が企業204によってすでに認証されている場合、企業204は、このフェデレーテッド・セッション用のユーザのホーム・ドメインになる。このトランザクションが企業206による何らかのタイプの操作を必要とし、企業204が企業206にアサーションを転送すると想定すると、企業204はその特定の操作に関する発行側ドメインになり、企業206はその操作に関する依存側ドメインになる。このトランザクションが他の操作を必要とし、企業206が企業208にアサーションを転送すると想定すると、企業206は要求された操作に関する発行側ドメインになり、企業208はその操作に関する依存側ドメインになる。
【0054】
本発明のフェデレーテッド環境では、ユーザが認証を受けるドメインは、ユーザの(認証)ホーム・ドメインと呼ばれる。ホーム・ドメインは認証信用証明情報を維持する。ホーム・ドメインは、ユーザの雇用主、ユーザのISP、またはその他の何らかのサービス・プロバイダである可能性がある。ユーザの認証信用証明情報を生成し妥当性検査する能力を有する企業が複数存在する可能性があるので、ユーザのホーム・ドメインとして動作できる企業がフェデレーテッド環境内に複数存在する可能性があることは起こり得ることである。
【0055】
認証の視点によると、認証アサーションに関する発行側パーティは通常、ユーザの認証ホーム・ドメインである。ユーザのホーム・ドメインは、そのユーザに関する個人情報またはプロファイル情報を維持する場合もあれば、維持しない場合もある。このため、個人的に識別可能な情報、パーソナライゼーション情報、またはその他のユーザ属性を伴う属性の視点によると、属性アサーションに関する発行側パーティは、そのユーザの認証ホーム・ドメインである場合もあれば、そうではない場合もある。混乱を回避するため、属性ホーム・ドメインおよび認証ホーム・ドメインについて別々の用語を使用することができるが、以下の「ホーム・ドメイン」という用語は、認証ホーム・ドメインを指すものと解釈することができる。
【0056】
しかし、所与のフェデレーテッド・セッションの範囲内では、通常、ユーザのホーム・ドメインとして動作するドメインは1つだけである。ユーザがこのドメインに対して認証を受けると、そのフェデレーション内の他のすべてのドメインまたは企業は、そのセッションの期間中、依存側パーティとして扱われる。
【0057】
既存の非フェデレーテッド・アーキテクチャに及ぼす影響を最小限にしながら、既存のシステムに追加可能なフェデレーテッド・インフラストラクチャを本発明が提供することを考慮すると、ユーザのホーム・ドメインにおける認証は、ホーム・ドメインもフェデレーテッド環境に参加可能であることによって変更されることはない。換言すれば、本発明により実現されるフェデレーテッド環境にホーム・ドメインを統合できる場合でも、ユーザは、ユーザのホーム・ドメインで認証操作を実行しながら、同じエンドユーザ経験を持たなければならない。しかし、所与の企業のユーザのすべてが必ずしもフェデレーテッド環境に参加するわけではないことに留意されたい。
【0058】
その上、ユーザ登録、たとえば、ユーザ・アカウントの確立は、ホーム・ドメインもフェデレーテッド環境に参加可能であることによって変更されることはない。ユーザは、フェデレーテッド環境とは無関係の登録プロセスによりドメインでアカウントを確立する。換言すれば、ホーム・ドメインにおけるユーザ・アカウントの確立は、フェデレーションの全域で有効なアカウント情報、たとえば、ID変換情報の確立を含まない。ユーザを認証できる単一フェデレーテッド・ドメインが存在する場合、すなわち、ユーザが登録したフェデレーション内のドメインが1つだけである場合、このドメインは常にユーザのホーム・ドメインとして動作することになり、フェデレーテッド環境全体にわたってユーザの移動を指図することができる。
【0059】
ユーザが1つのフェデレーテッド環境内で可能なホーム・ドメインを複数持っている場合、ユーザは2つ以上のエントリ・ポイントを介してそのフェデレーションに入ることができる。換言すれば、ユーザは複数のドメインでアカウントを持つことができ、これらのドメインは必ずしも他のドメインまたは他のドメインにおけるユーザのIDに関する情報を持っているわけではない。
【0060】
ユーザが認証を受けるドメインはホーム・ドメインと呼ばれるが、発行側ドメインは、他のドメイン、すなわち、依存側ドメインによる使用のためにアサーションを発行するフェデレーション・エンティティである。発行側ドメインは、通常、ユーザのホーム・ドメインであるが、必ずそうであるわけではない。このため、通常、発行側パーティが、前述の通り、典型的な認証プロトコルによりすでにユーザを認証していることが実情になるであろう。しかし、発行側が前に依存側パーティとして動作しており、それにより、異なる発行側パーティからアサーションを受信したことは起こり得ることである。換言すれば、ユーザが開始したトランザクションはフェデレーテッド環境内の一連の企業によりカスケードすることができるので、受信側パーティは、その後、ダウンストリーム・トランザクションに関する発行側パーティとして動作することができる。一般に、ユーザに代わって認証アサーションを発行する能力を有するドメインは発行側ドメインとして動作することができる。
【0061】
依存側ドメインは、発行側パーティからアサーションを受信するドメインである。依存側パーティは、ユーザに代わるサード・パーティ、すなわち、発行側ドメインによって発行されるアサーションを受諾し、信頼し、理解することができる。一般に、適切な認証機関を使用して認証アサーションを解釈することは依存側パーティの義務である。加えて、依存側パーティが特定のユーザを認証できる、すなわち、ユーザのホーム・ドメインとして動作できることは起こり得ることであるが、依存側パーティが従来の方法により特定のユーザを認証できない可能性があることも起こり得ることである。このため、依存側パーティは、ユーザによって提示される認証アサーションを当てにするドメインまたは企業であって、ユーザとの対話式セッションの一部としてユーザの認証信用証明情報の入力をユーザに促す代わりに、ユーザにシングル・サインオン経験を提供するドメインまたは企業である。
【0062】
フェデレーテッド・アーキテクチャ――レガシー・システム用のフェデレーテッド・フロントエンド
次に図7を参照すると、ブロック図は、本発明の一実施形態により本発明のフェデレーテッド・アーキテクチャ・コンポーネントのいくつかと所与のドメインにある既存のシステムとの統合を描写している。フェデレーテッド環境は、ユーザに様々なサービスを提供するフェデレーテッド・エンティティを含む。ユーザ212は、ブラウザ・アプリケーション216および他の様々なクライアント・アプリケーション218をサポートできるクライアント装置214と対話する。ユーザ212は、クライアント装置214、ブラウザ216、またはユーザとその他の装置およびサービスとのインターフェースとして動作する任意の他のソフトウェアとは別個のものである。場合によっては、以下の説明により、クライアント・アプリケーション内で明示的に動作するユーザと、ユーザに代わって動作するクライアント・アプリケーションとを区別することができる。しかし、一般に、リクエスタは、クライアントベースのアプリケーション、ブラウザ、SOAPクライアントなど、ユーザに代わって動作するものと想定できる仲介者である。
【0063】
ブラウザ・アプリケーション216は、HTTP通信コンポーネント220およびマークアップ言語(ML)インタープリタ222などの多くのモジュールを有する典型的なブラウザにすることができる。また、ブラウザ・アプリケーション216は、Webサービス・クライアント224あるいはダウンロード可能アプレットまたはその両方などのプラグインもサポートすることができ、そのアプレットは仮想計算機ランタイム環境を必要とする場合もあれば必要としない場合もある。Webサービス・クライアント224は、シンプル・オブジェクト・アクセス・プロトコル(SOAP:Simple Object Access Protocol)を使用することができ、これは非集中分散環境における構造化および型付き情報の交換を定義するための軽量プロトコルである。SOAPは、メッセージ内に何が含まれているかならびにそれをどのように処理するかを記述するためのフレームワークを定義するエンベロープと、アプリケーション定義のデータ型のインスタンスを表すための1組のエンコード・ルールと、リモート・プロシージャ・コールおよび応答を表すための規則という3つの部分からなるXMLベースのプロトコルである。ユーザ212は、ブラウザ・アプリケーション216を使用してWebベース・サービスにアクセスすることができるが、ユーザ212は、クライアント装置214上の他のWebサービス・クライアントによりWebサービスにアクセスすることもできる。以下の図に示した本発明の例のいくつかは、フェデレーテッド環境内のエンティティ間で情報を交換するために、ユーザのブラウザによるHTTPリダイレクトを使用する。しかし、本発明は、様々な通信プロトコルにより実施することができ、HTTPベースの通信に制限されるものではないことに留意されたい。たとえば、フェデレーテッド環境内のエンティティは、必要なときに直接通信することができ、ユーザのブラウザによりメッセージをリダイレクトする必要はない。
【0064】
本発明は、フェデレーテッド環境に必要なコンポーネントを既存のシステムと統合できるように実現することができる。図7は、既存のシステムへのフロントエンドとしてこれらのコンポーネントを実現するための一実施形態を描写している。フェデレーテッド・ドメインにある既存のコンポーネントは、図8に示したものと同様に認証サービス・ランタイム(ASR:authentication service runtime)サーバ232を含む、レガシー・アプリケーションまたはバックエンド処理コンポーネント230と見なすことができる。ASRサーバ232は、そのドメインがアプリケーション・サーバ234へのアクセスを制御するときにユーザの認証を担当し、そのアプリケーション・サーバ234は保護リソースを生成するか、検索するか、またはその他の方法で処理するものと見なすことができる。このドメインは引き続きレガシー・ユーザ登録アプリケーション236を使用して、アプリケーション・サーバ234へのアクセスについてユーザを登録することができる。登録済みユーザを認証するために必要な情報は、レガシー・ユーザ・レジストリ238に保管される。
【0065】
フェデレーテッド環境に加入後、そのドメインは、フェデレーテッド・コンポーネントの介入なしに機能し続けることができる。換言すれば、そのドメインは、ポイントオブコンタクト・サーバまたはこのポイントオブコンタクト・サーバ機能を実現するその他のコンポーネントを通過せずに、ユーザが特定のアプリケーション・サーバまたは他の保護リソースに直接アクセスし続けることができるように構成することができ、このようにシステムにアクセスするユーザは、典型的な認証フローおよび典型的なアクセスを経験することになるであろう。しかし、このようにする際に、レガシー・システムに直接アクセスするユーザは、そのドメインのポイントオブコンタクト・サーバに知られているフェデレーテッド・セッションを確立できないであろう。
【0066】
そのドメインのレガシー機能は、フェデレーテッド・フロントエンド処理240の使用によりフェデレーテッド環境に統合することができ、そのフェデレーテッド・フロントエンド処理240はポイントオブコンタクト・サーバ242とトラスト・プロキシ・サーバ244(またはより単純にトラスト・プロキシ244)とを含み、そのトラスト・プロキシ・サーバ244自体はセキュリティ・トークン・サービス(STS:Security Token Service)245を含み、これらのすべてについては図8に関し以下により詳細に説明する。フェデレーション構成アプリケーション246により、管理ユーザは、フェデレーテッド・フロントエンド・コンポーネントがフェデレーテッド・インターフェース・ユニット248によりレガシー・バックエンド・コンポーネントとのインターフェースを取れるようにそのフェデレーテッド・フロントエンド・コンポーネントを構成することができる。
【0067】
所与の企業におけるレガシーまたは既存の認証サービスは、ユーザ名/パスワードまたはスマートカード・トークンベースの情報など、様々な周知の認証方法またはトークンを使用することができる。しかし、本発明では、ポイントオブコンタクト・サーバの使用により、レガシー認証サービスの機能をフェデレーテッド環境で使用することができる。ユーザは、ポイントオブコンタクト・サーバを通過せずにレガシー認証サーバに直接アクセスし続けることができるが、このようにシステムにアクセスするユーザは典型的な認証フローおよび典型的なアクセスを経験することになり、レガシー認証システムに直接アクセスするユーザは、本発明によりIDの証明としてフェデレーテッド認証アサーションを生成できないであろう。フェデレーテッド・フロントエンドの役割の1つは、ポイントオブコンタクト・サーバで受信したフェデレーテッド認証トークンを、レガシー認証システムによって理解されるフォーマットに変換することである。このため、ポイントオブコンタクト・サーバを介してフェデレーテッド環境にアクセスするユーザは必ずしも、レガシー認証サービスに対する再認証を受ける必要はなくなるであろう。好ましくは、ユーザは、ユーザが認証ダイアログに従事している場合と同様にそれが現れるように、ポイントオブコンタクト・サーバとトラスト・プロキシとの組合せによって、レガシー認証サービスに対して認証されることになるであろう。
【0068】
フェデレーテッド・アーキテクチャ――ポイントオブコンタクト・サーバ、トラスト・プロキシ、およびトラスト・ブローカ
次に図8を参照すると、ブロック図は、本発明の一実現例によるフェデレーテッド・アーキテクチャを描写している。フェデレーテッド環境は、ユーザに様々なサービスを提供するフェデレーテッド企業または同様のエンティティを含む。ユーザは、クライアント装置上のアプリケーションにより、企業250などの様々なエンティティにあるリソースにアクセスしようと試みることができる。企業250のポイントオブコンタクト(POC)サーバ252など、各フェデレーテッド企業のポイントオブコンタクト・サーバは、そのユーザのフェデレーテッド環境へのエントリ・ポイントである。ポイントオブコンタクト・サーバはフェデレーション要件の多くを処理するので、ポイントオブコンタクト・サーバは既存の非フェデレーテッド・アーキテクチャ内の既存のコンポーネント、たとえば、レガシー・システムへの影響を最小限にする。ポイントオブコンタクト・サーバは、セッション管理、プロトコル変換を可能にし、おそらく、認証アサーション変換を開始する。たとえば、ポイントオブコンタクト・サーバは、HTTPまたはHTTPSメッセージをSOAPに変換することができ、またその逆も変換することができる。以下により詳細に説明するように、ポイントオブコンタクト・サーバは、トラスト・プロキシを呼び出して認証アサーションを変換するために使用することもでき、たとえば、発行側パーティから受信したSAMLトークンは受信側パーティによって理解されるKerberosトークンに変換することができる。
【0069】
企業250のトラスト・プロキシ(TP)254などのトラスト・プロキシまたはトラスト・プロキシ・サーバは、フェデレーション内の2つのエンティティ間の信頼関係を確立し維持する。トラスト・プロキシは一般に、発行側パーティによって使用されるフォーマットから受信側パーティによって理解されるフォーマットへの認証トークン・フォーマット変換(以下に詳述するセキュリティ・トークン・サービスによる)を処理する能力を有する。
【0070】
全体的に、ポイントオブコンタクト・サーバとトラスト・プロキシの使用は、フェデレーテッド・アーキテクチャの実現が既存の非フェデレーテッド・システム・セットに及ぼす影響を最小限にする。このため、本発明のフェデレーテッド・アーキテクチャは、そのエンティティが企業であるか、ドメインであるか、その他の論理エンティティまたは物理エンティティであるかにかかわらず、フェデレーテッド・エンティティ当たり少なくとも1つのポイントオブコンタクト・サーバと少なくとも1つのトラスト・プロキシの実現を必要とする。しかし、本発明のフェデレーテッド・アーキテクチャは必ずしも、既存の非フェデレーテッド・システム・セットに対する変更を必要としない。好ましくは、所与のフェデレーテッド・エンティティについて単一のトラスト・プロキシが存在するが、可用性のために複数のトラスト・プロキシが存在する可能性もあり、あるいはフェデレーテッド・エンティティ内のより小さい様々なエンティティ、たとえば、企業内の個別の子会社のために、複数のトラスト・プロキシが存在する可能性もある。単一トラスト・プロキシは複数のフェデレーション内の信頼関係を管理することができるので、このシナリオは必ずしも複数のトラスト・プロキシを必要としないであろうが、所与のエンティティが2つ以上のフェデレーションに属すことができることは起こり得ることである。
【0071】
トラスト・プロキシの役割の1つは、他のドメインあるいはそのドメイン内のトラスト・プロキシまたはその両方によって必要なトークン・タイプを決定することである。トラスト・プロキシは、発行側パーティによって使用されるフォーマットから受信側パーティによって理解されるフォーマットへの認証トークン・フォーマット変換を処理する能力を有する。また、トラスト・プロキシ254は、企業250に関して行われる任意のユーザID変換または属性変換も担当する。しかし、トラスト・プロキシは、以下に詳述する通り、支援のためにトラスト・ブローカを呼び出すことができる。ID変換は、発行側パーティに知られているユーザIDおよび属性を受信側パーティにとって意味のあるものにマッピングする必要がある場合がある。この変換は、発行側ドメインのトラスト・プロキシまたは受信側ドメインのトラスト・プロキシのいずれかによって呼び出すことができる。
【0072】
トラスト・プロキシ254は、セキュリティ・トークン・サービス(STS)コンポーネント255として示される内部化コンポーネント(internalized component)を含むことができ、そのコンポーネントはトークン変換を可能にし、認証サービス・ランタイム(ASR)256を呼び出してトークンを妥当性検査し生成することになる。セキュリティ・トークン・サービスは、トラスト・プロキシが必要とするトークン発行および妥当性検査サービスを提供する。したがって、セキュリティ・トークン・サービスは、既存の認証サービス・ランタイムへのインターフェースを含むか、またはそのサージス自体に認証サービス・ランタイムを組み込む。トラスト・プロキシ内に内部化されるのではなく、セキュリティ・トークン・サービス・コンポーネントは、たとえば、トラスト・プロキシによって呼び出されるスタンドアロン・コンポーネントとして実現することもでき、あるいは、たとえば、アプリケーション・サーバの一部として、トランザクション・サーバ内に内部化することもできる。
【0073】
たとえば、STSコンポーネントは、Kerberosトークンを発行するための要求を受信することができる。そこからトークンが作成されるユーザの認証情報の一部として、要求は、ユーザ名とパスワードを含むバイナリ・トークンを含むことができる。STSコンポーネントは、たとえば、LDAPランタイム(典型的な認証)に照らし合わせてユーザ名およびパスワードを妥当性検査することになり、Kerberos KDC(鍵配布センタ:Key Distribution Center)を呼び出して、このユーザに関するKerberosチケットを生成することになる。このトークンは、企業内で使用するためにトラスト・プロキシに返されるが、この使用は、フェデレーション内の他のドメインに転送するためにトークンを外部化することを含む可能性がある。
【0074】
図4に関して説明したものと同様に、ユーザは、企業250および企業260の両方など、フェデレーテッド環境内の複数企業のリソースにアクセスすることを所望する可能性がある。企業250に関して上述したものと同様に、企業260は、ポイントオブコンタクト・サーバ262と、トラスト・プロキシ264と、セキュリティ・トークン・サービス265と、認証サービス・ランタイム266とを有する。ユーザは各企業との個別のトランザクションを直接開始することができるが、ユーザは、フェデレーテッド環境全体にわたってカスケードする企業250とのトランザクションを開始することができる。ユーザがトランザクションを開始したときにユーザがその必要性を認識していなかった可能性がある場合でも、企業250は、特定のトランザクションを完了するために、企業260などのフェデレーテッド環境内の他の複数の企業とのコラボレーションを必要とする場合がある。企業260はダウンストリーム・ドメインとして関係することになり、本発明により、企業250は、ユーザのトランザクションを促進するために必要であれば、フェデレーテッド・アサーションを企業260に提示することができる。
【0075】
関連ポイントオブコンタクト・サーバによって受信された認証トークンを解釈する方法あるいは所与のユーザIDおよび属性を変換する方法またはその両方をトラスト・プロキシが把握していないということが実情である場合もある。この場合、トラスト・プロキシは、トラスト・ブローカ268などのトラスト・ブローカ・コンポーネントで機能を呼び出すことを選択することができる。トラスト・ブローカは、個々のトラスト・プロキシとの関係を維持し、それにより、トラスト・プロキシ間の推移的な信頼関係を提供する。トラスト・ブローカを使用すると、企業250および260などのフェデレーテッド環境内の各エンティティは、フェデレーテッド環境内の各ドメインとの複数の個別信頼関係を確立するのではなく、トラスト・ブローカとの信頼関係を確立することができる。たとえば、企業260が企業250のユーザによって開始されたトランザクションについてダウンストリーム・ドメインとして関係することになったときに、企業250のトラスト・プロキシ254は、必要な場合にトラスト・ブローカ268で支援を呼び出すことにより、企業260のトラスト・プロキシ264がトラスト・プロキシ254からのアサーションを理解できることを確信することができる。図8は、単一トラスト・ブローカを備えたフェデレーテッド環境を描写しているが、フェデレーテッド環境は複数のトラスト・ブローカを有することができる。
【0076】
図8はポイントオブコンタクト・サーバ252、トラスト・プロキシ254、セキュリティ・トークン・サービス・コンポーネント255、および認証サービス・ランタイム256を別個のエンティティとして描写しているが、これらのコンポーネントを個別のデバイスとして実現する必要はないことに留意されたい。たとえば、これらの個別のコンポーネントの機能を、単一物理装置上のアプリケーションとして実現するかまたは単一アプリケーションに結合することは可能である。加えて、図8は、1つの企業のための単一ポイントオブコンタクト・サーバ、単一トラスト・プロキシ、および単一セキュリティ・トークン・サーバを描写しているが、代替構成は、各企業用の複数のポイントオブコンタクト・サーバ、複数のトラスト・プロキシ、および複数のセキュリティ・トークン・サーバを含むことができる。ポイントオブコンタクト・サーバ、トラスト・プロキシ、セキュリティ・トークン・サービス、およびその他のフェデレーテッド・エンティティは、ソフトウェア・アプリケーション、オブジェクト、モジュール、ソフトウェア・ライブラリなどの様々な形で実現することができる。
【0077】
トラスト・プロキシ/STSは、ユーザ名とパスワードの組合せおよびKerberosチケットなどの伝統的な信用証明情報を含む多種多様な認証信用証明情報ならびにサード・パーティによって生成される認証トークンを含むフェデレーテッド認証トークン・フォーマットを受諾し妥当性検査することができる。トラスト・プロキシ/STSは、他の場所で認証の証明として認証トークンの受諾を可能にすることができる。認証トークンは、発行側パーティによって生成され、ユーザがその発行側パーティに対してすでに認証を受けていることを示すために使用される。発行側パーティは、ユーザの認証済みIDをアサートする手段として、認証トークンを生成する。
【0078】
セキュリティ・トークン・サービスは、必要に応じて、認証サービス・ランタイムを呼び出す。認証サービス・ランタイムは、ユーザを認証できる認証サービスをサポートする。認証サービスは、認証応答を介して認証試行の成功または失敗の表示を提供する認証機関として動作する。トラスト・プロキシ/STSは、認証サービス、たとえば、既存のレガシー・インフラストラクチャと対話する必要がないWebサービスの真新しいインストールが存在するというシナリオを内部化することができる。そうではない場合、STSコンポーネントは、認証トークンの妥当性検査のために外部認証サービスを呼び出すことになる。たとえば、STSコンポーネントは、ユーザ名/パスワードを含むバイナリ・トークンを「アンパック」し、次にLDAPサービスを使用してユーザ・レジストリにアクセスし、提示された信用証明情報を妥当性検査することができるであろう。
【0079】
アプリケーション・サーバなどの他のコンポーネントによって使用される場合、STSコンポーネントは、レガシー認証システムへのシングル・サインオンに必要なトークンを生成するために使用することができる。このため、STSコンポーネントは、内部目的のために、すなわち、1つの企業内で、ならびに外部目的のために、すなわち、1つのフェデレーション内の複数企業の全域で、トークン変換に使用することができる。内部目的の一例として、Webアプリケーション・サーバは、IBM CICS(顧客情報管理システム:Customer Information Control System)トランザクション・ゲートウェイを介してメインフレームとのインターフェースを取ることができ、CICSは、企業レベルのオンライン・トランザクション管理および接続性を主幹業務アプリケーションに提供するアプリケーション・サーバおよびコネクタのファミリである。Webアプリケーション・サーバは、Kerberosチケット(Webアプリケーション・サーバによって内部で使用されるもの)を、CICSトランザクション・ゲートウェイが要求するIBM RACF(商標)パスチケットに変換するために、STSコンポーネントを呼び出すことができる。
【0080】
図8に示したエンティティは、上記で紹介した用語、たとえば、「発行側パーティ」および「依存側パーティ」を使用して説明することができる。信頼関係を確立し維持することの一部として、発行側パーティのトラスト・プロキシは、依存側パーティのトラスト・プロキシによってどのトークン・タイプが要求/受諾されるかを決定することができる。したがって、トラスト・プロキシは、セキュリティ・トークン・サービスからトークン・サービスを呼び出すときに、この情報を使用する。発行側ドメインのトラスト・プロキシが依存側パーティに関する認証アサーションを生成することを要求された場合、そのトラスト・プロキシは、必要なトークン・タイプを決定し、セキュリティ・トークン・サービスから適切なトークンを要求する。
【0081】
依存側ドメインのトラスト・プロキシが発行側パーティから認証アサーションを受信すると、そのトラスト・プロキシは、どのタイプのアサーションをそれが予想していたか、ならびに依存側ドメイン内の内部使用のためにどのタイプのアサーションを必要としているかを把握する。したがって、依存側ドメインのトラスト・プロキシは、受信した認証アサーション内のトークンに基づいて、セキュリティ・トークン・サービスが必要な内部使用トークンを生成することを要求する。
【0082】
トラスト・プロキシとトラスト・ブローカはどちらも、発行側パーティから受信したアサーションを、依存側パーティによって理解されるフォーマットに変換する能力を有する。トラスト・ブローカは、それとの直接的信頼関係が存在するトラスト・プロキシのそれぞれに関するアサーション・フォーマット(複数も可)を解釈する能力を有し、それにより、トラスト・ブローカが発行側パーティと依存側パーティとの間のアサーション変換を行えるようにする。この変換は、そのローカル・トラスト・プロキシによりいずれかのパーティによって要求することができる。したがって、発行側パーティのトラスト・プロキシは、それが依存側パーティに送信される前にアサーションの変換を要求することができる。同様に、依存側パーティのトラスト・プロキシは、発行側パーティから受信されたアサーションの変換を要求することができる。
【0083】
アサーション変換は、ユーザID変換、認証アサーション変換、属性アサーション変換、またはその他の形式のアサーション変換を含む。上記のポイントを繰り返すと、アサーション変換は、フェデレーション内のトラスト・コンポーネント、すなわち、トラスト・プロキシとトラスト・ブローカによって処理される。トラスト・プロキシは、発行側ドメインまたは依存側ドメインのいずれかで、この変換をローカルで実行する場合もあれば、トラスト・ブローカから支援を呼び出す場合もある。
【0084】
発行側パーティと依存側パーティがすでにトラスト・ブローカとの個別信頼関係を有すると想定すると、トラスト・ブローカは、必要であれば発行側パーティと依存側パーティとの間の新しい信頼関係を動的に作成する、すなわち、ブローカリングすることができる。トラスト・ブローカによって提供される初期信頼関係ブローカリング操作の後、発行側パーティと依存側パーティは、将来の変換要件のためにトラスト・ブローカを呼び出す必要がないように、その関係を直接維持することができる。認証トークンの変換は、発行側パーティのトラスト・プロキシ、依存側パーティのトラスト・プロキシ、およびトラスト・ブローカという考えられる3つの箇所で起こる可能性があることに留意されたい。好ましくは、発行側パーティのトラスト・プロキシは、依存側パーティに送信するためにトラスト・ブローカによって理解される認証アサーションを生成する。次に依存側パーティは、トラスト・ブローカからのこのトークンを依存側パーティによって認識可能なフォーマットに変換することを要求する。トークン変換は、認証アサーションの伝送前に、伝送後に、または伝送前と伝送後の両方で行うことができる。
【0085】
フェデレーテッド・アーキテクチャ内の信頼関係
本発明により実現されるフェデレーテッド環境内には、企業トラスト・ドメインとフェデレーション・トラスト・ドメインという、管理しなければならない2つのタイプの「トラスト・ドメイン」が存在する。この2つのタイプのトラスト・ドメイン間の相違点は、部分的に、トラスト・ドメインとの信頼関係を支配する事業協定と、信頼を確立するために使用される技術とに基づいている。企業トラスト・ドメインは、その企業によって管理されるコンポーネントを含み、そのトラスト・ドメイン内のすべてのコンポーネントは互いに信頼する。一般に、たとえば、コンポーネント間で相互に認証されたSSLセッションを要求することにより、配置された技術が1つの企業内で固有の信頼関係を作り出すので、1つの企業内で信頼を確立するために必要な事業協定はまったく存在しない。図7を参照すると、レガシー・アプリケーションおよびバックエンド処理システムは企業トラスト・ドメインを表すことができる。
【0086】
フェデレーション・トラスト・ドメインは企業境界を越えるものであり、ある視点によると、フェデレーション・トラスト・ドメインは、別個の企業トラスト・ドメイン間の信頼関係を表すことができる。フェデレーション・トラスト・ドメインは、企業境界の全域でトラスト・プロキシにより確立される。フェデレーテッド信頼関係は、それによりトラスト・プロキシ間に初期信頼が確立される、ある種のブートストラッピング・プロセスを必要とする。このブートストラップ・プロセスの一部は、予想あるいは許可またはその両方のトークン・タイプとID変換を定義するルールならびに共有秘密鍵の確立を含むことができる。一般に、このブートストラッピング・プロセスは、ある企業のフェデレーションへの参加を支配する事業協定の確立と、この参加に関連する責任も含むので、このプロセスはアウト・オブ・バンドで実現される。
【0087】
フェデレーテッド・ビジネス・モデルには信頼を確立するためのメカニズムがいくつか存在する。フェデレーション・モデルでは、参加者間で転送されるアサーション(トークンおよび属性情報を含む)が有効であるという、あるレベルの保証を提供するために、ビジネス上の理由でフェデレーション参加者間の信頼の基本概念が必要である。信頼関係がまったくない場合、依存側ドメインは発行側ドメインから受信したアサーションに依存することができず、発行側パーティから受信した任意の情報を解釈する方法を決定するために依存側ドメインがそれを使用することができない。
【0088】
たとえば、大企業は、数千のグローバル・カスタマ(globalcustomer)をリンクしたいと希望する可能性があり、その企業は従来技術のソリューションを使用できるであろう。第1の例として、その企業は、相互信頼を確立するために商用証明局からのデジタル証明書を使用することをグローバル・カスタマに要求できるであろう。商用証明局は、その企業のサーバがそれぞれのグローバル・カスタマに位置するサーバを信頼できるようにする。第2の例として、その企業はKerberosを使用してサード・パーティの信頼を実現でき、その企業とそのグローバル・カスタマは共有秘密鍵ベースの信頼を実現するトラステッド・サード・パーティKerberosドメイン・サービスを実現できるであろう。第3の例として、その企業は、そのグローバル・カスタマのサーバによって相互に信頼される独自のセキュリティ・メッセージ・トークンにより専用方式を確立できるであろう。
【0089】
その企業が少数のグローバル・カスタマとの信頼関係を管理する必要がある場合、上記の手法のいずれか1つが受入れ可能である可能性があるが、数百または数千の潜在的なフェデレーション・パートナが存在する場合には、これは管理不能になる可能性がある。たとえば、企業がより小規模なパートナに専用方式の実現を強制することは可能である場合もあるが、企業がより大規模なパートナに多くの要件を賦課できるようになることはありそうもないことである。
【0090】
本発明では、企業は、トラスト・プロキシと、おそらくトラスト・ブローカにより確立され維持された信頼関係を使用することになる。本発明のフェデレーテッド・アーキテクチャの利点の1つは、ある企業およびその潜在的なフェデレーション・パートナの現行インフラストラクチャ以上の追加要件を賦課しないことである。
【0091】
しかし、本発明は、フェデレーションへの参加に必要な事業および責任協定を確立するために必要な予備作業から企業およびその潜在的なフェデレーション・パートナを救済するものではない。加えて、参加者は信頼関係の技術的ブートストラッピングを無視することができない。本発明はこのブートストラッピングを柔軟なものにすることができ、たとえば、第1のフェデレーション・パートナは特定の情報でKerberosチケットを発行することができ、第2のフェデレーション・パートナは特定の情報でSAML認証アサーションを発行することができる。
【0092】
本発明では、2つのトラスト・プロキシ間で事前確立された関係に基づいて発行側パーティから受信されるトークンを妥当性検査し変換するセキュリティ・トークン・サービスを含むことができるフェデレーション・トラスト・プロキシにより信頼関係が管理される。フェデレーテッド企業が他のフェデレーテッド企業との信頼関係(およびトークン変換)を確立することが実現可能ではない状況では、トラスト・ブローカを呼び出すことができる。しかし、フェデレーテッド企業は依然として、トラスト・ブローカとの関係を確立しなければならない。
【0093】
次に図9を参照すると、ブロック図は、本発明によりトラスト・プロキシとトラスト・ブローカとを使用するフェデレーテッド・ドメイン間の例示的な1組の信頼関係を描写している。図8はトラスト・ブローカを紹介したが、図9は本発明のフェデレーテッド・アーキテクチャ内の推移的な信頼関係の重要性を示している。
【0094】
フェデレーテッド・ドメイン271〜273はトラスト・プロキシ274〜276をそれぞれ組み込んでいる。トラスト・プロキシ274はトラスト・プロキシ275との直接的信頼関係277を有する。トラスト・ブローカ280はトラスト・プロキシ275との直接的信頼関係278を有し、トラスト・ブローカ280はトラスト・プロキシ279との直接的信頼関係279を有する。トラスト・ブローカ280は、フェデレーション参加者に代わって、他のフェデレーション・パートナとの推移的な信頼関係に基づいて信頼関係を確立するために使用される。推移的な信頼関係の原理により、トラスト・プロキシ275およびトラスト・プロキシ276はトラスト・ブローカ280を介して信頼関係281をブローカリングしてもらうことができる。トラスト・プロキシ275または276はいずれも、もう一方のアサーションを変換または妥当性検査する方法を把握している必要はなく、有効であり、信頼され、もう一方のトラスト・プロキシで理解されるものにアサーションを変換するために、トラスト・ブローカを呼び出すことができる。
【0095】
フェデレーテッド企業間の信頼関係に関する契約上の義務および責任を指定する事業協定は、ebXML(XMLを使用する電子ビジネス)規格の使用によりXMLで表すことができる。たとえば、直接的信頼関係はebXMLドキュメントで表すことができ、直接的信頼関係を共用する各フェデレーテッド・ドメインはebXMLドキュメントとして表された契約書のコピーを有することになるであろう。フェデレーション内の様々なエンティティに関する動作特性は、ebXML振り付け(choreography)内に指定し、ebXMLレジストリ内で公開することができ、たとえば、トラスト・プロキシまたはトラスト・ブローカを操作するために、特定のフェデレーションに参加することを希望する任意の企業は、そのフェデレーション内のすべてのトラスト・プロキシまたはトラスト・ブローカについてその特定のフェデレーションによって指定された公開要件に適合する必要があるであろう。セキュリティ・トークン・サービスは、他のドメインからのトークンを変換する方法に関する操作上の詳細について、これらのebXMLドキュメントを構文解析できるであろう。しかし、フェデレーション内の信頼関係が実現される方法に関する詳細を指定するために、本発明により他の規格およびメカニズムを使用できることに留意されたい。
【0096】
フェデレーテッド・アーキテクチャ内のアサーション処理
上記の通り、フェデレーション内のユーザの経験は、部分的に、複数ドメインの全域で転送される、ユーザに関するかまたはそのユーザのためのアサーションによって支配される。アサーションは、ユーザの認証状況に関する情報、属性情報、およびその他の情報を提供する。認証アサーションを使用すると、ユーザが、アクセスしたサイトごとに再認証を受ける必要性を除去することができる。フェデレーテッド環境内には、発行側パーティから依存側パーティへのアサーションを取得するために、プッシュ・モデル(push model)とプル・モデル(pull model)という2つのモデルが存在する。プッシュ・モデルでは、ユーザのアサーションはユーザの要求とともに発行側パーティに移動する。プル・モデルでは、ユーザの要求はいかなる情報もなしで依存側パーティで受信され、次に依存側パーティは発行側パーティから関連アサーションまたは必要なアサーションを要求する。
【0097】
フェデレーテッド環境内でアサーションを使用するためのこれらのモデルを考慮して、次に本発明の説明では、本発明のフェデレーテッド環境内でアサーションを作成し使用するための1組のプロセスを記述する1組の図面を参照する。図10は、フェデレーテッド環境内でアサーションを作成するための発行側ドメインにおける汎用プロセスを描写しており、図11は、アサーションを「取り壊す」ため、すなわち、その情報を抽出し分析することにより、アサーションをその本質的情報まで削減するための依存側ドメインにおける汎用プロセスを描写している。図12および図13は、アサーションが発行側ドメイン内で生成され、次にユーザの要求とともに依存側ドメインに転送される、プッシュ・モデルの2つの変形を描写することにより、図10に示した汎用プロセスに関するより詳細なプロセスを示している。図14は、要求側ユーザから依存側ドメインによって受信されたリソース要求を満足しようと試みながら、依存側ドメインが発行側ドメインからユーザに関して必要なアサーションを要求するプル・モデルを描写している。
【0098】
次に図10を参照すると、フローチャートは、フェデレーテッド環境内でアサーションを作成するための発行側ドメインにおける汎用プロセスを描写している。このプロセスは、発行側ドメインのポイントオブコンタクト・サーバがアサーションのためにトリガされたときに始まる(ステップ302)。ポイントオブコンタクト・サーバは、依存側ドメインから所与のユーザ用の特定のアサーションに関する要求を受信する場合もあれば、アサーションを必要とする既知の依存側ドメインに対する発信要求をインターセプトする場合もあり、これらのシナリオについてはそれぞれ図12および13に関して以下により詳細に説明する。アサーションのためにトリガされたことに応答して、発行側ドメインのポイントオブコンタクト・サーバは発行側ドメインのトラスト・プロキシからアサーションを要求し(ステップ304)、発行側ドメインのトラスト・プロキシがアサーションを生成し(ステップ306)、発行側ドメインのトラスト・プロキシは、必要であれば、必要なアサーションを生成するためにトラスト・ブローカから支援を要求することができる。アサーションを生成した後、発行側ドメインのトラスト・プロキシは発行側ドメインのポイントオブコンタクト・サーバにアサーションを返し(ステップ308)、次に発行側ドメインのポイントオブコンタクト・サーバが適切な方法で、たとえば、発信HTTPまたはSOAPメッセージにアサーションを挿入することにより、出力データストリームにアサーションを注入し(ステップ310)、それにより、プロセスを完了する。
【0099】
図10は、「ローカル・ウォレット」の使用なしに発行側ドメインでアサーションを作成するためのプロセスを描写している。しかし、本発明はローカル・ウォレット機能の組込みを可能にするものである。一般に、ローカル・ウォレットは、トランザクションを容易にするためにユーザ属性情報またはその他の情報に関するセキュア・データ・ストアとして動作可能なクライアント側のコードであり、このクライアント側のコードはアサーション転送のプッシュ・モデルあるいはプル・モデルまたはその両方に参加することもできる。ローカル・ウォレットが積極的にプロトコルに参加すると、それは、アサーションを生成し、それをプロトコル・フローに挿入するという点でポイントオブコンタクト・サーバ機能の機能サブセットを実現する。ローカル・ウォレットを使用することにより、ローカル・ウォレットが、ポイントオブコンタクト・サーバとトラスト・プロキシとの間で行われるトラストベースの対話を実現できるわけではない。追加の信頼関係が必要な場合、ポイントオブコンタクト・サーバを呼び出さなければならない。
【0100】
次に図11を参照すると、フローチャートは、アサーションを取り壊すための依存側ドメインにおける汎用プロセスを描写している。このプロセスは、依存側ドメインのポイントオブコンタクト・サーバが関連アサーションとともにメッセージを受信したときに始まり(ステップ322)、その後、依存側ドメインのポイントオブコンタクト・サーバはアサーションを抽出し、依存側ドメインのトラスト・プロキシにアサーションを転送する(ステップ324)。依存側ドメインのトラスト・プロキシは、発行側ドメインから受信したトークンを含む情報をアサーションから抽出し(ステップ326)、依存側ドメインのトラスト・プロキシは、セキュリティ・トークン・サービスを呼び出してこのトークンを妥当性検査することになり、適切であれば、そのユーザに関してローカルで有効なトークンを返す(ステップ328)。
【0101】
ステップ326の一部として、トラスト・プロキシは、アサーションのソース、すなわち、発行側パーティを決定することになる。トラスト・プロキシがこの発行側ドメインから受信したトラスト・アサーションを理解できる場合、トラスト・プロキシはステップ328を内部で実行することになる。トラスト・プロキシが発行側ドメインから受信したアサーションを理解/信頼できない場合、トラスト・プロキシはトラスト・ブローカからの支援を呼び出すことができる。アサーションを妥当性検査できない場合、適切なエラー応答を生成することになるであろう。
【0102】
アサーションが妥当性検査されたと想定すると、依存側ドメインのトラスト・プロキシは、そのユーザについて必要なローカル情報を構築する(ステップ330)。たとえば、ローカル情報は、バックエンド・レガシー・アプリケーションによって必要とされる認証信用証明情報を含むことができる。依存側ドメインのトラスト・プロキシは、必要な情報を依存側ドメインのポイントオブコンタクト・サーバに返し(ステップ332)、そのポイントオブコンタクト・サーバがそのユーザのためのローカル・セッションを構築する。
【0103】
ポイントオブコンタクト・サーバがそのユーザのためのセッションを構築した後、そのユーザは認証ユーザとして現れる。ポイントオブコンタクト・サーバは、ログアウトまたはタイムアウト・イベントが開始されるまでユーザがそのドメインとの間で行っている任意のトランザクションをさらに支配するために、このセッション情報を使用することができる。ポイントオブコンタクト・サーバがそのユーザに関する認証済みIDを有していることを考慮すると、ポイントオブコンタクト・サーバは、この特定のユーザのIDとこの特定のユーザに関連する任意の許可ポリシーに基づいて、必要であれば、この要求に関する許可を入手することができる。次にポイントオブコンタクト・サーバは、要求されたバックエンド・アプリケーションまたはサービスに任意の関連情報とともにユーザの要求を転送し(ステップ334)、それにより、プロセスを完了する。
【0104】
ポイントオブコンタクト・サーバとトラスト・プロキシとの間で転送されるデータ項目およびそのデータ項目のフォーマットは様々になる可能性があることに留意されたい。メッセージからアサーションを抽出し、アサーションのみをトラスト・プロキシに転送するのではなく、ポイントオブコンタクト・サーバは、メッセージ全体をトラスト・プロキシに転送することができる。たとえば、トラスト・プロキシにおける処理は、SOAPメッセージ関するシグニチャ妥当性検査のようなステップを含むことができ、これはSOAPエンベロープ全体を必要とするであろう。
【0105】
次に図12を参照すると、フローチャートは、発行側ドメインにおけるユーザ・アクションに応答して発行側ドメインから依存側ドメインにアサーションをプッシュするための特定のプロセスを描写している。このプロセスは、ユーザが発行側ドメイン内のWebページまたは同様のリソースから依存側ドメインへのリンクにアクセスしたときに始まり(ステップ342)、それにより、特定のアサーションを構築するために何らかの形のCGI(コモン・ゲートウェイ・インターフェース)タイプの処理を呼び出す。依存側ドメインによるアサーションの必要性を認識する発行側ドメインの能力は、本発明のフェデレーテッド・インフラストラクチャが実現される既存のレガシー・システムとの緊密統合を示している。また、これは、発行側パーティが必要なアサーションを構築するためにトラスト・プロキシを呼び出す必要がないような、発行側パーティと依存側パーティとの緊密結合も示しており、この緊密結合は、適切に確立された信頼関係を有する特定のタイプのフェデレーテッド・エンティティ間では適切なものである可能性がある。
【0106】
発行側ドメインにおけるバックエンド処理は、必要なアサーションを構築するために呼び出され(ステップ344)、これは、ローカル・トラスト・プロキシにおける呼出し機能を含む可能性がある。次に、必要なアサーションを含む、依存側ドメインへのユーザの要求が構築され(ステップ346)、発行側ドメインはユーザの要求とともにアサーションを依存側ドメインに転送し(ステップ348)、それにより、プロセスを完了する。依存側ドメインが要求とそれに関連するアサーションを受信すると、依存側ドメインは図11に示したようにアサーションを妥当性検査することになるであろう。
【0107】
次に図13を参照すると、フローチャートは、依存側ドメインに対する発信要求を積極的にインターセプトする発行側ドメインに応答して発行側ドメインから依存側ドメインにアサーションをプッシュするための特定のプロセスを描写している。このプロセスは、ユーザが依存側ドメインにおける保護リソースを要求したときに始まる(ステップ352)。ポイントオブコンタクト・サーバは、たとえば、所定のユニフォーム・リソース・アイデンティファイア(URI)、特定のタイプのメッセージ、特定のタイプのメッセージ・コンテンツについて発信メッセージをフィルタリングすることによるか、またはその他の何らかの方法で、発信要求をインターセプトする(ステップ354)。次に発行側ドメインのポイントオブコンタクト・サーバは、発行側ドメインのトラスト・プロキシから適切なアサーションの生成を要求し(ステップ356)、そのトラスト・プロキシは必要であればトラスト・ブローカからの支援によりアサーションを生成する(ステップ358)。次に発行側ドメインは、生成したアサーションとともにユーザの要求を依存側パーティに転送し(ステップ360)、それにより、プロセスを完了する。依存側ドメインが要求とそれに関連するアサーションを受信すると、依存側ドメインは図11に示したようにアサーションを妥当性検査することになるであろう。
【0108】
次に図14を参照すると、フローチャートは、要求側ユーザから依存側ドメインによって受信されたリソース要求を満足しようと試みながら、依存側ドメインが発行側ドメインからユーザに関して必要なアサーションを要求するプル・モデルを描写している。このプロセスは、依存側ドメインが保護リソースに関するユーザ要求を受信したときに始まる(ステップ372)。図12または図13に示した例とは対照的に、図14に示した例は、ユーザに関する必要なアサーションがない場合に依存側ドメインで受信されるユーザの要求に関連する処理を記述している。この場合、発行側ドメインは、ユーザの要求に必要なアサーションを挿入するためにユーザの要求をインターセプトするかまたはその他の方法で処理する能力を持っていない。たとえば、ユーザは、発信要求が発行側ドメインのポイントオブコンタクト・サーバによってインターセプトされないように、ユニフォーム・リソース・ロケータ(URL)を入力したかまたはリソースへのブックマーク付き参照を使用した可能性がある。このため、依存側ドメインは発行側ドメインからアサーションを要求する。
【0109】
次に依存側ドメインは、ユーザのホーム・ドメイン、すなわち、関連発行側ドメインを決定する(ステップ374)。HTTPベースの実現例では、ユーザは、すでに依存側ドメインとの関係を事前設定しており、その結果、ユーザのクライアント装置で依存側ドメインによって永続Cookieが設定された可能性がある。この永続Cookieは、ユーザのホーム・ドメイン、すなわち、発行側ドメインのIDを含むことになるであろう。ユーザが何らかの方法でWebサービス・クライアントを操作するSOAPベースの実現例では、依存側ドメインにおけるWebサービスは、トークン要件を含む、WSDL(Webサービス記述言語:Web Services Description Language)によるサービス要件を公示したと考えられる。次にこれは、必要なトークン・タイプを提供するためにユーザのWebサービス・クライアント/SOAP実現例を必要とするであろう。この要件が達成されなかった場合、Webサービスは技術的にエラーを返すことになるであろう。場合によっては、これは、その要求を適切なトークンで繰り返すことができるように、認証情報を入力するようユーザのWebサービス・クライアントに促すことができるエラー・コードを返す可能性がある。
【0110】
依存側ドメインのポイントオブコンタクト・サーバは、依存側ドメインのトラスト・プロキシによりアサーション要求を開始し(ステップ376)、それは発行側ドメインのトラスト・プロキシからユーザに関するアサーションを要求する(ステップ378)。この実施形態がHTTPベースの通信を使用している場合、依存側ドメインのトラスト・プロキシから発行側ドメインのトラスト・プロキシへのアサーション要求は、ユーザのブラウザ・アプリケーションによるリダイレクトを介して依存側ドメインのポイントオブコンタクト・サーバによって発行側ドメインのポイントオブコンタクト・サーバに伝送することができ、そのポイントオブコンタクト・サーバはアサーション要求を発行側ドメインのトラスト・プロキシに転送する。
【0111】
この実施形態がSOAPベースの実現例を使用している場合、依存側パーティは、ユーザのWebサービス・クライアントにエラー・コードを返すことができる。このエラー・コードにより、Webサービス・クライアントによって認証情報を入力するようユーザに促すことができる。次にWebサービス・クライアントは、要求されたトークンを生成することになるであろう。依存側ドメインのトラスト・プロキシがUDDI(ユニバーサル記述、ディスカバリ、および統合:Universal Description, Discovery, and Integration)レジストリで公示され、ユーザのWebサービス・クライアントがトラスト・プロキシを見つけられるようにしている場合、ユーザのWebサービス・クライアントはトラスト・プロキシを直接呼び出すことができるであろう。一般に、このシナリオは内部ユーザについてのみ有効であり、その場合、トラスト・プロキシがインターネット上の公用UDDIで公示されるかまたはフェデレーション外で一般にアクセス可能になることはありそうもないので、トラスト・プロキシは企業内の専用UDDIで公示されている。
【0112】
発行側ドメインのトラスト・プロキシは、アサーション要求が受信された方法をミラーリングする方法で、要求されたアサーションを生成し(ステップ380)、それを返す(ステップ382)。依存側ドメインのトラスト・プロキシが要求されたアサーションを受信した後(ステップ384)、依存側ドメインのトラスト・プロキシはアサーションから情報を抽出し(ステップ386)、アサーションを解釈するかあるいは妥当性検査するかまたはその両方を行い(ステップ388)、トラスト・プロキシはアサーションの変換のために必要であれば、トラスト・ブローカからの支援を呼び出すことができる。そのアサーションを妥当性検査できない場合、適切なエラー応答が生成されることになるであろう。アサーションが妥当性検査されると想定すると、依存側ドメインのトラスト・プロキシは、保護リソースに関するユーザの要求を達成しようと試みるバックエンド・サービスによる使用に必要な適切なフォーマットでローカル情報を構築する(ステップ390)。たとえば、ローカル情報は、バックエンド・レガシー・アプリケーションによって要求される認証信用証明情報を含むことができる。依存側ドメインのトラスト・プロキシは、必要な情報を依存側ドメインのポイントオブコンタクト・サーバに返し(ステップ392)、次にそれはユーザに関するローカル・セッションを構築し、関連情報とともにユーザの要求を要求されたバックエンド・アプリケーションまたはサービスに転送し(ステップ394)、それにより、プロセスを完了する。
【0113】
フェデレーテッド・アーキテクチャ内のシングル・サインオン
図6〜図9の説明は本発明によるフェデレーテッド・データ処理環境内のエンティティの動作特性に焦点を合わせているが、図10〜図14の説明はこれらのエンティティ間で行われるプロセスのいくつかに焦点を合わせている。これらの説明とは対照的に、ユーザにシングル・サインオン経験を提供しながら、ユーザに関するトランザクションを完了するという目標に焦点を合わせる本発明の説明のために、図15を参照する。
【0114】
換言すれば、以下の説明は、ユーザがユーザのセッション内でシングル・サインオン経験を持つことができる方法に関して本発明の概略視点に焦点を合わせているが、すでに前述したエンティティおよびプロセスについて論ずるものである。セッションは、初期ユーザ認証、すなわち、ログオンから(これを含む)ログアウトまでの1組のトランザクションとして定義することができる。セッション内のユーザのアクションは、部分的に、そのセッションに関してユーザに付与された権限によって支配されることになる。フェデレーション内のユーザは、そのセッション中にアクセスしたフェデレーション・パートナにかかわらず、ユーザが単一認証操作を完了し、そのセッションの期間の間、この認証操作で十分であるシングル・サインオン経験を持つことを期待する。
【0115】
ユーザのセッション中に、ユーザは、多くのフェデレーテッド・ドメインにアクセスして、そのドメインによって提供されるWebサービスを使用することができる。ドメインは、UDDIおよびWSDLなどの標準規格を使用して、そのドメインが提供するサービスの記述を公開することができ、そのいずれも共通データ・フォーマットとしてXMLを使用する。ユーザは、同じくこれらの標準規格に準拠するアプリケーションにより、使用可能なサービスおよびサービス・プロバイダを見つける。SOAPは、XMLで表された要求および応答を伝達するためのパラダイムを提供する。フェデレーテッド環境内のエンティティは、とりわけ、これらの規格を使用することができる。
【0116】
シングル・サインオン経験を容易にするために、フェデレーテッド環境をサポートするWebサービスは、ユーザの認証の証明を提供するためにサード・パーティによって生成された認証アサーションまたはセキュリティ・トークンの使用もサポートすることになる。このアサーションは、そのユーザ用のIDとともに、発行側パーティに対するユーザの認証の成功を示すある種の証拠を含むことになる。したがって、ユーザは、あるフェデレーション・パートナに対し、伝統的な認証信用証明情報、たとえば、ユーザ名およびパスワードを提示し、異なるフェデレーション・パートナに対し、認証/発行側パーティによって生成されたSAML認証アサーションを提供することができる。
【0117】
Webサービス環境内の認証は、企業が許可クライアントにアクセスを制限できるように、Webサービス要求の請求されたIDを検証する行為である。Webサービスを要求するかまたは呼び出すユーザは、ほとんど常に認証され、したがって、本発明のフェデレーテッド環境内の認証の必要性はユーザ認証のためのWebサービスの現行要件とは少しも異ならないものである。また、フェデレーテッド環境により、Webサービスまたはその他のアプリケーションはWebサービスを要求することができ、これらのWebサービスも認証されることになるであろう。
【0118】
フェデレーテッド・セッションに参加していないユーザの認証は、本発明のフェデレーテッド・アーキテクチャによる影響を受けない。たとえば、特定のドメインの非フェデレーテッド・リソースにアクセスするためにHTTP/Sによる用紙ベースの認証メカニズムで認証を受ける既存のユーザは、フェデレーテッド環境に関するそのドメインのサポートを導入することによって影響されない。認証は、部分的に、ポイントオブコンタクト・サーバによって処理され、次にそのポイントオブコンタクト・サーバが個別のトラスト・プロキシ・コンポーネントを呼び出すことができる。ポイントオブコンタクト・サーバの使用は、既存のドメインのインフラストラクチャに対する影響を最小限にする。たとえば、ポイントオブコンタクト・サーバは、そのドメインのバックエンドまたはレガシー・アプリケーションおよびシステムによって処理されるすべての非フェデレーテッド要求を通過するように構成することができる。
【0119】
ポイントオブコンタクト・サーバは、基本認証、用紙ベースの認証、またはその他の何らかの認証方法などのHTTPベースの認証方法を呼び出すことを選択することができる。また、ポイントオブコンタクト・サーバは、SAML認証アサーションなど、認証の証明としてユーザによって提示されたアサーションを認識することにより、フェデレーテッド・トラスト・ドメインもサポートし、そのアサーションは企業トラスト・ドメイン間を越えている。ポイントオブコンタクト・サーバはトラスト・プロキシを呼び出すことができ、次にそのトラスト・プロキシは認証信用証明情報/セキュリティ・トークンの妥当性検査のためにそのセキュリティ・トークン・サービスを呼び出すことができる。
【0120】
Webサービスまたはその他のアプリケーションの認証は、ユーザの認証と同じプロセスを有する。Webサービスからの要求は、認証アサーションを含むセキュリティ・トークンを伝達し、このセキュリティ・トークンはユーザによって提示されるトークンと同じようにトラスト・プロキシ/セキュリティ・トークン・サービスによって妥当性検査されることになるであろう。WebサービスはUDDIで公示された要求されたサービスによってどの認証アサーション/セキュリティ・トークンが要求されているかをすでに発見していると考えられるので、Webサービスからの要求は必ずそれとともにこのトークンを伝達しなければならない。
【0121】
次に図15を参照すると、ブロック図は、フェデレーテッド・シングル・サインオン操作をサポートするフェデレーテッド環境を描写している。ユーザ400は、クライアント装置およびブラウザなどの適切なクライアント・アプリケーションにより、企業/ドメイン410によって提供されるWebサービスにアクセスすることを所望し、その企業/ドメインは、フェデレーテッド環境内のフェデレーテッド・ドメインとして動作するデータ処理システムをサポートする。ドメイン410はポイントオブコンタクト・サーバ412およびトラスト・プロキシ414をサポートし、同様に、ドメイン420はポイントオブコンタクト・サーバ422およびトラスト・プロキシ424をサポートし、ドメイン430はポイントオブコンタクト・サーバ432およびトラスト・プロキシ434をサポートする。トラスト・プロキシは、上述の通り、支援のためにトラスト・ブローカ450を当てにする。追加のドメインおよびトラスト・プロキシもフェデレーテッド環境に参加することができる。図15は、ドメイン410とドメイン420との間のフェデレーテッド・シングル・サインオン操作を記述しており、同様の操作はドメイン410とドメイン430との間でも行うことができる。
【0122】
ユーザはドメイン410に関する認証操作を完了し、この認証操作はポイントオブコンタクト・サーバ412によって処理される。たとえば、アクセス制御またはパーソナライゼーションのために、認証済みIDを必要とする何らかのリソースへのアクセスをユーザが要求すると、認証操作がトリガされる。ポイントオブコンタクト・サーバ412は、レガシー認証サービスを呼び出す場合もあれば、トラスト・プロキシ414を呼び出してユーザが提示した認証信用証明情報を妥当性検査する場合もある。ドメイン410は、ユーザのフェデレーテッド・セッションの期間中、ユーザのホーム・ドメインになる。
【0123】
その後のある時点で、ユーザは、同じくフェデレーテッド・ドメインをサポートする企業420などのフェデレーション・パートナにおいてトランザクションを開始し、それにより、フェデレーテッド・シングル・サインオン操作をトリガする。たとえば、ユーザがドメイン420で新しいトランザクションを開始する場合もあれば、ユーザの元のトランザクションが他のドメインにおける1つまたは複数の追加トランザクションにカスケードする場合もある。もう1つの例として、ユーザは、たとえば、ドメイン410内でホストとして処理されるWebページ上の特殊リンクを選択するか、またはドメイン410内でホストとして処理されるがドメイン420内でホストとして処理されるリソースを表示するポータル・ページを要求することにより、ポイントオブコンタクト・サーバ412を介してドメイン420内のリソースへのフェデレーテッド・シングル・サインオン操作を呼び出すこともできる。ポイントオブコンタクト・サーバ412は、ドメイン420によって理解または信頼されるようにフォーマットされた、そのユーザ用のフェデレーション・シングル・サインオン・トークンを生成するために、トラスト・プロキシ414に要求を送信する。トラスト・プロキシ414はこのトークンをポイントオブコンタクト・サーバ412に返し、そのポイントオブコンタクト・サーバ412はこのトークンをドメイン内のポイントオブコンタクト・サーバ422に送信する。ドメイン410は、依存側パーティとして動作するドメイン420のユーザのための発行側パーティとして動作する。ユーザのトークンはユーザの要求とともにドメイン420に転送されると考えられ、このトークンはユーザのブラウザによるHTTPリダイレクトを使用して送信される場合もあれば、トラスト・プロキシ414によって供給されるトークンで識別されるユーザに代わって(HTTPまたはHTTPによるSOAPにより)ポイントオブコンタクト・サーバ422の要求を直接呼び出すことにより送信される場合もある。
【0124】
ポイントオブコンタクト・サーバ422は、フェデレーション・シングル・サインオン・トークンとともにその要求を受信し、トラスト・プロキシ424を呼び出す。トラスト・プロキシ424は、フェデレーション・シングル・サインオン・トークンを受信し、そのトークンを妥当性検査し、そのトークンが有効で信頼されているものと想定して、ユーザのためにローカルで有効なトークンを生成する。トラスト・プロキシ424はローカルで有効なトークンをポイントオブコンタクト・サーバ422に返し、そのポイントオブコンタクト・サーバはドメイン420内でそのユーザに関するセッションを確立する。必要であれば、ポイントオブコンタクト・サーバ422は、他のフェデレーテッド・パートナにおいてフェデレーテッド・シングル・サインオンを開始することができる。
【0125】
ドメイン420におけるトークンの妥当性検査は、おそらく、セキュリティ・トークン・サービスからの支援により、トラスト・プロキシ424によって処理される。ドメイン410によって提示されたトークンのタイプに応じて、セキュリティ・トークン・サービスは、ドメイン420のユーザ・レジストリにアクセスする必要がある場合もある。たとえば、ドメイン420は、ドメイン420のユーザ・レジストリに照らし合わせて妥当性検査すべき、ユーザの名前とパスワードを含むバイナリ・セキュリティ・トークンを提供することができる。このため、この例では、企業は単に、フェデレーテッド・パートナからのセキュリティ・トークンを妥当性検査するだけである。ドメイン410と420との信頼関係は、ユーザに代わってドメイン410によって提示されたセキュリティ・トークンをドメイン420が理解し信頼できることを保証する。
【0126】
フェデレーテッド・シングル・サインオンは、ユーザに代わって依存側ドメインに提示されるセキュリティ・トークンの妥当性検査のみならず、セキュリティ・トークンに含まれる情報に基づいて依存側ドメインにおいてローカルで有効なユーザIDを決定することも必要とする。このような関係を確立するために必要な直接的信頼関係と事業協定の結果の1つとして、少なくとも1つのパーティ、発行側ドメインあるいは依存側ドメインのいずれか一方またはその両方は、発行側ドメインによって提供された情報を依存側ドメインで有効なIDに変換する方法を把握することになる。上記の簡単な例では、発行側ドメイン、すなわち、ドメイン410が依存側ドメイン、すなわち、ドメイン420にドメイン420で有効なユーザIDを提供できるものと想定されていた。そのシナリオでは、依存側ドメインは、IDマッピング機能を呼び出す必要はなかった。ドメイン420におけるトラスト・プロキシ424は、このユーザの「保証人となる」、ユーザ用のセキュリティ・トークンを生成することになる。受諾されるトークンのタイプ、トークン上で必要なシグニチャ、およびその他の要件はいずれも、フェデレーションの事業協定の一部として事前確立される。ID変換を支配するルールおよびアルゴリズムも、フェデレーションの事業協定の一部として事前確立される。2つの参加者間の直接的信頼関係の場合、ID変換アルゴリズムは、その2つのパーティについて確立されていることになり、フェデレーション内の他のどのパーティにも関連しない可能性がある。
【0127】
しかし、ドメイン410用のローカルIDからドメイン420用のローカルIDにユーザをマッピングする方法を発行側ドメインが把握することが常に実情であるわけではない。場合によっては、このマッピングを実行する方法を把握しているのは依存側ドメインである可能性があり、さらに他の場合には、いずれのパーティもこの変換を実行する方法を把握しなくなり、その場合、サード・パーティのトラスト・ブローカを呼び出す必要がある可能性もある。換言すれば、ブローカリングされた信頼関係の場合、発行側ドメインと依存側ドメインは互いに直接的信頼関係を持っていない。しかし、それらのドメインは、トラスト・ブローカ450などのトラスト・ブローカとの直接的信頼関係を持つことになる。IDマッピング・ルールおよびアルゴリズムは、この関係の一部として確立されたものになり、トラスト・ブローカはこの情報を使用して、ブローカリングされた信頼関係に必要なID変換を支援することになる。
【0128】
ドメイン420は、ポイントオブコンタクト・サーバ422においてドメイン410によって発行されたトークンを受信し、そのポイントオブコンタクト・サーバはトラスト・プロキシ424を呼び出して、トークンを妥当性検査し、IDマッピングを実行する。この場合、トラスト・プロキシ424はドメイン410用のローカルIDからドメイン420用のローカルIDにユーザをマッピングすることができないので、トラスト・プロキシ424はトラスト・ブローカ450を呼び出し、そのトラスト・ブローカがトークンを妥当性検査し、IDマッピングを実行する。そのユーザ用のローカルIDを入手した後、トラスト・プロキシ424は、おそらくそのセキュリティ・トークン・サービスにより、ドメイン420においてバックエンド・アプリケーションによって要求される任意のローカル・トークンを生成することができ、たとえば、ポイントオブコンタクト・サーバからアプリケーション・サーバへのシングル・サインオンを容易にするためにKerberosトークンが要求される可能性がある。必要であれば、ローカルで有効なトークンを入手した後、ポイントオブコンタクト・サーバはそのユーザ用のローカル・セッションを構築することができる。また、ポイントオブコンタクト・サーバは、ユーザ要求の粗雑な許可を処理し、ドメイン420内の適切なアプリケーション・サーバに許可された要求を転送することになる。
【0129】
ユーザのセッションは、ユーザがログアウトまたはサインオフしたときに終了する。ユーザがそのホーム・ドメインとのセッションからログアウトすると、ホーム・ドメインはすべての依存側ドメイン、すなわち、それがセキュリティ・トークンを発行したドメインに通知し、これらのドメインにおいてユーザ・ログアウトを呼び出すことになるであろう。次にこれらの依存側ドメインのいずれかが同じユーザのための発行側ドメインとして動作した場合、そのドメインは、カスケード式にユーザ・ログアウト要求についてその依存側ドメインのすべてに通知することになるであろう。各ドメインのトラスト・プロキシは、ユーザのログアウト要求をすべての依存側ドメインに通知することを担当することになり、トラスト・プロキシはこのプロセスの一部としてトラスト・ブローカを呼び出すことができる。
【0130】
上記で提供されている本発明の詳細な説明を考慮すると、本発明の利点は明らかであるはずである。従来技術のソリューションは、ドメイン・セキュリティ・サービスを階層として編成し、それにより、ドメインは堅い信頼関係と本質的に互換性のある技術を有する必要がある。その他の手法は、認証アサーションに均一フォーマットを賦課するかまたは認証アサーションの転送を可能にせず、ときには、それからローカル・アサーションが構築される認証済みIDを転送する。
【0131】
本発明の利点の中で、トラスト・プロキシは、所与のドメイン内の既存のセキュリティ・サービスが、同じトラスト・ルートに加入するかまたは同じ信頼確立技術を使用する必要なしに、他のドメインとの信頼関係を確立できるようにするものである。このため、本発明のフェデレーテッド・アーキテクチャは、エンティティの疎結合を提供する。ホーム・ドメインは認証を管理し、各ドメインはそれ自体の登録済みユーザのみの認証を管理する。各ドメインは、ユーザIDおよび属性に関する任意の他のドメインのステートメントを自由に受諾、拒否、または変更することができる。依存側ドメインは、IDおよび属性に関する発行側ドメイン(最終的に、ホーム・ドメイン)のアサーションを当てにするが、各ドメインは任意の認証プロトコルを実現することができ、そのドメインがフェデレーションに参加するために前にサポートされていないプロトコルを実現するよう所与のドメイン内のアプリケーションを変更する必要はない。フェデレーションは特定のトラスト・モデルを必要とせず、1組のエンティティは、参加エンティティがすでに確立している可能性のあるトラスト・モデルに適合するフェデレーションを形成することができる。アサーション変換は、トラスト・プロキシあるいはトラスト・ブローカまたはその両方でのみ行われ、フェデレーション・アーキテクチャは、既存のレガシー・システムに対する最小限の影響で実現可能なフロントエンド・インフラストラクチャとして動作する。
【0132】
フェデレーションにより、ユーザは、シングル・サインオン方式で所与のフェデレーション内の種々のサイトをシームレスにトラバースすることができる。フェデレーション参加者間で信頼関係が確立されているので、ある参加者はあるユーザを認証し、その後、そのユーザのための発行側パーティとして動作することができる。他のフェデレーション・パートナは依存側パーティになり、それにより、そのパートナは、ユーザの直接的関与なしに発行側パーティによってユーザに関して提供される情報を当てにする。
【0133】
完全に機能するデータ処理システムに関連して本発明を説明してきたが、当業者であれば、配布を実行するために実際に使用される特定のタイプの信号運搬メディアにかかわらず、本発明のプロセスがコンピュータ可読メディア内の命令の形および様々なその他の形で配布可能であることが分かることは、留意すべき重要なことである。コンピュータ可読メディアの例としては、EPROM、ROM、テープ、紙、フレキシブル・ディスク、ハードディスク・ドライブ、RAM、およびCD−ROMなどのメディア、ならびにデジタルおよびアナログ通信リンクなどの伝送タイプのメディアを含む。
【0134】
1つの方法は一般に、所望の結果に至る首尾一貫したステップのシーケンスであると考えられている。これらのステップは、物理量の物理的操作を必要とする。必ずではないが、通常、これらの量は、保管、転送、結合、比較、およびその他の操作が可能な電気信号または磁気信号の形を取る。時には、主に一般的使用の理由で、これらの信号をビット、値、パラメータ、項目、エレメント、オブジェクト、記号、文字、項、数などと呼ぶと便利である。しかし、これらの用語および同様の用語はいずれも適切な物理量に関連付けられるものであり、単にこれらの量に適用された便利なラベルにすぎないことに留意されたい。
【0135】
本発明の説明は、例示のために提示されたものであり、網羅的なものまたは開示された実施形態に限定されるものではない。当業者には、多くの変更および変形が明らかになるであろう。実施形態は、本発明の原理およびその実際的な適用例を説明し、他の企図された使用法に適している可能性がある様々な変更を含む様々な実施形態を実現するために他の当業者が本発明を理解できるようにするために選択されたものである。
【図面の簡単な説明】
【0136】
【図1】そのそれぞれが本発明を実現可能な複数データ処理システムの典型的なネットワークを示す図である。
【図2】本発明を実現可能なデータ処理システム内で使用できる典型的なコンピュータ・アーキテクチャを示す図である。
【図3】クライアントがサーバ側の保護リソースにアクセスしようと試みるときに使用できる典型的な認証プロセスを示すデータ・フロー・ダイアグラムである。
【図4】本発明を実現可能な典型的なWebベース環境を示すネットワーク・ダイアグラムを示す図である。
【図5】ユーザからの複数の認証操作を必要とする可能性のある典型的なオンライン・トランザクションの一例を示すブロック図である。
【図6】第1のフェデレーテッド企業に対してユーザによって開始され、それに応答して、フェデレーテッド環境内のダウンストリーム・エンティティでアクションを呼び出すトランザクションに関するフェデレーテッド環境の用語を示すブロック図である。
【図7】本発明の一実施形態により本発明のフェデレーテッド・アーキテクチャ・コンポーネントのいくつかと所与のドメインにある既存のシステムとの統合を示すブロック図である。
【図8】本発明の一実現例によるフェデレーテッド・アーキテクチャを示すブロック図である。
【図9】本発明によりトラスト・プロキシとトラスト・ブローカとを使用するフェデレーテッド・ドメイン間の例示的な1組の信頼関係を示すブロック図である。
【図10】フェデレーテッド環境内でアサーションを作成するための発行側ドメインにおける汎用プロセスを示すフローチャートである。
【図11】アサーションを取り壊すための依存側ドメインにおける汎用プロセスを示すフローチャートである。
【図12】発行側ドメインにおけるユーザ・アクションに応答して発行側ドメインから依存側ドメインにアサーションをプッシュするための特定のプロセスを示すフローチャートである。
【図13】依存側ドメインに対する発信要求を積極的にインターセプトする発行側ドメインに応答して発行側ドメインから依存側ドメインにアサーションをプッシュするための特定のプロセスを示すフローチャートである。
【図14】要求側ユーザから依存側ドメインによって受信されたリソース要求を満足しようと試みながら、依存側ドメインが発行側ドメインからユーザに関して必要なアサーションを要求するプル・モデルを示すフローチャートである。
【図15】フェデレーテッド・シングル・サインオン操作をサポートするフェデレーテッド環境を示すブロック図である。

【特許請求の範囲】
【請求項1】
データ処理システム内でユーザを認証するための方法において、
第1のドメイン内の第1のトラスト・プロキシで前記ユーザに関する認証アサーションを生成するステップと、
第2のドメイン内のシステムで、前記第2のドメイン内の被制御リソースにアクセスするために前記ユーザによって操作されるクライアントからの要求を受信するステップと、
前記第1のドメインから前記第2のドメイン内の第2のトラスト・プロキシに前記認証アサーションを送信するステップと、
前記第2のドメイン内の前記第2のトラスト・プロキシで前記認証アサーションを妥当性検査するステップと、
を有する、方法。
【請求項2】
前記第2のトラスト・プロキシにおける前記認証アサーションの妥当性検査の成功に応答して、前記被制御リソースへのアクセスを可能にするステップ
をさらに有する、請求項1に記載の方法。
【請求項3】
前記第2のドメイン内の前記システムで前記被制御リソースに関する前記要求を受信する前に、前記第1のトラスト・プロキシで前記ユーザに関する前記認証アサーションを生成することを前記第1のドメイン内で決定するステップと、
前記被制御リソースに関する前記要求とともに前記第1のドメインから前記第2のドメインに前記認証アサーションをプッシュするステップと、
をさらに有する、請求項1に記載の方法。
【請求項4】
前記第2のドメイン内の前記システムで前記被制御リソースに関する前記要求を受信した後で、前記第2のトラスト・プロキシからの前記認証アサーションを前記第1のトラスト・プロキシからプルするステップ
をさらに有する、請求項1に記載の方法。
【請求項5】
前記第1のトラスト・プロキシと前記第2のトラスト・プロキシとの間の信頼関係を確立するステップ
をさらに有する、請求項1に記載の方法。
【請求項6】
トラスト・ブローカにより前記第1のトラスト・プロキシと前記第2のトラスト・プロキシとの間の間接的関係を維持するステップ
をさらに有する、請求項1に記載の方法。
【請求項7】
データ処理システム内でユーザを認証するための装置において、
第1のドメイン内の第1のトラスト・プロキシで前記ユーザに関する認証アサーションを生成するための手段と、
第2のドメイン内のシステムで、前記第2のドメイン内の被制御リソースにアクセスするために前記ユーザによって操作されるクライアントからの要求を受信するための手段と、
前記第1のドメインから前記第2のドメイン内の第2のトラスト・プロキシに前記認証アサーションを送信するための手段と、
前記第2のドメイン内の前記第2のトラスト・プロキシで前記認証アサーションを妥当性検査するための手段と、
を有する、装置。
【請求項8】
前記第2のトラスト・プロキシにおける前記認証アサーションの妥当性検査の成功に応答して、前記被制御リソースへのアクセスを可能にするための手段
をさらに有する、請求項7に記載の装置。
【請求項9】
前記第2のドメイン内の前記システムで前記被制御リソースに関する前記要求を受信する前に、前記第1のトラスト・プロキシで前記ユーザに関する前記認証アサーションを生成することを前記第1のドメイン内で決定するための手段と、
前記被制御リソースに関する前記要求とともに前記第1のドメインから前記第2のドメインに前記認証アサーションをプッシュするための手段と、
をさらに有する、請求項7に記載の装置。
【請求項10】
前記第2のドメイン内の前記システムで前記被制御リソースに関する前記要求を受信した後で、前記第2のトラスト・プロキシからの前記認証アサーションを前記第1のトラスト・プロキシからプルするための手段
をさらに有する、請求項7に記載の装置。
【請求項11】
前記第1のトラスト・プロキシと前記第2のトラスト・プロキシとの間の信頼関係を確立するための手段
をさらに有する、請求項7に記載の装置。
【請求項12】
トラスト・ブローカにより前記第1のトラスト・プロキシと前記第2のトラスト・プロキシとの間の間接的関係を維持するための手段
をさらに有する、請求項7に記載の装置。
【請求項13】
ユーザを認証するためにデータ処理システム内で使用するためのコンピュータ可読メディア内のコンピュータ・プログラムにおいて、
第1のドメイン内の第1のトラスト・プロキシで前記ユーザに関する認証アサーションを生成するための手段と、
第2のドメイン内のシステムで、前記第2のドメイン内の被制御リソースにアクセスするために前記ユーザによって操作されるクライアントからの要求を受信するための手段と、
前記第1のドメインから前記第2のドメイン内の第2のトラスト・プロキシに前記認証アサーションを送信するための手段と、
前記第2のドメイン内の前記第2のトラスト・プロキシで前記認証アサーションを妥当性検査するための手段と、
を有する、コンピュータ・プログラム。
【請求項14】
前記第2のトラスト・プロキシにおける前記認証アサーションの妥当性検査の成功に応答して、前記被制御リソースへのアクセスを可能にするための手段
をさらに有する、請求項13に記載のコンピュータ・プログラム。
【請求項15】
前記第2のドメイン内の前記システムで前記被制御リソースに関する前記要求を受信する前に、前記第1のトラスト・プロキシで前記ユーザに関する前記認証アサーションを生成することを前記第1のドメイン内で決定するための手段と、
前記被制御リソースに関する前記要求とともに前記第1のドメインから前記第2のドメインに前記認証アサーションをプッシュするための手段と、
をさらに有する、請求項13に記載のコンピュータ・プログラム。
【請求項16】
前記第2のドメイン内の前記システムで前記被制御リソースに関する前記要求を受信した後で、前記第2のトラスト・プロキシからの前記認証アサーションを前記第1のトラスト・プロキシからプルするための手段
をさらに有する、請求項13に記載のコンピュータ・プログラム。
【請求項17】
前記第1のトラスト・プロキシと前記第2のトラスト・プロキシとの間の信頼関係を確立するための手段
をさらに有する、請求項13に記載のコンピュータ・プログラム。
【請求項18】
トラスト・ブローカにより前記第1のトラスト・プロキシと前記第2のトラスト・プロキシとの間の間接的関係を維持するための手段
をさらに有する、請求項13に記載のコンピュータ・プログラム。
【特許請求の範囲】
【請求項1】
ユーザの認証するための複数の認証ドメインを含む分散コンピューティング環境に適用される方法であり、
第1の認証トークン・フォーマットによりフォーマットされた認証アサーションを第1の認証ドメイン内のシステムから、第2の認証ドメイン内のシステムにおいて、受信するステップと、
前記第2の認証ドメインに関連するトラスト・プロキシに対して前記認証アサーションを経路指定するステップと
前記第1の認証トークン・フォーマットから前記第2の認証ドメイン内で使用される第2の認証トークン・フォーマットに前記認証アサーションを変換することを前記トラスト・プロキシで決定するステップと、
前記認証アサーションを前記第2の認証トークン・フォーマットに変換するステップと、
を有する、方法。
【請求項2】
前記第2の認証ドメイン内のポイントオブコンタクト・サーバで前記受信ステップと前記経路指定ステップを実行する
、請求項1に記載の方法。
【請求項3】
前記第1の認証ドメイン内の認証の証明またはIDのアサーションとして前記第2の認証ドメイン内で前記認証アサーションを受諾するステップ
をさらに有する、請求項1に記載の方法。
【請求項4】
前記分散コンピューティング環境内でシングル・サインオン操作を実現するために、前記第2の認証ドメイン内で前記認証アサーションを受諾するステップ
をさらに有する、請求項1に記載の方法。
【請求項5】
前記第2の認証ドメイン内で識別可能なリソースに関する要求を前記第1の認証ドメイン内の前記システムから、前記第2の認証ドメイン内の前記システムにおいて、受信するステップと、
前記第2の認証ドメイン内でホストとして処理されるアプリケーション・サーバに前記リソースに関する前記要求を経路指定するステップと、
前記アプリケーション・サーバにより認証質問をトリガするステップと、
前記第2の認証トークン・フォーマットに変換された前記認証アサーション内の情報を使用して、前記第2の認証ドメイン内のシステムにより、前記認証質問に応答するステップと、
をさらに有する、請求項1に記載の方法。
【請求項6】
前記第2の認証ドメイン内で有効なトークン・フォーマットに前記認証アサーションを変換するためにトラスト・ブローカからの支援を呼び出すステップであって、前記トラスト・ブローカが前記分散コンピューティング環境内の複数の認証ドメインとの信頼関係を維持するステップ
をさらに有する、請求項1に記載の方法。
【請求項7】
前記第2の認証ドメイン内でホストとして処理されるセキュリティ・トークン・サービス内でセキュリティ・トークンの変換を実行するステップ
をさらに有する、請求項1に記載の方法。
【請求項8】
請求項1ないし7のいずれか1項に記載の前記方法の各ステップを実行する手段を有する装置。
【請求項9】
請求項1ないし7のいずれか1項に記載の前記方法の各ステップをコンピュータに実行させる命令を有するコンピュータ・プログラム

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

【図14】
image rotate

【図15】
image rotate


【公表番号】特表2006−515447(P2006−515447A)
【公表日】平成18年5月25日(2006.5.25)
【国際特許分類】
【出願番号】特願2004−563203(P2004−563203)
【出願日】平成15年11月27日(2003.11.27)
【国際出願番号】PCT/EP2003/014852
【国際公開番号】WO2004/059415
【国際公開日】平成16年7月15日(2004.7.15)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】