(57)【要約】【課題】所定のエンティティに対し、フェデレーション内のプリンシパルを認証するための他のエンティティのカスタム認証方法を実装するのに十分な柔軟性を与えること。【解決手段】サービス・プロバイダの認証ポリシに従って、アイデンティティ・プロバイダ（ＩＤプロバイダ）によりプリンシパルを認証し、前記ＩＤプロバイダのセッション・データ内に、前記サービス・プロバイダの認証ポリシを満たす認証証明書を記録する。また、フェデレーション内のプリンシパルの認証は、前記ＩＤプロバイダの認証ポリシに従って、前記ＩＤプロバイダにより前記プリンシパルを認証することにより実行される。さらに、フェデレーション内のプリンシパルの認証は、前記ＩＤプロバイダにおいて、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記サービス・プロバイダから受信することにより実行される。【選択図】  図４
2009519530.tif 000002
【特許請求の範囲】
【請求項１】
フェデレーション内のプリンシパルを認証するための方法であって、
サービス・プロバイダの認証ポリシに従って、アイデンティティ・プロバイダにより前記プリンシパルを認証するステップと、
前記アイデンティティ・プロバイダのセッション・データ内に、前記サービス・プロバイダの認証ポリシを満たす認証証明書を記録するステップとを含む、方法。
【請求項２】
アイデンティティ・プロバイダの認証ポリシに従って、前記アイデンティティ・プロバイダにより前記プリンシパルを認証するステップをさらに含む、請求項１記載の方法。
【請求項３】
前記アイデンティティ・プロバイダにおいて、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記サービス・プロバイダから受信するステップをさらに含む、請求項１記載の方法。
【請求項４】
前記プリンシパルを認証するステップが、前記アイデンティティ・プロバイダのアクセス・マネージャにより前記プリンシパルを認証するステップをさらに含む、請求項１記載の方法。
【請求項５】
前記プリンシパルを認証するステップが、前記アイデンティティ・プロバイダの認証プロキシにより前記プリンシパルを認証するステップをさらに含む、請求項１記載の方法。
【請求項６】
前記サービス・プロバイダにおいて、前記サービス・プロバイダの資源にアクセスするための前記プリンシパルの資源要求を受信するステップと、
前記サービス・プロバイダにより、前記資源要求の認証証明書が前記サービス・プロバイダの認証ポリシを満たさないことを決定するステップと、
前記サービス・プロバイダにより、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記アイデンティティ・プロバイダに送信するステップとをさらに含む、請求項１記載の方法。
【請求項７】
前記サービス・プロバイダにおいて、前記サービス・プロバイダの認証ポリシを満たす前記認証証明書を含む認証応答を、前記アイデンティティ・プロバイダから受信するステップと、
前記サービス・プロバイダのセッション・データ内に、前記認証証明書を記録するステップとをさらに含む、請求項１記載の方法。
【請求項８】
フェデレーション内のプリンシパルを認証するためのシステムであって、
コンピュータ・プロセッサ及び当該コンピュータ・プロセッサに結合されたコンピュータ・メモリを備え、前記コンピュータ・メモリ内に配置したコンピュータ・プログラム命令が、
サービス・プロバイダの認証ポリシに従って、アイデンティティ・プロバイダにより前記プリンシパルを認証するステップと、
前記アイデンティティ・プロバイダのセッション・データ内に、前記サービス・プロバイダの認証ポリシを満たす認証証明書を記録するステップとをそれぞれ実行可能である、システム。
【請求項９】
前記アイデンティティ・プロバイダにおいて、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記サービス・プロバイダから受信するステップを実行可能なコンピュータ・プログラム命令をさらに含む、請求項８記載のシステム。
【請求項１０】
前記サービス・プロバイダにおいて、前記サービス・プロバイダの資源にアクセスするための前記プリンシパルの資源要求を受信するステップと、
前記サービス・プロバイダにより、前記資源要求の認証証明書が前記サービス・プロバイダの認証ポリシを満たさないことを決定するステップと、
前記サービス・プロバイダにより、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記アイデンティティ・プロバイダに送信するステップとをそれぞれ実行可能なコンピュータ・プログラム命令をさらに含む、請求項８記載のシステム。
【請求項１１】
前記サービス・プロバイダにおいて、前記サービス・プロバイダの認証ポリシを満たす前記認証証明書を含む認証応答を、前記アイデンティティ・プロバイダから受信するステップと、
前記サービス・プロバイダのセッション・データ内に、前記認証証明書を記録するステップとをそれぞれ実行可能なコンピュータ・プログラム命令をさらに含む、請求項８記載のシステム。
【請求項１２】
フェデレーション内のプリンシパルを認証するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が信号担持媒体上に配置され、前記コンピュータ・プログラム製品に含まれるコンピュータ・プログラム命令が、
サービス・プロバイダの認証ポリシに従って、アイデンティティ・プロバイダにより前記プリンシパルを認証するステップと、
前記アイデンティティ・プロバイダのセッション・データ内に、前記サービス・プロバイダの認証ポリシを満たす認証証明書を記録するステップとをそれぞれ実行可能である、コンピュータ・プログラム製品。
【請求項１３】
前記信号担持媒体が記録可能媒体から成る、請求項１２記載のコンピュータ・プログラム製品。
【請求項１４】
前記信号担持媒体が伝送媒体から成る、請求項１２記載のコンピュータ・プログラム製品。
【請求項１５】
アイデンティティ・プロバイダの認証ポリシに従って、前記アイデンティティ・プロバイダにより前記プリンシパルを認証するステップを実行可能なコンピュータ・プログラム命令をさらに含む、請求項１２記載のコンピュータ・プログラム製品。
【請求項１６】
前記アイデンティティ・プロバイダにおいて、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記サービス・プロバイダから受信するステップを実行可能なコンピュータ・プログラム命令をさらに含む、請求項１２記載のコンピュータ・プログラム製品。
【請求項１７】
前記プリンシパルを認証するステップが、前記アイデンティティ・プロバイダのアクセス・マネージャにより前記プリンシパルを認証するステップをさらに含む、請求項１２記載のコンピュータ・プログラム製品。
【請求項１８】
前記プリンシパルを認証するステップが、前記アイデンティティ・プロバイダの認証プロキシにより前記プリンシパルを認証するステップをさらに含む、請求項１２記載のコンピュータ・プログラム製品。
【請求項１９】
前記サービス・プロバイダにおいて、前記サービス・プロバイダの資源にアクセスするための前記プリンシパルの資源要求を受信するステップと、
前記サービス・プロバイダにより、前記資源要求の認証証明書が前記サービス・プロバイダの認証ポリシを満たさないことを決定するステップと、
前記サービス・プロバイダにより、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記アイデンティティ・プロバイダに送信するステップとをそれぞれ実行可能なコンピュータ・プログラム命令をさらに含む、請求項１２記載のコンピュータ・プログラム製品。
【請求項２０】
前記サービス・プロバイダにおいて、前記サービス・プロバイダの認証ポリシを満たす前記認証証明書を含む認証応答を、前記アイデンティティ・プロバイダから受信するステップと、
前記サービス・プロバイダのセッション・データ内に、前記認証証明書を記録するステップとをそれぞれ実行可能なコンピュータ・プログラム命令をさらに含む、請求項１２記載のコンピュータ・プログラム製品。
【請求項２１】
コンピュータ上で実行されるとき、請求項１ないし請求項７の全てのステップを実行するように適合されたプログラム・コード手段を含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理に係り、さらに詳細に説明すれば、フェデレーション内のプリンシパルを認証するための方法、システム及びコンピュータ・プログラム製品に係る。
【背景技術】
【０００２】
フェデレーションとは、管理されたセキュリティ空間の集まりである。フェデレーションがシングル・サインオンの機能性を実装する場合、１つのフェデレーテッド・セキュリティ空間内のアクセス・マネージャは、認証サービスのために他のセキュリティ空間内のアクセス・マネージャに依存することがある。現状では、フェデレーテッド・アクセス・マネージャの認証プロセスは、特定のアクセス・マネージャにとって既知の又は特定のアクセス・マネージャ上にインストールされる、既存の認証方法及びカスタム認証方法に制限されている。シングル・サインオン・セッション中のプリンシパルのための許可要件の変更、例えばステップアップ要件は、既存の認証方法で容易に達成することができる。なぜなら、アクセス・マネージャは、既存の認証方法を利用する方法を知っているのが普通であるからである。
【非特許文献１】ＩＢＭ社、マイクロソフト社及びベリサイン社によって策定された、"Web Services Security" (WS-Security) と題するウェブ・サービス仕様
【非特許文献２】ＩＢＭ社、マイクロソフト社、ベリサイン社、オープンネットワークス社、レイヤ７社、コンピュータ・アソシエーツ社、ＢＥＡ社、オブリックス社、リアクティビティ社、ＲＳＡセキュリティ社、ピング・アイデンティティ社及びアクショナル社によって策定された、"Web Services Trust Language" (WS-Trust)と題するウェブ・サービス仕様
【非特許文献３】ベリサイン社、マイクロソフト社、ソニックソフトウェア社、ＩＢＭ社及びＳＡＰ社によって共同で策定された、"Web Services Policy Framework" (WS-Policy) と題するウェブ・サービス仕様
【非特許文献４】マイクロソフト社、ベリサイン社、ＩＢＭ社及びＲＳＡセキュリティ社によって共同で策定された、"Web Services Security Policy Language" (WS-Security Policy) と題するウェブ・サービス仕様
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、フェデレーテッド環境内にある他のセキュリティ・ドメインの複数のカスタム方法のサポートは、容易に達成されない。なぜなら、現行のアクセス・マネージャは、他のセキュリティ空間又はドメイン内にあるエンティティのカスタム要件に従って認証を実行していないからである。現行のアクセス・マネージャによるアプローチは、認証プロセスに含まれる他のエンティティのカスタム認証方法を実装するのに十分な柔軟性を欠いている。 
【課題を解決するための手段】
【０００４】
開示された方法、システム及びコンピュータ・プログラム製品は、フェデレーション内のプリンシパルを認証するための追加の柔軟性を提供するために、サービス・プロバイダの認証ポリシに従って、アイデンティティ・プロバイダにより前記プリンシパルを認証し、前記アイデンティティ・プロバイダのセッション・データ内に、前記サービス・プロバイダの認証ポリシを満たす認証証明書を記録する。また、フェデレーション内のプリンシパルの認証は、アイデンティティ・プロバイダの認証ポリシに従って、前記アイデンティティ・プロバイダにより前記プリンシパルを認証することにより実行される。さらに、フェデレーション内のプリンシパルの認証は、前記アイデンティティ・プロバイダにおいて、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記サービス・プロバイダから受信することにより実行される。
【０００５】
さらに、フェデレーション内のプリンシパルの認証は、前記サービス・プロバイダにおいて、前記サービス・プロバイダの資源にアクセスするための前記プリンシパルの資源要求を受信し、前記サービス・プロバイダにより、前記資源要求の認証証明書が前記サービス・プロバイダの認証ポリシを満たさないことを決定し、前記サービス・プロバイダにより、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記アイデンティティ・プロバイダに送信することにより実行される。さらに、フェデレーション内のプリンシパルの認証は、前記サービス・プロバイダにおいて、前記サービス・プロバイダの認証ポリシを満たす認証証明書を含む認証応答を、前記アイデンティティ・プロバイダから受信し、前記サービス・プロバイダのセッション・データ内に、前記認証証明書を記録することにより実行される。
【０００６】
フェデレーション内のプリンシパルの認証は、前記アイデンティティ・プロバイダのアクセス・マネージャにより前記プリンシパルを認証することを含む。さらに、フェデレーション内のプリンシパルの認証は、前記アイデンティティ・プロバイダの認証プロキシにより前記プリンシパルを認証することを含む。
【発明を実施するための最良の形態】
【０００７】
以下、添付図面を参照して、本発明に従った、フェデレーション内のプリンシパルを認証するための方法、システム及びコンピュータ・プログラム製品を説明する。図１は、本発明に従った、フェデレーション内のプリンシパルを認証するためのシステムを示すネットワーク図である。一般に、図１のシステムは、フェデレーション内のプリンシパルを認証するために、サービス・プロバイダの認証ポリシに従って、アイデンティティ・プロバイダにより前記プリンシパルを認証し、前記アイデンティティ・プロバイダのセッション・データ内に、前記サービス・プロバイダの認証ポリシを満たす認証証明書を記録するように動作する。
【０００８】
フェデレーションとは、管理されたセキュリティ空間の集まりである。フェデレーションにおいて、資源要求の送信元及び宛先は、送信元からの特定セットのセキュリティ情報が宛先に関係する機密保護ポリシを満たすか否かを決定し且つこれに合意することができる。フェデレーション１００の管理されたセキュリティ空間は、論理境界１３０によって、プリンシパル１３２、アイデンティティ・プロバイダ１２６及びサービス・プロバイダ１２８へ分割され、その各々は、資源要求の送信元又は宛先となり得る。宛先の機密保護ポリシが送信元のセキュリティ情報によって満たされるか否かは、資源要求の送信元又は宛先とは別のエンティティによって決定することができる。例えば、資源要求の送信元をプリンシパル１３２とし、当該資源要求の宛先をサービス・プロバイダ１２８とする場合、アイデンティティ・プロバイダ１２６は、サービス・プロバイダ１２８の機密保護ポリシがプリンシパル１３２のセキュリティ情報によって満たされるか否かを決定することができる。
【０００９】
プリンシパルとは、セキュリティ権を付与されるか、又はセキュリティ若しくはアイデンティティに関するアサーションを行う、任意のエンティティである。例えば、プリンシパルは、ウェブ・サーバ上の銀行用サービスにアクセスするために、ウェブ・ブラウザを通してユーザ名及びパスワードを提供する個人とすることができる。プリンシパルとして行動することができるエンティティは、人間に制限されない。かかるエンティティには、他のウェブ・サービス上の資源にアクセスするために、X.５０９証明書を提供するウェブ・サービス・クライアントも含まれるからである。プリンシパル１３２は、アイデンティティ・プロバイダ１２６による認証のために、セキュリティ又はアイデンティティに関するアサーションを行う。
【００１０】
認証とは、保護資源へのアクセスを要求中のエンティティによってアサートされるアイデンティティを検証するプロセスである。エンティティのアイデンティティの検証は、当該エンティティによって提供されるセキュリティ情報を検証することを通して行われる。セキュリティ情報とは、エンティティによって提供される情報であって、当該エンティティのアイデンティティを他のエンティティのアイデンティティから区別する情報である。セキュリティ情報は、名前、社会保障番号、ユーザ名及びパスワード、ケルベロス・チケット、X.５０９証明書等を含むことができる。図１のアイデンティティ・プロバイダ１２６は、サービス・プロバイダ１２８又はアイデンティティ・プロバイダ１２６上の資源にアクセスすることを試みるときに、プリンシパル１３２によって提供されるセキュリティ情報を検証することにより、プリンシパル１３２のアイデンティティを検証する。
【００１１】
エンティティのセキュリティ情報は、エンティティのための認証証明書を作成するために使用することができる。認証証明書は、フェデレーションのセキュリティ空間におけるエンティティのセキュリティ特権を表す。認証証明書は、特定セッションのためのエンティティを記述し、当該セッションの継続時間にわたって有効である。認証証明書は、エンティティ名、任意のグループ・メンバシップ、プリンシパルを認証するために使用されるセキュリティ情報のタイプ及び他の任意のセキュリティ属性を含むことができる。
【００１２】
サービス・プロバイダとは、資源へのプリンシパルのアクセスを提供するエンティティである。サービス・プロバイダ１２８は、サービス・プロバイダの資源にアクセスするためのプリンシパルの要求を受信し、当該要求の認証証明書がサービス・プロバイダの認証ポリシを満たさないことを決定し、サービス・プロバイダの認証ポリシを指定する認証要求をアイデンティティ・プロバイダに送信し、サービス・プロバイダの認証ポリシを満たす認証証明書を含む認証応答をアイデンティティ・プロバイダから受信し、当該認証証明書をサービス・プロバイダのセッション・データ内に記録することができる。サービス・プロバイダは、例えば、年金口座情報へのアクセスを提供する投資信託会社、飛行及び発券データを提供する航空会社、カリキュラム情報を提供する大学等とすることができる。
【００１３】
アイデンティティ・プロバイダとは、プリンシパルのアイデンティティ情報を維持し、プリンシパルによってシングル・サインオン環境内のサービス・プロバイダに提供されるセキュリティ情報を検証するエンティティである。アイデンティティ・プロバイダ１２６は、アイデンティティ・プロバイダの認証ポリシに従ってプリンシパルを認証し、シングル・サインオン環境におけるサービス・プロバイダの認証ポリシを指定するサービス・プロバイダ１２８から認証要求を受信し、サービス・プロバイダの認証ポリシに従ってプリンシパルを認証し、アイデンティティ・プロバイダのセッション・データ内にサービス・プロバイダの認証ポリシを満たす認証証明書を記録することができる。アイデンティティ・プロバイダ１２６は、例えば、雇用者、大学、企業体又は政府機関等とすることができる。
【００１４】
シングル・サインオンとは、プリンシパルに課されるアクションの繰り返しという煩わしさを解消する認証シーケンスである。シングル・サインオンは、セキュリティ情報に基づいてプリンシパルを認証したアイデンティティ・プロバイダが、認証の証拠として、プリンシパルの認証証明書をサービス・プロバイダに提示することを可能にする。サービス・プロバイダは、アイデンティティ・プロバイダによって提供された認証証明書を使用することにより、プリンシパルを認証し、以前に供給されたセキュリティ情報についてプリンシパルにプロンプトを出すことなく、プリンシパルのためにローカルに有効なセッションを確立する。例えば、従業員がプリンシパルであり、雇用者がアイデンティティ・プロバイダであり、投資信託会社がサービス・プロバイダであるものとして、従業員が雇用者のウェブ・サイトを通して投資信託会社における４０１Ｋ口座にアクセスすることを試み、そして雇用者のウェブ・サイトがユーザ名及びパスワードを通して従業員の認証を完了している状況を考慮する。非シングル・サインオン環境では、従業員は、２回認証しなければならない。１回目の認証は、ユーザ名及びパスワードを提供することにより、雇用者のウェブ・サイトにアクセスするときに行われる。２回目の認証は、従業員がその４０１Ｋ口座にアクセスすることを投資信託会社が許可する前に、投資信託会社が従業員にユーザ名及びパスワードを再入力することを要求するときに行われる。しかし、シングル・サインオン環境では、従業員は、雇用者にユーザ名及びパスワードを提供することにより、１回だけ認証すればよい。なぜなら、投資信託会社は、雇用者による従業員の最初の認証に基づいて、従業員が４０１Ｋ口座にアクセスすることを許可できるからである。もし、投資信託会社が、ユーザ名及びパスワードの提供とは異なる認証方法（例えば、ケルベロス・チケット又はX.５０９証明書）を必要とすれば、従業員は、追加のセキュリティ情報を提供することが必要となろう。しかし、シングル・サインオン環境では、従業員は、そのユーザ名及びパスワードを提供することを再び要求されないであろう。
【００１５】
図１のシステムは、ネットワーク接続１１９、１２１及び１２３を通して相互接続する、広域ネットワーク（ＷＡＮ）１０１、１０３及び１０５を含む。図１のアーキテクチャのネットワーク接続は、例示であるに過ぎず、本発明の範囲を制限するものではない。実際、フェデレーション内のプリンシパルを認証するためのシステムは、ＬＡＮ、ＷＡＮ、イントラネット、インターネット、インターネット、ウェブ、ワールド・ワイド・ウェブ等として接続することができる。かかるネットワークは、データ処理システム全体の内部で相互に接続された種々の装置とコンピュータの間のデータ通信接続を提供するために使用することができる媒体である。
【００１６】
サーバ１０６、１０７、１０９、１１１及び１３５は、ゲートウェイ、ルータ又はＷＡＮ １０１、１０３及び１０５の間のブリッジを実装する。サーバ１０６及び１０７を含む幾つかの装置は、ＷＡＮ １０１に接続される。サーバ１０６は有線接続１１３を通してＷＡＮ １０１に接続し、サーバ１０７は有線接続１１５を通してＷＡＮ １０１に接続する。
【００１７】
サーバ１０９及び１１１を含む幾つかの装置は、ＷＡＮ １０３に接続される。サーバ１０９は有線接続１１７を通してＷＡＮ １０３に接続し、サーバ１１１は有線接続１２５を通してＷＡＮ １０３に接続する。
【００１８】
サーバ１３５、ワークステーション１０４、ＰＤＡ １１２、ラップトップ１２６、ネットワーク対応の携帯電話１１０及びパーソナル・コンピュータ１０２を含む幾つかの装置は、ＷＡＮ １０５に接続される。サーバ１３５は有線接続１２７を通してＷＡＮ １０５に接続し、ワークステーション１０４は有線接続１２２を通してＷＡＮ １０５に接続し、ＰＤＡ １１２は無線リンク１１４を通してＷＡＮ １０５に接続し、携帯電話１１０は無線リンク１１６を通してＷＡＮ １０５に接続し、ラップトップ１２６は無線リンク１１８を通してＷＡＮ １０５に接続し、パーソナル・コンピュータ１０２は有線接続１２４を通してＷＡＮ １０５に接続する。
【００１９】
図１のシステムでは、図示の装置（１０６、１０７、１１２、１０４、１０９、１１１、１１０、１２６、１０２、１３５）の各々は、プロセッサ及び当該プロセッサにデータを転送するように結合されたメモリを含む。アイデンティティ・プロバイダ１２６の各コンピュータ（１０６及び１０７）のメモリ及びサービス・プロバイダ１２８の各コンピュータ（１０９及び１１１）のメモリは、それぞれの内部に、認証プロキシを構成するコンピュータ・プログラム命令が配置されている。一般に、前記認証プロキシは、フェデレーション内のプリンシパルの認証を行うことができ、そうするために、サービス・プロバイダの認証ポリシに従って、アイデンティティ・プロバイダにより前記プリンシパルを認証し、前記アイデンティティ・プロバイダのセッション・データ内に、前記サービス・プロバイダの認証ポリシを満たす認証証明書を記録する。
【００２０】
また、前記認証プロキシは、アイデンティティ・プロバイダの認証ポリシに従って、前記アイデンティティ・プロバイダにより前記プリンシパルを認証することにより、フェデレーション内のプリンシパルの認証を行うことができる。さらに、前記認証プロキシは、前記アイデンティティ・プロバイダにおいて、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記サービス・プロバイダから受信することができる。また、前記認証プロキシは、前記サービス・プロバイダにおいて、前記サービス・プロバイダの資源にアクセスするための前記プリンシパルの資源要求を受信し、前記サービス・プロバイダにより、前記資源要求の認証証明書が前記サービス・プロバイダの認証ポリシを満たさないことを決定し、前記サービス・プロバイダにより、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記アイデンティティ・プロバイダに送信することができる。また、前記認証プロキシは、前記サービス・プロバイダにおいて、前記サービス・プロバイダの認証ポリシを満たす認証証明書を含む認証応答を、前記アイデンティティ・プロバイダから受信し、前記サービス・プロバイダのセッション・データ内に、前記認証証明書を記録することができる。
【００２１】
図１のシステムを構成するサーバ及び他の装置の配置は、例示であるに過ぎず、本発明の範囲を制限するものではない。本発明に従った有用なデータ処理システムは、図１に示していない追加のサーバ、ルータ、他の装置及びピア・ツー・ピア・アーキテクチャ等を含むことができる。かかるデータ処理システム内のネットワークは、ＴＣＰ（伝送制御プロトコル）、ＩＰ（インターネット・プロトコル）、ＨＴＴＰ（ハイパーテキスト転送プロトコル）、ＷＡＰ（無線アプリケーション・プロトコル）、ＨＤＴＰ（ハンドヘルド・デバイス転送プロトコル）等の、多数のデータ通信プロトコルをサポートすることができる。本発明の種々の実施形態は、図１に示すものに加えて、種々のハードウェア・プラットフォーム上で実装することができる。
【００２２】
図２は、本発明に従った、フェデレーション内のプリンシパルを認証するためのシステムのブロック図である。フェデレーション１００は、プリンシパル１３２、アイデンティティ・プロバイダ１２６及びサービス・プロバイダ１２８を含む。フェデレーション１００は、シングル・サインオン環境を実装する。
【００２３】
プリンシパル１３２は、ウェブ・ブラウザ２００を操作するユーザ２０１によって表すことができる。ウェブ・ブラウザとは、ウェブ・サーバによってホストされるか又はファイル・システム内に保持された文書であって、例えば、ハイパー・テキスト・マークアップ言語（ＨＴＭＬ）又はハンドヘルド・デバイス・マークアップ言語（ＨＤＭＬ）でフォーマットされた文書を表示するためのソフトウェア・アプリケーションである。ウェブ・ブラウザ２００は、要求の宛先変更（redirect）及び自動転送をサポートし、ハイパーテキスト転送プロトコル（ＨＴＴＰ）又は無線アプリケーション・プロトコル（ＷＡＰ）のような通信プロトコルを使用して、アイデンティティ・プロバイダ１２６又はサービス・プロバイダ１２８と通信することができる。本発明に従った、フェデレーション内のプリンシパルの認証に有用なウェブ・ブラウザは、例えば、インターネット・エクスプローラ、モジラ・ファイアフォックス（Mozilla Firefox）、オペラ、ネットスケープ・ナビゲータ、サファリ等を含む。
【００２４】
また、プリンシパル１３２は、ウェブ・サービス２０２によって表すことができる。ウェブ・サービスとは、ネットワークを介するマシン同士の相互運用をサポートするソフトウェア・アプリケーションである。ウェブ・サービス２０２が有する公開インタフェースは、ウェブ・サービス記述言語（ＷＳＤＬ）のようなマシン処理可能なフォーマットで記述されている。ウェブ・サービスのＷＳＤＬ記述は、メッセージ・フォーマット及び当該ウェブ・サービスと対話するための通信方法を指定する。ウェブ・サービスと対話するための最も一般的なメッセージ・フォーマットは、拡張可能マークアップ言語（ＸＭＬ）に基づくＳＯＡＰであり、最も一般的な通信方法は、ＨＴＴＰである。ウェブ・サービスと対話するための他のメッセージ・フォーマットは、ＸＭＬベースのリモート・プロシージャ・コール用のＪａｖａアプリケーション・プログラミング・インタフェース（ＪＡＸ−ＲＰＣ）、ＸＭＬリモート・プロシージャ・コール（ＸＭＬ−ＲＰＣ）等を含む。ウェブ・サービスと対話するための他の通信方法は、ファイル転送プロトコル（ＦＴＰ）、簡易メール転送プロトコル（ＳＭＴＰ）、eXtensible Messaging and Presence Protocol（ＸＭＰＰ）等を含む。
【００２５】
ウェブ・サービスは、ウェブ・サービス・メッセージを使用することにより、他のウェブ・サービスと通信する。ウェブ・サービス・メッセージとは、ウェブ・サービス相互間で交換される内蔵型のデータ・ユニットであり、ＷＳＤＬ記述で指定されるメッセージ・フォーマットに準拠するものである。一般に、ウェブ・サービス・メッセージは、ＳＯＡＰエンベロープ内に含まれる多目的インターネット・メール拡張仕様（ＭＩＭＥ）部分のような、ＸＭＬ及び他のウェブ関連コンテンツを含む。
【００２６】
アイデンティティ・プロバイダ１２６は資源２２０を含み、サービス・プロバイダ１２８は資源２４０を含む。資源２２０及び２４０は、情報の任意の集合体、当該情報の集合体にアクセスするための任意のコンピュータ・システム、又は当該システム上でデータ処理サービス若しくは計算を提供する任意のプログラム、プロセス若しくはスレッドである。最も一般的な資源はファイルである。しかし、かかる資源は、ＣＧＩ（コモン・ゲートウェイ・インタフェース）スクリプトの出力、Ｊａｖａサーブレット、動的なサーバ・ページ、Active Server Page、Java Server Page、幾つかの言語で利用可能な文書等の、動的に生成された照会結果も含むことができる。事実、かかる資源は、ファイルに多少類似しているが、本質的により一般的である。ファイルにより表される資源２２０及び２４０は、静的なウェブ・ページ、グラフィック・イメージ・ファイル、ビデオ・クリップ・ファイル、オーディオ・クリップ・ファイル等を含む。コンピュータ・システムにより表される資源２２０及び２４０は、ディスク・ドライブ、プリンタ、ディスプレイ、メモリ、プロセッサ等の、コンピュータ又はネットワークの任意のコンポーネントを含む。プログラム、プロセス又はスレッドにより表される資源２２０及び２４０は、ウェブ・サービスを含む。
【００２７】
アイデンティティ・プロバイダ１２６は、アクセス・マネージャ２１０を含む。アクセス・マネージャ２１０は、資源２２０へのアクセス又はアイデンティティ・プロバイダ１２６のシングル・サインオン・サービスを要求するプリンシパル１３２に対し、認証サービス、セッション管理サービス及び許可サービスを提供することにより、資源２２０へのアクセス及びアイデンティティ・マネージャ２１８のシングル・サインオン・サービスを制御するウェブ・サービスである。アクセス・マネージャ２１０は、プリンシパルによって提供されるセキュリティ情報に基づき、当該プリンシパルを認証し、アクセス・マネージャ２１０との当該プリンシパルのセッションのための認証証明書を作成する。アクセス・マネージャ２１０は、プリンシパルの認証証明書に基づき、プリンシパルがアイデンティティ・プロバイダ１２６の資源２２０にアクセスするか、又はアイデンティティマネージャ２１８とのシングル・サインオンに参加することを許可する。本発明に従ったフェデレーション内のプリンシパルの認証のために改良することができるアクセス・マネージャの例は、ＩＢＭ（商標）Ｔｉｖｏｌｉ（商標）アクセス・マネージャである。他のアクセス・マネージャ２１０も、本発明に従ったフェデレーション内のプリンシパルの認証のために改良することができる。
【００２８】
アクセス・マネージャ２１０は、セッション・マネージャ２１２を含む。セッション・マネージャ２１２は、セッション生成、セッション消滅、活動タイムアウト、セッション・データ更新等のタスクを実行することにより、セッション・データを管理する、ウェブ・サービスによって表すことができる。セッションとは、ソフトウェア・アプリケーション相互間の継続する接続であって、当該接続の確立中、維持中及び解放中に、各アプリケーションの間でデータの交換が行われるものである。セッションは、当該セッションを記述する接続情報として、セッション識別子、セッション参加者、セッション・キー、認証証明書、許可特権等を含むことができる。セッションは、交換中のデータ内に定義された構造を使用して、これを維持することができる。例えば、ウェブ・ブラウザ２００及びアクセス・マネージャ２１０の間のＨＴＴＰ交換は、プリンシパルのプリファレンス又はアクセス・マネージャ２１０への認証証明書のようなセッション・データを識別するための一意的なセッション識別子を格納する、ＨＴＴＰクッキーを含むことができる。図２の例では、セッションは、作成後に当該セッションの継続時間にわたってアイデンティティ・プロバイダ１２６内に格納される、データ構造により表される。セッション・マネージャ２１２は、プリンシパル１３２及びアイデンティティ・プロバイダ１２６の間のセッションのセッション・データを管理する。
【００２９】
また、アクセス・マネージャ２１０は、認証マネージャ２１４を含む。認証マネージャ２１４は、プリンシパル１３２がアイデンティティ・プロバイダ１２６の資源２２０にアクセスするとき、又はプリンシパル１３２がアイデンティティマネージャ２１８のシングル・サインオン・サービスに参加するとき、アイデンティティ・プロバイダの認証ポリシに従ってプリンシパル１３２を認証する、ウェブ・サービスによって表すことができる。認証マネージャ２１４は、プリンシパルによって提供されるセキュリティ情報をユーザ・レジストリ２２２内に格納済みのアイデンティティ関連情報と比較し、認証証明書を、セッション・マネージャ２１２を通して、プリンシパルのセッション・データ内に記録する。認証マネージャ２１０は、資源を要求する特定のプリンシパル、要求された資源２２０のタイプ、又はシングル・サインオンに参加するサービス・プロバイダの認証ポリシに依存して、異なるタイプの認証を必要とすることがある。例えば、認証マネージャ２１４は、プリンシパル１３２が電子メールのような資源にアクセスするとき、認証のためにユーザ名及びパスワードを必要とし、一方、プリンシパル１３２がシングル・サインオン環境における投資銀行用サービスのためのサービス・プロバイダにアクセスするとき、X.５０９証明書を必要とすることがある。
【００３０】
アイデンティティ・プロバイダ１２６は、ユーザ・レジストリ２２２を含む。ユーザ・レジストリ２２２は、プリンシパル１３２のアイデンティティ関連情報を格納するデータベースである。かかるアイデンティティ関連情報は、プリンシパル識別子、プリンシパル名、電子メール・アドレス、物理的なメール・アドレス、オフィス所在地、システム・プリファレンス、プリンシパルが属するセキュリティ・グループ、セキュリティ特権、プリンシパルの非対称公開鍵、プリンシパルの対称暗号鍵等を含むことができる。ユーザ・レジストリ２２２は、認証マネージャ２１４、認証プロキシ２１６及びアイデンティティマネージャ２１８によってアクセス可能である。図２の例では、認証マネージャ、認証プロキシ又はアイデンティティマネージャは、ライトウェイト・ディレクトリ・アクセス・プロトコル（ＬＤＡＰ）のようなディレクトリ・アクセス・プロトコルを使用して、ユーザ・レジストリ２２２にアクセスすることができる。
【００３１】
また、アイデンティティ・プロバイダ１２６は、アイデンティティマネージャ２１８を含む。アイデンティティマネージャ２１８は、アクセス・マネージャ２１０又は認証プロキシ２１６によりシングル・サインオンに参加することを許可されたプリンシパルのためのシングル・サインオン・サービスを実行する、ウェブ・サービスによって表すことができる。アイデンティティマネージャ２１８は、サービス・プロバイダ１２８及びプリンシパル１３２とウェブ・サービス・メッセージを交換することにより、シングル・サインオン・サービスをアイデンティティ・プロバイダ１２６内で実装することができる。アイデンティティマネージャ２１８は、サービス・プロバイダの認証ポリシを指定する認証要求を、プリンシパル１３２のシングル・サインオン認証を要求するサービス・プロバイダ１２８から受信する。アイデンティティマネージャ２１８が作成する認証応答は、プリンシパル１３２のシングル・サインオン認証を要求するサービス・プロバイダ１２８のために、アイデンティティ・プロバイダ１２６とのプリンシパルのセッションの認証証明書を含む。アイデンティティマネージャ２１８は、アクセス・マネージャ２１０とウェブ・サービス・メッセージを交換することにより、アイデンティティ・プロバイダとのプリンシパルの現セッションの認証証明書にアクセスすることができる。さらに、アイデンティティマネージャ２１８は、プリンシパルの他のアイデンティティ関連情報をユーザ・レジストリ２２２から獲得する。本発明に従ったフェデレーション内のプリンシパルの認証のために改良することができるアイデンティティマネージャの例は、ＩＢＭ（商標）Ｔｉｖｏｌｉ（商標）アイデンティティマネージャである。他のアイデンティティマネージャ２１８も、本発明に従ったフェデレーション内のプリンシパルの認証のために改良することができる。
【００３２】
アイデンティティ・プロバイダ１２６は、認証プロキシ２１６を含む。認証プロキシ２１６は、サービス・プロバイダの認証ポリシに従って、プリンシパル１３２のアイデンティティをアイデンティティマネージャ２１８に対し認証し、アイデンティティ・プロバイダ１２６のセッション・データ内に、サービス・プロバイダの認証ポリシを満たす認証証明書を記録する、ウェブ・サービスによって表すことができる。認証プロキシ２１６は、アクセス・マネージャ２１０を通してプリンシパルのセッション・データにアクセスすることにより、アイデンティティ・プロバイダ１２６とのプリンシパルの現セッションの認証証明書がサービス・プロバイダの認証ポリシを満たすか否かを決定する。もし、サービス・プロバイダの認証ポリシが満たされるならば、認証プロキシ２１６は、ウェブ・サービス・メッセージを通して、その旨をアイデンティティマネージャ２１８に通知する。一方、アイデンティティ・プロバイダ１２６とのプリンシパルの現セッションの認証証明書がサービス・プロバイダの認証ポリシを満たさなければ、認証プロキシ２１６は、当該セッションのための追加のセキュリティ情報を提供するようにプリンシパルに対しプロンプトを出し、ユーザ・レジストリ２２２内に格納済みのプリンシパルのアイデンティティ関連情報を使用して、当該追加のセキュリティ情報を検証し、サービス・プロバイダの認証ポリシを満たす追加の認証証明書を、アクセス・マネージャ２１０を通して、プリンシパルのセッション・データ内に記録し、次いでサービス・プロバイダの認証ポリシが満たされることを、ウェブ・サービス・メッセージを通して、アイデンティティマネージャ２１８に通知する。図２の例では、認証プロキシ２１６は、アクセス・マネージャ２１０とは別々に実装される。この例における別個のモジュール内に認証プロキシ２１６を実装することは、例示であるに過ぎず、本発明の範囲を制限するものではない。例えば、図２の認証プロキシ２１６は、アクセス・マネージャ２１０内、認証マネージャ２１４内又はアイデンティティ・プロバイダ１２６の他の任意のモジュール内に存在するモジュールとして実装することができる。
【００３３】
サービス・プロバイダ１２８は、アクセス・マネージャ２３０及びユーザ・レジストリ２４２を含む。アクセス・マネージャ２３０は、セッション・マネージャ２３２及び認証マネージャ２３４を含む。図２の例では、サービス・プロバイダ１２８のアクセス・マネージャ２３０、セッション・マネージャ２３２、認証マネージャ２３４及びユーザ・レジストリ２４２の全ては、アイデンティティ・プロバイダ１２６のアクセス・マネージャ２１０、セッション・マネージャ２１２、認証マネージャ２１４及びユーザ・レジストリ２４２と類似する構造を有しており、後者のそれぞれと同様に動作する。
【００３４】
また、サービス・プロバイダ１２８は、アイデンティティマネージャ２３８を含む。アイデンティティマネージャ２３８は、アクセス・マネージャ２３０によりシングル・サインオンに参加することを許可されたプリンシパル１３２のためのシングル・サインオン・サービスを実行する、ウェブ・サービスによって表すことができる。アイデンティティマネージャ２３８は、アイデンティティ・プロバイダ１２６及びプリンシパル１３２とセキュリティ・メッセージを交換することにより、シングル・サインオン・サービスをアイデンティティ・プロバイダ１２６内で実装する。アイデンティティマネージャ２３８は、サービス・プロバイダ１２８の資源２４０にアクセスするためのプリンシパル１３２の要求を受信し、プリンシパルのアイデンティティ関連情報をユーザ・レジストリ２４２からアクセスすることにより、当該要求の認証証明書がサービス・プロバイダの認証ポリシを満たすか否かを決定する。もし、当該要求のプリンシパルの認証証明書がサービス・プロバイダの認証ポリシを満たさなければ、アイデンティティマネージャ２３８は、サービス・プロバイダの認証ポリシを指定する認証要求を、アイデンティティ・プロバイダ１２６に送信する。また、アイデンティティマネージャ２３８は、サービス・プロバイダの認証ポリシを満たす認証証明書を含む認証応答を、アイデンティティ・プロバイダ１２６から受信し、当該プリンシパルのためのサービス・プロバイダのセッション・データ内に、当該認証証明書を記録する。
【００３５】
一般に、本発明に従ったフェデレーション内のプリンシパルの認証は、コンピュータで実装される。例えば、図１のシステムでは、全てのノード、サーバ及び通信装置は、ある程度まで少なくともコンピュータとして実装される。従って、図３は、本発明に従ったフェデレーション内のプリンシパルの認証に有用なコンピュータ１５２のブロック図を示す。コンピュータ１５２は、少なくとも１つのプロセッサ１５６と、システム・バス１６０を通してプロセッサ１５６及びコンピュータの他のコンポーネントに接続されたランダム・アクセス・メモリ（ＲＡＭ）１６８を含む。
【００３６】
ＲＡＭ１６８内には、認証プロキシ２１６、すなわちサービス・プロバイダの認証ポリシに従って、アイデンティティ・プロバイダによりプリンシパルを認証し、アイデンティティ・プロバイダのセッション・データ内に、サービス・プロバイダの認証ポリシを満たす認証証明書を記録することにより、フェデレーション内のプリンシパルを認証するためのコンピュータ・プログラム命令が格納される。また、ＲＡＭ １６８内には、アクセス・マネージャ２１０、すなわちアイデンティティ・プロバイダの認証ポリシに従って、アイデンティティ・プロバイダによりプリンシパルを認証するためのコンピュータ・プログラム命令が格納される。さらに、ＲＡＭ １６８内には、アイデンティティ・プロバイダのアイデンティティマネージャ２１８、すなわち前記アイデンティティ・プロバイダにおいて、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記サービス・プロバイダから受信するためのコンピュータ・プログラム命令が格納される。また、ＲＡＭ １６８内には、サービス・プロバイダのアイデンティティマネージャ２３８、すなわち前記サービス・プロバイダにおいて、前記サービス・プロバイダの資源にアクセスするための前記プリンシパルの資源要求を受信し、前記サービス・プロバイダにより、前記資源要求の認証証明書が前記サービス・プロバイダの認証ポリシを満たさないことを決定し、前記サービス・プロバイダにより、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記アイデンティティ・プロバイダに送信し、前記サービス・プロバイダにおいて、前記サービス・プロバイダの認証ポリシを満たす前記認証証明書を含む認証応答を、前記アイデンティティ・プロバイダから受信し、前記サービス・プロバイダのセッション・データ内に、前記認証証明書を記録するためのコンピュータ・プログラム命令が格納される。
【００３７】
さらに、ＲＡＭ １６８内には、オペレーティング・システム１５４が格納される。本発明に従ったコンピュータ内で有用なオペレーティング・システムは、ＵＮＩＸ（商標）、リナックス（商標）、マイクロソフト社のウインドウズＸＰ（商標）、ＡＩＸ（商標）、ＩＢＭ社のｉ５／ＯＳ（商標）等を含む。図３の例では、オペレーティング・システム１５４、認証プロキシ２１６、アクセス・マネージャ２１０、アイデンティティ・プロバイダのアイデンティティマネージャ２１８及びサービス・プロバイダのアイデンティティマネージャ２３８は、ＲＡＭ １６８内に格納されているが、一般に、かかるソフトウェアの多くのコンポーネントは不揮発性メモリ１６６内にも格納される。
【００３８】
不揮発性メモリ１６６は、システム・バス１６０を通して、プロセッサ１５６及びコンピュータ１５２の他のコンポーネントに結合される。不揮発性メモリ１６６は、ハード・ディスク・ドライブ１７０、光ディスク・ドライブ１７２、電気的消去再書込可能ＲＯＭ空間（ＥＥＰＲＯＭ又はフラッシュ・メモリ）１７４、ＲＡＭドライブ（図示せず）等として実装することができる。
【００３９】
１つ以上の入出力インタフェース・アダプタ１７８は、例えば、ソフトウェア・ドライバ及びコンピュータ・ハードウェアを通してユーザ指向の入出力を実装することにより、ディスプレイ装置１８０への出力や、キーボード及びマウスのようなユーザ入力装置１８１からのユーザ入力を制御する。
【００４０】
通信アダプタ１６７は、他のコンピュータ１８２とのデータ通信１８４を実装するためのものである。かかるデータ通信は、ＲＳ−２３２接続、ＵＳＢのような外部バス、ＩＰネットワークのようなデータ通信ネットワーク等を通して、シリアルに実行することができる。通信アダプタは、１つのコンピュータが、直接的に又はネットワークを通して、データ通信を他のコンピュータに送信するためのハードウェア・レベルのデータ通信を実装する。本発明に従った宛先の使用可能性を決定するのに有用な通信アダプタの例は、有線ダイアルアップ通信用のモデム、有線ネットワーク通信用のイーサネット（ＩＥＥＥ ８０２.３）アダプタ及び無線ネットワーク通信用の８０２.１１bアダプタを含む。
【００４１】
図４は、本発明に従ったフェデレーション内のプリンシパルを認証するための方法のフローチャートである。図４の方法は、プッシュ・ベースのプロトコルに基づいて、シングル・サインオン認証シーケンスを実装する。プッシュ・ベースのシングル・サインオンとは、アイデンティティ・プロバイダで認証済みのプリンシパルが、アイデンティティ・プロバイダのドメインを通して、例えば、アイデンティティ・プロバイダのポータル・ウェブ・ページを通して、サービス・プロバイダの資源にアクセスするときに、当該プリンシパルをサービス・プロバイダに宛先変更する、シングル・サインオン認証の実装である。プリンシパルがウェブ・サービス・クライアントである場合、アイデンティティ・プロバイダは、ＨＴＴＰ ３０２宛先変更を使用して、ウェブ・サービス・メッセージを当該プリンシパルを通してサービス・プロバイダに送信することにより、当該プリンシパルの認証証明書をサービス・プロバイダに提供することができる。プリンシパルがウェブ・ブラウザを使用する個人である場合、アイデンティティ・プロバイダは、サービス・プロバイダへのＨＴＴＰ ３０２宛先変更内にSecurity Association Markup Language（ＳＡＭＬ）アサーションへのポインタを含めることにより、当該プリンシパルの認証証明書をサービス・プロバイダに提供することができる。ＳＡＭＬは、標準化団体 Organization for the Advancement of Structured Information Standards (OASIS) の標準である。ＳＡＭＬは、２つの異なる機能性、すなわちアサーション及びプロトコルから成る。ＳＡＭＬアサーションがプリンシパルに関する情報を転送するために使用されるのに対し、ＳＡＭＬプロトコルはＳＡＭＬアサーションを交換する手段である。
【００４２】
図４の方法は、アイデンティティ・プロバイダの認証ポリシに従って、アイデンティティ・プロバイダによりプリンシパルを認証するステップ４０２と、アイデンティティ・プロバイダにおいて、サービス・プロバイダの認証ポリシを指定する認証要求を、サービス・プロバイダから受信するステップ４２０を含む。前記アイデンティティ・プロバイダの認証ポリシ４００は、資源へのアクセスを要求するか又はアイデンティティ・プロバイダとのシングル・サインオンに参加するプリンシパルを認証するためにアイデンティティ・プロバイダが必要とする、１セットのクレーム及び関連するセキュリティ情報である。アイデンティティ・プロバイダの認証ポリシは、プリンシパルがセキュリティ情報（ユーザ名及びパスワード、対称暗号鍵、X.５０９証明書、ケルベロス・チケット等）を提供することを必要とすることがある。アイデンティティ・プロバイダは、プリンシパルによって提供されるセキュリティ情報を使用して、アイデンティティ・プロバイダの認証ポリシを満たす認証証明書を作成する。
【００４３】
前記認証するステップ４０２は、アイデンティティ・プロバイダの認証ポリシ４００に従って、プリンシパルからセキュリティ情報４０１を受信するステップ４０３を含む。プリンシパルが個人によって表されるか、又はスレッド若しくはプロセスが個人を表す場合、前記受信するステップ４０３は、コンピュータ・スクリーン又は音声合成装置のようなユーザ・インタフェースを通して、アクセス・マネージャからプリンシパルに対し、セキュリティ情報４０１のためのプロンプトを出すことを含むことができる。また、プリンシパルがウェブ・サービス・クライアントによって表される場合、前記受信するステップ４０３は、アクセス・マネージャにより、アイデンティティ・プロバイダの認証ポリシを（例えば、ＳＯＡＰエンベロープ内に含まれるＸＭＬ表現として）ウェブ・サービス・メッセージ内に指定し、ＨＴＴＰのようなネットワーク・プロトコルを使用して、アクセス・マネージャにより、当該ウェブ・サービス・メッセージを当該プリンシパルに送信することを含むことができる。
【００４４】
また、前記認証するステップ４０２は、ユーザ・レジストリ２２２内に格納済みのアイデンティティ関連情報を使用して、プリンシパルのセキュリティ情報４０１を検証するステップ４０４を含む。ユーザ・レジストリ２２２は、プリンシパルのアイデンティティ関連情報を格納するデータベースである。かかるアイデンティティ関連情報は、プリンシパル識別子、プリンシパル名、電子メール・アドレス、物理的なメール・アドレス、オフィス所在地、システム・プリファレンス、プリンシパルが属するセキュリティ・グループ、セキュリティ特権、プリンシパルの非対称公開鍵、プリンシパルの対称暗号鍵等を含むことができる。前記検証するステップ４０４は、プリンシパルによって提供されたパスワードを認証シーケンス内でハッシュし、当該ハッシュされたパスワードをユーザ・レジストリ２２２内に以前に格納済みのプリンシパルのパスワードのハッシュと比較することを含むことができる。また、前記検証するステップ４０４は、メッセージがプリンシパルの非対称秘密鍵を使用してデジタル署名されている場合は、ユーザ・レジストリ２２２内に格納済みのプリンシパルの非対称公開鍵を使用して、当該メッセージを復号することを含むことができる。もし、プリンシパルのセキュリティ情報４０１が検証されなければ、アイデンティティ・プロバイダのアクセス・マネージャは、ＨＴＴＰ ４０１応答を戻すことにより、プリンシパルのセキュリティ情報に基づき、当該アイデンティティ・プロバイダへのアクセスが拒否されたことを指示することができる。
【００４５】
また、図４の方法は、プリンシパルのセキュリティ情報が検証される場合に、前記アイデンティティ・プロバイダの認証ポリシ４００を満たす認証証明書４１４を、アイデンティティ・プロバイダのセッション・データ４１０内に記録するステップ４０６を含む。当該記録するステップ４０６は、（プリンシパル識別子、プリンシパルが属するセキュリティ・グループ、セキュリティ属性等の）ユーザ・レジストリ２２２内に格納済みの識別関連データから認証証明書４１４を作成することにより、これを実行することができる。
【００４６】
図４の方法は、アイデンティティ・プロバイダとのプリンシパルの初期認証シーケンスを実装するので、当該プリンシパルについては当該アイデンティティ・プロバイダとの以前のセッションは存在しない。従って、前記記録するステップ４０６は、アイデンティティ・プロバイダとのプリンシパルのセッションを作成することを含むことができる。また、前記記録するステップ４０６は、アイデンティティ・プロバイダとのプリンシパルのセッション・データ４１０内に、認証証明書４１４を格納することを含むことができる。この例では、アイデンティティ・プロバイダとのプリンシパルのセッション・データは、セッション識別子４１２をプリンシパル識別子４１３及び当該セッションのための認証証明書４１４と関連付ける、データ構造４１０として表される。認証証明書４１４は、セッションの継続時間にわたって、プリンシパルのセキュリティ特権を表す。
【００４７】
サービス・プロバイダの認証ポリシに従って認証が実行される、図４の方法に従ったプッシュ・ベースのシングル・サインオン環境内では、サービス・プロバイダは、プリンシパルを認証するために、前記アイデンティティ・プロバイダにより提供される認証証明書とは異なる認証証明書を必要とすることがある。サービス・プロバイダは、追加のセキュリティ情報についてプリンシパルに直接的にプロンプトを出すのではなく、当該サービス・プロバイダの認証ポリシを満たす認証証明書をアイデンティティ・プロバイダから要求する。
【００４８】
また、図４の方法は、アイデンティティ・プロバイダにおいて、サービス・プロバイダの認証ポリシ４２４を指定する認証要求４２２を、当該サービス・プロバイダから受信するステップ４２０を含む。当該受信するステップ４２０は、アイデンティティマネージャのＷＳＤＬ記述内で指定済みのウェブ・サービス・エンドポイントにおけるアイデンティティ・プロバイダのアイデンティティマネージャにおいて、認証要求４２２を受信することにより、これを実行することができる。この認証要求４２２は、ＳＯＡＰエンベロープ内に置かれるサービス・プロバイダの認証ポリシのＸＭＬ表現を含む、ウェブ・サービス・メッセージとすることができる。
【００４９】
図５は、本発明に従ったフェデレーション内のプリンシパルを認証するための他の方法のフローチャートである。図５の方法は、アイデンティティ・プロバイダにおいて、サービス・プロバイダの認証ポリシを指定する認証要求を、当該サービス・プロバイダから受信するステップ４２０と、サービス・プロバイダの認証ポリシに従って、アイデンティティ・プロバイダによりプリンシパルを認証するステップ４３０と、前記アイデンティティ・プロバイダのセッション・データ内に、前記サービス・プロバイダの認証ポリシを満たす認証証明書を記録するステップ４５０とを含む。
【００５０】
前記受信するステップ４２０が生じるのは、図４を参照して既に説明したように、プリンシパルがプッシュ・ベースのシングル・サインオンに参加する場合や、プリンシパルがプル・ベースのシングル・サインオンに参加する場合である。プル・ベースのシングル・サインオンとは、例えば、サービス・プロバイダのＵＲＬを打ち込むか、又はウェブ・ブラウザ内でブックマークを使用することにより、プリンシパルがサービス・プロバイダ上の資源に直接的にアクセスすることを試みるときに、プリンシパルをシングル・サインオンのためにアイデンティティ・プロバイダに宛先変更する、シングル・サインオン認証の実装である。すなわち、当該プリンシパルは、アイデンティティ・プロバイダを通して（例えば、アイデンティティ・プロバイダのウェブ・サーバ上にあるウェブ・ページ・ポータルを通して）、サービス・プロバイダの資源にアクセスしない。これに対し、プル・ベースのシングル・サインオン環境では、プリンシパルがサービス・プロバイダの資源へのアクセスを要求するとき、当該サービス・プロバイダは、アイデンティティ・プロバイダから認証証明書を要求するであろう。図５の認証要求４２２は、サービス・プロバイダの認証ポリシ４２４を指定する。
【００５１】
前記認証するステップ４３０は、サービス・プロバイダの認証ポリシが、アイデンティティ・プロバイダとのプリンシパルのセッション・データ４１０内にある現在の認証証明書４１４によって満たされるか否かを決定するステップ４３２により実行することができる。この例では、アイデンティティ・プロバイダとのプリンシパルのセッション・データは、セッション識別子４１２をプリンシパル識別子４１３及び当該セッションのための認証証明書４１４と関連付ける、データ構造４１０として表される。認証証明書４１４は、セッションの継続時間にわたって、プリンシパルのセキュリティ特権を表す。前記決定するステップ４３２は、アイデンティティ・プロバイダのアイデンティティマネージャによって実行することができる。セッション・データ４１０は、アイデンティティ・プロバイダのアイデンティティマネージャにより、アイデンティティ・プロバイダのアクセス・マネージャから獲得することができる。
【００５２】
もし、サービス・プロバイダの認証ポリシが、アイデンティティ・プロバイダとのプリンシパルのセッション・データ４１０内にある現在の認証証明書４１４により満たされるならば、前記認証するステップ４３０は、サービス・プロバイダの認証ポリシを満たす認証証明書４４０を含む認証応答４６０を、アイデンティティ・プロバイダにより当該サービス・プロバイダに送信するステップ４３８を含む。当該送信するステップ４３８は、アイデンティティ・プロバイダとのプリンシパルのセッション・データ４１０から認証証明書４１４を読み取ることを含むことができる。また、当該送信するステップ４３８は、ＨＴＴＰ ３０２宛先変更を使用して、ウェブ・サービス・メッセージを、アイデンティティ・プロバイダのアイデンティティマネージャからプリンシパルを通してサービス・プロバイダに送信することを含むことができる。
【００５３】
認証応答４６０は、サービス・プロバイダの認証ポリシを満たす認証証明書４４０を含む。認証応答４６０は、ＳＯＡＰエンベロープ内に含まれるＸＭＬベースのウェブ・サービス・メッセージによって表すことができる。認証証明書４４０は、アイデンティティ・プロバイダとのシングル・サインオン・セッションの継続時間にわたって、プリンシパルのセキュリティ特権を表す。認証証明書４４０は、ユーザ識別子４４２を、セッション識別子４４３、ユーザ・グループ識別子４４４及び許可属性識別子４４６に関連付ける。認証証明書４４０は、セキュリティ・トークンによって表すことができる。かかるセキュリティ・トークンは、ＩＢＭ社、マイクロソフト社及びベリサイン社によって策定された、"Web Services Security" (WS-Security) と題するウェブ・サービス仕様、又はＩＢＭ社、マイクロソフト社、ベリサイン社、オープンネットワークス社、レイヤ７社、コンピュータ・アソシエーツ社、ＢＥＡ社、オブリックス社、リアクティビティ社、ＲＳＡセキュリティ社、ピング・アイデンティティ社及びアクショナル社によって策定された、"Web Services Trust Language" (WS-Trust) と題するウェブ・サービス仕様に記載のセキュリティ・トークンとすることができる。
【００５４】
もし、サービス・プロバイダの認証ポリシが、アイデンティティ・プロバイダとのプリンシパルのセッション・データ４１０内にある現在の認証証明書４１４によって満たされなければ、前記認証するステップ４３０は、アイデンティティ・プロバイダのアクセス・マネージャによりプリンシパルを認証するステップ４３４か、又はアイデンティティ・プロバイダの認証プロキシによりプリンシパルを認証するステップ４３６を含む。後者の認証するステップ４３６は、サービス・プロバイダの認証ポリシを満たすセキュリティ情報を受信することにより実行することができる。
【００５５】
また、前記認証するステップ４３６は、ユーザ・レジストリ内に格納済みのアイデンティティ関連情報でプリンシパルのセキュリティ情報を検証することにより、これを実行することができる。かかるセキュリティ情報の検証は、プリンシパルによって提供されたパスワードを認証シーケンス内でハッシュし、当該ハッシュされたパスワードをユーザ・レジストリ内に以前に格納済みのプリンシパルのパスワードのハッシュと比較することを含むことができる。また、かかるセキュリティ情報の検証は、メッセージがプリンシパルの非対称秘密鍵を使用してデジタル署名されている場合は、ユーザ・レジストリ内に格納済みのプリンシパルの非対称公開鍵を使用して、当該メッセージを復号することを含むことができる。
【００５６】
前記認証するステップ４３４は、前記認証するステップ４３６と同様の態様で作用する。また、前記認証するステップ４３４は、サービス・プロバイダの認証ポリシを満たすセキュリティ情報を受信し、プリンシパルのセキュリティ情報をユーザ・レジストリ内に格納済みのアイデンティティ関連情報で検証することにより、これを実行することができる。
【００５７】
もし、サービス・プロバイダの認証ポリシが、アイデンティティ・プロバイダとのプリンシパルのセッション・データ４１０内にある現在の認証証明書４１４によって満たされなければ、図５の方法は、アイデンティティ・プロバイダのセッション・データ４１０内に、サービス・プロバイダの認証ポリシを満たす認証証明書４４０を記録するステップ４５０に継続する。当該プリンシパルについては当該アイデンティティ・プロバイダとの以前のセッションが存在しないことがあるので、図５の方法は、アイデンティティ・プロバイダとのプリンシパルの初期認証シーケンス中に生じることがある。従って、当該記録するステップ４５０は、アイデンティティ・プロバイダとのプリンシパルのセッションを作成することを含むことができる。また、当該記録するステップ４５０は、認証証明書４４０を、現在の認証証明書４１４として、アイデンティティ・プロバイダとのプリンシパルのセッション・データ４１０内に格納することを含むことができる。
【００５８】
この例では、アイデンティティ・プロバイダとのプリンシパルのセッション・データは、セッション識別子４１２をプリンシパル識別子４１３及び当該セッションのための認証証明書４１４と関連付ける、データ構造４１０として表される。認証証明書４１４は、セッションの継続時間にわたって、プリンシパルのセキュリティ特権を表す。
【００５９】
図５の方法は、サービス・プロバイダの認証ポリシに従って、アイデンティティ・プロバイダによりプリンシパルを認証するステップ４３０に継続する。そのため、当該サービス・プロバイダの認証ポリシを満たす認証証明書４４０を含む認証応答４６０を、アイデンティティ・プロバイダによりサービス・プロバイダに送信するステップ４３８が実行される。前記送信するステップ４３８は、図５を参照して既に説明したのと同様の態様で作用する。
【００６０】
図６は、本発明に従ったフェデレーション内のプリンシパルを認証するための他の方法のフローチャートである。図６の方法は、サービス・プロバイダにおいて、サービス・プロバイダの資源にアクセスするためのプリンシパルの資源要求５００を受信するステップ５０２と、サービス・プロバイダにより、当該資源要求の認証証明書が前記サービス・プロバイダの認証ポリシ５０６を満たさないことを決定するステップ５０４と、サービス・プロバイダにより、当該サービス・プロバイダの認証ポリシを指定する認証要求を、アイデンティティ・プロバイダに送信するステップ５１０と、サービス・プロバイダにおいて、当該サービス・プロバイダの認証ポリシを満たす認証証明書を含む認証応答を、アイデンティティ・プロバイダから受信するステップ５２０と、サービス・プロバイダのセッション・データ内に、認証証明書を記録するステップ５３０とを含む。
【００６１】
プリンシパルがウェブ・サービス・クライアントによって表される場合、前記受信するステップ５０２は、アクセス・マネージャのＷＳＤＬ記述内で指定済みのウェブ・サービス・エンドポイントにおけるサービス・プロバイダのアクセス・マネージャへのウェブ・サービス・メッセージにおいて、セキュリティ情報を受信することにより、これを実行することができる。また、プリンシパルがウェブ・ブラウザを操作中の個人によって表される場合、前記受信するステップ５０２は、コンピュータ・スクリーン又は音声合成装置のようなユーザ・インタフェースを通して、プリンシパルにセキュリティ情報４０１のためのプロンプトを出すことにより、これを実行することができる。
【００６２】
また、ウェブ・サービス・クライアント又はウェブ・ブラウザを操作する個人の何れかからセキュリティ情報を受信した後、前記受信するステップ５０２は、ユーザ・レジストリ内のアイデンティティ関連データから認証証明書５０３を作成することにより、これを実行することができる。かかるアイデンティティ関連データは、プリンシパル識別子、プリンシパルが属するセキュリティ・グループ、セキュリティ属性等を含むことができる。さらに、前記受信するステップ５０２は、アクセス・マネージャにより、プリンシパルの認証証明書５０３を含む資源要求５００をサービス・プロバイダのアイデンティティマネージャに送信することにより、これを実行することができる。
【００６３】
資源要求５００は、プリンシパルの認証証明書５０３を含む。資源要求５００は、ＳＯＡＰエンベロープ内に含まれる、ＸＭＬベースのウェブ・サービス・メッセージによって表すことができる。認証証明書５０３は、アイデンティティ・プロバイダとのプリンシパルのセッションの継続時間にわたって、プリンシパルのセキュリティ特権を表す。認証証明書５０３は、例えば、"WS-Security" 及び "WS-Trust" と題する前掲のウェブ・サービス仕様に記載のセキュリティ・トークンによって表すことができる。
【００６４】
前述のように、前記決定するステップ５０４は、サービス・プロバイダにより、当該資源要求の認証証明書が前記サービス・プロバイダの認証ポリシ５０６を満たさないことを決定するというものである。当該決定するステップ５０４は、資源要求５００の認証証明書５０３内で指定されるようなプリンシパルを認証するのに使用されるセキュリティ情報のタイプを、ウェブ・サービスのＷＳＤＬ記述内で指定済みのサービス・プロバイダの認証ポリシ５０６によって必要とされるセキュリティ情報のタイプと比較することにより、これを実行することができる。図６の方法では、資源要求５００の認証証明書５０３がサービス・プロバイダの認証ポリシ５０６を満たすか否かは、当該サービス・プロバイダ内のアイデンティティマネージャにより、決定することができる。
【００６５】
サービス・プロバイダの認証ポリシ５０６は、資源にアクセスすることを要求するか又はアイデンティティ・プロバイダとのシングル・サインオンに参加するプリンシパルを認証するためにサービス・プロバイダによって必要とされる、１セットのクレーム及び関連するセキュリティ情報である。サービス・プロバイダの認証ポリシは、プリンシパルがセキュリティ情報（ユーザ名及びパスワード、対称暗号鍵、X.５０９証明書、ケルベロス・チケット等）を提供することを必要とすることがある。サービス・プロバイダは、プリンシパルによって提供されるセキュリティ情報を使用して、サービス・プロバイダの認証ポリシを満たす認証証明書を作成する。
【００６６】
前述のように、前記送信するステップ５１０は、サービス・プロバイダにより、当該サービス・プロバイダの認証ポリシを指定する認証要求を、アイデンティティ・プロバイダに送信するというものである。当該送信するステップ５１０が実行されるのは、資源要求５００の認証証明書５０３がサービス・プロバイダの認証ポリシ５０６を満たさない場合である。当該送信するステップ５１０は、サービス・プロバイダのアイデンティティマネージャ内に、ウェブ・サービス・メッセージを作成することにより、これを実行することができる。さらに、当該送信するステップ５１０は、ＨＴＴＰ ３０２宛先変更を使用して、ウェブ・サービス・メッセージを、アイデンティティ・プロバイダのアイデンティティマネージャからプリンシパルを通してサービス・プロバイダに送信することにより、これを実行することができる。
【００６７】
図６の認証要求４２２は、サービス・プロバイダの認証ポリシ４２４を指定する。認証応答４６０は、ＳＯＡＰエンベロープ内に含まれるＸＭＬベースのウェブ・サービス・メッセージによって表すことができる。図６の指定されたサービス・プロバイダの認証ポリシ４２４は、資源にアクセスすることを要求するか又はアイデンティティ・プロバイダとのシングル・サインオンに参加するプリンシパルを認証するためにサービス・プロバイダによって必要とされる、１セットのクレーム及び関連するセキュリティ情報である。サービス・プロバイダの認証ポリシは、プリンシパルがセキュリティ情報（ユーザ名及びパスワード、対称暗号鍵、X.５０９証明書、ケルベロス・チケット等）を提供することを必要とすることがある。サービス・プロバイダは、プリンシパルによって提供されるセキュリティ情報を使用して、サービス・プロバイダの認証ポリシを満たす認証証明書を作成する。
【００６８】
前述のように、前記受信するステップ５２０は、サービス・プロバイダにおいて、当該サービス・プロバイダの認証ポリシ５０６を満たす認証証明書４４０を含む認証応答４６０を、アイデンティティ・プロバイダから受信するというものである。当該受信するステップ５２０が実行されるのは、資源要求５００の認証証明書５０３がサービス・プロバイダの認証ポリシ５０６を満たさない場合である。当該受信するステップ５２０は、アイデンティティマネージャのＷＳＤＬ記述内で指定済みのウェブ・サービスエンドポイントにおけるサービス・プロバイダのアイデンティティマネージャにおいて、ウェブ・サービス・メッセージを受信することにより、これを実行することができる。
【００６９】
図６の認証応答４６０は、サービス・プロバイダの認証ポリシを満たす認証証明書４４０を含む。認証応答４６０は、ＳＯＡＰエンベロープ内に含まれるＸＭＬベースのウェブ・サービス・メッセージによって表すことができる。図６の認証証明書４４０は、アイデンティティ・プロバイダとのシングル・サインオン・セッションの継続時間にわたって、プリンシパルのセキュリティ特権を表す。図６の認証証明書４４０は、例えば、"WS-Security" 及び "WS-Trust" と題する前掲のウェブ・サービス仕様に記載のセキュリティ・トークンによって表すことができる。
【００７０】
前述のように、前記記録するステップ５３０は、サービス・プロバイダのセッション・データ内に、認証証明書を記録するというものである。当該プリンシパルについては当該アイデンティティ・プロバイダとの以前のセッションが存在しないことがあるので、図６の方法は、サービス・プロバイダとのプリンシパルの初期認証シーケンス中に生じることがある。従って、当該記録するステップ５３０は、サービス・プロバイダとのプリンシパルのセッションを作成することを含むことができる。また、当該記録するステップ５３０は、サービス・プロバイダとのプリンシパルのセッション・データ５４０内に、認証証明書５４４を格納することを含むことができる。この例では、サービス・プロバイダとのプリンシパルのセッション・データは、セッション識別子５４２をプリンシパル識別子５４３及び当該セッションのための認証証明書５４４に関連付ける、データ構造５４０として表される。認証証明書５４４は、セッションの継続時間にわたって、プリンシパルのセキュリティ特権を表す。
【００７１】
図７及び図８は、本発明に従ったフェデレーションのプリンシパルを認証するための方法の呼び出しシーケンス図である。図８は、図７で開始する呼び出しシーケンス図の継続部分である。図７の例では、本発明に従ったフェデレーション内のプリンシパルの認証は、プリンシパル１３２、アイデンティティ・プロバイダ１２６及びサービス・プロバイダ１２８を含む。プリンシパル１３２は、プル・ベースのシングル・サインオン環境でウェブ・ブラウザを操作する個人として表される。アイデンティティ・プロバイダ１２６は、アクセス・マネージャ２１０、アイデンティティマネージャ２１８及び認証プロキシ２１６を含む。サービス・プロバイダ１２８は、アクセス・マネージャ２３０、アイデンティティマネージャ２３８及び資源２４０を含む。アクセス・マネージャ２３０は、資源２４０のための許可サービスを提供する。
【００７２】
プリンシパル１３２は、資源要求６００をサービス・プロバイダ１２８のアクセス・マネージャ２３０に送信する。資源要求６００は、資源２４０にアクセスするための要求である。図７の例に従った資源要求６００は、特定のユニフォーム・リソース・ロケータ（ＵＲＬ）のためのＨＴＴＰ要求によって表すことができる。ＵＲＬとは、文書又はイメージのような資源のための標準化されたアドレス名レイアウトである。本発明に従ったＨＴＴＰ要求は、例えば、「http://www.serviceprovアイデンティティer.com/resource」を含むことができる。
【００７３】
アクセス・マネージャ２３０は、プリンシパルがシングル・サインオンに参加することを許可する（６０２）。全てのプリンシパルがサービス・プロバイダ１２８とのシングル・サインオンに参加することを許可されるとは限らない。従って、アクセス・マネージャ２３０は、当該プリンシパルによって提供されるか又はユーザ・レジストリ内でアクセスされるアイデンティティ関連情報に基づいて、プリンシパルがシングル・サインオンに参加することを許可すべきか否かを決定する（６０２）。例えば、従業員がプリンシパルであり、雇用者がアイデンティティ・プロバイダであり、投資信託会社がサービス・プロバイダであるものとして、従業員が雇用者を通して投資信託会社のウェブ・サイトにおける４０１Ｋ口座にアクセスすることを試みる状況を考慮する。投資信託会社は、雇用者に対し、従業員のシングル・サインオンのための一意的なウェブ・サイトを発行することができる。 雇用者に特有の投資信託会社のウェブ・ページにアクセスする個人は、当該個人がシングル・サインオンに参加することを許可された従業員であることをアサートする。
【００７４】
アクセス・マネージャ２３０は、プリンシパル１３２にシングル・サインオン要求６０４を送信する。シングル・サインオン要求６０４は、プリンシパル１３２のためのシングル・サインオン・サービスを提供するように、アクセス・マネージャ２３０によるアイデンティティマネージャ２３８への要求である。シングル・サインオン要求６０４は、プリンシパル１３２のアイデンティティ関連情報を保持するＸＭＬベースのウェブ・サービス・メッセージによって表すことができる。
【００７５】
プリンシパル１３２は、シングル・サインオン要求６０６をアイデンティティマネージャ２３８に送信する。シングル・サインオン要求６０６は、シングル・サインオン要求６０４のＨＴＴＰ ３０２宛先変更である。ＨＴＴＰ ３０２宛先変更は、３０２のステータス・コードを有するＨＴＴＰ応答であって、ウェブ資源を検索するようにウェブ・ブラウザを一時的に他のロケーションに行かせるものである。
【００７６】
シングル・サインオン要求６０６を受信した後、アイデンティティマネージャ２３８は、プリンシパル１３２のためのシングル・サインオンを提供するためにアイデンティティ・プロバイダ１２６を特定する（６１０）。最初、アイデンティティマネージャ２３８は、リストからアイデンティティ・プロバイダ１２６を選択するようにプリンシパル１３２にプロンプトを出すことにより、プリンシパルのアイデンティティ・プロバイダを特定することができる（６１０）。その後、サービス・プロバイダ１２８は、アイデンティティ・プロバイダ１２６の自動選択を容易にするために、プリンシパル１３２とのクッキーを格納することができる。また、アイデンティティマネージャ２３８は、サービス・プロバイダ１２８との関係を確立済みのアイデンティティ・プロバイダを保持するデータベース内のアイデンティティ・プロバイダを検索することにより、プリンシパルのアイデンティティ・プロバイダを特定することができる（６１０）。
【００７７】
また、アイデンティティマネージャ２３８は、サービス・プロバイダの認証ポリシを選択する（６１２）。かかる選択（６１２）は、プリンシパルのための認証証明書を提供するアイデンティティ・プロバイダ１２６に基づいて、認証ポリシを選択することにより実行することができる。サービス・プロバイダのアイデンティティマネージャは、異なるアイデンティティ・プロバイダについて異なる認証ポリシを必要とすることがある。なぜなら、サービス・プロバイダは、或るアイデンティティ・プロバイダを他のアイデンティティ・プロバイダよりも一層信頼することがあるからである。アイデンティティマネージャ２３８は、サービス・プロバイダ１２８との関係を確立済みのアイデンティティ・プロバイダを保持するデータベースから、特定のサービス・プロバイダについて必要とされる認証ポリシを獲得することができる。サービス・プロバイダの認証ポリシは、資源へのアクセスを要求するか又はアイデンティティ・プロバイダとのシングル・サインオンに参加するプリンシパルを認証するためにサービス・プロバイダが必要とする、１セットのクレーム及び関連するセキュリティ情報である。サービス・プロバイダの認証ポリシは、プリンシパルがセキュリティ情報（ユーザ名及びパスワード、対称暗号鍵、X.５０９証明書、ケルベロス・チケット等）を提供することを必要とすることがある。サービス・プロバイダは、プリンシパルによって提供されるセキュリティ情報を使用して、サービス・プロバイダの認証ポリシを満たす認証証明書を作成する。
【００７８】
アイデンティティマネージャ２３８は、サービス・プロバイダの認証ポリシを指定する認証要求を作成する（６１４）。かかる作成（６１４）は、ベリサイン社、マイクロソフト社、ソニックソフトウェア社、ＩＢＭ社及びＳＡＰ社によって共同で策定された、"Web Services Policy Framework" (WS-Policy) と題するウェブ・サービス仕様、又はマイクロソフト社、ベリサイン社、ＩＢＭ社及びＲＳＡセキュリティ社によって共同で策定された、"Web Services Security Policy Language" (WS-Security Policy) と題するウェブ・サービス仕様に従って、ウェブ・サービス・メッセージ内にあるサービス・プロバイダの認証ポリシのＸＭＬ表現をエンコードすることを含むことができる。
【００７９】
アイデンティティマネージャ２３８は、認証要求６１５をプリンシパル１３２に送信する。認証要求６１５は、サービス・プロバイダの認証ポリシを指定する。プリンシパル１３２は、認証要求６１７をアイデンティティマネージャ２１８に送信する。認証要求６１７は、認証要求６１５のＨＴＴＰ ３０２宛先変更である。認証要求６１５及び６１７の各々は、ＳＯＡＰエンベロープ内に含まれるＸＭＬベースのウェブ・サービス・メッセージによって表すことができる。
【００８０】
認証要求６１７を受信した後に、アイデンティティマネージャ２１８は、認証要求を検証し（６１６）、サービス・プロバイダの認証ポリシを抽出する（６１８）。認証要求の検証（６１６）は、当該認証要求のデジタル署名がサービス・プロバイダ１２８のアイデンティティマネージャ２３８のデジタル署名であることを検証することにより、実装することができる。アイデンティティマネージャ２１８は、アイデンティティマネージャ２３８の非対称公開鍵を使用して、デジタル署名を復号することにより、認証要求のデジタル署名を検証することができる。サービス・プロバイダの認証ポリシは、ウェブ・サービス・メッセージから当該認証ポリシのＸＭＬ表現を読み取ることにより、抽出することができる。
【００８１】
アイデンティティマネージャ２１８は、サービス・プロバイダの認証ポリシ６２０をプリンシパル１３２に送信する。プリンシパル１３２は、サービス・プロバイダの認証ポリシ６２２を認証プロキシ２１６に送信する。サービス・プロバイダの認証ポリシ６２２は、サービス・プロバイダの認証ポリシ６２０のＨＴＴＰ ３０２宛先変更である。サービス・プロバイダの認証ポリシ６２０及び６２２は、ＳＯＡＰエンベロープ内に含まれる認証ポリシのＸＭＬ表現を有するウェブ・サービス・メッセージによって表すことができる。
【００８２】
認証プロキシ２１６は、セキュリティ情報のための要求６２４をプリンシパル１３２に送信する。セキュリティ情報のための要求６２４は、以前にシングル・サインオン環境内で提供されなかった追加のセキュリティ情報を提供するように、ウェブ・ブラウザを操作する個人についてプロンプトを出すことによって表すことができる。要求されたセキュリティ情報は、ユーザ名、パスワード、社会保障番号、ケルベロス・チケット、X.５０９証明書等を含むことができる。
【００８３】
以下、図８を参照して説明する。プリンシパル１３２は、セキュリティ情報の応答６２６を認証プロキシ２１６に送信する。 セキュリティ情報の応答６２６は、セキュア・ソケット層（ＳＳＬ）プロトコル又はトランスポート層セキュリティ（ＴＬＳ）プロトコルのような、プリンシパル１３２及び認証プロキシ２１６の間の安全な接続を使用して送信することができる。
【００８４】
認証プロキシ２１６は、セキュリティ情報の応答６２６を検証する（６２８）。かかる検証（６２８）は、プリンシパル１３２によって提供されるセキュリティ情報を、ユーザ・レジストリ内に格納済みの識別関連データと比較することにより、これを実行することができる。例えば、認証プロキシに提供されるパスワードのハッシュされたバージョンが、ユーザ・レジストリ内に以前に格納済みのプリンシパルのパスワードのハッシュされたバージョンと一致すれば、プリンシパルを検証することができる。
【００８５】
認証プロキシ２１６は、認証成功の応答６３０をプリンシパル１３２に送信する。認証成功の応答６３０は、認証プロキシ２１６がプリンシパル１３２によって提供されたセキュリティ情報を検証したことを示す。プリンシパル１３２は、認証成功の応答６３０をアイデンティティマネージャ２１８に送信する。認証成功の応答６３２は、認証成功の応答６３０のＨＴＴＰ ３０２宛先変更である。認証成功の応答６３０及び６３２は、プリンシパルの識別及びセキュリティ関連情報を保持するウェブ・サービス・メッセージによって表すことができる。
【００８６】
アイデンティティマネージャ２１８は、認証証明書を含む認証応答６３８を作成する（６３４）。かかる認証応答６３８の作成（６３４）は、認証証明書をウェブ・サービス・メッセージ内に埋め込むことにより、これを実行することができる。認証証明書は、例えば、プリンシパルによって提供されるセキュリティ情報及びユーザ・レジストリ内に格納済みのアイデンティティ関連情報（例えば、プリンシパル識別子、プリンシパルの許可属性、プリンシパルが属するグループ、ユーザを認証するのに必要なセキュリティ情報のタイプ等）に基づいて、これを作成することができる。
【００８７】
アイデンティティマネージャ２１８は、認証応答６３８をアクセス・マネージャ２１０に送信する。認証応答６３８は、ＸＭＬベースのウェブ・サービス・メッセージによって表すことができる。認証証明書は、認証応答６３８においてセキュリティ・トークンとして実装することができる。かかるセキュリティ・トークンは、"WS-Security" 及び "WS-Trust" と題する前掲のウェブ・サービス仕様に記載のセキュリティ・トークンをＳＯＡＰエンベロープ内に含めたものとすることができる。アイデンティティマネージャ２１８は、認証応答６３８をアイデンティティ・プロバイダ１２６のアクセス・マネージャ２１０に送信する。
【００８８】
アクセス・マネージャ２１０は、アイデンティティ・プロバイダ１２６とのプリンシパル１３２のローカル・セッションを作成し（６４０）、認証応答６３８の認証証明書をアイデンティティ・プロバイダ１２６とのプリンシパル１３２のセッション・データ内に記録する（６４２）。
【００８９】
アクセス・マネージャ２１０は、認証応答６４４をプリンシパル１３２に送信する。認証応答６４４は、認証応答６３８をアイデンティティマネージャ２１８からアクセス・マネージャ２１０に転送したものである。プリンシパル１３２は、認証応答６４６をアイデンティティマネージャ２３８に送信する。認証応答６４６は、認証応答６４４のＨＴＴＰ ３０２宛先変更である。
【００９０】
アイデンティティマネージャ２３８は、認証応答６４６を検証する（６４８）。かかる認証応答の検証（６４８）は、認証要求のデジタル署名が、認証応答の送信元であるアイデンティティマネージャ２１８のデジタル署名であることを検証することにより、これを実装することができる。アイデンティティマネージャ２３８は、アイデンティティマネージャ２１８の非対称公開鍵を使用して、デジタル署名を復号することにより、認証要求のデジタル署名を検証することができる。
【００９１】
アイデンティティマネージャ２３８は、サービス・プロバイダ１２８とのプリンシパルのセッション中のプリンシパルの特権を定義する、ローカルの認証証明書を作成する（６５０）。アイデンティティマネージャ２３８は、認証応答６４６内に含まれる認証証明書に基づいて、ローカルの認証証明書を作成する（６５０）。アイデンティティマネージャ２３８は、ＳＯＡＰエンベロープ内に含まれる認証証明書のＸＭＬ表現を読み取ることにより、認証応答６４６の認証証明書を抽出する。
【００９２】
アイデンティティマネージャ２３８は、図７のシングル・サインオン要求６０６に応答して、シングル・サインオン応答６５２をアクセス・マネージャ２３０に送信する。シングル・サインオン応答６５２は、ＸＭＬベースのウェブ・サービス・メッセージによって表すことができる。シングル・サインオン応答６５２は、（プリンシパル名、セキュリティ属性、プリンシパルを認証するために使用されるセキュリティ情報のタイプ等のような）ローカルの認証証明書６５２を含む。
【００９３】
アクセス・マネージャ２３０は、サービス・プロバイダ１２８とのプリンシパル１３２のセッションを作成する（６５４）。サービス・プロバイダ１２８とのプリンシパル１３２のセッションは、サービス・プロバイダ１２８内のデータ構造として表される。アクセス・マネージャ２３０は、ローカルの認証証明書を、サービス・プロバイダ１２８とのプリンシパル１３２のセッション・データ内に格納する。アクセス・マネージャ２３０は、セッション・データ内に格納済みのローカルの認証証明書に基づいて、プリンシパル１３２が資源２４０にアクセスすることを許可する。
【００９４】
アクセス・マネージャ２３０は、資源要求６５６をプリンシパル１３２に送信する。資源要求６５６は、シングル・サインオン処理のために図７のアクセス・マネージャ２３０によってインターセプトされた資源要求６００のコピーである。プリンシパル１３２は、資源要求６５８を資源２４０に送信する。資源要求６５８は、プリンシパル１３２から資源２４０への資源要求６５６のＨＴＴＰ ３０２宛先変更である。
【００９５】
資源２４０は、資源応答６６０をプリンシパル１３２に送信することにより、資源要求６５８に応答する。資源応答６６０は、図７のプリンシパルの資源要求６００とペアになった応答である。図７及び図８の呼び出しシーケンスでは、プリンシパルは、ウェブ・ブラウザを操作する個人により表される。従って、資源応答６６０は、ＨＴＭＬ、ＪＳＰ、ＣＧＩスクリプト等を使用する、静的又は動的なウェブ・コンテンツによって表すことができる。図７及び図８の呼び出しシーケンスにおけるプリンシパルの実装は、例示であるに過ぎず、本発明の範囲を制限するものではない。図７及び図８の呼び出しシーケンスに従ったプリンシパル１３２は、ウェブ・サービスによって表すことができる。そのような場合、資源応答６６０は、プログラム、プロセス又はスレッドによって提供されるデータ処理の結果によって表すことができる。
【００９６】
一般に、本発明の実施形態は、フェデレーション内のプリンシパルを認証するための完全に機能的なコンピュータ・システムという観点から説明された。しかし、本発明は、任意の適切なデータ処理システムに関連して使用するための信号担持媒体上に配置されたコンピュータ・プログラム製品の形態においても、これを実施することができる。かかる信号担持媒体は、磁気媒体、光学媒体又は他の適切な媒体を含む、機械可読情報用の伝送媒体又は記録可能媒体とすることができる。記録可能媒体の例は、ハード・ドライブ内の磁気ディスク又はフレキシブル・ディスク、光学ドライブ用のコンパクト・ディスク、磁気テープ等を含む。伝送媒体の例は、音声通信用の電話ネットワーク、イーサネット（登録商標）用のデジタル・データ通信ネットワーク、インターネット・プロトコルを使用して通信するネットワーク、ワールド・ワイド・ウェブ等を含む。適切なプログラミング手段を有する任意のコンピュータ・システムは、プログラム製品内に具体化されるような本発明の方法のステップを実行することができる。本明細書に記載されている幾つかの実施形態は、コンピュータ・ハードウェア上にインストールされ且つ実行されるソフトウェアに向けられているが、ファームウェア又はハードウェアとして実装される代替的な実施形態も、本発明の範囲内に属するものである。
【００９７】
前述の説明から明らかなように、本発明の真の精神から逸脱することなく、本発明の種々の実施形態において修正及び変更を施し得ることは明らかであろう。本明細書の記述は、説明上のものであって、本発明を限定するものと解釈してはならない。本発明の範囲は、請求項の記載によってのみ定義される。
【図面の簡単な説明】
【００９８】
【図１】本発明に従った、フェデレーション内のプリンシパルを認証するためのシステムを例示するネットワーク図である。
【図２】本発明に従った、フェデレーション内のプリンシパルを認証するためのシステムのブロック図である。
【図３】本発明に従った、フェデレーション内のプリンシパルの認証に有用なコンピュータのブロック図である。
【図４】本発明に従った、フェデレーション内のプリンシパルを認証するための方法のフローチャートである。
【図５】本発明に従った、フェデレーション内のプリンシパルを認証するための他の方法のフローチャートである。
【図６】本発明に従った、フェデレーション内のプリンシパルを認証するための他の方法のフローチャートである。
【図７】本発明に従った、フェデレーションのプリンシパルを認証するための方法の呼び出しシーケンス図である。
【図８】本発明に従った、フェデレーションのプリンシパルを認証するための方法の呼び出しシーケンス図である。
【図１】
2009519530.tif 000003
【図２】
2009519530.tif 000004
【図３】
2009519530.tif 000005
【図４】
2009519530.tif 000006
【図５】
2009519530.tif 000007
【図６】
2009519530.tif 000008
【図７】
2009519530.tif 000009
【図８】
2009519530.tif 000010
【手続補正書】
【提出日】平成21年2月19日(2009.2.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
フェデレーション内のプリンシパルを認証するための方法であって、
サービス・プロバイダの認証ポリシに従って、アイデンティティ・プロバイダにより前記プリンシパルを認証するステップと、
前記アイデンティティ・プロバイダのセッション・データ内に、前記サービス・プロバイダの認証ポリシを満たす認証証明書を記録するステップとを含む、方法。
【請求項２】
アイデンティティ・プロバイダの認証ポリシに従って、前記アイデンティティ・プロバイダにより前記プリンシパルを認証するステップをさらに含む、請求項１記載の方法。
【請求項３】
前記アイデンティティ・プロバイダにおいて、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記サービス・プロバイダから受信するステップをさらに含む、請求項１記載の方法。
【請求項４】
前記プリンシパルを認証するステップが、前記アイデンティティ・プロバイダのアクセス・マネージャにより前記プリンシパルを認証するステップをさらに含む、請求項１記載の方法。
【請求項５】
前記プリンシパルを認証するステップが、前記アイデンティティ・プロバイダの認証プロキシにより前記プリンシパルを認証するステップをさらに含む、請求項１記載の方法。
【請求項６】
前記サービス・プロバイダにおいて、前記サービス・プロバイダの資源にアクセスするための前記プリンシパルの資源要求を受信するステップと、
前記サービス・プロバイダにより、前記資源要求の認証証明書が前記サービス・プロバイダの認証ポリシを満たさないことを決定するステップと、
前記サービス・プロバイダにより、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記アイデンティティ・プロバイダに送信するステップとをさらに含む、請求項１記載の方法。
【請求項７】
前記サービス・プロバイダにおいて、前記サービス・プロバイダの認証ポリシを満たす前記認証証明書を含む認証応答を、前記アイデンティティ・プロバイダから受信するステップと、
前記サービス・プロバイダのセッション・データ内に、前記認証証明書を記録するステップとをさらに含む、請求項１記載の方法。
【請求項８】
フェデレーション内のプリンシパルを認証するためのシステムであって、
コンピュータ・プロセッサ及び当該コンピュータ・プロセッサに結合されたコンピュータ・メモリを備え、前記コンピュータ・メモリ内に配置したコンピュータ・プログラム命令が、
サービス・プロバイダの認証ポリシに従って、アイデンティティ・プロバイダ（以下「アイデンティティ・プロバイダ」と表記）により前記プリンシパルを認証するステップと、
前記アイデンティティ・プロバイダのセッション・データ内に、前記サービス・プロバイダの認証ポリシを満たす認証証明書を記録するステップとをそれぞれ実行可能である、システム。
【請求項９】
前記アイデンティティ・プロバイダにおいて、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記サービス・プロバイダから受信するステップを実行可能なコンピュータ・プログラム命令をさらに含む、請求項８記載のシステム。
【請求項１０】
前記サービス・プロバイダにおいて、前記サービス・プロバイダの資源にアクセスするための前記プリンシパルの資源要求を受信するステップと、
前記サービス・プロバイダにより、前記資源要求の認証証明書が前記サービス・プロバイダの認証ポリシを満たさないことを決定するステップと、
前記サービス・プロバイダにより、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記アイデンティティ・プロバイダに送信するステップとをそれぞれ実行可能なコンピュータ・プログラム命令をさらに含む、請求項８記載のシステム。
【請求項１１】
前記サービス・プロバイダにおいて、前記サービス・プロバイダの認証ポリシを満たす前記認証証明書を含む認証応答を、前記アイデンティティ・プロバイダから受信するステップと、
前記サービス・プロバイダのセッション・データ内に、前記認証証明書を記録するステップとをそれぞれ実行可能なコンピュータ・プログラム命令をさらに含む、請求項８記載のシステム。
【請求項１２】
フェデレーション内のプリンシパルを認証するための、信号担持媒体上に配置されたコンピュータ・プログラムであって、前記コンピュータ・プログラムがコンピュータに、
サービス・プロバイダの認証ポリシに従って、アイデンティティ・プロバイダにより前記プリンシパルを認証するステップと、
前記アイデンティティ・プロバイダのセッション・データ内に、前記サービス・プロバイダの認証ポリシを満たす認証証明書を記録するステップと
実行させる、コンピュータ・プログラム。
【請求項１３】
前記信号担持媒体が記録可能媒体から成る、請求項１２記載のコンピュータ・プログラム。
【請求項１４】
前記信号担持媒体が伝送媒体から成る、請求項１２記載のコンピュータ・プログラム。
【請求項１５】
アイデンティティ・プロバイダの認証ポリシに従って、前記アイデンティティ・プロバイダにより前記プリンシパルを認証するステップをさらに含む、請求項１２記載のコンピュータ・プログラム。
【請求項１６】
前記アイデンティティ・プロバイダにおいて、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記サービス・プロバイダから受信するステップを実行可能なコンピュータ・プログラム命令をさらに含む、請求項１２記載のコンピュータ・プログラム。
【請求項１７】
前記プリンシパルを認証するステップが、前記アイデンティティ・プロバイダのアクセス・マネージャにより前記プリンシパルを認証するステップをさらに含む、請求項１２記載のコンピュータ・プログラム。
【請求項１８】
前記プリンシパルを認証するステップが、前記アイデンティティ・プロバイダの認証プロキシにより前記プリンシパルを認証するステップをさらに含む、請求項１２記載のコンピュータ・プログラム。
【請求項１９】
前記サービス・プロバイダにおいて、前記サービス・プロバイダの資源にアクセスするための前記プリンシパルの資源要求を受信するステップと、
前記サービス・プロバイダにより、前記資源要求の認証証明書が前記サービス・プロバイダの認証ポリシを満たさないことを決定するステップと、
前記サービス・プロバイダにより、前記サービス・プロバイダの認証ポリシを指定する認証要求を、前記アイデンティティ・プロバイダに送信するステップと
をさらに含む、請求項１２記載のコンピュータ・プログラム。
【請求項２０】
前記サービス・プロバイダにおいて、前記サービス・プロバイダの認証ポリシを満たす前記認証証明書を含む認証応答を、前記アイデンティティ・プロバイダから受信するステップと、
前記サービス・プロバイダのセッション・データ内に、前記認証証明書を記録するステップと
をさらに含む、請求項１２記載のコンピュータ・プログラム。
【国際調査報告】
2009519530.tif 000011
2009519530.tif 000012
2009519530.tif 000013