(58)【調査した分野】(Int.Cl.,DB名)
前記入出力部はさらに、第2の要求エンティティから第2のアクセス要求を受信するように構成されており、前記第2のアクセス要求は、アイデンティティプロバイダに関連付けられたセキュリティトークンについての要求を含んでおり、
前記標準化部はさらに、第2の標準化されたアクセス要求を生成するように構成されており、
前記コンポーネント制御エンジンはさらに、第3のアプリケーションへのアクセスを承認する第2のトークンを、前記第1の機能的コンポーネントに生成させるように構成されており、
前記第1の機能的コンポーネントは、前記第1の標準化されたアクセス要求の少なくとも一部を受信することに応じて第1のトークンを生成するように構成されており、
前記第1の機能的コンポーネントは、前記第2の標準化されたアクセス要求の少なくとも一部を受信することに応じて第2のトークンを生成するように構成されている、請求項3に記載のアクセス制御システム。
要求は、第1の機能的コンポーネントに関連付けられた状態と第2の機能的コンポーネントに関連付けられた状態とを識別する複合状態情報を含む、請求項1〜4のいずれかに記載のアクセス制御システム
【発明を実施するための形態】
【0017】
発明の詳細な説明
以下の説明では、説明の目的で、本発明の実施例の完全な理解を提供するために特定の詳細が述べられている。しかしながら、これらの特定の詳細がなくても本発明が現実化され得ることは明らかであろう。
【0018】
全体の概要
本発明の一実施例によれば、上述の課題に対処可能なアクセス制御アーキテクチャが提供される。一実施例では、異なる問題領域に対する独立したソリューションサイロの代わりに、アーキテクチャはモジュール式で分離型のコンポーネントを含んでおり、異種ソリューションの組立可能性を可能にする。特に、アーキテクチャは、異種プログラミング言語により実現された技術スタックの組立を可能にする。
【0019】
一実施例では、ここに説明されるアクセス制御アーキテクチャは、出現しつつある技術および途切れなく対応する関連する新しいプロトコルが発展するにつれて、それらに対するサポートを可能にする。一実施例では、顧客の配備環境に適合可能な複合および異種ソリューションが可能とされる。さまざまな信頼モデルに対応し、異なるコミュニティ用のモデルを同時にかつ途切れなく供給しつつ、異なるワイヤプロトコルを同時にサポートするアクセス制御ソリューションを、ここに説明する。
【0020】
一実施例では、ここに説明されるアクセス制御アーキテクチャは、1つの組織のすべてのデータおよびアセットにまたがることができる統合された企業間アクセス制御を可能にする。一実施例では、企業全体にわたってセキュリティのリスクをより良好に管理する統合された企業間アクセス制御ソリューションが提供される。一実施例では、レガシー技術の系統立った移行、および移行期間中のレガシーおよび新技術の一本化された制御が可能とされ得る。
【0021】
一実施例では、アクセスメタデータリポジトリが、アクセスサービスに関連付けられたデータを記述するアクセスメタデータオブジェクトのリポジトリを保持する。要求エンティティからアクセス要求が受信され、そのアクセス要求に関連付けられた要求タイプが判断される。標準化された要求が生成され、標準化されたアクセス要求と要求タイプに関連付けられたアクセスメタデータオブジェクトとに部分的に基づいて、第1の標準化されたアクセス要求の少なくとも一部を満たすように、第1の機能的コンポーネントが選択される。一実施例では、第1の機能的コンポーネントは応答の少なくとも一部を生成し、それは要求エンティティに提供される。一実施例では、応答は、要求エンティティに提供される前に、プロトコル固有応答へと変換される。一実施例では、コンピュータ読取可能な不揮発性記憶媒体は、コンピュータシステムの1つ以上のコンピュータにロードされると、以下に説明される方法をシステムに実行させるコードセグメントを含んでいる。一実施例では、アクセス制御システムは、アクセスメタデータオブジェクトのアクセスメタデータリポジトリを含み、アクセスメタデータリポジトリにおける複数のアクセスメタデータオブジェクトの各アクセスメタデータオブジェクトは、アクセスサービスに関連付けられたデータを記述しており、アクセス制御システムはさらに、第1の要求エンティティから第1のアクセス要求を受信するように構成された入出力部と、第1のアクセス要求に関連付けられた第1の要求タイプを判断するように構成されたサービス制御部と、第1の標準化されたアクセス要求を生成するように構成された標準化部と、第1の標準化されたアクセス要求と第1の要求タイプに関連付けられたアクセスメタデータオブジェクトとに少なくとも部分的に基づいて、第1の標準化されたアクセス要求の少なくとも一部を満たすように、第1の機能的コンポーネントを選択するように構成されたコンポーネント制御エンジンとを含み、アクセスメタデータリポジトリ、入出力部、サービス制御部、標準化部、およびコンポーネント制御エンジンは、1つ以上のコンピューティング装置上で実現される。一実施例では、コンポーネント制御エンジンはさらに、第1の標準化されたアクセス要求の少なくとも一部を第1の機能的コンポーネントに提供するように構成されており、コンポーネント制御エンジンはさらに、第1のアクセス要求に関連付けられた第1の要求タイプに適合する第1の応答の少なくとも一部を、第1の機能的コンポーネントに生成させるように構成されており、サービス制御部はさらに、第1の応答の少なくとも一部を第1の要求エンティティに提供するように構成されている。一実施例では、第1の要求エンティティは、信頼されるアプリケーションである第1のアプリケーションであり、第1のアクセス要求は、第2のアプリケーションに関連付けられたセキュリティトークンについての要求を含んでおり、応答の少なくとも一部を生成することは、第1のアプリケーションのユーザの代わりに第2のアプリケーションに関連付けられた変更を行なうことを第1のアプリケーションに承認する第1のトークンを生成することを含む。一実施例では、入出力部はさらに、第2の要求エンティティから第2のアクセス要求を受信するように構成されており、第2のアクセス要求は、アイデンティティプロバイダに関連付けられたセキュリティトークンについての要求を含んでおり、標準化部はさらに、第2の標準化されたアクセス要求を生成するように構成されており、コンポーネント制御エンジンはさらに、第3のアプリケーションへのアクセスを承認する第2のトークンを、第1の機能的コンポーネントに生成させるように構成されており、第1の機能的コンポーネントは、第1の標準化された要求の少なくとも一部を受信することに応じて第1のトークンを生成するように構成されており、第1の機能的コンポーネントは、第2の標準化された要求の少なくとも一部を受信することに応じて第2のトークンを生成するように構成されている。一実施例では、要求は、第1の機能的コンポーネントに関連付けられた状態と第2の機能的コンポーネントに関連付けられた状態とを識別する複合状態情報を含む。一実施例では、システムはさらに、アクセスについての要求を許すべきかどうかを判断するためのアクセスポリシーメタデータを格納するように構成されたアクセスポリシーリポジトリと、アクセスポリシーメタデータによって特定された基準を第1の標準化されたアクセス要求が満たしていないという判断に応じて、アクセスポリシーメタデータに関連付けられた情報を含む第1の要求エンティティへの応答を生成するように構成された、第2の機能的コンポーネントとを含む。一実施例では、入出力部はさらに、第2の要求エンティティから第2のアクセス要求を受信するように構成されており、サービス制御部はさらに、第2のアクセス要求に関連付けられた第2の要求タイプを判断するように構成されており、標準化部はさらに、第2の標準化されたアクセス要求を生成するように構成されており、コンポーネント制御エンジンはさらに、第2の標準化されたアクセス要求と第2の要求タイプに関連付けられたアクセスメタデータオブジェクトとに少なくとも部分的に基づいて、第2の標準化されたアクセス要求の少なくとも一部を満たすように、第1の機能的コンポーネントを選択するように構成されており、標準化部はさらに、第2の標準化されたアクセス要求の少なくとも一部を第1の機能的コンポーネントに提供するように構成されており、コンポーネント制御エンジンはさらに、第2のアクセス要求に関連付けられた第2の要求タイプに適合する第2の応答の少なくとも一部を、第1の機能的コンポーネントに生成させるように構成されており、サービス制御部はさらに、第1の応答の少なくとも一部を第1の要求エンティティに提供するように構成されている。一実施例では、アクセス制御方法は、アクセスメタデータオブジェクトのアクセスメタデータリポジトリを保持するステップを含み、アクセスメタデータリポジトリにおける複数のアクセスメタデータオブジェクトの各アクセスメタデータオブジェクトは、アクセスサービスに関連付けられたデータを記述しており、アクセス制御方法はさらに、第1の要求エンティティから第1のアクセス要求を受信するステップと、第1のアクセス要求に関連付けられた第1の要求タイプを判断するステップと、第1の標準化されたアクセス要求を生成するステップと、第1の標準化されたアクセス要求と第1の要求タイプに関連付けられたアクセスメタデータオブジェクトとに少なくとも部分的に基づいて、第1の標準化されたアクセス要求の少なくとも一部を満たすように、第1の機能的コンポーネントを選択するステップとを含み、前記方法は、1つ以上のコンピューティング装置によって行なわれる。一実施例では、前記方法はさらに、第1の標準化されたアクセス要求の少なくとも一部を第1の機能的コンポーネントに提供するステップと、第1の機能的コンポーネントを用いて第1の応答の少なくとも一部を生成するステップとを含み、第1の応答は、第1のアクセス要求に関連付けられた第1の要求タイプに適合しており、前記方法はさらに、第1の応答の少なくとも一部を第1の要求エンティティに提供するステップを含む。一実施例では、第1の要求エンティティは、信頼されるアプリケーションである第1のアプリケーションであり、第1のアクセス要求は、第2のアプリケーションに関連付けられたセキュリティトークンについての要求を含んでおり、応答の少なくとも一部を生成するステップは、第1のアプリケーションのユーザの代わりに第2のアプリケーションに関連付けられた変更を行なうことを第1のアプリケーションに承認する第1のトークンを生成するステップを含む。一実施例では、前記方法はさらに、第2の要求エンティティから第2のアクセス要求を受信するステップを含み、第2のアクセス要求は、アイデンティティプロバイダに関連付けられたセキュリティトークンについての要求を含んでおり、前記方法はさらに、第2の標準化されたアクセス要求を生成するステップと、第3のアプリケーションへのアクセスを承認する第2のトークンを生成するステップとを含み、第1のトークンは、第1の標準化された要求の少なくとも一部をトークン生成エンジンで受信することに応じて、トークン生成エンジンによって生成され、第2のトークンは、第2の標準化された要求の少なくとも一部をトークン生成エンジンで受信することに応じて、トークン生成エンジンによって生成される。一実施例では、要求は、第1の機能的コンポーネントに関連付けられた状態と第2の機能的コンポーネントに関連付けられた状態とを識別する複合状態情報を含む。一実施例では、前記方法はさらに、アクセスについての要求を許すべきかどうかを判断するためのアクセスポリシーメタデータを格納するアクセスポリシーリポジトリを保持するステップと、アクセスポリシーメタデータによって特定された基準を第1の標準化されたアクセス要求が満たしていないという判断に応じて、アクセスポリシーメタデータに関連付けられた情報を含む第1の要求エンティティへの応答を生成するステップとを含む。一実施例では、前記方法はさらに、第2の要求エンティティから第2のアクセス要求を受信するステップと、第2のアクセス要求に関連付けられた第2の要求タイプを判断するステップと、第2の標準化されたアクセス要求を生成するステップと、第2の標準化されたアクセス要求と第2の要求タイプに関連付けられたアクセスメタデータオブジェクトとに少なくとも部分的に基づいて、第2の標準化されたアクセス要求の少なくとも一部を満たすように、第1の機能的コンポーネントを選択するステップと、第2の標準化されたアクセス要求の少なくとも一部を第1の機能的コンポーネントに提供するステップと、第1の機能的コンポーネントを用いて第2の応答の少なくとも一部を生成するステップとを含み、第2の応答は、第2のアクセス要求に関連付けられた第2の要求タイプに適合しており、前記方法はさらに、第1の応答の少なくとも一部を第1の要求エンティティに提供するステップを含む。一実施例では、アクセス制御を行なうためのシステムは、アクセスメタデータオブジェクトのアクセスメタデータリポジトリを保持するための手段を含み、アクセスメタデータリポジトリにおける複数のアクセスメタデータオブジェクトの各アクセスメタデータオブジェクトは、アクセスサービスに関連付けられたデータを記述しており、前記システムはさらに、第1の要求エンティティから第1のアクセス要求を受信するための手段と、第1のアクセス要求に関連付けられた第1の要求タイプを判断するための手段と、第1の標準化されたアクセス要求を生成するための手段と、第1の標準化されたアクセス要求と第1の要求タイプに関連付けられたアクセスメタデータオブジェクトとに少なくとも部分的に基づいて、第1の標準化されたアクセス要求の少なくとも一部を満たすように、第1の機能的コンポーネントを選択するための手段とを含む。一実施例では、前記システムはさらに、第1の標準化されたアクセス要求の少なくとも一部を第1の機能的コンポーネントに提供するための手段と、第1の機能的コンポーネントを用いて第1の応答の少なくとも一部を生成するための手段とを含み、第1の応答は、第1のアクセス要求に関連付けられた第1の要求タイプに適合しており、前記システムはさらに、第1の応答の少なくとも一部を第1の要求エンティティに提供するための手段を含む。一実施例では、第1の要求エンティティは、信頼されるアプリケーションである第1のアプリケーションであり、第1のアクセス要求は、第2のアプリケーションに関連付けられたセキュリティトークンについての要求を含んでおり、応答の少なくとも一部を生成するための手段は、第1のアプリケーションのユーザの代わりに第2のアプリケーションに関連付けられた変更を行なうことを第1のアプリケーションに承認する第1のトークンを生成するための手段を含む。一実施例では、
前記システムはさらに、第2の要求エンティティから第2のアクセス要求を受信するための手段を含み、第2のアクセス要求は、アイデンティティプロバイダに関連付けられたセキュリティトークンについての要求を含んでおり、前記システムはさらに、第2の標準化されたアクセス要求を生成するための手段と、第3のアプリケーションへのアクセスを承認する第2のトークンを生成するための手段とを含み、第1のトークンは、第1の標準化された要求の少なくとも一部をトークン生成エンジンで受信することに応じて、トークン生成エンジンによって生成され、第2のトークンは、第2の標準化された要求の少なくとも一部をトークン生成エンジンで受信することに応じて、トークン生成エンジンによって生成される。一実施例では、要求は、第1の機能的コンポーネントに関連付けられた状態と第2の機能的コンポーネントに関連付けられた状態とを識別する複合状態情報を含む。一実施例では、前記システムはさらに、アクセスについての要求を許すべきかどうかを判断するためのアクセスポリシーメタデータを格納するアクセスポリシーリポジトリを保持するための手段と、アクセスポリシーメタデータによって特定された基準を第1の標準化されたアクセス要求が満たしていないという判断に応じて、アクセスポリシーメタデータに関連付けられた情報を含む第1の要求エンティティへの応答を生成するための手段とを含む。一実施例では、前記システムはさらに、第2の要求エンティティから第2のアクセス要求を受信するための手段と、第2のアクセス要求に関連付けられた第2の要求タイプを判断するための手段と、第2の標準化されたアクセス要求を生成するための手段と、第2の標準化されたアクセス要求と第2の要求タイプに関連付けられたアクセスメタデータオブジェクトとに少なくとも部分的に基づいて、第2の標準化されたアクセス要求の少なくとも一部を満たすように、第1の機能的コンポーネントを選択するための手段と、第2の標準化されたアクセス要求の少なくとも一部を第1の機能的コンポーネントに提供するための手段と、第1の機能的コンポーネントを用いて第2の応答の少なくとも一部を生成するための手段とを含み、第2の応答は、第2のアクセス要求に関連付けられた第2の要求タイプに適合しており、前記システムはさらに、第1の応答の少なくとも一部を第1の要求エンティティに提供するための手段を含む。
【0022】
階層化されたアクセス制御アーキテクチャ
図2は、本発明の一実施例に従ったアクセス制御モデルを示す。
図2に示すアーキテクチャは、各層が構築ブロックのカテゴリを含む、一意的な多層アーキテクチャを示す。
図2に示す実施例では、構築ブロックは、アイデンティティソリューション210と、プロトコルファサード220と、トークンハンドリングエンジン230と、信頼モデル240と、共有サービス250とを含む。
【0023】
一実施例では、階層化モデルは上述の構築ブロックに基づいている。これらの構築ブロックを使用する層間でメッセージのオーケストレーションを行なう(orchestrate)ために、オーケストレーション(orchestration)コントローラコンポーネントが使用されて、特定のコンポーネント間のハードコードされた通信ではなく、層間の通信が、層間の要望に従って層間で利用可能な通信能力に適合するようにする。これは、新しい能力および複合ソリューションの系統立った開発を容易にするのに役立つ。
【0024】
一実施例では、プロトコルにより定義されたエンティティとそれらの対応する正準表現にマッピングする正準の実世界の物理的エンティティとの単一セットを表わす拡張可能な基盤が可能とされてもよい。たとえば、一実施例で説明される多層アクセスモデルを用いて、外部ポリシーエンジンをアクセス制御システムの共有サービス層に通信可能に結合してもよく、それにより、アクセスモデルによって提供されるあらゆるサービスの機能性が拡張される。この能力は、同じ物理的エンティティ(サービス、アプリケーションクライアント、またはユーザなど)が、問題領域およびプロトコルにまたがる複合ソリューションの一部となることを可能にする。
【0025】
一実施例では、広範囲の顧客配備環境を可能とすることを目的として、共有可能な機能的コンポーネントを識別しパッケージ化するためのパターンが、異なるフォームファクタ(組込、配布など)で配備可能である。加えて、いくつかの実施例では、レガシーから新技術への漸進的移行を可能にしつつ、レガシー技術の共存および統合制御を容易にすることを目的とする、同じ組立可能アーキテクチャを利用する一組の専用サービスファサードが、特徴付けられてもよい。
【0026】
一実施例では、多層アクセス制御システムは、情報ライフサイクルから情報タイプを切離すインフラストラクチャを利用して、外面化(externalize)すべきアクセス制御全体にわたる制御と施行との外面化および共有、ひいてはポリシー決定およびセッションインフラストラクチャの切離し/外面化を可能にする。この設計要素は、問題領域および管理境界(企業リソース用のウェブシングルサインオン(Web Single Sign On:SSO)、パートナー用のID連合(federation)、ID伝搬およびウェブサービスへの委任されたアクセスなど)間のポリシーの一貫した制御および施行を容易にする。
【0027】
現在のアクセス制御製品は、
図1に示すような「サイロ」アプローチに基づいている。
図1を参照すると、サイロA110、サイロB120、サイロC130、およびサイロD140はすべて、変更されないかもしれない静的な要素のセットを含む。たとえば、顧客ポータルアプリケーションは、単にOpenIDを用いて認証するアクセス制御ソリューションを使用するかもしれず、サイロD140以外のサイロの機能性を利用しないかもしれない。
図1に示すアプローチでは、各製品は本質的に島である。その結果、さまざまなサイロ間で一貫した態様でセキュリティを定義し、管理し、施行することは、ほぼ不可能である。この断片化は企業のセキュリティの鎧における割れ目を露出させ、インターネットの使用の増加は企業のITアセットが含まれる可能性を著しく増加させている。上述の問題を解決するために、必要なことは、機能的サイロから組立可能ユニットへの製品の遷移である。これは、出現しつつある規格に基づいた幅広い異種ソリューションを同時に供給しながら既存のソリューションに対して遷移を段階的に容易にする新しいアーキテクチャを通して実現される。
【0028】
図3は、本発明の一実施例に従ったアクセス制御アーキテクチャを示す。
図3に示す実施例は、マルチプロトコル複合サーバアーキテクチャを提供する。一実施例では、構築ブロックは階層化モデルとともに使用され、製品および複合ソリューションがどの特定の言語、プラットフォームまたは技術からも独立した態様で機能することを可能にする。
【0029】
一実施例では、
図3に示す機能的階層化は、コードの再使用を確実にしつつ、任意の既存のアクセス制御(AC)製品(既存および将来)の組立を可能にする。プロトコル結合310は、認証プロトコルメッセージを標準メッセージングおよびトランスポートプロトコルにマッピングするロジックを表わす。プロトコル結合310は、プロトコル応答および要求をそれぞれ変換し復元することを担当する。コントローラ320は、機能的コンポーネントを呼出すことによってプロトコル要求を満たすために必要とされるコアビジネスロジックオーケストレーションを表わす。アクセス用共有サービス(Shared services for access:SSA)330は、あらゆるAM製品によって使用されることが意図されている共有サーバ機能性を表わす。それは、高レベルのステートフルエンジン(基盤コンポーネント)および低レベルのステートレスエンジン(基盤API)から構成される。制御はプロトコル結合層310からコントローラ320、SSA層330へと通される。
【0030】
一実施例では、共有可能な機能性の識別およびパッケージ化のためのパターンにより、この機能性は、幅広い範囲のソリューションをサポートするために異なるフォームファクタで利用可能となるようになる。アーキテクチャは、インターフェイス、層間の階層化、および層を実現するエンティティ/モジュールに重点を置いている。各層は、より低い層がその上の層による使用のための機能を提供する、特定の機能性のセットを提供している。一実施例では、この階層化アプローチは、(たとえば
図4に示すような)複合ソリューションを構築するために、パッケージ化フォームファクタとは独立した機能性の組立を可能にする。
【0031】
実施例は、さまざまな層における異なるエンティティ/モジュールが(たとえば
図4に示すような)組立を経るようにすることによって、異なる製品の構築を容易にする。その結果、新しい機能/機能性および管理可能性が漸進的に導入され得る。
【0032】
図4は、さまざまなソリューション410と、パッケージ化された製品420と、スタンドアロンエンティティ430と、シングルサインオン認証(single sign-on authentication:SSA)440と、他のプラットフォームAPI、コネクタ、およびプラグイン450とを含むアーキテクチャを含む。この例示は、アクセス制御への「サイロ」アプローチではなく階層化アプローチによって提供されるフレキシビリティの一例を提供する。
【0033】
図5は、階層化アプローチを用いたアクセス制御アーキテクチャのより一般的な図を示す。一実施例では、アクセス制御アーキテクチャのコンポーネントは、サービスエンティティ510と、プロトコル結合520と、コントローラ530と、統合された機能的コンポーネント540と、APIを有する機能的コンポーネント550という5種類のエンティティを含む。
【0034】
サービスエンティティ510は、スタンドアロンのソフトウェアコンポーネントとしてともにパッケージ化された機能的エンティティのセットを表わす。サービスエンティティは、顧客によって管理運営され得る。
【0035】
プロトコル結合層520は、認証プロトコルメッセージを標準メッセージングおよびトランスポートプロトコルにマッピングするロジックを表わす。プロトコル結合は、プロトコル応答および要求を変換し復元することを担当する。
【0036】
一実施例では、プロトコル結合は、セキュリティ処理と、バイトのワイヤ順序付けに依存するワイヤデータ最適化(たとえば、MTOM)とを行なうかもしれず、プロトコル要求/応答の意味処理を何ら行なわない。プロトコル結合層520は、下位に位置するプラットフォームによって提供されるトランスポートおよびメッセージプロトコル結合機能を活用しており、ハンドラ、インターセプタ、プラグイン、およびライブラリAPIといったプログラミング構造体において実現化されてもよい。
【0037】
コントローラ530は、機能的コンポーネントを呼出すことによってプロトコル要求を満たすために必要とされるコアビジネスロジックオーケストレーションを表わす。一実施例では、コントローラ層530はプロトコル結合層から切離されており、トランスポート結合に依存しない。コントローラ層は、機能的コンポーネント(エンジン)および基盤APIを呼出すことによって要求を処理するロジックを含む。一実施例では、機能的コンポーネントが、それらの個々の機能を行なうのに不必要な詳細に気付かないままでいられるように、製品に固有のビジネスロジックがコントローラ層530で分離されている。このため、一実施例では、コントローラ層530から機能的コンポーネント層540および550に通されたメッセージは、各機能的コンポーネントによって必要とされる情報のみを含むよう標準化される。このため、さまざまなアクセス制御コンポーネント間でのモジュール方式およびコード再使用を促進するために、製品独立/一般ロジックが、エンジン/基盤APIへと押し進められる。
【0038】
機能的コンポーネントは、明確に定義された機能性のユニットを表わす。各機能的コンポーネントは、他の機能的コンポーネントに緊密に結合され、他の機能的コンポーネントからロジック的に分離している。一実施例では、コンポーネント間の通信は、パブリックインターフェイスを介してのみ可能とされる。機能的コンポーネントは、ユーザに見え、かつサービスエンティティ層510におけるより大きいサービスエンティティの一部としての他の機能的エンティティとともに使用されるよう意図された、関連付けられた構成を有する。モジュール方式および並列開発を容易にするために、1つのコンポーネントが複数のサブコンポーネントに分解されてもよい。統合された機能的コンポーネント540およびAPIを有する機能的コンポーネント550は、システムへの統合のレベルが異なっている。たとえば、統合された機能的コンポーネントは、アクセス制御システムの機能性を拡張するために、別の機能的コンポーネントに関連付けられたAPIにアクセスしてもよい。これは、階層化されたアクセス制御アーキテクチャの拡張可能な性質を示す。以下の「エンジン」は、一実施例において実現され得る機能的エンティティの例を表わす。
【0039】
認証エンジン:認証エンジンは、特定の認証プロトコルを用いてユーザの信用証明を収集し検証することによってユーザのアイデンティティを確立することを担当する。ユーザはコントローラ(ビュー)と情報をやりとりし、それは認証エンジンに認証ロジック(モデル+コントローラ)を委任する。信用証明収集のためのユーザとのやりとりは、コントローラ、エージェント、およびインターセプタなどのプロトコル/ウェブ/提示階層コンポーネントによって行なわれる。
【0040】
認証エンジンは、さまざまな認証スキームをさまざまな組合せで適用し、認証モデル(それらのモデルによって必要とされるポリシーおよび制御フラグを含む)をサポートし、技術、規則、およびプロトコルを含む認証プロセスの全局面をカスタマイズして拡張し、信用証明収集を推進するためにエージェント階層と情報をやりとりするために必要なすべての機能を含む。
【0041】
承認エンジン:承認エンジンは、特定の認証プロトコルを用いて請求者のアイデンティティを確立するプロセスを担当する。信用証明収集のために、ユーザとのやりとりが、NG−AMコントローラ、エージェント、およびインターセプタなどのプロトコル/ウェブ/提示階層コンポーネントによって行なわれる。
【0042】
一実施例では、承認エンジンは、さまざまな認証スキームをさまざまな組合せで適用し、ポリシーおよび制御フラグを含むJAAS認証モデルをサポートし、技術、規則、およびプロトコルを含む認証プロセスの全局面をカスタマイズして拡張し、信用証明収集を推進するためにエージェント層と情報をやりとりするために必要な機能を含む。
【0043】
一実施例では、承認エンジンは既存のスキームをサポートする。一実施例では、集中型および分散型のアイデンティティ格納もサポートされる。一実施例では、承認エンジンは、異なる制御フラグとの組合せでリソース毎に複数の認証スキームをサポートしており、プロトコル結合およびエージェント環境などの信用証明収集の詳細に依存しない。一実施例では、承認エンジンは、承認サービスをリモートまたは外部の承認サービスに委任してもよい。
【0044】
一実施例では、承認エンジンは、別の認証されたユーザ(たとえば、管理者またはサポート人員)によるユーザのなり済ましをサポートする。一実施例では、承認エンジンはまた、信用証明収集のために複数のエージェント相互作用モデルをサポートできる。
【0045】
一実施例では、承認エンジンは、セッション持続性、トークン生成/検証、またはシステムに関連付けられた任意の他の機能性といった必要とされる機能性のために、他のエンジンおよび/または基盤APIを活用してもよい。加えて、一実施例では、承認エンジンは、認証ポリシーおよび使用事例の移行をサポートする。
【0046】
SSOエンジン:SSOエンジンは、シングルサインオン(SSO)経験をユーザに提供することを担当する。これは、ユーザがあるアプリケーションに「サインイン」し、そのトークンを用いて他のアプリケーションにアクセスしてもよいということを意味する。それは、有効ユーザセッションにおいてあらゆるRP間でログアウトのオーケストレーションを行なうことにより、グローバルログアウトを容易にすることに関与する、ユーザセッションライフサイクルを管理することによって、これを達成する。
【0047】
一実施例では、SSOエンジンは、ログアウトオーケストレーションおよびクライアント状態ハンドリングをサポートする。加えて、SSOエンジンは、ウェブエージェントのためのサポートを提供する。たとえば、ウェブエージェントは、ウェブベースのアプリケーションへのアクセスを「防護する」ために使用されてもよい。アプリケーションにアクセス要求がなされると、ウェブエージェントはその要求を阻止し、要求をアクセス制御システムに渡す。要求が標準化された後で、標準化された要求はSSOエンジンに送信され、それは、クライアントセッション状態を持続してその位置を特定することを担当する。
【0048】
一実施例では、SSOエンジンは、セッションインデックス付け、領域を範囲とする、およびリソースを範囲とする信頼モデル、ならびにクッキーベースのマルチ領域マルチゾーンSSOをサポートする。一実施例では、SSOエンジンは、必要とされる機能性(たとえば、セッション持続性、トークン生成)のために、他のエンジンおよび/または基盤APIを活用する。
【0049】
連合エンジン:連合エンジンは、パートナーとのアカウント連結を管理し、連合セッション制御サービスを提供することを担当する。連合エンジンは、連合プロトコルを用いて、領域間での標準ベースのSSOを可能にする。連合エンジンはまた、SSO環境におけるログアウトフローのオーケストレーションを行なう。
【0050】
一実施例では、連合エンジンは、複数の連合プロトコルをサポートする。連合データは、データベースシステムまたは他のストレージなどのリポジトリに持続的に格納されていてもよい。一実施例では、インフォカード(Infocard)ベースの認証を含むさまざまな認証メカニズムが、連合エンジンによってサポートされる。しかしながら、他の機能および機能性が外面化されてもよい。たとえば、一実施例ではセキュリティ処理が外面化されてもよい。
【0051】
トークンエンジン:トークンエンジンは、セキュリティトークンおよび信用証明の生成、検証、削除、および更新を含む、あらゆるトークンについてのトークンライフサイクル全体を管理することを担当する。それは、外部動作に使用されるネイティブSSOブリッジを用いたローカルの動作および外部の/委任された動作の双方を含む。(サイロ間の複数のトークンエンジンではなく)単一のトークン制御エンジンを保持することは、製品間の改良されたセキュリティ、保全性、およびコード複製の排除を確実にする。トークンエンジンはまた、プロトコル/コンポーネント/サーバ間でトークンに関連付けられたユーザのセキュリティトークンおよび信用証明の位置を特定し、それらをレゾルブするための機能も含む。一実施例では、トークン処理基盤APIは、信用証明およびトークン処理の力学または構造的局面を取扱うことを担当する。
【0052】
一実施例では、トークンエンジンは、任意の所与のトークンタイプ用の複数のトークン生成、検証、削除、および/または更新モジュールを含む。加えて、トークンエンジンは、任意の既存のセキュリティ製品/インフラストラクチャとの統合を必要とすることなく、またはそれらを活用することなく、ユーザ名、SAML、およびX.509(検証)をサポートする。なぜなら、これらの機能はトークンエンジンに含まれているためである。一実施例では、トークンエンジンは、クライアントが証明トークンおよび他のアイデンティティ証明データを入力として提出する能力をサポートし、また、複数の情報のやりとりに関与するSPNEGOのような課題応答および交渉プロトコルもサポートする。いくつかの実施例では、トークンエンジンはトークン処理のためにFIPS140−2暗号モジュールを活用でき、トークンエンジンによって行なわれるどのX.509トークン処理も、NISTによって特定されているような連邦処理規則をサポートする。トークンエンジンはまた、メタデータを発行してランタイムでのエンジン機能性の動的発見をサポートする。加えて、トークンエンジンは、J2SEおよびJ2EEクライアントによって呼出されることが可能であり、J2EEサーバ間ではポータブルである。型付けされたトークンライフサイクル動作のための拡張可能なプラグインモデルもサポートされてもよい。
【0053】
一実施例では、トークン処理の構造的局面(構築)がトークン処理基盤APIに委任される。一実施例では、トークン処理基盤APIを介して、追加のカスタムトークンタイプおよびカスタマイズされたトークンハンドリングも利用可能である。一実施例では、トークンのセキュリティ処理は外面化されており、必要とされる機能性のためにパートナー信頼メタデータエンジン、他のエンジンおよび/または基盤APIを活用してもよい。
【0054】
セッション制御エンジン:セッション制御エンジンは、ユーザ/管理者が起動したタイムアウトベースの事象に対するサポートを用いて、ユーザセッションおよびトークンコンテキスト情報を管理することを担当する。セッション制御エンジンは、セッションの使用を通してグローバルロックアウトのオーケストレーションを行なうことができる。セッション制御エンジンはまた、セッションの間中ずっとエンティティを認証することを担当するトークンを管理することも担当する。セッションを維持するために使用されるトークンの制御は、トークンライフサイクル制御と呼ばれる。セッション制御エンジンは、ユーザセッションを作成、更新および削除すること、プロトコル/コンポーネント/サーバ間でトークンに関連付けられたセッションの位置を特定し、セッションをレゾルブすること、ならびにトークンコンテキストを作成、更新および削除することを担当する。
【0055】
セッション制御エンジンは、データベースまたはリポジトリにアクティブセッションを格納してもよい。一実施例では、セッション満了後、設定可能な期間、アクティブでないセッションの情報が利用可能なままとなる。たとえば、セッションが利用可能なままとなり得る期間は、ユーザインターフェイスを介して入力されてもよい。
【0056】
いくつかの実施例では、セッション制御エンジンはまた、登録されたリスナに特定のセッション事象について通知でき、インメモリおよびRDBMSセッション持続性をサポートし、分散されたインメモリセッション持続性をサポートし、ユーザ名、GUID、およびユーザ名−プロバイダIDによってインデックス付けされ、セッションインデックス付けをサポートできるようになっていてもよい。
【0057】
カード制御エンジン:カード(iCardを含む)により、人々は、自分たちのデジタルアイデンティティを編成すること、および任意の所与の情報のやりとりのために自分たちが使いたいものを選択することができるようになる。カード制御エンジンは、カードスペース(Cardspace)準拠のおよび他のカードタイプのライフサイクルを管理することを担当する。それは、ユーザ中心のアイデンティティモデルをサポートするために必要とされる主要機能性であり、カード関連プロトコルメッセージでIDPのコントローラによって呼出される。
【0058】
信頼ポリシー制御エンジン:信頼ポリシー制御エンジンは、信頼ポリシー情報の制御およびアクセス、ならびにこれらのポリシーに基づく決定を可能にする。信頼ポリシー制御エンジンは、情報のやりとりに関与するピアエンティティとの信頼関係の制御を担当する。信頼ポリシーは、ユーザ間ではなくエンティティ間の信頼に向けられている。たとえば、2つのアプリケーションが互いとの信頼関係を構築してもよく、それらのアプリケーションが互いにデータを共有することを可能にする。
【0059】
信頼ポリシー制御エンジンは、情報をやりとりするエンティティについて信頼判定を行ない、信頼関係を管理し、プロトコル固有エンティティ識別子を正準表現にレゾルブ/変換するために必要な機能からなる。
【0060】
パートナーメタデータ制御エンジン:パートナーメタデータ制御エンジンは、パートナーに関するメタデータの制御およびアクセスを可能にし、より良好な制御および順守のための集中型制御のためにメタデータを一本化する。管理動作およびプロトコル動作の双方で呼出される。
【0061】
一実施例では、パートナーメタデータ制御エンジンは、メタデータを作成し、更新し、選択するために必要な機能からなる。それはまた、特定の対象にアクセスするために特定のプロトコルを用いてパートナーと情報をやりとりするのに必要とされるメタデータの位置を特定し、それを検索するための機能も含んでいてもよい。パートナーメタデータ制御エンジンはすべてのパートナー情報用のレジストリを保持しており、高性能化のために軽量記憶機構を使用する。各メタデータオブジェクトは自己記述的であり、したがってパートナーメタデータ制御エンジンは、メタデータのこの局面に準拠する必要とされるあらゆるタイプのメタデータを格納していてもよい。
【0062】
ネイティブSSOブリッジ:ネイティブssoブリッジは、SSOポリシーサーバに固有のセマンティクス(semantics)および複雑性を採用している第三者のSSO/ポリシーサービスとのアクティブな統合に関連する機能を行なう。
【0063】
基盤API350は、直接統合を介してではなくAPIを介してアクセス制御システムが利用可能な追加の機能性を表わす。
【0064】
構造的および機能的概要
図6は、一実施例が実現され得るアクセス制御システム610を示す簡略化されたブロック図である。
図6に示す実施例では、アクセス制御システム610は、エンティティ630、640、650、660、および670の集合であり、それらは各々、ソフトウェアロジックゲート、ハードウェアロジックゲート、またはそれらの任意の組合せといったロジックゲートにおいて実現化され得る。一実施例では、アクセス制御システム610は、入力/出力(I/O)インターフェイス620を含む。別の実施例では、I/Oインターフェイス620はアクセス制御システム610の一部ではなく、アクセス制御システム610に結合されている。I/Oインターフェイス620は、ネットワーク、またはキーボード、マウスなどのユーザ入力装置、もしくは任意の他のユーザ入力装置に、アクセス制御システム610を結合するように構成されてもよい。I/Oインターフェイス620はまた、出力614を送信もしくは表示可能なネットワーク、表示装置、または送信媒体装置を含む、入力612などの信号またはデータを提供もしくは解釈する他の装置または手段に、アクセス制御システム610を結合するように構成されてもよい。一実施例では、I/Oインターフェイス620は、複数のI/Oインターフェイスを表わしていてもよい。
【0065】
一実施例では、入力612は、アプリケーション680などのウェブアプリケーションまたはエージェント690などのエージェントからの入力を含んでいてもよい。エージェント690は、ユーザのウェブブラウザソフトウェアまたは他のソフトウェアもしくはハードウェアから発行されたアクセス要求といった、ユーザからのアクセス要求を阻止するように構成されてもよい。これらの要求は、入力612の形で、アクセス制御システム610に全体的にまたは部分的に向けられてもよい。
【0066】
一実施例では、アクセス制御システム610は、I/Oインターフェイス620から入力612を受信するように構成されたI/O部630を含む。I/O部630は、入力612または入力612に関連付けられた情報を、揮発性または不揮発性記録媒体などの持続性媒体に格納するように構成されてもよい。たとえば、I/O部623はロギングロジックを含んでいてもよい。一実施例では、I/O部623は、サービス制御部640、メタデータリポジトリ650、標準化部660、およびコンポーネント制御エンジン670に通信可能に結合されている。
【0067】
一実施例では、サービス制御部640サービス制御部640は、サービスエンティティ層510に関連付けられたサービスエンティティを管理する。これらのサービスエンティティは、たとえば、特定のタイプの要求を聞くプロトコル固有リスナを含んでいてもよい。一実施例では、サービスエンティティによって要求が受信されると、その要求は標準化部660に渡される。
【0068】
一実施例では、アクセス制御システム610は標準化部660を含む。標準化部660は、プロトコル結合層520に関して上述した機能を実現する。一実施例では、標準化部660は、サービス制御部640からプロトコル固有要求を受信する。標準化部660は次に、非プロトコル固有情報のみをコンポーネント制御エンジンに提供することによって、その要求を標準化する。加えて、標準化部660は、標準化された要求に応じてコンポーネント制御エンジン670から期待される応答の詳細を記述するために、メタデータリポジトリ650からコンポーネント制御エンジン670にメタデータを提供してもよい。ここに使用されるように、「標準化された要求」という用語は、標準化された要求が基づいている元の要求とは異なる要求である。一実施例では、メタデータリポジトリ650は、メタデータおよび他のデータを格納するために使用される。
【0069】
一実施例では、アクセス制御システム610は、コンポーネント制御エンジン670を含む。コンポーネント制御エンジン670は、入来する要求に関連付けられたすべての活動の性能のオーケストレーションを行なう。具体的には、コンポーネント制御エンジンは、標準化部によって提供された情報に基づいて、要求を満たすのにどちらの機能的コンポーネント540および550が必要とされているかを判断し、それらのコンポーネントにそれぞれの機能を行なうよう指示する。
【0070】
例示的なコンフィギュレーションメタデータ
一実施例では、標準化部660は、コンポーネント制御エンジン670にコンフィギュレーションメタデータを提供する。コンフィギュレーションメタデータおよび他のメタデータは、アクセスメタデータオブジェクトと呼ばれてもよい。一実施例では、このメタデータは、メタデータリポジトリ650または他の有形記憶媒体に格納される。メタデータの目的は、コンポーネント制御エンジン670が要求を満たして要求のオーケストレーションを行なうのに役立つ詳細を、コンポーネント制御エンジン670に提供することである。具体的には、各メタデータオブジェクトは、ある特定のタイプの要求を表わしていてもよく、要求を遵守するためにどちらの機能的コンポーネントを使用すべきか、およびどのタイプの応答が標準化部660によってプロトコル結合層520で期待されているかということを含む、どのように要求を取扱うかに関するコンポーネント制御エンジン670への命令を含んでいてもよい。
【0071】
上述の層間の通信を達成するためにあらゆるコンフィギュレーションメタデータフォーマットまたはデータソースが使用されてもよいが、以下のXMLコードは、一実施例で使用され得るサンプルコンフィギュレーションスキーマを表わしている。
【0073】
このコンフィギュレーションスキーマを使用するより具体的な一例を、以下に示す。
【0075】
コンフィギュレーション情報の形式よりも、コンフィギュレーションによって入手すべき情報の方がより重要である。言い換えれば、上述するようなXMLでコンフィギュレーションが実現されることはそれほど重要ではなく、コンポーネント制御エンジン670にとって有益となるように、十分な情報がコンフィギュレーションファイルで入手されることの方がより重要である。いくつかの実施例で入手され得る情報は、製品挙動、製品結合、製品バックエンド統合、および製品拡張を含む。
【0076】
製品挙動の例は、Windows(登録商標)ネイティブ認証/ユーザ名/X.509/などの承認情報、およびデバッグ/タイムアウト/監査/スロットリング情報などの他の一般的な機能性を含む、承認、メタデータおよび信頼モデル情報を含む。製品結合の例は、HTTPベーシック/ダイジェスト、OAP(Oracle Access Protocol:オラクルアクセスプロトコル)/SAML/OpenIDシンプルサイン、インフォカード/ヒギンス情報といったセキュリティ情報を含む。結合はまた、メタデータ、HTTPトランスポート、メッセージ符号化、または他の同様の情報といった非セキュリティ情報も含んでいてもよい。製品バックエンド統合情報は、ユーザデータ格納、パートナー信頼、ID管理およびアクセス制御インフラストラクチャについての情報、ならびに監査、ロギング、および監視情報を含んでいてもよい。製品拡張は、結合、統合、および挙動拡張を含んでいてもよい。
【0077】
アクセス制御要求のハンドリング
図7は、一実施例が実現され得るアクセス制御システムの機能を示すフローチャートである。ステップ710で、要求が受信される。たとえば、この要求は、アプリケーション680などのアプリケーションまたはエージェント690などのエージェントからの要求であってもよい。この要求は、認証、承認、または機能的コンポーネント層540および550によってサポートされている任意の他のサービスについての要求を含んでいてもよい。一実施例では、この要求は、入力612としてI/Oインターフェイス620を介してアクセス制御システム610によって受信されてもよい。たとえば、一実施例では、I/Oインターフェイス620は、処理のために要求をI/O部630に提供してもよい。
【0078】
ステップ720で、標準化された要求が生成される。たとえば、標準化部660は、元の要求よりも多い、少ない、または異なる情報を含み得る要求の変更バージョンを生成する。一実施例では、要求は、標準化された要求に含まれていないプロトコル固有情報を含んでいてもよい。
【0079】
ステップ730で、標準化された要求の少なくとも一部を満たすように、機能的コンポーネントが選択される。たとえば、要求がトークンについての要求である場合、要求を満たす機能的コンポーネントとしてトークンエンジンが、コンポーネント制御エンジン670によって選択されてもよい。一実施例では、要求が他の機能的コンポーネントからの追加サービスを必要としている場合、それらのコンポーネントも、要求の遵守に参加するよう、コンポーネント制御エンジン670によって選択されてもよい。
【0080】
図8は、一実施例が実現され得るアクセス管理システムのより特定的な機能を示すフローチャートである。これらの特定の機能は、
図7のステップ720および730に関連付けられている。
【0081】
ステップ810で、どのタイプの要求を受信したかという判断が、サービス制御部640によって下される。たとえば、要求はwebSSO要求であってもよい。ステップ820で、要求タイプに基づいて、標準化された要求が生成される。たとえば、標準化された要求は、プロトコル固有情報がないwebSSO要求の一部を含んでいてもよい。ステップ830で、要求への応答の生成のオーケストレーションを行なうのに必要とされる情報を記述するメタデータリポジトリ650からのアクセスメタデータとともに、標準化された要求はコンポーネント制御エンジン670に送信される。
【0082】
ステップ840で、標準化部660から、標準化された要求が、コンポーネント制御エンジン670で受信される。要求はアクセスメタデータを含んでいてもいなくてもよい。一実施例では、要求がアクセスメタデータを含んでいない場合、メタデータリポジトリ650からアクセスメタデータが検索されてもよい。ステップ850で、標準化された要求とアクセスメタデータとに基づいて、標準化された要求の少なくとも一部を満たすように、機能的コンポーネントが選択される。ステップ860で、選択されたコンポーネントが、標準化された要求への応答の少なくとも一部を生成する。
【0083】
一実施例では、標準化された要求に応じて生成された応答は、コンポーネント制御部670によって標準化部660に提供され、それは次に完全な応答をサービス制御部640に提供する。一実施例では、完全な応答は、異なる機能的コンポーネントによって生成されたいくつかの部分的応答を含んでいてもよい。たとえば、応答は、すべて異なる機能的コンポーネントによって生成された認証および承認情報ならびにトークンを含んでいてもよい。応答は、期待されるプロトコル固有フォーマットを用いて要求エンティティに送信されてもよい。なぜなら、プロトコル固有情報は、コンフィギュレーションメタデータに基づいてコンポーネント制御エンジンによって提供されるためである。
【0084】
一実施例では、要求エンティティは、アプリケーション、またはアプリケーションのためにサービスを行なうエージェントであってもよい。たとえば、エージェントは、承認要求といったあるタイプの要求を阻止し、アクセス制御システム610と通信することによってそれらの要求を取扱ってもよい。要求は、アプリケーションが第2のアプリケーションにアクセスすることを可能にするトークンについての要求であってもよい。要求に応じて、トークンエンジンは、第1のアプリケーションのユーザの代わりに第2のアプリケーションに関連付けられた変更を行なうことを第1のアプリケーションに承認するトークンを生成してもよい。
【0085】
一実施例では、要求は、アイデンティティプロバイダに関連付けられたトークンについての要求を含んでいてもよい。標準化部660は標準化されたアクセス要求を生成し、それはコンポーネント制御エンジン670に提供され、それは要求を満たすようにトークンエンジンを選択する。このため、第1の要求についてのトークンを生成するために使用されたものと同じトークンエンジンが、第2の異なるタイプの要求についてのトークンを生成するためにも使用される。
【0086】
一実施例では、一部またはすべての機能的エンジンは同じ状態を保つ。その状態は、時折またはサーバがアクセスされるたびに、トークンまたはクッキーの形で各機能的エンジンに提供される。たとえば、ユーザはリソースにアクセスしてもよく、そのリソースへのアクセスを提供する機能的コンポーネントを用いてクッキーを構築する。別のアクセスが生じると、クッキーはアクセス制御システム610に戻される。一実施例では、複数の機能的エンジンが、同じ状態情報(すなわち、同じクッキー)の一部に関連付けられてもよい。この状態情報はプロトコル結合層を通り抜け、次にコントローラに送信される。コントローラは、すべての機能的エンジンに状態情報アクセスを提供する。一実施例では、要求は、第1の機能的コンポーネントに関連付けられた状態と第2の機能的コンポーネントに関連付けられた状態とを識別する複合状態情報を含む。
【0087】
一実施例では、アクセスについての要求を許すべきかどうかを判断するためのアクセスポリシーメタデータを格納するために、アクセスポリシーリポジトリが構成される。一実施例では、アクセスポリシーメタデータによって特定された基準を第1の標準化されたアクセス要求が満たしていないという判断に応じて、アクセスポリシーメタデータに関連付けられた情報を含む第1の要求エンティティへの応答を生成するために、ポリシー制御機能的コンポーネントが構成される。たとえば、メタデータは、ポリシー不具合に関連付けられたエラーメッセージを特定してもよい。このエラーメッセージは、アクセスポリシーメタデータによって特定された基準を要求が満たしていないという判断に応じて返送されてもよい。
【0088】
アクセス制御システムにおけるポリシー施行
アクセス制御ポリシーは、決定を導き、意図されたアクセス制御結果を達成するためのよく練られた行動計画である。アクセス制御ポリシーは、認証、承認および監査のプロセスに適用可能である。認証ポリシーは、要求者のアイデンティティを確立するために使用され、一方、承認ポリシーは、要求者が要求した行動を対象に対して行なうことを許可するかどうかを判断するために使用される。
【0089】
ポリシー施行には少なくとも2タイプある。これらは、情報ベースのポリシー施行と決定サービスベースのポリシー施行とを含む。情報ベースのポリシー施行では、施行ポイントによってポリシー評価が行なわれる。加えて、ポリシーオブジェクトタイプおよびスキーマが発行され、施行ポイントはポリシーの構造および表現に関心があり、それらに気付いている。決定ベースのポリシー施行では、ポリシー評価はポリシー施行ポイントによって決定サービスにアウトソーシングされる。加えて、施行ポイントは、決定のみに関心があり、施行に使用されるポリシーの構造または表現には関心がなく、もしくはそれらに気付いていない。
【0090】
一実施例では、ポリシー施行は、ここに説明される階層化アプローチを用いてアクセス制御ソリューションにおいて実現されてもよい。たとえば、いくつかの実施例では、ポリシーエンジンは、統合された機能的コンポーネントまたはAPIを有する機能的コンポーネントとして実現されてもよい。一実施例では、さまざまな情報アクセスおよびサービスのために、承認、リスク、不正、および信頼仲介に関連付けられたポリシー決定が考えられる。一実施例では、プラグインにやさしい階層化アプローチのため、いかなるポリシーも実現され得るが、以下のものが具体的に検討されてきた:認証規則−信用証明収集規則、連鎖規則、強制認証;SSO−目的、範囲、セッションライフタイム;I−Card−タイプ、クレーム、データハンドリング;信頼−発行者、受領者;連合−アカウント連結規則、プロファイルサポート、名前ID選択;メッセージフォーマット化−署名/暗号化、符号化および最適化の使用;監査およびロギング−リソースへのレベルのマッピング;パートナー−メタデータの使用;およびセキュリティトークン−発行/交換、トークン更新、削除、委任およびなり済まし規則。
【0091】
正準移行フレームワーク
従来のソリューションは、AMコンポーネント/製品の2つの所与のバージョンがともに機能できることを確実にするために、広範な製品検定プロセスと組合せられた、フルアップグレード用のダウンタイムまたはサポート共存機能を必要とするプロセスを通して、移行をサポートする。検定プロセスは、非常に時間がかかりかつ高価であるため、拡張できない。ダウンタイムアプローチは、ミッションクリティカルなシステムであるため、AMコンポーネント/製品にとっては役に立たない。このため、配備モデルを促進する新しい移行アーキテクチャが提供され、AMコンポーネント/製品の異なるバージョンが共存することを可能にする設計パターンが、ゼロダウンタイム要件に対処するために必要とされる。加えて、共存モジュールがもはや必要ではなくなった場合に後で除去/撤去できるように、共存モジュールを分離する能力が望ましい。
【0092】
より具体的には、一実施例では、既存のおよびレガシーのアクセス制御ソリューションが段階的にかつ破壊が最小限に抑えられる態様で移行されることを可能にする正準移行アーキテクチャが提供される。それはまた、クライアントおよびサーバのタイプやバージョンを互いに切離し、それにより、既存の配備においてレガシーのならびにより新しいクライアントおよび/またはサーバを組合せることを可能にする。これは、既存のインフラストラクチャが引続き機能するであろうという保証の下で、個々の部品/製品のポイントアップグレードを可能にすることにより、アクセス制御製品の特定のバージョンにおける顧客の現在の投資の将来の保証を可能にする。
【0093】
図9および
図10は、アクセス制御製品に適用可能な2つの移行パターンの例を示す。一実施例では、アクセス制御システム610は、移行プロセス時のAM配備の利用可能性を確実にしつつ、AM配備の漸進的移行を容易にするが、それは非常に必要である。なぜなら、AM配備のいかなるダウンタイムも、アクセスできない企業アプリケーションをもたらすためである。
【0094】
図9では、顧客は、レガシーアプリケーションの一部のために次世代SSOポリシーの表現力を使用することを望んでいる。一実施例では、顧客は、ポリシーデータ移行アダプタを用いて、レガシーポリシーを新しいNG−SSO/現在のソリューションポリシーに移行する必要があるであろう。レガシーポリシーサーバは、プラグインアダプタを介して、上述のポリシー処理を共存プロキシに委任するであろう。たとえば、ブラウザ905は、レガシーポリシー施行ポイント910に接続して、リライングパーティ920へのアクセスを要求するかもしれない。これに応じて、レガシーポリシー施行ポイント910は、共存プロキシ950と情報をやりとりするプロトコルアダプタ940と通信する。共存プロキシ950は、NG−SSOサーバ945にアクセスする。一方、レガシーポリシー935は、ポリシーデータ移行アダプタ930を用いてNG−SSOサーバ945に移行されてもよい。NG−SSOポリシー施行ポイント915がリライングパーティ925などのリライングパーティに関連付けられている場合、情報のやりとりが直接、NG−SSOサーバ945と行なわれてもよい。NG−SSOサーバ945へのそれほど破壊的でない移行を容易にするために、移行が完了するまで、既存のポリシー施行ポイントに対するサポートが存続してもよい。
【0095】
図10では、顧客は、ポリシーデータ移行アダプタを用いて、レガシーポリシーをNG−SSOポリシーに移行する。顧客は、引続きレガシーPEPを使用すること、および漸進的にNG−SSO PEPに移行することを望んでいる。レガシーPEPはここでは、レガシーサーバとNG−SSOサーバとの間のプロトコルブリッジとして作用するプロトコルアダプタを介して、共存プロキシと通信する。たとえば、ブラウザ1005は、レガシーポリシー施行ポイント1010に接続して、リライングパーティ1020へのアクセスを要求するかもしれない。これに応じて、レガシーポリシー施行ポイント1010はポリシーサーバ1030と通信し、それは次にプラグインアダプタ1035と通信する。プラグインアダプタ1035は共存プロキシ1045と情報をやりとりし、共存プロキシ950はNG−SSOサーバ945にアクセスする。一方、レガシーポリシーは、ポリシーデータ移行アダプタ1050を用いてポリシーサーバ1030からNG−SSOサーバ1040に移行されてもよい。次世代シングルサインオンポリシー施行ポイント1015がリライングパーティ1025などのリライングパーティに関連付けられている場合、情報のやりとりが直接、NG−SSOサーバ1040と行なわれてもよい。NG−SSOサーバ1040へのそれほど破壊的でない移行を容易にするために、移行が完了するまで、既存のポリシー施行ポイントに対するサポートが存続してもよい。
【0096】
本発明の一実施例は、複数のアクセス制御製品の組合せられた特徴集合をサポート可能な単一の製品を提供する。このアーキテクチャは、既存の製品の収束が異なる中心に基づくこと、互換性がないアーキテクチャを有すること、ならびに異なる言語および技術を用いて構築されることを可能にする。一実施例では、アクセス制御アーキテクチャは、拡張性および保全性を改良する。有益には、説明されるいくつかの実施例は、新しい能力および複合ソリューションの系統立った発展を容易にする階層化モデルおよびオーケストレーションコントローラコンポーネントを提供する。有益には、本発明のいくつかの実施例は、プロトコルにより定義されたエンティティとそれらの対応する正準表現にマッピングする正準の実世界の物理的エンティティとの単一セットを表わす拡張可能な基盤を提供し、それにより、同じ物理的エンティティ(サービス、アプリケーションクライアント、またはユーザなど)が、問題領域およびプロトコルにまたがる複合ソリューションの一部となることを可能にする。有益には、いくつかの実施例は、共有可能な機能的コンポーネントを識別しパッケージ化するためのパターンを、異なるフォームファクタ(組込、配布など)で配備可能となるよう提供し、それにより、広範囲の顧客配備環境を可能とする。有益には、いくつかの実施例は、同じ組立可能アーキテクチャを利用する一組の専用サービスファサードを提供し、レガシーから新技術への漸進的移行を可能にしつつ、レガシー技術の共存および統合制御を容易にする。有益には、いくつかの実施例は、情報ライフサイクルから情報タイプを切離すインフラストラクチャを提供して、外面化すべきアクセス制御システム全体にわたる管理と施行との外面化および共有を可能にし、このため、ポリシー決定およびセッションインフラストラクチャの切離し/外面化を可能にする。有益には、いくつかの実施例は、問題領域および管理境界(たとえば、企業リソース用のWebSSO、パートナー用のID連合、ID伝搬およびウェブサービスへの委任されたアクセスなど)間のポリシーの一貫した管理および施行を容易にする。
【0097】
ハードウェア概要
図11は、本発明の一実施例に従って使用され得るシステム環境1100の物理的コンポーネントを示す簡略化されたブロック図である。この図は単なる一例であり、請求の範囲を過度に限定するものではない。当業者であれば多くの変形、代替例、および修正を認識するであろう。
【0098】
図示されているように、システム環境1100は、ネットワーク1112を介してサーバコンピュータ1110と通信可能に結合された1つ以上のクライアントコンピューティング装置1102、1104、1106、1108を含む。一組の実施例では、クライアントコンピューティング装置1102、1104、1106、1108は、上述のグラフィカルインターフェイスの1つ以上のコンポーネントを実行するように構成されてもよい。
【0099】
クライアントコンピューティング装置1102、1104、1106、1108は、汎用パーソナルコンピュータ(たとえば、マイクロソフトWindows(登録商標)および/またはアップルマッキントッシュ(登録商標)オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む)、携帯電話またはPDA(マイクロソフトWindowsモバイルなどのソフトウェアを実行し、インターネット、eメール、SMS、ブラックベリー(登録商標)、および/または他の通信プロトコルに対応)、および/または商業的に入手可能なさまざまなUNIX(登録商標)またはUNIX系オペレーティングシステムのいずれかを実行するワークステーションコンピュータ(さまざまなGNU/Linux(登録商標)オペレーティングシステムを含むが,これらに限定されない)であってもよい。また、これに代えて、クライアントコンピューティング装置1102、1104、1106、および1108は、ネットワーク(たとえば、以下に説明するネットワーク1112)を通してサーバコンピュータ1110と通信可能な任意の他の電子装置であってもよい。システム環境1100は4つのクライアントコンピューティング装置と1つのサーバコンピュータとを有して図示されているが、任意の数のクライアントコンピューティング装置およびサーバコンピュータがサポートされてもよい。
【0100】
サーバコンピュータ1110は、汎用コンピュータ、特化サーバコンピュータ(たとえば、LINUXサーバ、UNIXサーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラック搭載サーバなどを含む)、サーバファーム、サーバクラスタ、もしくは任意の他の適切な構成および/または組合せであってもよい。サーバコンピュータ1110は、上述のいずれかを含むオペレーティングシステム、および商業的に入手可能なあらゆるサーバオペレーティングシステムを実行してもよい。サーバコンピュータ1110はまた、ウェブサーバ、Java(登録商標)仮想マシン、アプリケーションサーバ、データベースサーバなどを含むさまざまなサーバアプリケーションおよび/または中間階層アプリケーションのいずれかを実行してもよい。さまざまな実施例では、サーバコンピュータ1110は、上述の診断機能性を提供する1つ以上のウェブサービスまたはソフトウェアアプリケーションを実行するよう適合されている。たとえば、サーバコンピュータ1110は、上述のさまざまなフローチャートで説明されるさまざまな方法を実行するように構成されてもよい。
【0101】
図示されているように、クライアントコンピューティング装置1102、1104、1106、1108、およびサーバコンピュータ1110は、ネットワーク1112を介して通信可能に結合されている。ネットワーク1112は、TCP/IP、SNA、IPX、AppleTalkなどを含むがそれらに限定されない商業的に入手可能なさまざまなプロトコルのいずれかを用いてデータ通信をサポート可能なあらゆるタイプのネットワークであってもよい。ほんの一例として、ネットワーク1112は、イーサネット(登録商標)ネットワーク、トークンリングネットワークなどのローカルエリアネットワーク(local area network:LAN);ワイドエリアネットワーク;仮想プライベートネットワーク(virtual private network:VPN)を含むがそれに限定されない仮想ネットワーク;インターネット;イントラネット;エクストラネット;公衆交換電話網(public switched telephone network:PSTN);赤外線ネットワーク;無線ネットワーク(たとえば、プロトコルのIEEE802、11スイートのいずれか、当該技術分野で公知のBluetooth(登録商標)プロトコル、および/または任意の他の無線プロトコルの下で動作するネットワーク)、および/または、これらのおよび/または他のネットワークの組合せであってもよい。さまざまな実施例では、クライアントコンピューティング装置1102、1104、1106、1108、およびサーバコンピュータ1110は、ネットワーク1112を通してデータベース1114にアクセス可能である。いくつかの実施例では、クライアントコンピューティング装置1102、1104、1106、1108、およびサーバコンピュータ1110は各々、それ自体のデータベースを有する。
【0102】
システム環境1110はまた、1つ以上のデータベース1114を含んでいてもよい。データベース1114は、統合リポジトリのインスタンス、およびこの開示に記載される任意の他のタイプのデータベースまたはデータ記憶コンポーネントに対応していてもよい。データベース1114は、さまざまな場所に存在していてもよい。一例として、データベース1114は、コンピュータ1102、1104、1106、1108、1110のうちの1つ以上にローカルな(および/または存在する)記憶媒体上に存在していてもよい。また、これに代えて、データベース1114は、コンピュータ1102、1104、1106、1108、1110のいずれかまたはすべてからリモートであってもよく、および/またはこれらのうちの1つ以上と(たとえば、ネットワーク1112を介して)通信してもよい。一組の実施例では、データベース1114は、当業者にはよく知られているストレージエリアネットワーク(storage area network:SAN)に存在していてもよい。同様に、コンピュータ1102、1104、1106、1108、1110に起因する機能を行なうためのあらゆる必要なファイルが、それぞれのコンピュータ上にローカルに、および/またはデータベース1114上にリモートで、適宜格納されてもよい。一組の実施例では、データベース1114は、SQLフォーマットのコマンドに応じてデータを格納し、更新し、検索するよう適合された、オラクル・コーポレイションから入手可能なオラクル11gなどのリレーショナルデータベースである。さまざまな実施例では、データベース1114は、上述のような診断能力を提供するために使用されるデータを格納する。
【0103】
図12は、本発明の一実施例を現実化するために使用され得るコンピュータシステムの簡略化されたブロック図である。コンピュータシステム1200は、
図1に示す処理システム102として機能してもよい。さまざまな実施例では、コンピュータシステム1200は、上述のシステム環境1100に示されたコンピュータ1102、1104、1106、1108、1110のいずれかを実現するために使用されてもよい。
図12に示すように、コンピュータシステム1200は、バスサブシステム1204を介して多くの周辺サブシステムと通信するプロセッサ1202を含む。これらの周辺サブシステムは、メモリサブシステム1208およびファイルストレージサブシステム1210を含むストレージサブシステム1206と、ユーザインターフェイス入力装置1212と、ユーザインターフェイス出力装置1214と、ネットワークインターフェイスサブシステム1216とを含んでいてもよい。
【0104】
バスサブシステム1204は、コンピュータシステム1200のさまざまなコンポーネントおよびサブシステムが意図されたように互いに通信するようにするための機構を提供する。バスサブシステム1204は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施例は複数のバスを利用していてもよい。
【0105】
ネットワークインターフェイスサブシステム1216は、他のコンピュータシステム、ネットワーク、およびポータルへのインターフェイスを提供する。ネットワークインターフェイスサブシステム1216は、コンピュータシステム1200とは別のシステムとの間でデータを送受信するためのインターフェイスとして機能する。
【0106】
ユーザインターフェイス入力装置1212は、キーボード、ポインティングデバイス、たとえばマウス、トラックボール、タッチパッド、またはグラフィックタブレット、スキャナ、バーコードスキャナ、ディスプレイに一体化されたタッチスクリーン、音声入力装置、たとえば音声認識システム、マイク、および他のタイプの入力装置を含んでいてもよい。一般に、「入力装置」という用語の使用は、コンピュータシステム1200に情報を入力するためのあらゆる可能なタイプの装置および機構を含むよう意図されている。
【0107】
ユーザインターフェイス出力装置1214は、ディスプレイサブシステム、プリンタ、ファックス機、または音声出力装置などの非視覚的表示を含んでいてもよい。ディスプレイサブシステムは、ブラウン管(cathode ray tube:CRT)、液晶ディスプレイ(liquid crystal display:LCD)などのフラットパネル装置、または投影装置であってもよい。一般に、「出力装置」という用語の使用は、コンピュータシステム1200から情報を出力するためのあらゆる可能なタイプの装置および機構を含むよう意図されている。
【0108】
ストレージサブシステム1206は、本発明の機能性を提供する基本的なプログラミングおよびデータ構造体を格納するためのコンピュータ読取可能な持続性記憶媒体を提供する。プロセッサによって実行されると本発明の機能性を提供するソフトウェア(プログラム、コードモジュール、命令)が、ストレージサブシステム1206に格納されてもよい。これらのソフトウェアモジュールまたは命令は、プロセッサ1202によって実行されてもよい。ストレージサブシステム1206はまた、本発明に従って使用されるデータを格納するためのリポジトリを提供してもよい。ストレージサブシステム1206は、メモリサブシステム1208と、ファイル/ディスクストレージサブシステム1210とを含んでいてもよい。
【0109】
メモリサブシステム1208は、プログラム実行中の命令およびデータの格納のためのメインランダムアクセスメモリ(random access memory:RAM)1218と、固定された命令が格納された読出専用メモリ(read only memory:ROM)1220とを含む、複数のメモリを含んでいてもよい。ファイルストレージサブシステム1210は、プログラムおよびデータファイルのための持続的な(不揮発性の)の格納を提供しており、ハードディスクドライブ、フロッピー(登録商標)ディスクドライブならびに関連するリムーバブルメディア、コンパクトディスク読出専用メモリ(CD−ROM)ドライブ、光学式ドライブ、リムーバブルメディアカートリッジ、および他の同様の記憶媒体を含んでいてもよい。
【0110】
コンピュータシステム1200は、パーソナルコンピュータ、ポータルコンピュータ、ワークステーション、ネットワークコンピュータ、メインフレーム、キオスク、サーバ、または任意の他のデータ処理システムを含むさまざまな種類のものであり得る。コンピュータおよびネットワークの刻々と変化する性質により、
図12に示すコンピュータシステム1200の説明は、コンピュータシステムの好ましい実施例を例示するための具体例としてのみ意図されている。
図12に示すシステムよりもコンポーネントが多いまたは少ない他の多くのコンポーネントが可能である。