一般に、本発明を備えるかまたは本発明に関するデバイスは、多種多彩なデータ処理技術を含む。したがって、本発明についてより詳細に説明するのに先立ち、背景として、分散型データ処理システム内でのハードウェアおよびソフトウェア構成要素の典型的な編成について説明する。
次に図面を参照すると、図1は、それぞれが本発明を実施することが可能なデータ処理システムの、典型的なネットワークを示す図である。分散型データ処理システム100は、分散型データ処理システム100内で互いに接続された様々なデバイスおよびコンピュータ間に通信リンクを提供するために使用可能な媒体である、ネットワーク101を含む。ネットワーク101は、有線または光ファイバ・ケーブルなどの永続接続、あるいは電話または無線通信を介して作られる一時接続を含むことができる。示された例では、サーバ102およびサーバ103は、ストレージ・ユニット104と共に、ネットワーク101に接続される。加えて、クライアント105〜107も、ネットワーク101に接続される。クライアント105〜107およびサーバ102〜103は、メインフレーム、パーソナル・コンピュータ、携帯情報端末(PDA)などの、様々なコンピューティング・デバイスによって表すことができる。分散型データ処理システム100は、図示されていない、追加のサーバ、クライアント、ルータ、他のデバイス、およびピアツーピア・アーキテクチャを含むことができる。
示された例では、分散型データ処理システム100は、LDAP(Lightweight Directory Access Protocol)、TCP/IP(Transport Control Protocol/Internet Protocol)、HTTP(HyperText Transport Protocol)などの様々なプロトコルを使用して互いに通信する、ネットワークおよびゲートウェイの全世界的集合を表す、ネットワーク101を備えるインターネットを含むことができる。もちろん、分散型データ処理システム100は、例えば、イントラネット、ローカル・エリア・ネットワーク(LAN)、またはワイド・エリア・ネットワーク(WAN)などの、いくつかの異なるタイプのネットワークも含むことができる。たとえばサーバ102は、クライアント109と、無線通信リンクを組み込むネットワーク110とを、直接サポートする。ネットワーク対応電話111は無線リンク112を介してネットワーク110に接続し、PDA 113は無線リンク114を介してネットワーク110に接続する。電話111およびPDA 113は、いわゆるパーソナル・エリア・ネットワークまたはパーソナル・アドホック・ネットワークを作成するために、Bluetooth(TM)無線技術などの適切な技術を使用する無線リンク115を横切って、それらの間でデータを直接転送することもできる。同様の方式で、PDA 113は、無線通信リンク116を介してPDA 107にデータを転送することができる。
本発明は、様々なハードウェア・プラットフォームおよびソフトウェア環境で実施することができる。図1は、異機種コンピューティング環境の一例であり、本発明のアーキテクチャ上の制限として意図されるものではない。
次に図2を参照すると、本発明を実施することが可能な、図1に示されたようなデータ処理システムの典型的なコンピュータ・アーキテクチャを示す図である。データ処理システム120は、ランダム・アクセス・メモリ(RAM)124と、読み取り専用メモリ126と、プリンタ130、ディスク・ユニット132、または、オーディオ出力システムなどの図示されていない他のデバイスなど、様々なI/Oデバイスをサポートする、入力/出力アダプタ128とを、相互接続する、内部システム・バス123に接続された、1つまたは複数の中央処理ユニット(CPU)122を含む。システム・バス123は、通信リンク136へのアクセスを提供する通信アダプタ134も接続する。ユーザ・インターフェース・アダプタ148は、キーボード140およびマウス142などの様々なユーザ・デバイス、または、タッチ・スクリーン、スタイラス、マイクロフォンなどの図示されていない他のデバイスを接続する。ディスプレイ・アダプタ144は、システム・バス123をディスプレイ・デバイス146に接続する。
同業者であれば、図2のハードウェアがシステムの実装に応じて変更可能であることを理解されよう。たとえばシステムは、Intel(R) Pentium(登録商標)(R)ベースのプロセッサおよびデジタル信号プロセッサ(DSP)などの、1つまたは複数のプロセッサ、ならびに1つまたは複数のタイプの揮発性および不揮発性メモリを有することができる。図2に示されたハードウェアに加えて、またはこれらの代わりに、他の周辺デバイスを使用することができる。示された例は、本発明に関してアーキテクチャ上の制限を示唆することを意図するものではない。
本発明は、様々なハードウェア・プラットフォーム上で実施可能であることに加えて、様々なソフトウェア環境でも実施可能である。典型的なオペレーティング・システムを使用して、各データ処理システム内でのプログラム実行を制御することができる。たとえば、1つのデバイスがUnix(登録商標)(R)のオペレーティング・システムを実行し、他のデバイスは単純なJava(登録商標)(R)ランタイム環境を含むことができる。代表的なコンピュータ・プラットフォームは、グラフィック・ファイル、ワード・プロセッシング・ファイル、拡張可能マークアップ言語(XML)、ハイパーテキスト・マークアップ言語(HTML)、ハンドヘルド・デバイス・マークアップ言語(HDML)、ワイヤレス・マークアップ言語(WML)、ならびに様々な他のフォーマットおよびファイル・タイプなどの、様々なフォーマットのハイパーテキスト文書にアクセスするための、良く知られたソフトウェア・アプリケーションである、ブラウザを含むことができる。図1に示された分散型データ処理システムが、様々なピアツーピア・サブネットおよびピアツーピア・サービスを完全にサポートできるものとして企図されることにも留意されたい。
次に、図3を参照すると、クライアントがサーバ側の保護されたリソースへのアクセスを試みる場合に使用することが可能な典型的な認証プロセスを示す、データ流れ図が示される。図に示されるように、クライアント・ワークステーション側のユーザは、クライアント・ワークステーション上で実行中のユーザのウェブ・ブラウザを通じて、サーバ151上の保護されたリソースへのコンピュータ・ネットワークを介したアクセスを求める。保護または制御されたリソースとは、それに対するアクセスが制御または制約される、リソース(アプリケーション、オブジェクト、文書、ページ、ファイル、実行可能コード、または他の計算リソース、通信タイプ・リソースなど)である。保護されたリソースは、少なくとも認証または許可されたユーザによってのみアクセス可能であり、Uniform Resource Locator(URL)、またはより一般的にはUniform Resource Identifier(URI)によって識別される。コンピュータ・ネットワークは、図1または図2に示されるように、インターネット、イントラネット、または他のネットワークとすることが可能であり、サーバは、ウェブ・アプリケーション・サーバ(WAS)、サーバ・アプリケーション、サーブレット・プロセスなどとすることが可能である。
プロセスは、ユーザが、ドメイン「ibm.com」内のウェブ・ページなどの、サーバ側の保護されたリソースを要求した場合に開始される(ステップ152)。「サーバ側」および「クライアント側」という用語は、それぞれ、ネットワーク化環境内のサーバまたはクライアントでのアクションまたはエンティティを表す。ウェブ・ブラウザ(あるいは関連付けられたアプリケーションまたはアプレット)は、ドメイン「ibm.com」をホストしているウェブ・サーバに送信される、HTTP要求を生成する(ステップ153)。「要求」および「応答」という用語は、メッセージ、通信プロトコル情報、または他の関連付けられた情報などの、特定のオペレーションに関与する情報の転送に適した、データ・フォーマット化を含むものと理解されたい。
サーバは、クライアント向けのアクティブ・セッションを持たない旨を決定し(ステップ154)、したがってサーバは、クライアントとサーバとの間に複数の情報の転送を生じさせる、サーバとクライアントとの間のSSL(Secure Sockets Layer)セッションの確立を開始および完了する(ステップ155)。SSLセッションが確立された後、後続の通信メッセージがSSLセッション内で転送され、いずれの秘密情報もSSLセッション内で暗号化された通信メッセージであるため、セキュアに維持される。
しかしながらサーバは、ユーザに保護されたリソースへのアクセスを許可する前に、ユーザのアイデンティティを決定する必要があるため、サーバは、何らかのタイプの認証チャレンジ(challenge)をクライアントに送信することによって認証プロセスを実行するよう、ユーザに要求する(ステップ156)。認証チャレンジは、HTML形式などの様々なフォーマットとすることができる。その後ユーザは、ユーザ名または他のタイプのユーザ識別子並びに関連付けられたパスワードまたは他の形の秘密情報などの、要求または必要とされる情報を提供する(ステップ157)。
認証応答情報がサーバに送信され(ステップ158)、この時点でサーバは、たとえば、以前に提出された登録情報を取り出すこと、および提示された認証情報とユーザの格納済み情報とを付き合わせることによって、ユーザまたはクライアントを認証する(ステップ159)。認証が正常であると想定すると、認証されたユーザまたはクライアントに対するアクティブ・セッションが確立される。サーバは、クライアントに対するセッション識別子を作成し、そのセッション内でのクライアントからのいかなる後続の要求メッセージも、そのセッション識別子を伴うことになる。
その後サーバは、最初に要求されたウェブ・ページを取り出して、HTTP応答メッセージをクライアントに送信し(ステップ160)、それによって保護されたリソースへのユーザの最初の要求を満たす。その時点でユーザは、ブラウザ・ウィンドウ内のハイパーテキスト・リンクをクリックすることによって、「ibm.com」内の他のページを要求することが可能であり(ステップ161)、ブラウザは他のHTTP要求メッセージをサーバに送信する(ステップ162)。その時点でサーバは、ユーザのセッション識別子がHTTP要求メッセージ内でサーバに戻されることから、ユーザがアクティブ・セッションを有することを認識し(ステップ163)、サーバは、要求されたウェブ・ページを他のHTTP応答メッセージ内でクライアントに返送する(ステップ164)。図3は、典型的な従来技術のプロセスを示しているが、アクティブ・セッションを有するユーザを識別するためのURLの書き換え、または、認証の証明を提供するために使用されるものと同じクッキーを使用することを含むことが可能なクッキーの使用などの、他の代替セッション状態管理技法を示してもよいことに留意されたい。
次に図4を参照すると、本発明を実施することが可能な典型的なウェブ・ベースの環境を示すネットワークが示される。この環境では、クライアント171でのブラウザ170のユーザは、DNSドメイン173にあるウェブ・アプリケーション・サーバ172上、またはDNSドメイン175にあるウェブ・アプリケーション・サーバ174上の、保護されたリソースへのアクセスを望む。
図3に示されたものと同様に、ユーザは多くのドメインのうちの1つにある保護されたリソースを要求することができる。特定のドメインに単一のサーバのみを示した図3とは対照的に、図4の各ドメインは複数のサーバを有する。具体的に言えば、各ドメインは関連付けられた認証サーバ176および177を有することができる。
この例では、クライアント171がドメイン173にある保護されたリソースに関する要求を発行した後、ウェブ・アプリケーション・サーバ172は、クライアント171に対するアクティブ・セッションを持たない旨を決定し、認証サーバ176に対して、クライアント171との適切な認証オペレーションを実行するように要求する。認証サーバ176は、認証オペレーションの結果をウェブ・アプリケーション・サーバ172に送信する。ユーザ(またはユーザの代わりのブラウザ170またはクライアント171)が正常に認証された場合、ウェブ・アプリケーション・サーバ172はクライアント171に対するセッションを確立し、要求された保護されたリソースを戻す。通常、ユーザが認証サーバによって認証されると、クッキーを設定し、ブラウザのクッキー・キャッシュに格納することができる。図4は、とりわけ認証オペレーションを実行するために、ドメインの処理リソースを複数のサーバ間で共有できる、1つの様式の単なる一例である。
同様に、クライアント171がドメイン175にある保護されたリソースに関する要求を発行した後、認証サーバ177はクライアント171との適切な認証オペレーションを実行し、その後、ウェブ・アプリケーション・サーバ174はクライアント171に対するセッションを確立して、要求された保護されたリソースを戻す。したがって図4は、クライアント171は異なるドメイン内に複数の同時セッションを持つことができるが、それらの同時セッションを確立するために複数の認証オペレーションを完了するように要求されることを示す。
次に図5を参照すると、ユーザからの複数の認証オペレーションを必要とする可能性のある典型的なオンライン・トランザクションの一例を示す、ブロック図が示される。再度、図3および図4を参照すると、図3に示されるように、ユーザは、制御されたリソースへのアクセスを得るのに先立って、認証オペレーションを完了するように要求される可能性がある。図3には示されていないが、サーバ151上に認証マネージャを配置して、ユーザの認証に必要なユーザ情報を取り出して採用することができる。図4に示されるように、ユーザは、異なるドメイン173および175内に複数の現行セッションを有することが可能であり、図4には示されていないが、各ドメインは認証サーバの代わりまたはそれらに加えて認証マネージャを採用することができる。同様に、図5も、それぞれが何らかのタイプの認証マネージャをサポートするドメインのセットを示す。図5は、各ドメインに関する認証オペレーションを完了するようユーザに要求する複数のドメインにアクセスする場合にユーザが体験する可能性のある、いくつかの問題を示す。
ユーザ190は、ドメイン191に関するトランザクションを完了する目的でユーザ190を認証する認証マネージャ192をサポートすることが可能な、ISPドメイン191に登録される。ISPドメイン191は、インターネット接続サービス、電子メール・サービス、および可能な他の電子商取引サービスを提供する、インターネット・サービス・プロバイダ(ISP)とすることができる。あるいは、ISPドメイン191は、ユーザ190によって頻繁にアクセスされるインターネット・ポータルとすることもできる。
同様に、ドメイン193、195、および197は、典型的なウェブ・サービス・プロバイダを表す。行政ドメイン193は、様々な行政関係のトランザクションを完了するためにユーザを認証する、認証マネージャ194をサポートする。銀行ドメイン195は、オンライン銀行とのトランザクションを完了するためにユーザを認証する、認証マネージャ196をサポートする。電子商取引ドメイン197は、オンライン購買を完了するためにユーザを認証する、認証マネージャ198をサポートする。
前述のように、ユーザが、異なるドメインにあるリソースにアクセスすることによって、インターネットまたはワールド・ワイド・ウェッブ内で1つのドメインから他のドメインへと移動しようとする場合、ユーザは、複数のユーザ認証要求または要件を対象とする可能性があり、ドメインのセットを横切るユーザの進行を大幅に遅くする可能性がある。図5を例示的環境として使用すると、ユーザ190は、有効な運転免許、有効なクレジット・カード、および米国の銀行口座を有する18歳以上のユーザに限定された、オンライン・サービスを購入しようと試みて、電子商取引ドメイン197との複雑なオンライン・トランザクションに関与する可能性がある。このオンライン・トランザクションは、ドメイン191、193、195、および197に関与する可能性がある。
通常、ユーザは、典型的なオンライン・トランザクションに参加する各ドメイン内で、アイデンティティあるいは属性またはその両方を維持できない場合がある。この例では、ユーザ190は、自分のアイデンティティをユーザのISPに登録しているが、オンライン・トランザクションを完了するためには、ユーザがドメイン193、195、および197にも認証する必要がある可能性がある。各ドメインがこのユーザに関するアイデンティティを維持していない場合、ユーザのオンライン・トランザクションは失敗する可能性がある。たとえユーザが各ドメインによって認証された場合であっても、ユーザのトランザクションを完了するために様々なドメインがそれらの間で情報を転送できるという保証はない。
いくつかの現行の技術について上で簡単に説明したが、残りの図面の説明は、本発明が動作可能なフェデレーテッド・コンピュータ環境に関する。しかしながら、本発明についてより詳細に論じるのに先立って、いくつかの用語を紹介する。
用語
「エンティティ」または「パーティ」という用語は、一般に、組織、個人、または、組織、個人、もしくは他のシステムの代わりに動作するシステムを言い表す。「ドメイン」という用語は、ネットワーク環境内の追加の特徴を示唆するが、「エンティティ」、「パーティ」、および「ドメイン」という用語は、同じ意味で使用することができる。たとえば、「ドメイン」という用語は、DNS(ドメイン名システム)ドメインを言い表すこともできるが、より一般的には、外部エンティティからは論理ユニットのように見える様々なデバイスおよびアプリケーションを含む、データ処理システムを言い表す。
「要求」および「応答」という用語は、メッセージ、通信プロトコル情報、または他の関連する情報などの、特定のオペレーションに関与する情報の転送に適した、データ・フォーマット化を含むものと理解されたい。保護されたリソースとは、それに対するアクセスが制御または制約される、リソース(アプリケーション、オブジェクト、文書、ページ、ファイル、実行可能コード、または他の計算リソース、通信タイプ・リソースなど)である。
トークンは、たとえば正常な認証オペレーションの後に生成される認証トークンなど、正常なオペレーションの直接的証拠を提供し、オペレーションを実行するエンティティによって生成される。Kerberosトークンは、本発明で使用可能な認証トークンの一例である。Kerberosに関する詳細な情報は、Kohl外による「Kerberos Network Authentication Service (V5)」、Internet Engineering Task Force(IETF) Request for Comments(RFC)1510、1993年9月に記載されている。
アサーションは、何らかのアクションの間接的証拠を提供する。アサーションは、アイデンティティ、認証、属性、許可の決定、または他の情報やオペレーションの、間接的証拠を提供することができる。認証アサーションは、認証サービスではないが認証サービスを聞いたエンティティによって、認証の間接的証拠を提供する。
Security Assertion Markup Language(SAML)アサーションは、本発明で使用できる可能なアサーション・フォーマットの一例である。SAMLは、非営利のグローバルな団体である、Organization for the Advancement of Structured Information Standards(OASIS)によって普及されてきた。SAMLについては、「Assertions and Protocol for the OASIS Security Assertion Markup Language(SAML)」、Committee Specification 01、2002年5月31日で、以下のように記述される。
Security Assertion Markup Language(SAML)は、セキュリティ情報を交換するためのXMLベースのフレームワークである。このセキュリティ情報は、何らかのセキュリティ・ドメイン内にアイデンティティを有するエンティティ(人間またはコンピュータ)である対象(サブジェクト)に関するアサーションの形で表される。対象の典型的な例は、特定のインターネットDNSドメイン内で自分の電子メール・アドレスによって識別される人物である。アサーションは、対象によって実行される認証動作、対象の属性、および、あるリソースへのアクセスを対象が許可されるかどうかの許可決定、に関する情報を搬送することができる。アサーションは、XML構造によって表され、ネストされた構造を有し、それによって単一のアサーションは、認証、許可、および属性に関するいくつかの異なる内部ステートメントを含むことができる。認証ステートメントを含むアサーションは、以前に発生した認証の動作を単に記述するものであることに留意されたい。アサーションは、SAML権限、すなわち認証権限、属性権限、およびポリシー決定ポイントによって発行される。SAMLはプロトコルを定義し、それによってクライアントはSAML権限にアサーションを要求し、それらからの応答を得ることができる。このプロトコルは、XMLベースの要求および応答メッセージ・フォーマットからなり、多くの異なる基礎となる通信および移送プロトコルと結合することが可能であって、SAMLは、現在HTTPを介したSOAPへの1つの結合を定義する。SAML権限は、それらの応答を作成する際に、要求において入力として受信した外部ポリシー・ストアおよびアサーションなどの、様々な情報のソースを使用することができる。したがって、クライアントは常にアサーションを消費するが、SAML権限はアサーションの製作者および消費者のどちらとすることもできる。
SAML仕様では、アサーションが、発行者によって作成された1つまたは複数のステートメントを供給する、情報のパッケージであるものと記載される。SAMLは、発行者が、指定された対象が特定の時点で特定の手段によって認証された、認証と、指定された対象が指定されたリソースにアクセスできるようにする要求が認められたかまたは拒否された、許可と、指定された対象が供給された属性と関連付けられる、属性と、の、3つの異なる種類のアサーション・ステートメントを作成できるようにする。以下でさらに論じるように、必要な場合は、様々なアサーション・フォーマットを他のアサーション・フォーマットに変換することが可能である。
認証は、ユーザによって、またはユーザに代わって、提供される証明セットの妥当性を検査するプロセスである。認証は、ユーザが知っている何か、ユーザが有する何か、またはユーザがそうである何か、すなわちユーザに関する何らかの物理的特徴、を検証することによって、実施される。ユーザが知っている何かは、ユーザの暗号鍵などの特定のユーザにのみ知られている何かを検証することによる、ユーザのパスワードなどの、共有の秘密を含むことができる。ユーザが有する何かは、スマートカードまたはハードウェア・トークンを含むことができる。ユーザに関する何らかの物理的特徴は、指紋または網膜マップなどの、バイオメトリック入力を含む場合がある。
認証証明は、様々な認証プロトコルで使用されるチャレンジ/応答情報のセットである。たとえば、ユーザ名とパスワードとの組み合わせは、最も良く知られた認証証明の形である。他の認証証明の形は、様々な形のチャレンジ/応答情報、公開鍵インフラストラクチャ(PKI)証明、スマートカード、バイオメトリクスなどを含むことができる。認証証明は認証アサーションとは区別され、認証証明は、認証サーバまたはサービスでユーザによって認証プロトコル・シーケンスの一部として提示され、認証アサーションは、ユーザの認証証明の正常な提示および妥当性検査に関するステートメントであり、その後、必要な場合はエンティティ間で転送される。
名前識別子登録プロファイル
前述のように、Liberty Alliance Projectは、アカウント・リンクを確立するために使用されることになる名前識別子登録プロファイルを定義した。従来技術のLiberty Alliance仕様によれば、Libertyプロファイルは、単一クライアント・タイプに関するメッセージ・コンテンツ仕様とメッセージ移送メカニズム仕様との組み合わせである。名前識別子登録プロファイルは、図6および7に示された、それによってサービス・プロバイダまたはアイデンティティ・プロバイダがプリンシパルに関する名前識別子を登録または変更することができる、プロファイルである。
次に図6を参照すると、従来技術のLiberty Alliance仕様内に定義された、アイデンティティ・プロバイダによって開始されるHTTPリダイレクト・ベースのレジスタ名識別プロファイルを示す、データ流れ図が示される。アイデンティティ・プロバイダは、「<lib:IDPProvidedNameIdentifier>」として知られる、アイデンティティ・プロバイダによってプリンシパルに割り当てられた名前識別子を、従来技術のLiberty Alliance仕様の実装に特有の様々な理由で、変更、すなわち登録することが可能であり、新しく割り当てられた名前識別子は、図6に示された様式で、識別子プロバイダによってサービス・プロバイダへと伝送される。
HTTPリダイレクト・ベースの名前識別子登録プロファイルは、HTTPリダイレクト・メッセージ(状況/理由コード「302」を備えたHTTP応答メッセージ)を、ウェブ・ブラウザ・アプリケーションなどのユーザ・エージェントとも呼ばれるクライアントに送信することによって、アイデンティティ・プロバイダで開始される(ステップ202)。HTTPリダイレクト・ベースの名前識別子登録プロファイルは、アイデンティティ・プロバイダによって自ら開始することは不可能であり、何らかのタイプのメッセージによって、または、アイデンティティ・プロバイダと、ユーザ・エージェントまたはサービス・プロバイダのいずれかの他のエンティティとの間の対話によって、トリガされなければならないが、このメッセージは図6には図示されていない。リダイレクト・メッセージは、たとえばサービス・プロバイダの名前識別子登録サービスのリダイレクト・メッセージの「ロケーション」ヘッダ内にある、Uniform Resource Identifier(URI)によって識別されるような適切な場所へと、クライアントをリダイレクトする。リダイレクト・メッセージの「ロケーション」HTTPヘッダは、従来技術のLiberty Alliance仕様で定義された「<lib:RegisterNameIdentifierRequest>」プロトコル・メッセージを含む、たとえば、URIに添付され、URI内で「?」文字によって境界が定められる、照会構成要素も含む。
アイデンティティ・プロバイダからのリダイレクト・メッセージの受信に応答して、クライアントは、アイデンティティ・プロバイダからのHTTPリダイレクト・メッセージ内でURIによって示されるような、サービス・プロバイダの名前識別子登録サービスに、HTTP Getメッセージを送信する(ステップ204)。このようにして、クライアントは、HTTP Getメッセージ内のURIが、添付された「<lib:RegisterNameIdentifierRequest>」メッセージを依然として含むため、サービス・プロバイダの名前識別子登録サービスにアクセスする。したがって、サービス・プロバイダは、名前識別子登録要求メッセージを処理し(ステップ206)、それにより、アイデンティティ・プロバイダによってプリンシパルに割り当てられた名前識別子を登録する。
名前識別子登録要求メッセージを処理した後、サービス・プロバイダの名前識別子登録サービスは、HTTPリダイレクト・メッセージ(状況/理由コード「302」を備えたHTTP応答メッセージ)をクライアントに送信することによって応答する(ステップ208)。リダイレクト・メッセージは、名前識別子登録要求メッセージ内の「RegisterNameIdentifierServiceReturnURL」メタデータ要素に、アイデンティティ・プロバイダによって提供された戻りURIを使用して、クライアントをアイデンティティ・プロバイダにリダイレクトする。戻りURIは、リダイレクト・メッセージの「ロケーション」HTTPヘッダ内に指定される。リダイレクト・メッセージの「ロケーション」HTTPヘッダは、従来技術のLiberty Alliance仕様で定義された「<lib:RegisterNameIdentifierResponse>」プロトコル・メッセージを含む、たとえば、URIに添付され、URI内で「?」文字によって境界が定められる、照会構成要素も含む。
サービス・プロバイダからのリダイレクト・メッセージの受信に応答して、クライアントは、サービス・プロバイダからのHTTPリダイレクト・メッセージ内でURIによって示されるようなアイデンティティ・プロバイダに、HTTP Getメッセージを送信し(ステップ210)、それによってプロセスを終結する。クライアントは、クライアントからアイデンティティ・プロバイダへのHTTP Getメッセージ内のURIが、添付された「<lib:RegisterNameIdentifierResponse>」メッセージを依然として含むため、アイデンティティ・プロバイダでの名前識別子登録オペレーションの完了を開始する。前述のように、HTTPリダイレクト・ベースの名前識別子登録プロファイルは、アイデンティティ・プロバイダによって自ら開始することは不可能であり、何らかのタイプのメッセージによって、または、アイデンティティ・プロバイダと、ユーザ・エージェントまたはサービス・プロバイダのいずれかの他のエンティティとの間の対話によって、トリガされなければならず、したがって、名前識別子登録応答メッセージがアイデンティティ・プロバイダによって受信された後に、図6に示されていない追加の処理ステップを完了することができる。
次に図7を参照すると、従来技術のLiberty Alliance仕様内に定義された、サービス・プロバイダによって開始されるHTTPリダイレクト・ベースのレジスタ名識別プロファイルを示す、データ流れ図が示される。サービス・プロバイダは、「<lib:SPProvidedNameIdentifier>」として知られる、サービス・プロバイダによってプリンシパルに提供された名前識別子を、従来技術のLiberty Alliance仕様の実装に特有の様々な理由で、変更、すなわち登録することが可能であり、新しく割り当てられた名前識別子は、図7に示されたように、サービス・プロバイダによってアイデンティティ・プロバイダへと伝送される。サービス・プロバイダ提供の名前識別子は、サービス・プロバイダが、アイデンティティ・プロバイダがサービス・プロバイダと特定のプリンシパルについて通信する場合にアイデンティティ・プロバイダが使用すると予測する、名前識別子であり、サービス・プロバイダがサービス・プロバイダ提供の名前識別子をアイデンティティ・プロバイダに登録するまで、アイデンティティ・プロバイダは、特定のプリンシパルについて言及する場合、現在割り当てられているアイデンティティ・プロバイダ提供の名前識別子の使用を続けることになる。
HTTPリダイレクト・ベースの名前識別子登録プロファイルは、HTTPリダイレクト・メッセージ(状況/理由コード「302」を備えたHTTP応答メッセージ)を、ウェブ・ブラウザ・アプリケーションなどのユーザ・エージェントとも呼ばれるクライアントに送信することによって、サービス・プロバイダで開始される(ステップ222)。HTTPリダイレクト・ベースの名前識別子登録プロファイルは、サービス・プロバイダによって自ら開始することが可能であり、このプロセスが開始される前の、他の可能なメッセージ、あるいは、サービス・プロバイダと、ユーザ・エージェントまたはアイデンティティ・プロバイダのいずれかの他のエンティティとの間の対話は、図7には示されていない。リダイレクト・メッセージは、たとえばサービス・プロバイダの名前識別子登録サービスのリダイレクト・メッセージの「ロケーション」ヘッダ内にある、URIによって識別されるような適切な場所へと、クライアントをリダイレクトする。リダイレクト・メッセージの「ロケーション」HTTPヘッダは、従来技術のLiberty Alliance仕様で定義された「<lib:RegisterNameIdentifierRequest>」プロトコル・メッセージを含む、たとえば、URIに添付され、URI内で「?」文字によって境界が定められる、照会構成要素も含む。
サービス・プロバイダからのリダイレクト・メッセージの受信に応答して、クライアントは、サービス・プロバイダからのHTTPリダイレクト・メッセージ内でURIによって示されるような、アイデンティティ・プロバイダの名前識別子登録サービスに、HTTP Getメッセージを送信する(ステップ224)。この様式で、クライアントは、HTTP Getメッセージ内のURIが、添付された「<lib:RegisterNameIdentifierRequest>」メッセージを依然として含むため、アイデンティティ・プロバイダの名前識別子登録サービスにアクセスする。したがって、アイデンティティ・プロバイダは、名前識別子登録要求メッセージを処理し(ステップ226)、それにより、サービス・プロバイダによって提供された名前識別子を登録する。
名前識別子登録要求メッセージを処理した後、アイデンティティ・プロバイダの名前識別子登録サービスは、HTTPリダイレクト・メッセージ(状況/理由コード「302」を備えたHTTP応答メッセージ)をクライアントに送信することによって応答する(ステップ228)。リダイレクト・メッセージは、名前識別子登録要求メッセージ内で、サービス・プロバイダによって提供された戻りURIを使用して、クライアントをサービス・プロバイダにリダイレクトする。戻りURIは、リダイレクト・メッセージの「ロケーション」HTTPヘッダ内に指定される。リダイレクト・メッセージの「ロケーション」HTTPヘッダは、従来技術のLiberty Alliance仕様で定義された「<lib:RegisterNameIdentifierResponse>」プロトコル・メッセージを含む、たとえば、URIに添付され、URI内で「?」文字によって境界が定められる、照会構成要素も含む。
アイデンティティ・プロバイダからのリダイレクト・メッセージの受信に応答して、クライアントは、アイデンティティ・プロバイダからのHTTPリダイレクト・メッセージ内でURIによって示されるようなサービス・プロバイダに、HTTP Getメッセージを送信し(ステップ230)、それによってプロセスを終結する。クライアントは、クライアントからサービス・プロバイダへのHTTP Getメッセージ内のURIが、添付された「<lib:RegisterNameIdentifierResponse>」メッセージを依然として含むため、サービス・プロバイダでの名前識別子登録オペレーションの完了を開始する。名前識別子登録応答メッセージがサービス・プロバイダによって受信された後に、図7に示されていない追加の処理ステップを完了することができる。
図6および図7に関して上記で述べたように、名前識別子登録プロファイルは、それによってサービス・プロバイダがプリンシパルに関する名前識別子の登録を要求することができるか、または、それによってアイデンティティ・プロバイダが、従来技術のLiberty Alliance仕様に従ってプリンシパルに関する名前識別子を変更することができる、
プロファイルである。
従来技術のLiberty Alliance仕様によって定義された名前識別子登録プロファイルは、HTTPリダイレクト・ベースの実装およびSOAP/HTTPベースの実装という、2つのプロトコル実装形態を有する。前述のように、HTTPリダイレクト・ベースの結合を伴う場合、名前識別子登録を呼び出そうとするエンティティまたはパーティは、ユーザからのHTTP要求が着信するまで待機しなければならず、言い換えれば、HTTPリダイレクト・ベースの名前識別子登録プロファイルは、自ら開始することは不可能である。したがって、名前識別子登録のデータ流れは、たとえば、HTTP GETを完了し、初期のHTTP要求を満たすことができるように制御を戻す前に、HTTPリダイレクトに基づいて他のGETを開始することを含み、HTTP応答に挿入される。
このシナリオにおける名前識別子登録のデータ流れの開始は、開始側エンティティまたはパーティのユーザ次第である。したがって、名前識別子登録プロファイルがアイデンティティ・プロバイダによってトリガされる場合、このデータ流れは、アイデンティティ・プロバイダのユーザに関する有効な認証済みセッションの範囲内でトリガされる。しかしながら、名前識別子登録プロファイルは、名前識別子登録プロファイルの範囲について、サービス・プロバイダへのユーザの認証またはシングル・サイン・オンを必要としない。同様に、これらのデータ流れがサービス・プロバイダから呼び出された場合、アイデンティティ・プロバイダに対してユーザを認証するため、サービス・プロバイダに対してシングル・サイン・オンを実行したという暗黙の前提があり、従来技術のLiberty Alliance仕様は、たとえフェデレーション後であっても、サービス・プロバイダがユーザを認証するためにすべての権利を断念することを必要としないため、これは正しくない前提である。
いずれのシナリオにおいても、識別(サービス)プロバイダで開始されたユーザの名前識別子登録要求と、サービス(識別)プロバイダで知られたユーザとの結合はない。これは、要求が、実際に実行の対象であるユーザ向けのものであるという保証がないことを意味し、加えて、要求が再実行されていないか、あるいはそうでなければユーザまたは悪意あるパーティによって誤用されているという保証もない。
拡張名前識別子登録プロファイル
本発明は、HTTPリダイレクト・ベースの名前識別子登録の流れを完了するために、ユーザが、両方のパーティ、すなわちアイデンティティ・プロバイダおよびサービス・プロバイダで、有効なセッションを有することを要求することによって、Liberty Alliance仕様に記載された名前識別子登録プロファイルにおける前述の欠点に対処する。この手法では、図8および図9に関して以下でより詳細に示すように、名前識別子登録オペレーション中に、ユーザ、おそらくは名前識別子登録オペレーションの実行の対象であるプリンシパルを、アイデンティティ・プロバイダおよびサービス・プロバイダの両方に対して認証する(またはシングル・サイン・オン・オペレーションを実行する)必要がある。図8および図9で示された例示的諸実施形態は、HTTPベースの通信を採用しているが、本発明はHTTPベースの通信に限定されるものではなく、他の通信プロトコルも採用可能である。
次に、図8を参照すると、本発明の実施形態に従って、アイデンティティ・プロバイダによって開始される、汎用認証ステップを含む、拡張HTTPリダイレクト・ベースの名前識別子登録(RNI)プロファイルを示す、データ流れ図が示される。図6に示されたものと同様に、図8は、様々な実装特有の理由によって生じる可能性がある、選択されたサービス・プロバイダで「<lib:IDPProvidedNameIdentifier>」として知られる、アイデンティティ・プロバイダによってプリンシパルに割り当てられた名前識別子を、アイデンティティ・プロバイダが、変更、すなわち登録できる、プロセスを示す。しかしながら図8に示されたプロセスは、以下で論じるような追加の認証ステップを含んでいる点で、図6に示されたプロセスとは異なる。
このデータ流れの前提条件は、ユーザが、アイデンティティ・プロバイダおよびサービス・プロバイダで、ユーザのアカウントとすでにリンクしていること(ステップ302)、ならびに、ユーザが、アイデンティティ・プロバイダに対してすでに認証されていること(ステップ304)である。ステップ302では、要件は単に、最低でも「<lib:IDPProvidedNameIdentifier>」が設定されていることである。本発明は、処理のこの時点で、「<lib:SPProvidedNameIdentifier>」の存在を必要条件とはしない。ステップ304では、要件は単に、ユーザが何らかの時間的に前の時点でアイデンティティ・プロバイダに対して認証されており、現在、アイデンティティ・プロバイダとの有効なセッションを有することである。本発明は、このセッションが確立された理由を必要条件とはせず、たとえば、このセッションが名前識別子登録プロファイルを実行する以外の何らかの目的のために確立されたこと、または、名前識別子登録プロファイルを実行する目的のためにセッションが明示的に作成されたことは、必要条件ではない。
拡張HTTPリダイレクト・ベースの名前識別子登録プロファイルは、HTTPリダイレクト・メッセージ(状況/理由コード「302」を備えたHTTP応答メッセージ)を、ウェブ・ブラウザ・アプリケーションなどのユーザ・エージェントとも呼ばれるクライアントに送信することによって、アイデンティティ・プロバイダで開始される(ステップ306)。このメッセージは、ユーザが明示的にそれらの識別子をリセットするように要求するか、または何らかの管理者ベースのトリガがアイデンティティ・プロバイダによって設定されたなどの、いくつかの異なる状況、あるいは様々な他の同様のイベントによって、トリガされた可能性がある。リダイレクト・メッセージは、たとえばサービス・プロバイダの名前識別子登録サービスのリダイレクト・メッセージの「ロケーション」ヘッダ内にあるURIによって識別されるような適切な場所へと、クライアントをリダイレクトする。リダイレクト・メッセージの「ロケーション」HTTPヘッダは、「<lib:RegisterNameIdentifierRequest>」プロトコル・メッセージを含む、たとえば、URIに添付され、URI内で「?」文字によって境界が定められる、照会構成要素も含む。
アイデンティティ・プロバイダからのリダイレクト・メッセージの受信に応答して、クライアントは、アイデンティティ・プロバイダからのHTTPリダイレクト・メッセージ内でURIによって示されるような、サービス・プロバイダの名前識別子登録サービスに、HTTP Getメッセージを送信する(ステップ308)。このようにして、クライアントは、HTTP Getメッセージ内のURIが、添付された「<lib:RegisterNameIdentifierRequest>」メッセージを依然として含むため、サービス・プロバイダの名前識別子登録サービスにアクセスする。
図6に示されたプロセスとは対照的に、サービス・プロバイダは、ユーザ、クライアント、またはユーザ・エージェントとの認証オペレーションを実行する(ステップ310)。ここで、ユーザ/クライアントはアイデンティティ・プロバイダとの認証オペレーションを完了することがすでに要求されていると、想定してもよい。ステップ310で、認証オペレーションが正常に完了しない場合、サービス・プロバイダは即時に障害応答をアイデンティティ・プロバイダに戻し、それによって、プロセスを終結することができる。
ステップ310で、ユーザ/クライアントは、アイデンティティ・プロバイダによって要求された可能性のある任意の認証オペレーションに加えて、サービス・プロバイダが、受信した名前識別子登録要求が結合しているかまたは信頼できるものであることを保証できるように、追加の認証オペレーションを完了するように要求され、そうでない場合、サービス・プロバイダは、受信した名前識別子登録要求メッセージが悪意のユーザ/システムから発せられたものでないことを確認できず、サービス・プロバイダは、クライアントが関連付けられたエンドユーザに対してRNI要求を実行していることを確認できない。一般に、任意のランダムなユーザが、任意の他のランダムなユーザに対してRNI要求を実行できるようにすることは、優れた実践ではない。本発明では、名前識別子登録プロファイルの一部として、アイデンティティ・プロバイダおよびサービス・プロバイダの両方での認証またはシングル・サイン・オンを強制することによって、アイデンティティ・プロバイダおよびサービス・プロバイダの両方で、ユーザとRNI要求とのセキュアな結合が維持されることを保証するのに役立つ。
いずれの場合も、サービス・プロバイダでユーザに関するセッションがすでに存在する場合、サービス・プロバイダは新しいセッションの確立を要求されず、既存のセッションに依拠することを選択できる。しかしながら、ユーザが、単一のサービス・プロバイダに関連付けられた複数のアイデンティティ・プロバイダを有する可能性のあるシナリオでは、サービス・プロバイダは、そのユーザに対するセッションを再度確立することが選択可能であり、それによって、内部で名前識別子登録プロファイルが実行されているセッションが、名前識別子登録を開始したアイデンティティ・プロバイダに明示的に結合されることが保証されることにも留意されたい。
ステップ310で、認証オペレーションが正常に完了したと想定すると、その後サービス・プロバイダは、名前識別子登録要求メッセージを処理し(ステップ312)、それによって、アイデンティティ・プロバイダによってプリンシパルに割り当てられた名前識別子を登録する。サービス・プロバイダは、オプションで、サービス・プロバイダで作成されたユーザ/クライアント・セッションを終了する(ステップ314)。
名前識別子登録要求メッセージを処理した後、サービス・プロバイダの名前識別子登録サービスは、HTTPリダイレクト・メッセージ(状況/理由コード「302」を備えたHTTP応答メッセージ)をクライアントに送信することによって、応答する(ステップ316)。リダイレクト・メッセージは、以前にアイデンティティ・プロバイダによってサービス・プロバイダに提供された戻りURIを使用して、クライアントをアイデンティティ・プロバイダにリダイレクトする。戻りURIは、リダイレクト・メッセージの「ロケーション」HTTPヘッダに指定される。リダイレクト・メッセージの「ロケーション」HTTPヘッダは、「<lib:RegisterNameIdentifierResponse>」プロトコル・メッセージを含む、たとえば、URIに添付され、URI内で「?」文字によって境界が定められる、照会構成要素も含む。
サービス・プロバイダからのリダイレクト・メッセージの受信に応答して、クライアントは、サービス・プロバイダからのHTTPリダイレクト・メッセージ内でURIによって示されるようなアイデンティティ・プロバイダに、HTTP Getメッセージを送信し(ステップ318)、それによってプロセスを終結する。クライアントは、クライアントからアイデンティティ・プロバイダへのHTTP Getメッセージ内のURIが、添付された「<lib:RegisterNameIdentifierResponse>」メッセージを依然として含むため、アイデンティティ・プロバイダでの名前識別子登録オペレーションの完了を開始する。名前識別子登録応答メッセージがアイデンティティ・プロバイダによって受信された後に、図8に示されていない追加の処理ステップを完了することができる。
ステップ310は、(1)サービス・プロバイダによるユーザの直接認証、(2)アイデンティティ・プロバイダからサービス・プロバイダへの名前識別子登録要求の送信に先立って完了される、事前シングル・サイン・オン・オペレーション、(3)サービス・プロバイダによってトリガされる、すなわち、完了のためにサービス・プロバイダからアイデンティティ・プロバイダへと返送され、プル・タイプのシングル・サイン・オン・オペレーションを実施する、シングル・サイン・オン、または(4)アイデンティティ・プロバイダからサービス・プロバイダへの名前識別子登録要求内にシングル・サイン・オン情報を含めることに基づき、プッシュ・タイプのシングル・サイン・オン・オペレーションを実施する、シングル・サイン・オン・オペレーションという、認証に関するいくつかの異なる代替実装形態を含むことが可能である。これらの代替は、図9〜12に示される。
次に図9を参照すると、本発明の実施形態に従って、アイデンティティ・プロバイダによって開始される、直接認証ステップを含む、拡張HTTPリダイレクト・ベースの名前識別子登録(RNI)プロファイルを示す、データ流れ図が示される。図8に示されたものと同様に、図9は、選択されたサービス・プロバイダで、アイデンティティ・プロバイダによってプリンシパルに割り当てられた名前識別子を、アイデンティティ・プロバイダが、変更、すなわち登録できるプロセスを示し、同様の要素は同様の参照番号で識別される。しかしながら、図8は汎用認証ステップ310を示すが、図9に示されたプロセスは、クライアント、ユーザ、またはユーザ・エージェントと、サービス・プロバイダとの間の直接認証オペレーション(ステップ320)を含めることによって、図8に示されたプロセスとは異なる。
次に図10を参照すると、本発明の実施形態に従って、アイデンティティ・プロバイダによって開始される、認証のための事前シングル・サイン・オン・オペレーションを含む、拡張HTTPリダイレクト・ベースの名前識別子登録(RNI)プロファイルを示す、データ流れ図が示される。図8に示されたものと同様に、図10は、選択されたサービス・プロバイダで、アイデンティティ・プロバイダによってプリンシパルに割り当てられた名前識別子を、アイデンティティ・プロバイダが、変更、すなわち登録できるプロセスを示し、同様の要素は同様の参照番号で識別される。しかしながら、図8は汎用認証ステップ310を示すが、図10に示されたプロセスは、以下で論じるような特定の認証オペレーションを含めることによって、図8に示されたプロセスとは異なる。
本発明は、サービス・プロバイダとユーザ/クライアントの間の直接認証オペレーションを除外せず、それによってサービス・プロバイダは、図9に示されたオペレーションなどの認証証明に関してユーザ/クライアントに直接プロンプトを出す。しかしながら、図8のステップ310は、好ましくは、ステップ310がユーザ対話を必要としないように、アイデンティティ・プロバイダからサービス・プロバイダへのシングル・サイン・オン・オペレーションによって実施され、図10は、シングル・サイン・オン・オペレーションを採用する一実施形態を示し、図11〜12は、シングル・サイン・オン・オペレーションを採用する他の実施形態を示す。
図10を参照すると、ユーザに対して特定のサービス・プロバイダで名前識別子登録プロファイルを開始することを、アイデンティティ・プロバイダが決定した後、アイデンティティ・プロバイダは、第1に、サービス・プロバイダとのシングル・サイン・オン・オペレーションを実行する。アイデンティティ・プロバイダは、HTTPリダイレクト・メッセージ(状況/理由コード「302」を備えたHTTP応答メッセージ)を、ウェブ・ブラウザ・アプリケーションなどのユーザ・エージェントとも呼ばれるクライアントに送信する(ステップ330)。アイデンティティ・プロバイダからのリダイレクト・メッセージの受信に応答して、クライアントは、アイデンティティ・プロバイダからのHTTPリダイレクト・メッセージ内でURIによって示されるようなサービス・プロバイダに、HTTP Getメッセージを送信する(ステップ332)。サービス・プロバイダは、たとえばアイデンティティ・プロバイダからの認証トークンを妥当性検査することによって、シングル・サイン・オン要求を処理する(ステップ334)。シングル・サイン・オン・オペレーションが正常に完了したと想定すると、その後サービス・プロバイダは、HTTPリダイレクト・メッセージ(状況/理由コード「302」を備えたHTTP応答メッセージ)をクライアントに送信することによって、応答する(ステップ336)。リダイレクト・メッセージは、以前にアイデンティティ・プロバイダによってサービス・プロバイダに提供された戻りURIを使用して、クライアントをアイデンティティ・プロバイダにリダイレクトし、戻りURIは、リダイレクト・メッセージの「ロケーション」HTTPヘッダに指定される。サービス・プロバイダからのリダイレクト・メッセージの受信に応答して、クライアントは、サービス・プロバイダからのHTTPリダイレクト・メッセージ内でURIによって示されるようなアイデンティティ・プロバイダに、HTTP Getメッセージを送信し(ステップ338)、それによって認証/シングル・サイン・オン・オペレーションを終結する。
図10に示された実施形態では、その後、RNI要求がアイデンティティ・プロバイダからクライアントを介してサービス・プロバイダに送信された場合、サービス・プロバイダは、以前のシングル・サイン・オン・オペレーションによってユーザに対する有効なセッションをすでに有することになり、サービス・プロバイダは、図8に示されたようにユーザの認証オペレーションを実行する必要はない。
本発明は、図11に示されたプッシュ・タイプのシングル・サイン・オン・オペレーションと、図12に示されたプル・タイプのシングル・サイン・オン・オペレーションとの、両方を対象とする。プッシュ・タイプのシングル・サイン・オン・オペレーションでは、アイデンティティ・プロバイダは何らかの形の認証トークンに、サービス・プロバイダに送信される名前識別子登録要求を埋め込み、これによって、サービス・プロバイダは、すでに存在するセッションがない場合、名前識別子登録要求に含まれた情報に基づいて、ユーザに対するセッションを構築することができる。プル・タイプのシングル・サイン・オン・オペレーションでは、サービス・プロバイダは名前識別子登録処理を中断して、アイデンティティ・プロバイダへのシングル・サイン・オン要求を開始する。プル・タイプのシングル・サイン・オン・オペレーションが完了すると、サービス・プロバイダは名前識別子登録要求の処理を再開することができる。
次に図11を参照すると、本発明の実施形態に従って、アイデンティティ・プロバイダによって開始される、認証のためのプッシュ・タイプのシングル・サイン・オン・オペレーションを含む、拡張HTTPリダイレクト・ベースの名前識別子登録(RNI)プロファイルを示す、データ流れ図が示される。図8に示されたものと同様に、図11は、選択されたサービス・プロバイダで、アイデンティティ・プロバイダによってプリンシパルに割り当てられた名前識別子を、アイデンティティ・プロバイダが、変更、すなわち登録できるプロセスを示し、同様の要素は同様の参照番号で識別される。しかしながら、図8は汎用認証ステップ310を示すが、図11に示されたプロセスは、以下で論じるような特定の認証オペレーションを含めることによって、図8に示されたプロセスとは異なる。
図11を参照すると、図11のステップ340および342は、図8に示されたステップ306および308に類似しているが、アイデンティティ・プロバイダは、HTTPリダイレクト・メッセージ内のRNI要求と共にシングル・サイン・オン情報をクライアントにプッシュする(ステップ340)ことから、ステップ340および342は、ステップ306および308とは異なる。アイデンティティ・プロバイダからのリダイレクト・メッセージの受信に応答して、クライアントは、アイデンティティ・プロバイダからのHTTPリダイレクト・メッセージ内でURIによって示されるようなサービス・プロバイダの名前識別子登録サービスに、HTTP Getメッセージを送信し(ステップ342)、クライアントからサービス・プロバイダへのメッセージも、シングル・サイン・オン情報を含む。サービス・プロバイダが要求を処理する場合、シングル・サイン・オン要求の妥当性が検査できるものと想定すると、サービス・プロバイダは、ステップ312でのRNI要求の処理に先立って、シングル・サイン・オン情報に基づいてユーザに対するセッションを確立する(ステップ344)。
次に図12を参照すると、本発明の実施形態に従って、アイデンティティ・プロバイダによって開始される、認証のためのプル・タイプのシングル・サイン・オン・オペレーションを含む、拡張HTTPリダイレクト・ベースの名前識別子登録(RNI)プロファイルを示す、データ流れ図が示される。図8に示されたものと同様に、図12は、選択されたサービス・プロバイダで、アイデンティティ・プロバイダによってプリンシパルに割り当てられた名前識別子を、アイデンティティ・プロバイダが、変更登録できるプロセスを示し、同様の要素は同様の参照番号で識別される。しかしながら、図8は汎用認証ステップ310を示すが、図12に示されたプロセスは、以下で論じるような特定の認証オペレーションを含めることによって、図8に示されたプロセスとは異なる。
図12を参照すると、サービス・プロバイダがステップ308で、特定のアイデンティティ・プロバイダからユーザに関する名前識別子登録プロファイルの要求を受信した後、サービス・プロバイダは、アイデンティティ・プロバイダとのプル・タイプのシングル・サイン・オン・オペレーションを実行するためにRNI要求の処理を延期する。サービス・プロバイダは、HTTPリダイレクト・メッセージ(状況/理由コード「302」を備えたHTTP応答メッセージ)を、クライアントに送信する(ステップ350)。サービス・プロバイダからのリダイレクト・メッセージの受信に応答して、クライアントは、サービス・プロバイダからのHTTPリダイレクト・メッセージ内でURIによって示されるようなアイデンティティ・プロバイダに、HTTP Getメッセージを送信する(ステップ352)。
アイデンティティ・プロバイダは、たとえばサービス・プロバイダに関する認証トークンを生成することによって、シングル・サイン・オン情報を取得するための要求を処理する(ステップ354)。アイデンティティ・プロバイダは、HTTPリダイレクト・メッセージ(状況/理由コード「302」を備えたHTTP応答メッセージ)をクライアントに送信することによって、応答し(ステップ356)、ここでリダイレクト・メッセージは要求されたシングル・サイン・オン情報を含む。リダイレクト・メッセージは、以前にサービス・プロバイダによってアイデンティティ・プロバイダに提供された戻りURIを使用して、クライアントをサービス・プロバイダにリダイレクトし、戻りURIは、リダイレクト・メッセージの「ロケーション」HTTPヘッダに指定される。サービス・プロバイダからのリダイレクト・メッセージの受信に応答して、クライアントは、アイデンティティ・プロバイダからのHTTPリダイレクト・メッセージ内でURIによって示されるようなサービス・プロバイダに、HTTP Getメッセージを送信する(ステップ358)。サービス・プロバイダが要求を処理する場合、シングル・サイン・オン情報の妥当性検査が可能であると想定し、サービス・プロバイダは、ステップ312でのRNI要求の処理の再開に先立って、シングル・サイン・オン情報に基づいてユーザに対するセッションを確立する(ステップ359)。このようにして、サービス・プロバイダは名前識別子登録処理を中断して、アイデンティティ・プロバイダへのプル・タイプのシングル・サイン・オン要求を開始する。プル・タイプのシングル・サイン・オン・オペレーションが完了すると、サービス・プロバイダは名前識別子登録要求の処理を再開することができる。
次に図13を参照すると、本発明の実施形態に従って、サービス・プロバイダによって開始される、汎用認証ステップを含む、拡張HTTPリダイレクト・ベースの名前識別子登録プロファイルを示す、データ流れ図が示される。図7に示されたものと同様に、図13は、それによってサービス・プロバイダが、「<lib:SPProvidedNameIdentifier>」として知られる、サービス・プロバイダによってプリンシパルに提供された名前識別子を、様々な実装特有の理由で生じる可能性のある、設定、または変更、すなわち登録することが可能なプロセスを示す。しかしながら、図13に示されたプロセスは、以下で論じるような追加の認証ステップを含めることによって、図7に示されたプロセスとは異なる。
このデータ流れの前提条件は、ユーザが、アイデンティティ・プロバイダおよびサービス・プロバイダで、ユーザのアカウントとすでにリンクしていること(ステップ362)、ならびに、ユーザが、サービス・プロバイダに対してすでに認証されていること(ステップ364)である。ステップ362では、要件は単に、最低でも「<lib:IDPProvidedNameIdentifier>」が設定されていることである。本発明は、処理のこの時点で、「<lib:SPProvidedNameIdentifier>」の存在を必要条件とはしない。ステップ364では、要件は単に、ユーザが何らかの時間的に前の時点でサービス・プロバイダに対して認証されており、現在、サービス・プロバイダとの有効なセッションを有することである。本発明は、このセッションが確立された理由を必要条件とはしない。たとえば、本発明は、このセッションが名前識別子登録プロファイルを実行する以外の何らかの目的のために確立されたこと、または、名前識別子登録プロファイルを実行する目的のためにセッションが明示的に作成されたこと、という必要条件を持たない。加えて、本発明は、サービス・プロバイダでどのようにセッションが作成されたかに関する必要条件は持たず、たとえば、このセッションが、対応するアイデンティティ・プロバイダからのシングル・サイン・オン・オペレーションに基づいて作成されたということ、またはセッションが、サービス・プロバイダによって直接認証オペレーションを介して作成されたということは、必要条件でも制約でもない。
拡張HTTPリダイレクト・ベースの名前識別子登録プロファイルは、HTTPリダイレクト・メッセージ(状況/理由コード「302」を備えたHTTP応答メッセージ)を、クライアントに送信することによって、サービス・プロバイダで開始される(ステップ366)。リダイレクト・メッセージは、たとえばアイデンティティ・プロバイダの名前識別子登録サービスのリダイレクト・メッセージの「ロケーション」ヘッダ内にあるURIによって識別されるような適切な場所へと、クライアントをリダイレクトする。リダイレクト・メッセージの「ロケーション」HTTPヘッダは、「<lib:RegisterNameIdentifierRequest>」プロトコル・メッセージを含む、たとえば、URIに添付され、URI内で「?」文字によって境界が定められる、照会構成要素も含む。
サービス・プロバイダからのリダイレクト・メッセージの受信に応答して、クライアントは、サービス・プロバイダからのHTTPリダイレクト・メッセージ内でURIによって示されるような、アイデンティティ・プロバイダの名前識別子登録サービスに、HTTP Getメッセージを送信する(ステップ368)。このように、クライアントは、HTTP Getメッセージ内のURIが、添付された「<lib:RegisterNameIdentifierRequest>」メッセージを依然として含むため、アイデンティティ・プロバイダの名前識別子登録サービスにアクセスする。
図7に示されたプロセスとは対照的に、アイデンティティ・プロバイダがユーザとの有効なセッションを持たない場合、アイデンティティ・プロバイダは、ユーザ、クライアント、またはユーザ・エージェントとの認証オペレーションを実行する(ステップ370)。ここで、ユーザ/クライアントはサービス・プロバイダとの認証オペレーションを完了することがすでに要求されていると、想定できる。アイデンティティ・プロバイダは、(1)以前のセッションがすでに終了した可能性がある、(2)ユーザが、アイデンティティ・プロバイダとのいかなる以前の対話もなしに、サービス・プロバイダとの直接の認証オペレーションを実行した可能性がある、または(3)ユーザが、異なるアイデンティティ・プロバイダを介してサービス・プロバイダに対するシングル・サイン・オン・オペレーションを実行した、という様々な理由で、ユーザに対する有効なセッションを持たない可能性がある。ステップ370で、認証オペレーションが正常に完了しない場合、アイデンティティ・プロバイダは即時に障害応答をサービス・プロバイダに戻し、それによって、プロセスを終結することができる。
ステップ370で、ユーザ/クライアントは、すなわち、サービス・プロバイダによって要求された可能性のある任意の認証オペレーションに加えて、アイデンティティ・プロバイダが、受信した名前識別子登録要求が結合しているかまたは信頼できるものであることを保証できるように、追加の認証オペレーションを完了するように要求され、そうでない場合、アイデンティティ・プロバイダは、受信した名前識別子登録要求メッセージが悪意のユーザ/システムから発せられたものでないことを確認できず、アイデンティティ・プロバイダは、クライアントが関連付けられたエンドユーザに対してRNI要求を実行していることを確認できない。一般に、任意のランダムなユーザが、任意の他のランダムなユーザに対してRNI要求を実行できるようにすることは、優れた実践ではない。本発明では、名前識別子登録プロファイルの一部として、アイデンティティ・プロバイダおよびサービス・プロバイダの両方での認証またはシングル・サイン・オンを強制することによって、アイデンティティ・プロバイダおよびサービス・プロバイダの両方で、ユーザとRNI要求とのセキュアな結合が維持されることを保証するのに役立つ。
ステップ370で、認証オペレーションが正常に完了したと想定すると、その後アイデンティティ・プロバイダは、名前識別子登録要求メッセージを処理し(ステップ372)、それによって、サービス・プロバイダによってプリンシパルに提供された名前識別子を登録する。アイデンティティ・プロバイダは、好ましくはこのセッションが、名前識別子登録プロファイルを実行するだけのために作成された場合にのみ、オプションで、アイデンティティ・プロバイダで作成されたユーザ/クライアント・セッションを終了する(ステップ374)。
名前識別子登録要求メッセージを処理した後、アイデンティティ・プロバイダの名前識別子登録サービスは、HTTPリダイレクト・メッセージ(状況/理由コード「302」を備えたHTTP応答メッセージ)をクライアントに送信することによって、応答する(ステップ376)。リダイレクト・メッセージは、以前にサービス・プロバイダによってアイデンティティ・プロバイダに提供された戻りURIを使用して、クライアントをサービス・プロバイダにリダイレクトする。戻りURIは、リダイレクト・メッセージの「ロケーション」HTTPヘッダに指定される。リダイレクト・メッセージの「ロケーション」HTTPヘッダは、「<lib:RegisterNameIdentifierResponse>」プロトコル・メッセージを含む、たとえば、URIに添付され、URI内で「?」文字によって境界が定められる、照会構成要素も含む。
アイデンティティ・プロバイダからのリダイレクト・メッセージの受信に応答して、クライアントは、アイデンティティ・プロバイダからのHTTPリダイレクト・メッセージ内でURIによって示されるようなサービス・プロバイダに、HTTP Getメッセージを送信し(ステップ378)、それによってプロセスを終結する。クライアントは、クライアントからサービス・プロバイダへのHTTP Getメッセージ内のURIが、添付された「<lib:RegisterNameIdentifierResponse>」メッセージを依然として含むため、サービス・プロバイダでの名前識別子登録オペレーションの完了を開始する。名前識別子登録応答メッセージがサービス・プロバイダによって受信された後に、図13に示されていない追加の処理ステップを完了することができる。
フェデレーションのための拡張名前識別子登録プロファイル
図6および図7に関して上記で論じたように、名前識別子登録プロファイルは、サービス・プロバイダがプリンシパルに関する名前識別子の登録を要求することが可能な、あるいは、アイデンティティ・プロバイダまたはサービス・プロバイダが、従来技術のLiberty Alliance仕様に従ってプリンシパルに関する名前識別子を変更することが可能な、プロファイルである。前述のように、名前識別子登録プロファイルは、従来技術のLiberty Alliance仕様に記載されるように、アイデンティティ・プロバイダに名前識別子の初期設定をトリガさせることができない、言い換えれば、名前識別子登録プロファイルを使用して、アカウントをフェデレートするためのオペレーションとしても知られる、以前にリンク解除されたアカウントをリンクさせることができない。これらのプロファイルは、既存のアカウント・リンク・シナリオ、すなわちフェデレーテッド・シナリオでのみ呼び出すことが可能である。初期のアカウント・リンク・プロセスは、しばしばフェデレーション・プロファイルと呼ばれる、特殊なシングル・サイン・オン・プロファイルの範囲内のサービス・プロバイダによってのみ呼び出すことが可能である。
本発明は、アイデンティティ・プロバイダが、初期のアカウント・リンクを確立する目的で、名前識別子登録プロファイルをトリガできるようにすることによって、この欠点に対処する。この手法では、図14および図15に関して以下でより詳細に示すように、初期の名前識別子登録オペレーション中に、ユーザ、おそらくは名前識別子登録プロファイルの実行の対象であるプリンシパルを、アイデンティティ・プロバイダおよびサービス・プロバイダの両方に対して明示的に認証する必要がある。図14および図15で示された例示的諸実施形態は、HTTPベースの通信を採用しているが、本発明はHTTPベースの通信に限定されるものではなく、他の通信プロトコルも採用可能である。
次に、図14を参照すると、本発明の実施形態に従って、オプションでシングル・サイン・オン・オペレーションが後に続く、アカウント・リンク・オペレーションを実行するために、アイデンティティ・プロバイダによって開始される、拡張HTTPリダイレクト・ベースの名前識別子登録プロファイルを示す、データ流れ図が示される。図8に示されたものと同様に、図14は、現在はアイデンティティ・プロバイダにそのプリンシパルに関する名前識別子が存在していない場合、それによってアイデンティティ・プロバイダがプリンシパルに関する新しい名前識別子を所与のサービス・プロバイダに登録することができるプロセスを示し、この機能は、従来技術のLiberty Alliance仕様には指定されていない。加えて、図14は、本発明の拡張HTTPリダイレクト・ベースの名前識別子登録プロファイルが、アイデンティティ・プロバイダのユーザ・アカウントおよびサービス・プロバイダのユーザ・アカウントがまとめてリンクされるトランザクション・セットに組み込まれた一例を示す、追加の処理ステップを示す。アカウント・リンク・オペレーションが実行された後、アイデンティティ・プロバイダは、リンクされたアカウントに依拠するサービス・プロバイダでのシングル・サイン・オン・オペレーションを開始することができる。
このプロセスは、クライアントが、たとえばログイン・ウェブ・ページなどの、アイデンティティ・プロバイダの保護または制御されたリソースに関するHTTP要求メッセージを送信することで開始される(ステップ402)。続いてアイデンティティ・プロバイダは、クライアントに認証オペレーションを完了するように要求し(ステップ404)、その後、アイデンティティ・プロバイダはクライアントに応答を戻す(ステップ406)。この例では、アイデンティティ・プロバイダはフェデレーション代替の提案を戻し、これらのフェデレーション代替は、同じフェデレーション内でアイデンティティ・プロバイダと相互運用するサービス・プロバイダのリストとすることができる。
たとえば、アイデンティティ・プロバイダは、フェデレーテッド・コンピューティング環境内でアイデンティティ・プロバイダと対話する第3者ポータルのリストを含む、ウェブ・ページを戻すことが可能であり、戻されたウェブ・ページは、ユーザが第3者ポータルのリストから第3者ポータルを選択できる形を表す。フェデレーション内のプリンシパルである、クライアントのユーザは、以前に第3者ポータルのうちの1つでユーザ・アカウントを確立したかまたは確立していない可能性があるが、ユーザが第3者ポータルのうちの1つでユーザ・アカウントを確立したと想定すると、戻されたウェブ・ページは、ユーザが第3者ポータルのユーザのアカウントを、アイデンティティ・プロバイダのユーザのアカウントにリンクできる形である。言い換えれば、クライアントによってアイデンティティ・プロバイダから受信されたウェブ・ページは、ユーザがアカウント・リンク・オペレーションを開始できるようにするものであり、その後、第3者ポータルがユーザに関してアイデンティティ・プロバイダにリンクされる。クライアントのユーザは、たとえば、あるフォームとしてフォーマット化され、ウェブ・ブラウザのウィンドウ内でユーザに提示される、ウェブ・ページのチェック・ボックスにチェックを入れることによって、第3者ポータルを選択することが可能であり、このチェック・ボックスは、サービス・プロバイダによって運営されるドメインを表す特定の第3者ポータルに関連付けられる。「OK」ボタンまたは「送信(Submit)」ボタンなどの特定の制御を選択すると、そのフォームからの適切なコンテンツが、たとえばHTTPポスト・メッセージ内でクライアントからアイデンティティ・プロバイダに送信され、それによって、ユーザが、アイデンティティ・プロバイダのユーザのアカウントを選択されたサービス・プロバイダとフェデレートさせたいことが示される(ステップ408)。
フェデレーション・オペレーションを開始するための要求をクライアントから受信した後、アイデンティティ・プロバイダは、名前識別子登録要求メッセージを構築する(ステップ410)。本発明の拡張HTTPリダイレクト・ベースの名前識別子登録プロファイルは、その後、HTTPリダイレクト・メッセージ(状況/理由コード「302」を備えたHTTP応答メッセージ)を、クライアントに送信することによって、アイデンティティ・プロバイダで開始される(ステップ412)。リダイレクト・メッセージは、たとえばサービス・プロバイダの名前識別子登録サービスのリダイレクト・メッセージの「ロケーション」ヘッダ内にあるURIによって識別されるような適切な場所へと、クライアントをリダイレクトする。リダイレクト・メッセージの「ロケーション」HTTPヘッダは、ステップ410で以前に構築された「<lib:RegisterNameIdentifierRequest>」プロトコル・メッセージを含む、たとえば、URIに添付され、URI内で「?」文字によって境界が定められる、照会構成要素も含む。
アイデンティティ・プロバイダからのリダイレクト・メッセージの受信に応答して、クライアントは、アイデンティティ・プロバイダからのHTTPリダイレクト・メッセージ内でURIによって示されるような、サービス・プロバイダの名前識別子登録サービスに、HTTP Getメッセージを送信する(ステップ414)。ユーザがすでにサービス・プロバイダとの有効なセッションを持っていない場合、サービス・プロバイダはユーザの認証証明(たとえばユーザ名およびパスワード)を収集して、これらの証明の妥当性を検査し(ステップ416)、それによって追加の、すなわちアイデンティティ・プロバイダによって要求された可能性のある任意の対話に加えて、ユーザ対話が必要となる。この対話は、サービス・プロバイダが、フェデレーション/名前識別子登録が要求されるユーザの、ローカル・アイデンティティを決定できるように要求される。サービス・プロバイダは、この認証要求に応答してユーザに対するセッションを確立する必要はなく、サービス・プロバイダは、ユーザのアイデンティティおよび真正性を決定するために、提示された証明の妥当性を検査する可能性があるだけである。したがってサービス・プロバイダは、単一のHTTP要求/応答ペアの範囲内でサービス・プロバイダ側の機能が完了された場合、この名前識別子登録プロファイルを完了させるためにユーザに関するセッションを管理する必要はない。
場合によっては、ユーザがサービス・プロバイダですでにアカウントを確立していることに留意されたい。しかしながら、ユーザがサービス・プロバイダで既存のアカウントを持たない場合、サービス・プロバイダは、この認証/RNI要求に応答して、ユーザに関するアカウントを作成するように選択することが可能であり、このアカウントが確立されると、図14に示されるように、すなわち、サービス・プロバイダのユーザ・アカウントをアイデンティティ・プロバイダのユーザ・アカウントとフェデレートさせるために、残りのRNI処理が進行することになる。
ステップ416の一部は、サービス・プロバイダとユーザとの対話も含むことが可能であり、これによってサービス・プロバイダは、たとえば、以下のようなメッセージを含む、特別にフォーマット化されたウェブ・ページを提供することによって、ユーザにフェデレート要求を通知するように選択することが可能である。
アイデンティティ・プロバイダ「X」を備える当方と貴方のアカウントとの、フェデレート/リンクが試行されている。このリンクに同意するためには、貴方のログイン情報を提供すること。このリンクが確立されると、アイデンティティ・プロバイダ「X」から貴方のローカル・アカウントへのシングル・サイン・オン・オペレーションを実行できるようになる。このアクションを完了したくない場合は「取消(CANCEL)」を選択すること。
ユーザからの取消要求は、アイデンティティ・プロバイダへの障害応答を即時に生成する。このページは、サービス・プロバイダからのログイン要求の一部として提示することが可能であり、それによって、なぜユーザの認証証明が要求されているかをユーザに説明する。
ユーザがサービス・プロバイダとの既存の有効なセッションを有することから、認証証明を収集するための明示的ユーザ対話が必要ない場合、サービス・プロバイダはステップ416を使用して、従来技術のLiberty Alliance仕様のSSOフェデレート・プロファイル内でのみ定義されたアクションである、ユーザの「フェデレートに同意」を求めることができる。このシナリオ(すなわち、アカウントがまだリンクされておらず、ユーザはアイデンティティ・プロバイダに認証されており、かつオプションでサービス・プロバイダに認証されており、ユーザはアイデンティティ・プロバイダからのアカウント・リンクを要求する)は、名前識別子登録プロファイルに関する従来技術のLiberty Alliance仕様では不可能であることに留意されたい。
ユーザのサービス・プロバイダ・アカウントおよびユーザのアイデンティティ・プロバイダ・アカウントは、まだフェデレートされていないため、アイデンティティ・プロバイダからサービス・プロバイダへのシングル・サイン・オン・オペレーションは不可能であり、ユーザは、認証証明/識別情報をサービス・プロバイダに直接提示しなければならないことにも留意されたい。ユーザは、サービス・プロバイダのユーザ・アカウントを異なるアイデンティティ・プロバイダとすでにフェデレートしている可能性があり、この場合、この他方のアイデンティティ・プロバイダからのシングル・サイン・オン・オペレーションが可能である。したがって別の方法として、ユーザには、サービス・プロバイダのユーザ・アカウントと異なるアイデンティティ・プロバイダとの既存のフェデレーションに配慮して、サービス・プロバイダと要求側のアイデンティティ・プロバイダとの間の新しいフェデレーションを拒否(decline)する何らかのオプションが提示される場合がある。
異なるアイデンティティ・プロバイダからのシングル・サイン・オン・オペレーションを介して確立されたセッションとの関連において、サービス・プロバイダで名前識別子登録要求メッセージが受信された場合、サービス・プロバイダは、名前識別子登録処理を進行させる前に、認証証明に関してユーザに再度プロンプトを出すように選択することができる。これが望ましいシナリオの一例は、ユーザが、1つはアイデンティティ・プロバイダとしてユーザの雇用者にリンクされ、1つはユーザの個人アカウントであって雇用者にリンクされていない、サービス・プロバイダとの2つの別個のアカウントを有するものである。ユーザがこの第2の個人アカウントを、たとえばユーザの銀行などの異なるアイデンティティ・プロバイダとリンクさせたい場合、サービス・プロバイダは、銀行から受信したいかなる名前識別子登録要求メッセージも、ユーザの個人アカウントと正しくリンクされていることを確認するように注意しなければならない。したがって、ユーザが自分の銀行および個人アカウントをフェデレートしようと試みる一方で、自分の雇用者からのサービス・プロバイダとの有効なセッションを有する場合、適切なアカウント・リンクが実施されていることを確認する責務は、サービス・プロバイダにある。
ユーザが、すでに異なるアイデンティティ・プロバイダとフェデレートされているアカウントをフェデレートしようとした場合、以下のようなメッセージを含む特別にフォーマット化されたウェブ・ページを提供することによって、ユーザにプロンプトが出されるはずである。
現在、アイデンティティ・プロバイダ「X」とフェデレートされている。アイデンティティ・プロバイダ「Y」とフェデレートするか。
ユーザは、単一のサービス・プロバイダに関連付けられた複数のアイデンティティ・プロバイダを有する可能性がある。これは一般的には生じないが、たとえばユーザが、アイデンティティ・プロバイダとしての役目を果たすユーザの雇用者によって出資されるか、または何らかの様式でこの雇用者と提携している、サービス・プロバイダとのアカウントを有する場合に、発生する可能性があり、ユーザは、サービス・プロバイダ・リソースがアイデンティティ・プロバイダによって提供されたものでないことさえ、認識していない場合がある。ユーザは、同じサービス・プロバイダと個人アカウントを有する可能性もある。たとえば、サービス・プロバイダは、ユーザの個人アカウントを介した個人取引サービスに加えて、ユーザの雇用者を介した自社株購入権管理を提案する場合がある。
認証/識別オペレーションが、ステップ416で正常に完了したと想定すると、サービス・プロバイダは名前識別子登録要求メッセージを処理し(ステップ418)、それによって、アイデンティティ・プロバイダによってプリンシパルに割り当てられた名前識別子を登録し、アイデンティティ・プロバイダによって保持される情報を介してユーザのアカウントがまとめてリンクされるように、プリンシパルの識別をリンクする。サービス・プロバイダは、オプションで、サービス・プロバイダで作成された可能性のあるすべてのユーザ/クライアント・セッションを終了する(ステップ420)。
名前識別子登録要求メッセージを処理した後、サービス・プロバイダの名前識別子登録サービスは、HTTPリダイレクト・メッセージ(状況/理由コード「302」を備えたHTTP応答メッセージ)をクライアントに送信することによって応答する(ステップ422)。このメッセージは、サービス・プロバイダによって設定され、アイデンティティ・プロバイダをユーザのアイデンティティ・プロバイダとして識別する、何らかの形のクライアント側が維持する情報(HTTPクッキーなど)を含むことが可能であり、これによりユーザは、アイデンティティ・プロバイダからサービス・プロバイダへのシングル・サイン・オン・オペレーションを即時に実行することができる。
リダイレクト・メッセージは、アイデンティティ・プロバイダによって以前にサービス・プロバイダに提供された戻りURIを使用して、クライアントをアイデンティティ・プロバイダにリダイレクトする。戻りURIは、リダイレクト・メッセージの「ロケーション」HTTPヘッダ内に指定される。リダイレクト・メッセージの「ロケーション」HTTPヘッダは、「<lib:RegisterNameIdentifierResponse>」プロトコル・メッセージを含む、たとえば、URIに添付され、URI内で「?」文字によって境界が定められる、照会構成要素も含む。
サービス・プロバイダからのリダイレクト・メッセージの受信に応答して、クライアントは、サービス・プロバイダからのHTTPリダイレクト・メッセージ内でURIによって示されるようなアイデンティティ・プロバイダに、HTTP Getメッセージを送信する(ステップ424)。クライアントは、クライアントからアイデンティティ・プロバイダへのHTTP Getメッセージ内のURIが、添付された「<lib:RegisterNameIdentifierResponse>」メッセージを依然として含むため、アイデンティティ・プロバイダでの名前識別子登録オペレーションの完了を開始する。アイデンティティ・プロバイダは、クライアントを介してリダイレクトされたサービス・プロバイダからの名前識別子登録応答メッセージを処理する(ステップ426)。
サービス・プロバイダからの応答が、正常な名前識別子登録オペレーションを示すと想定すると、アイデンティティ・プロバイダは、ステップ408で最初に要求されたフェデレーション・オペレーションに関する応答をクライアントに送信し(ステップ428)、この応答は、たとえば、クライアント上で実行されているウェブ・ブラウザに戻されたウェブ・ページ内に埋め込まれたハイパーリンクの形などの、サービス・プロバイダでのフェデレーテッド・リソースへのリンクと共に、アカウント・リンク・オペレーションの正常な完了の指示を含むことができる。
その後、ユーザは、クライアントのウェブ・ブラウザを動作させて、アイデンティティ・プロバイダから受信されたウェブ・ページ内に提供された、サービス・プロバイダの制御または保護されたリソースを選択するかまたはこれにアクセスすることが可能であり、クライアントは、要求されたリソースに関するHTTP要求メッセージをサービス・プロバイダに送信する(ステップ430)。ここで、アイデンティティ・プロバイダおよびサービス・プロバイダのユーザのアカウントが、まとめてリンクされるとすると、サービス・プロバイダは、クライアントあるいはアイデンティティ・プロバイダまたはその両方と対話して、認証オペレーションを実行することが可能であり(ステップ432)、たとえばアイデンティティ・プロバイダは、クライアントを介してHTTPリダイレクト・メッセージを通じてサービス・プロバイダによって要求された認証トークンを提供することができる。認証オペレーションが正常であると想定すると、サービス・プロバイダはHTTP応答メッセージをクライアントに送信する(ステップ434)。サービス・プロバイダからクライアントへの応答は、ユーザのアイデンティティに基づいてユーザが特別に使用できる、第3者ポータル・サービスを提示するウェブ・ページとすることが可能であり、言い換えれば、ウェブ・ページは、好ましくはユーザ用に特別に調整された情報コンテンツを含む。加えてウェブ・ページは、フェデレートされた様式の、アイデンティティ・プロバイダで保護または制御されたリソースへのリンクを含むこともできる。
前述のようにステップ420はオプションであるが、好ましくは、セッションが作成された場合、本発明の名前識別子登録プロファイルに含まれ、名前識別子登録オペレーションに関するセッションが作成され、ステップ420で終了していない場合、以下の理由により、ステップ430でサービス・プロバイダによって未定義の結果を生成することができる。ステップ430での、クライアントからサービス・プロバイダへの後続の要求の間、サービス・プロバイダは、たとえばそのクライアントからの要求を伴うHTTPクッキーによって、その要求が同じクライアントから出されたものであることを認識することが可能であり、HTTPクッキーはセッション識別子を含み、このセッションはサービス・プロバイダに直接認証されたものとしてユーザに結合される。以前のセッションが終了しなかった場合、サービス・プロバイダは、HTTPクッキー内のセッション識別子を、有効なセッション識別子として認識することが可能であり、それによってサービス・プロバイダは、以前に構築されたセッションに関連付けられた情報を使用してクライアントに応答するが、この情報は失効している(stale)。以前に確立されたセッションがユーザのアカウント情報のサブセットのコピーを含む場合、サービス・プロバイダは、ユーザのアカウントからのこの情報のサブセットに基づいて応答を戻すが、以前に確立されたセッションが構築された後、サービス・プロバイダのユーザ・アカウントは、アイデンティティ・プロバイダのユーザ・アカウントとフェデレートされることになった。したがって、サービス・プロバイダは、ユーザがフェデレーション情報を有する可能性のある応答を受信するように、サービス・プロバイダがユーザに対する名前識別子登録オペレーションを実行した後に確立された、サービス・プロバイダのユーザのアカウント内の情報を使用して、クライアントからの後続の要求に応答しなければならず、最も新しいユーザ・アカウント情報が使用されることを確認するための1つの方法は、以前のセッションがステップ420で終了していること、またはステップ420でセッションが確立されていないことを、確認することである。
たとえば、サービス・プロバイダは、アイデンティティ・プロバイダとフェデレーテッド・アカウントを有するユーザに対して、電子商取引ドメイン内のある種のサービスに関する購買奨励を提案することができる。サービス・プロバイダが失効したユーザ・アカウント情報を使用した場合、ユーザは、サービス・プロバイダでのユーザの次のセッションまで、すなわち、サービス・プロバイダによって運営される電子商取引ドメインへのユーザによる後続の訪問まで、こうした奨励を受信しない。しかしながら、奨励は、ユーザのアカウントが互いにリンクされた後、できる限り早くユーザが使用できるようにするべきである。初期のセッションを終了することによって、このシナリオは回避される。
次に図15を参照すると、本発明の実施形態に従って、オプションでシングル・サイン・オン・オペレーションが後に続く、アカウント・リンク・オペレーションを実行するために、サービス・プロバイダによって開始される、拡張HTTPリダイレクト・ベースの名前識別子登録プロファイルを示す、データ流れ図が示される。図9に示されたものと同様に、図15は、現在はアイデンティティ・プロバイダにそのプリンシパルに関する名前識別子が存在していない場合、それによってサービス・プロバイダがプリンシパルに関する新しい名前識別子を所与のサービス・プロバイダに登録することができるプロセスを示し、この機能は、従来技術のLiberty Alliance仕様には指定されていない。加えて、図15は、本発明の拡張HTTPリダイレクト・ベースの名前識別子登録プロファイルが、アイデンティティ・プロバイダのユーザ・アカウントおよびサービス・プロバイダのユーザ・アカウントがまとめてリンクされるトランザクション・セットに組み込まれた一例を示す、追加の処理ステップを示す。アカウント・リンク・オペレーションが実行された後、アイデンティティ・プロバイダは、リンクされたアカウントに依拠するサービス・プロバイダでのシングル・サイン・オン・オペレーションを開始することができる。
このプロセスは、クライアントが、たとえばログイン・ウェブ・ページなどの、サービス・プロバイダの保護または制御されたリソースに関するHTTP要求メッセージを送信することで開始される(ステップ452)。続いてサービス・プロバイダは、クライアントに認証オペレーションを完了するように要求し(ステップ454)、その後、サービス・プロバイダはクライアントに応答を戻す(ステップ456)。この例では、サービス・プロバイダはフェデレーション代替の提案を戻し、これらのフェデレーション代替は、同じフェデレーション内でサービス・プロバイダと相互運用するアイデンティティ・プロバイダのリストとすることができる。
たとえば、サービス・プロバイダは、フェデレーテッド・コンピューティング環境内でサービス・プロバイダと対話する第3者ポータルのリストを含む、ウェブ・ページを戻すことが可能であり、戻されたウェブ・ページは、ユーザが第3者ポータルのリストから第3者ポータルを選択できる形を表す。フェデレーション内のプリンシパルである、クライアントのユーザは、以前に第3者ポータルのうちの1つでユーザ・アカウントを確立したかまたは確立していない可能性があるが、ユーザが第3者ポータルのうちの1つでユーザ・アカウントを確立したと想定すると、戻されたウェブ・ページは、ユーザが第3者ポータルのユーザのアカウントを、アイデンティティ・プロバイダのユーザのアカウントにリンクできる形である。言い換えれば、クライアントによってサービス・プロバイダから受信されたウェブ・ページは、ユーザがアカウント・リンク・オペレーションを開始できるようにするものであり、その後、第3者ポータルがユーザに関してサービス・プロバイダにリンクされる。クライアントのユーザは、たとえば、あるフォームとしてフォーマット化され、ウェブ・ブラウザのウィンドウ内でユーザに提示される、ウェブ・ページのチェック・ボックスにチェックを入れることによって、第3者ポータルを選択することが可能であり、このチェック・ボックスは、アイデンティティ・プロバイダによって運営されるドメインを表す特定の第3者ポータルに関連付けられる。「OK」ボタンまたは「送信」ボタンなどの特定の制御を選択すると、そのフォームからの適切なコンテンツが、たとえばHTTPポスト・メッセージ内でクライアントからサービス・プロバイダに送信され、それによって、ユーザが、サービス・プロバイダのユーザのアカウントを選択されたアイデンティティ・プロバイダとフェデレートさせたいことが示される(ステップ458)。
フェデレーション・オペレーションを開始するための要求をクライアントから受信した後、サービス・プロバイダは、名前識別子登録要求メッセージを構築する(ステップ460)。本発明の拡張HTTPリダイレクト・ベースの名前識別子登録プロファイルは、その後、HTTPリダイレクト・メッセージ(状況/理由コード「302」を備えたHTTP応答メッセージ)を、クライアントに送信することによって、サービス・プロバイダで開始される(ステップ462)。リダイレクト・メッセージは、たとえばアイデンティティ・プロバイダの名前識別子登録サービスのリダイレクト・メッセージの「ロケーション」ヘッダ内にあるURIによって識別されるような適切な場所へと、クライアントをリダイレクトする。リダイレクト・メッセージの「ロケーション」HTTPヘッダは、ステップ460で以前に構築された「<lib:RegisterNameIdentifierRequest>」プロトコル・メッセージを含む、たとえば、URIに添付され、URI内で「?」文字によって境界が定められる、照会構成要素も含む。
サービス・プロバイダからのリダイレクト・メッセージの受信に応答して、クライアントは、サービス・プロバイダからのHTTPリダイレクト・メッセージ内でURIによって示されるような、アイデンティティ・プロバイダの名前識別子登録サービスに、HTTP Getメッセージを送信する(ステップ464)。ユーザがすでにアイデンティティ・プロバイダとの有効なセッションを持っていない場合、アイデンティティ・プロバイダはユーザの認証証明(たとえばユーザ名およびパスワード)を収集して、これらの証明の妥当性を検査し(ステップ466)、それによって追加の、すなわちサービス・プロバイダによって要求された可能性のある任意の対話に加えて、ユーザ対話が必要となる。この対話は、アイデンティティ・プロバイダが、フェデレーション/名前識別子登録が要求されるユーザの、ローカル・アイデンティティを決定できるように要求される。アイデンティティ・プロバイダは、この認証要求に応答してユーザに対するセッションを確立する必要はないが、シングル・サイン・オンの目的でサービス・プロバイダによって使用される可能性のある応答がサービス・プロバイダに送信されることになるため、アイデンティティ・プロバイダは、ユーザに関するセッションを作成するはずである。
場合によっては、ユーザがサービス・プロバイダですでにアカウントを確立していることに留意されたい。しかしながら、ユーザがサービス・プロバイダで既存のアカウントを持たない場合、アイデンティティ・プロバイダは、この認証/RNI要求に応答して、ユーザに関するアカウントを作成するように選択することが可能であり、このアカウントが確立されると、図15に示されるように、すなわち、アイデンティティ・プロバイダのユーザ・アカウントをサービス・プロバイダのユーザ・アカウントとフェデレートさせるために、残りのRNI処理が進行することになる。
ステップ466の一部は、アイデンティティ・プロバイダとユーザとの対話も含むことが可能であり、これによってアイデンティティ・プロバイダは、たとえば、以下のようなメッセージを含む、特別にフォーマット化されたウェブ・ページを提供することによって、ユーザにフェデレート要求を通知するように選択することが可能である。
サービス・プロバイダ「X」を備える当方と貴方のアカウントとの、フェデレート/リンクが試行されている。このリンクに同意するためには、貴方のログイン情報を提供すること。このリンクが確立されると、サービス・プロバイダ「X」から貴方のローカル・アカウントへのシングル・サイン・オン・オペレーションを実行できるようになる。このアクションを完了したくない場合は「取消(CANCEL)」を選択すること。
ユーザからの取消要求は、サービス・プロバイダへの障害応答を即時に生成する。このページは、アイデンティティ・プロバイダからのログイン要求の一部として提示することが可能であり、それによって、なぜユーザの認証証明が要求されているかをユーザに説明する。
ユーザがアイデンティティ・プロバイダとの既存の有効なセッションを有することから、認証証明を収集するための明示的ユーザ対話が必要ない場合、アイデンティティ・プロバイダはステップ466を使用して、ユーザの「フェデレートに同意」を求めることができる。このシナリオ(すなわち、アカウントがまだリンクされておらず、ユーザはサービス・プロバイダに認証されており、かつオプションでアイデンティティ・プロバイダに認証されており、ユーザはアイデンティティ・プロバイダからのアカウント・リンクを要求する)は、名前識別子登録プロファイルに関する従来技術のLiberty Alliance仕様では不可能であることに留意されたい。
ユーザがすでにアイデンティティ・プロバイダのユーザ・アカウントを他のサービス・プロバイダとフェデレートさせている可能性はあるが、これは、(他の)サービス・プロバイダをこのアイデンティティ・プロバイダとフェデレートさせるというユーザの要求に影響を与えるものではないことに留意されたい。このケースでは、このサービス・プロバイダとのフェデレーションを拒否する何らかのオプションがユーザに提示されることが望ましい。
認証/識別オペレーションが、ステップ466で正常に完了したと想定すると、アイデンティティ・プロバイダは名前識別子登録要求メッセージを処理し(ステップ468)、それによって、サービス・プロバイダによってプリンシパルに割り当てられた名前識別子を登録する(「SPProvidedNameIdentifier」)。従来技術のLiberty Alliance仕様は、アカウントが最低限の「IDPProvidedNameIdentifier」とリンクされていないことを要求するため、アイデンティティ・プロバイダは、この名前識別子を作成し、これをユーザ用に登録して、サービス・プロバイダに戻そうとすることに留意されたい。これによって、ユーザのアカウントが、アイデンティティ・プロバイダおよびサービス・プロバイダによって保持される情報を介してまとめてリンクされるように、プリンシパルのアイデンティティのリンクが可能になる。その後、アイデンティティ・プロバイダは、オプションで、アイデンティティ・プロバイダで作成された可能性のあるすべてのユーザ/クライアント・セッションを終了する(ステップ470)。
名前識別子登録要求メッセージを処理した後、アイデンティティ・プロバイダの名前識別子登録サービスは、HTTPリダイレクト・メッセージ(状況/理由コード「302」を備えたHTTP応答メッセージ)をクライアントに送信することによって応答する(ステップ472)。このメッセージは、アイデンティティ・プロバイダの名前識別子(「IDPProvidedNameIdentifier」)も含み、これによってサービス・プロバイダは、「IDPProvidedNameIdentifier」データ値を使用するユーザに関して、アイデンティティ・プロバイダと対話することができる。
リダイレクト・メッセージは、サービス・プロバイダによって以前にアイデンティティ・プロバイダに提供された戻りURIを使用して、クライアントをサービス・プロバイダにリダイレクトする。戻りURIは、リダイレクト・メッセージの「ロケーション」HTTPヘッダ内に指定される。リダイレクト・メッセージの「ロケーション」HTTPヘッダは、「<lib:RegisterNameIdentifierResponse>」プロトコル・メッセージを含む、たとえば、URIに添付され、URI内で「?」文字によって境界が定められる、照会構成要素も含む。
アイデンティティ・プロバイダからのリダイレクト・メッセージの受信に応答して、クライアントは、アイデンティティ・プロバイダからのHTTPリダイレクト・メッセージ内でURIによって示されるようなサービス・プロバイダに、HTTP Getメッセージを送信する(ステップ474)。クライアントは、クライアントからアイデンティティ・プロバイダへのHTTP Getメッセージ内のURIが、添付された「<lib:RegisterNameIdentifierResponse>」メッセージを依然として含むため、アイデンティティ・プロバイダでの名前識別子登録オペレーションの完了を開始する。アイデンティティ・プロバイダは、クライアントを介してリダイレクトされたサービス・プロバイダからの名前識別子登録応答メッセージを処理する(ステップ476)。
アイデンティティ・プロバイダからの応答が、正常な名前識別子登録オペレーションを示すと想定すると、サービス・プロバイダは、ステップ458で最初に要求されたフェデレーション・オペレーションに関する応答をクライアントに送信し(ステップ478)、この応答は、たとえば、クライアント上で実行されているウェブ・ブラウザに戻されたウェブ・ページ内に埋め込まれたハイパーリンクの形などの、サービス・プロバイダでのフェデレーテッド・リソースへのリンクと共に、アカウント・リンク・オペレーションの正常な完了の指示を含むことができる。
その後、ユーザは、クライアントのウェブ・ブラウザを動作させて、サービス・プロバイダの制御または保護されたリソースを選択するかまたはこれにアクセスすることができる。(ステップ480)。ここで、アイデンティティ・プロバイダおよびサービス・プロバイダのユーザのアカウントが、まとめてリンクされるとすると、アイデンティティ・プロバイダは、クライアントあるいはサービス・プロバイダまたはその両方と対話して、認証オペレーションを実行することが可能であり(ステップ482)、たとえばアイデンティティ・プロバイダは、クライアントを介してHTTPリダイレクト・メッセージを通じてサービス・プロバイダによって要求された認証トークンを提供することができる。認証オペレーションが正常であると想定すると、サービス・プロバイダはHTTP応答メッセージをクライアントに送信する(ステップ484)。サービス・プロバイダからクライアントへの応答は、ユーザのアイデンティティに基づいてユーザが特別に使用できる、第3者ポータル・サービスを提示するウェブ・ページとすることが可能であり、言い換えれば、ウェブ・ページは、好ましくはユーザ用に特別に調整された情報コンテンツを含む。加えてウェブ・ページは、フェデレートされた様式の、サービス・プロバイダで保護または制御されたリソースへのリンクを含むこともできる。
前述のようにステップ470はオプションである。サービス・プロバイダがその後もユーザに関するセッションを管理していく予定である場合、アイデンティティ・プロバイダは、このセッションを終了するべきではない。これは、サービス・プロバイダが、このセッションがアイデンティティ・プロバイダに結合され、アイデンティティ・プロバイダ開始のシングル・ログアウト要求などを使用して制御可能であることを確認すべきであることに付随する。アイデンティティ・プロバイダ・セッションが終了した場合、これは不可能である。
結論
本発明の利点は、前述の本発明の詳細な説明に照らして明らかとなるであろう。
従来技術のLiberty Alliance仕様における名前識別子登録プロファイルでは、悪意あるユーザがアイデンティティ・プロバイダまたはサービス・プロバイダの役割を果たして、ユーザ・アカウントに関して名前識別子登録オペレーションを装い、それによって、悪意あるユーザがユーザ・アカウントにアクセスできるような条件を作成する可能性がある。本発明では、名前識別子登録オペレーション時に追加の認証オペレーションが必要であるため、サービス・プロバイダまたはアイデンティティ・プロバイダが、アイデンティティ・プロバイダまたはサービス・プロバイダによって受信されたシングル・サイン・オン・イベントを信用できるように、名前識別子登録プロファイルがよりセキュアになる。
さらに本発明は、シングル・サイン・オン・オペレーションの流れの外側で開始されるユーザのセキュアなアカウント結合を可能にし、この結合をアイデンティティ・プロバイダまたはサービス・プロバイダのいずれかによって開始できるようにする、セキュアな名前識別子登録プロファイルを提供する。この機能は、従来技術のLiberty Alliance仕様には記載されておらず、アイデンティティ・プロバイダからのユーザの要求に応答して、サービス・プロバイダに、フェデレーション/シングル・サイン・オン・オペレーションを要求させるための追加のオペレーションを要求することもなく、従来技術のLiberty Alliance仕様に従って実施されたシステムにこの機能を含めることは不可能であろう。
以上、本発明について、完全に機能しているデータ処理システムとの関連において説明してきたが、当業者であれば、配布を実施する際に実際に使用される特定タイプの信号搬送媒体にかかわらず、本発明のプロセスがコンピュータ読み取り可能媒体内の命令の形、および様々な他の形で配布可能であることを理解されるであろう、ということに留意されたい。コンピュータ読み取り可能媒体の例には、EPROM、ROM、テープ、紙、フロッピィ・ディスク、ハード・ディスク・ドライブ、RAM、およびCD−ROMなどの媒体、ならびに、デジタルおよびアナログの通信リンクなどの伝送タイプ媒体が含まれる。
方法とは、一般に、所望の結果につながる首尾一貫した一連のステップであると考えられる。これらのステップは、物理量の物理的操作を必要とする。必須ではないが、通常、これらの量は、格納、転送、結合、比較、およびその他の操作が可能な、電気信号または磁気信号の形を取る。時には、主に一般的に使用するために、これらの信号をビット、値、パラメータ、アイテム、要素、オブジェクト、記号、文字、用語、数値などとして表すことが便利である。しかしながら、これらの用語および同様の用語はすべて、適切な物理量と関連付けられ、これらの量に適用される単なる便利なラベルであることに留意されたい。
本発明の説明は、例示の目的で提示されたものであり、網羅的または開示された諸実施形態に限定されるものであることは意図されていない。当業者であれば、多くの修正および変形が明らかとなろう。諸実施形態は、本発明の原理およびその実用的な応用例を説明するため、ならびに、他の当業者が、他の企図された用途に好適な可能性のある様々な修正形態を備えた様々な諸実施形態を実施するために本発明を理解できるようにするために、選択された。