JP4979683B2 - 分散型ディレクトリ中でのグループ・メンバーシップを伴うアクセス許可のための方法およびシステム - Google Patents

分散型ディレクトリ中でのグループ・メンバーシップを伴うアクセス許可のための方法およびシステム Download PDF

Info

Publication number
JP4979683B2
JP4979683B2 JP2008505876A JP2008505876A JP4979683B2 JP 4979683 B2 JP4979683 B2 JP 4979683B2 JP 2008505876 A JP2008505876 A JP 2008505876A JP 2008505876 A JP2008505876 A JP 2008505876A JP 4979683 B2 JP4979683 B2 JP 4979683B2
Authority
JP
Japan
Prior art keywords
group
directory
user
distributed
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008505876A
Other languages
English (en)
Other versions
JP2009532748A (ja
Inventor
アルント、カーラ、ケイ
クォン、シア−サン
ヘイズルウッド、クリスティン、マリー
マクガーヴェイ、ジョン、ライアン
ヘラー、リチャード、アリン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009532748A publication Critical patent/JP2009532748A/ja
Application granted granted Critical
Publication of JP4979683B2 publication Critical patent/JP4979683B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4523Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using lightweight directory access protocol [LDAP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、改良型のデータ処理システムに関し、具体的には、データベース・アクセスのための方法および装置に関する。更に具体的には、本発明は、分散型ディレクトリからの情報を考慮して認証動作を行うための方法および装置を対象とする。
ディレクトリは、人間、組織、データ処理システム、およびその他の情報ソースに関する情報を管理するための、特別なタイプのデータベースである。ディレクトリ内の情報は、階層型のネームスペース内に組織化されている。各項目は名前付きオブジェクトであり、1組の属性から成る。各属性は、規定された属性型および1つ以上の値を有する。各項目は、一義的な識別名(DN:distinguished name)によって識別される。識別名は、項目から選択された属性の連結である。ディレクトリ・サービスは、ディレクトリを検索し、ディレクトリから情報を取得するための機構を提供する。ディレクトリおよびディレクトリ・サービスを規定するための様々な規格が広まっている。例えば、X.500仕様はディレクトリ規格を規定する。更に詳しい情報は、Weider等による、InternetEngineering Task Force(IETF)RFC1309(1992年4月)の「Technical Overview of Directory Services Using the X.500 Protocol」において見ることができる。別の例として、Lightweight DirectoryAccess Protocol(LDAP)仕様は、X.500ディレクトリ・モデルをサポートするディレクトリにアクセスするためのプロトコルを規定する。更に詳しい情報は、Wahl等のIETF RFC2251(1997年12月)の「Lightweight Directory Access Protocol (v3)」において見ることができる。
ディレクトリの論理表現は、必ずしもそのディレクトリの物理的記憶装置の構成を反映するわけではない。メモリ・システムの多くのタイプと同様に、ディレクトリは、論理的には全体としてまとめてサポートされるが、物理的には分散型でサポートされる場合がある。例えば、単一のディレクトリを多くのサーバ間にまたがってストアし、各サーバがそのディレクトリのサブツリーをサポートすることができる。
ディレクトリの使用例として、例えば企業の社員のような個人に関する情報をストアするディレクトリが挙げられる。この場合、各個人は、分散型データ処理システムの多くのユーザの一人である。ディレクトリにおける項目によって個人に関する属性をストアすることができ、ディレクトリ内における特定のユーザの項目はそのユーザの識別名によって識別される。更に、ユーザの集合を示すというようにグループを規定することができ、ディレクトリにおける項目はグループ・メンバーシップに関する情報を含むことができる。ディレクトリにおける項目によってグループに関する属性をストアすることができ、ディレクトリ内における特定のグループの項目はそのグループの識別名によって識別される。「ユーザ項目」という言葉は、特定ユーザの属性のストレージを表すディレクトリにおける項目を示し、「グループ項目」という言葉は、特定グループの属性のストレージを表すディレクトリ内の項目を示すことができる。
Weider等による、InternetEngineering Task Force(IETF)RFC1309(1992年4月)、「Technical Overview of Directory Services Using the X.500 Protocol」 Wahl等による、IETF RFC2251(1997年12月)、「Lightweight Directory Access Protocol(v3)」
ユーザ項目およびグループ項目を含むディレクトリについて分散型ストレージ機構を採用する場合、様々な情報処理の問題が生じる場合がある。例えば、指定されたターゲット・オブジェクトに関して指定されたユーザのために実行されている特定のタイプの動作には、この特定のタイプの動作をうまく完了させるための要件として、指定されたユーザについて特定グループ内でのメンバーシップを有するという肯定的な判定を必要とする場合がある。指定されたユーザがその特定グループに属する、すなわち、指定されたユーザが必要なグループ・メンバーシップを有する可能性はあるが、分散型ディレクトリを採用している場合、その判定を行うことは問題となり得る。場合によっては、指定されたユーザについてのユーザ項目は、その指定されたユーザが属するグループについてのグループ項目を含む分散型ディレクトリの部分とは異なるサーバによってサポートされている分散型ディレクトリの部分内にあるかもしれない。したがって、サーバが指定されたユーザのための動作を実行しようとする場合、分散型ディレクトリのローカルにストアされローカルにサポートされた部分からユーザ項目を検索することは、おそらく大したことではないだろう。しかしながら、必要なグループ項目の検索は困難である場合がある。なぜなら、サーバは、分散型ディレクトリ内の他のどこかにストアされたグループ項目の位置の特定あるいは検索またはその両方を行うための情報も機構も容易に利用可能でない場合があるからである。換言すると、あるサーバ上に、指定されたユーザについてのユーザ項目があり、そのユーザをメンバとして有するグループについてのグループ項目が異なるサーバ上にある場合、指定されたユーザがそのグループに属することを判定するためには、分散型ストレージの障害を克服しなければならない。
もっと具体的かつ難しい問題は、分散型ディレクトリ中のアクセス制御のために必要なグループ・メンバーシップを判定する行為である。例えば、あるディレクトリに関して、ユーザは1つ以上のグループのメンバである可能性があるが、そのディレクトリ内の項目に対するアクセスを判定するためにグループ・メンバーシップが用いられる。換言すると、あるグループのメンバだけが、ユーザおよびユーザ・グループが規定されているディレクトリのある部分に対するアクセスを与えられなければならない。現在のディレクトリ・サーバの実施においては、ユーザおよびユーザ・グループが同一のディレクトリ・サーバ上にあると想定されているので、アクセスを制限することは難しくない。しかしながら、典型的な分散型データ処理環境において、多数のディレクトリ・サーバ間で分割されサポートされている単一のディレクトリ情報ツリー(DIT)を1つの分散型ディレクトリ・システムが提供する分散型ディレクトリ・システムをサポートする必要がある。クライアントは、分散型ディレクトリ・サーバにトランスペアレントにアクセスすることができなければならず、これによってディレクトリ情報ツリーから自動的かつシームレスに情報を検索するが、サポートしているサーバ間でどのようにデータが分割されているかについて詳細を知る必要はない。このため、現在のシステムの中には、プロキシ・サーバを採用して、多数のサーバでサポートされているディレクトリ情報ツリーに対するアクセスを支援するものがある。
しかしながら、グループ・メンバーシップを評価して分散型ディレクトリ環境におけるアクセスを判定する場合、2つの大きな問題がある。第1に、グループ・メンバーシップの評価は難しい。なぜなら、ユーザ項目、グループ項目、およびターゲット・オブジェクト項目は、分散型ディレクトリをサポートしているいかなるサーバ上にも存在し得るからである。第2に、所与のユーザについて特定のサーバによってグループ・メンバーシップを判定した後、その特定のサーバから、分散型ディレクトリをサポートしている他のサーバに、そのグループ・メンバーシップに関する情報を伝達して、分散型ディレクトリ内の情報にアクセスすることに関する所与のユーザのための動作をサポートする必要があり、これは、それらの他のサーバのいずれにおいてもサポートされストアすることができる。
ユーザ項目、グループ項目、およびターゲット・オブジェクト項目が、異なるシステム上でサポートされる分散型ディレクトリの異なる部分にあるという問題を回避するための1つの解決策は、以下の通りである。通常、ディレクトリの一部に対するアクセスを特定のユーザおよびグループに制限するために、アクセス制御リスト(ACL:access control list)が用いられる。アクセス制御リストは、これらの特定のユーザおよびグループを示す。従って、アクセス制御リストの処理は、ディレクトリからユーザ項目およびグループ項目を検索することを必要とする。従って、現在のある解決策では、ALCが示す全てのユーザおよびグループに関する情報が、ACLを評価するサーバによってサポートされるディレクトリの部分内にローカルに存在することを、コンピューティング環境によって保証しなければならない。これは、全てのユーザ項目および全てのグループ項目を、分散型ディレクトリをサポートしている全てのサーバに複製することによって、実行可能である。しかしながら、このタスクは厄介である。なぜなら、多くの場合、ターゲット・オブジェクトについての項目は、ユーザ項目およびグループ項目と同じサブツリーにあるからである。また、全てのユーザ項目およびグループ項目を複製するには、ユーザ項目またはグループ項目の各サブツリーにおいて項目の全てを複製する必要があり、これによって分散型ディレクトリの効果がなくなってしまう。
別の解決策は、各分散型ディレクトリ・サーバごとに1組のユーザおよびグループを規定することである。しかしながら、この解決策は不充分であり、柔軟でない。ユーザおよびグループは、データとは異なるサブツリーにおいて規定しなければならない。また、ユーザは、1つのサーバのデータにアクセスを有するだけである。従って、この解決策は、分散型ディレクトリ環境が、エンド・ユーザにシームレスに見える方法で分割データをサポートしなければならないという要件に反している。
更に別の解決策は、管理者が所与のユーザについてのグループ・メンバーシップを手作業で判定すること、またはアプリケーションがそれ自身のアルゴリズムを用いて所与のユーザについてのグループ・メンバーシップを個別に判定することである。しかしながら、グループ・メンバーシップの判定後、この情報をディレクトリ・サーバと通信する方法はない。更に、グループ・メンバーシップの判定には間違いが起こりやすく、二度手間となるだろう。ディレクトリ・サーバは、グループ・メンバーシップを決定するためのアルゴリズムをすでに有する。
従って、分散型ディレクトリ環境におけるアクセスを決定するために、更にデータ複製を行う必要なく、また、分散型ディレクトリの部分のストレージ位置を更に制限する必要なく、分散型ディレクトリをサポートするように、所与のユーザについてのグループ・メンバーシップを評価する方法を提供することができれば有利であろう。
分散型ディレクトリ環境内においてディレクトリ動作を実行するための方法、システム、装置、またはコンピュータ・プログラム製品を提供する。この環境は、1つ以上の分散型ディレクトリ・サーバ、および、クライアントと分散型ディレクトリ環境との間の中間エージェントとして機能するプロキシ・サーバを含む。プロキシ・サーバは、各ディレクトリ・サーバがサポートする分散型ディレクトリの各部分内のグループ項目に関してユーザについてのグループ・メンバーシップに関する情報を収集またはコンパイルするために、ディレクトリ・サーバに要求を送信する。次いで、プロキシ・サーバは、ユーザのためにディレクトリ・サーバに送信するいずれかのディレクトリ動作と共に、ユーザについてのコンパイルしたグループ・メンバーシップ情報を送信する。ディレクトリ・サーバは、要求されたディレクトリ動作と共にコンパイルしたグループ・メンバーシップ情報を受信し受け入れ、次いで、分散型ディレクトリ情報ツリーのローカルにストアした部分に関して、および、ユーザについてのグループ・メンバーシップの受信した情報に関して、要求されたディレクトリ動作を実行する。
本発明の新規な特色と考えられる特徴は、特許請求の範囲において述べる。本発明自体、その目的および利点は、以下の詳細な説明を、添付図面と組み合わせて読んで参照することによって、最も良く理解されよう。
一般的に、本発明を含むかまたは本発明に関連することができるデバイスは、多種多様なデータ処理技術を含む。従って、背景として、本発明を更に詳細に説明する前に、分散型データ処理システム内のハードウェア・コンポーネントおよびソフトウェア・コンポーネントの典型的な構成について説明する。
ここで図面を参照すると、図1は典型的なデータ処理システムのネットワークを示し、その各々が本発明の一部を実施することができる。分散型データ処理システム100はネットワーク101を含み、これは、分散型データ処理システム100内で接続された様々なデバイスおよびコンピュータ間に通信リンクを提供するために使用可能な媒体である。ネットワーク101は、ワイヤもしくは光ファイバ・ケーブル等の永続的な接続、または電話もしくは無線通信によって行われる一時的な通信を含むことができる。図示した例では、サーバ102およびサーバ103が、ストレージ・ユニット104と共にネットワーク101に接続されている。更に、クライアント105〜107もネットワーク101に接続されている。クライアント105〜107およびサーバ102〜103は、メインフレーム、パーソナル・コンピュータ、パーソナル・デジタル・アシスタント(PDA)等の様々なコンピューティング・デバイスによって代表することができる。分散型データ処理システム100は、図示しない追加のサーバ、クライアント、ルータ、他のデバイス、およびピア・ツー・ピア・アーキテクチャを含むことも可能である。
図示した例では、分散型データ処理システム100はインターネットを含み、ネットワーク101が、Lightweight Directory Access Protocol(LDAP)、Transport Control Protocol/Internet Protocol(TCP/IP)、File Transfer Protocol(FTP)、Hypertext Transport Protocol(HTTP)、Wireless Application Protocol(WAP)等の様々なプロトコルを用いて相互に通信を行うネットワークおよびゲートウェイの世界的な集合を表すことができる。むろん、分散型データ処理システム100は、例えばイントラネット、ローカル・エリア・ネットワーク(LAN)、またはワイド・エリア・ネットワーク(WAN)等の多数の異なるタイプのネットワークを含むことも可能である。例えば、サーバ102は、クライアント109および無線通信リンクを組み込んだネットワーク110を直接サポートする。ネットワーク対応電話111は無線リンク112を介してネットワーク110に接続し、PDA113は無線リンク114を介してネットワーク110に接続する。また、電話111およびPDA113は、Bluetooth(商標)無線技術等の適切な技術を用いて、無線リンク115を介して相互に直接データを転送して、いわゆるパーソナル・エリア・ネットワーク(PAN)またはパーソナル・アドホック・ネットワークを生成することができる。同様に、PDA113は、無線通信リンク116を介してPDA107にデータを転送することができる。
本発明は、様々なハードウェア・プラットフォーム上で実施することができる。図1は、異種コンピューティング環境の一例として意図したものであり、本発明についてのアーキテクチャ上の限定ではない。
ここで図2を参照すると、この図は、本発明を実施可能な、図1に示したもののようなデータ処理システムの典型的なコンピュータ・アーキテクチャを示す。データ処理システム120は、内部システム・バス123に接続された1つ以上の中央演算処理装置(CPU)122含む。システム・バス123は、ランダム・アクセス・メモリ(RAM)124、リード・オンリ・メモリ(126)、および入/出力アダプタ128を相互接続する。入/出力アダプタ128は、プリンタ130、ディスク・ユニット132、またはオーディオ出力システム等の図示しない他のデバイス等の様々なI/Oデバイスをサポートする。また、システム・バス123は、通信リンク136に対するアクセスを提供する通信アダプタ134に接続する。ユーザ・インタフェース・アダプタ148は、キーボード140およびマウス142等の様々なユーザ・デバイス、またはタッチ・スクリーン、ペン、マイクロフォン等の図示しない他のデバイスを接続する。ディスプレイ・アダプタ144は、システム・バス123をディスプレイ・デバイス146に接続する。
図2のハードウェアがシステムの実施に応じて変化し得ることは、当業者には認められよう。例えば、このシステムは、Intel(R)Pentium(登録商標)(R)ベースのプロセッサおよびデジタル信号プロセッサ(DSP)等の1つ以上のプロセッサ、ならびに、揮発性および不揮発性メモリの1つ以上のタイプを有する場合がある。図2に示したハードウェアに加えて、またはその代わりに、他の周辺デバイスも用いることができる。図示した例は、本発明に関してアーキテクチャ上の限定を加えることを意図していない。
様々なハードウェア・プラットフォーム上で実施可能であることに加えて、本発明は、様々なソフトウェア環境において実施することができる。典型的なオペレーティング・システムを用いて、各データ処理システム内でプログラム実行を制御することができる。例えば、1つのデバイスでUnix(登録商標)(R)オペレーティング・システムが動作し、別のデバイスがシンプル Java(登録商標)(R)実行時環境を含むことができる。代表的なコンピュータ・プラットフォームはブラウザを含む場合がある。これは、グラフィック・ファイル、ワード・プロセッシング・ファイル、Extensible Markup Language(XML)、Hypertext Markup Language(HTML)、Handheld Device Markup Language(HDML)、Wireless Markup Language(WML)等の様々なフォーマットのハイパーテキスト文書、および他の様々なフォーマットおよび形式のファイルにアクセスするための周知のソフトウェア・アプリケーションである。
本発明は、図1および図2に関して上述したように、様々なハードウェアおよびソフトウェア・プラットフォーム上で実施可能である。更に具体的には、本発明は、改良型の分散型データ処理環境を対象とする。本発明について更に詳しく説明する前に、典型的な分散型データ処理環境のいくつかの側面について説明する。
本明細書における図の説明は、クライアント・デバイスまたはクライアント・デバイスのユーザのいずれかによる何らかの動作を含む場合がある。クライアントへのおよびクライアントからの応答あるいは要求またはそれら双方は、時にはユーザによって開始され、またある時には、多くの場合はクライアントのユーザの代わりに自動的にクライアントによって開始されることは、当業者には理解されよう。従って、図面の説明においてクライアントまたはクライアントのユーザについて言及する場合、「クライアント」および「ユーザ」という言葉は、説明されているプロセスの意味に大きく影響することなく交換可能に用いることができることは理解されよう。
以下に、機能ユニットによって実行されるものとして、いくつかの計算タスクを記載する場合がある。1つの機能ユニットは、ルーチン、サブルーチン、プロセス、サブプロセス、手順、機能、方法、オブジェクト指向のオブジェクト、ソフトウェア・モジュール、アプレット、プラグイン、ActiveX(商標)制御、スクリプト、または、計算タスクを実行するための他の何らかのファームウェアまたはソフトウェアのコンポーネントによって表すことができる。
本明細書における図の説明は、様々なコンポーネント間での情報交換を含む場合がある。情報交換は、例えば要求メッセージ後の応答メッセージのようなメッセージの交換によって実施されるものとして記載することができる。計算コンポーネント間の情報交換は、同期または非同期の要求/応答交換を含む場合があり、メッセージ、メソッド呼び出し、リモート・プロシージャ・コール、イベント信号、または他の機構等、様々なデータ交換機構によって同等に実施することができることに留意すべきである。
以下で、本発明について、X.500ディレクトリおよびLightweight Directory Access Protocol(LDAP)の動作に関連した用語および機能について説明するが、本発明は様々なディレクトリ実装スキームおよびプロトコルを用いて実施可能であることに留意すべきである。
ここで図3を参照すると、このブロック図は、企業ドメインのための典型的な分散型データ処理システムを示す。典型的な企業コンピューティング環境またはインターネット・ベースのコンピューティング環境においてと同様に、企業ドメイン150は、例えばネットワーク154を介してクライアント・デバイス153上でブラウザ・アプリケーション152を用いることによってユーザ151がアクセスすることができる制御されたリソースをホストする。
企業ドメイン150は、複数のサーバをサポートする。アプリケーション・サーバ165は、ウェブ・ベースのアプリケーションまたはレガシー・アプリケーションを含む他のタイプのアプリケーションによって、アクセス可能リソースをサポートする。認証サーバ156は、ユーザ名/パスワード、X.509証明書、セキュアなトークン、またはSSLセッション等の様々な認証機構をサポートする。
プロキシ・サーバ157は、企業ドメイン150のための多種多様な機能を実行する。プロキシ・サーバ157は、コンフィギュレーション・ファイルおよび企業ポリシ・データベース158によって管理上構成されて、プロキシ・サーバ157の機能を制御することができる。例えば、アプリケーション・サーバからの内容をミラーリングするためにウェブ・ページをキャッシュしたり、入力データストリーム・フィルタ・ユニット159および出力データストリーム・フィルタ・ユニット160によって着信および発信データストリームをフィルタリングしたりする。入力データストリーム・フィルタ・ユニット159は着信要求に対する複数のチェックを実行し、出力データストリーム・フィルタ・ユニット160は発信応答に対する複数のチェックを実行することができる。各チェックは、様々な企業ポリシ内で規定された目標および条件に従って実行することができる。
企業ドメイン150は権利付与サーバ161を含む。これは、ユーザ・レジストリ・データベース162、アクセス制御リスト(ACL)データベース163、および他のドメインからの第三者データストリーム164内の情報を受け入れる。権利付与サーバ161は、ドメイン150内でアプリケーション・サーバ165によって提供されるあるサービスに対するユーザのアクセスが許可されているか否かを判定するため、それらのサービスへのユーザ要求について、ポリシあるいはアクセス制御リストまたはそれら両方をチェックする。プロキシ・サーバ157、権利付与サーバ161、またはプロキシ・サーバ157と権利付与サーバ161との組み合わせたまたは連係した動作によって、1組のユーザ固有の権利を用いて、ユーザ要求に応答してアプリケーション・サーバ165および他の制御リソースに対するアクセスを決定または制御する。
企業ドメイン150内の上述のエンティティは、多くのコンピューティング環境内の典型的なエンティティを表す。ウェブ・ベースのアプリケーションは、様々な手段を用いて、多くの場合はHTML形式のユーザ名/パスワードの組み合わせとして認証情報を入力するようユーザに促すことができる。図3に示す例では、おそらくクライアント153がリソースにアクセスする前にユーザ151を認証する必要があり、その後クライアント153についてセッションを確立する。図3において、クライアント153から着信要求を受信した後、入力データストリーム・フィルタ・ユニット159は、クライアント153がすでにセッションを確立しているか否かを判定することができる。まだセッションが確立していない場合、ユーザ151を認証するために、認証サーバ156上の認証サービスを呼び出すことができる。クライアント153がすでにセッションを確立している場合は、制御リソースに対するアクセスを与える前に、着信要求に対して追加のチェックを実行する場合がある。追加のチェックは、企業認証ポリシにおいて規定することができる。
ここで図4を参照すると、ブロック図は、典型的な分散型ディレクトリ環境を示す。ユーザ202は、クライアント・アプリケーション204を動作させる。これは、図3に示すようなクライアント153等のクライアント・デバイス上で実行することができる。クライアント・アプリケーション204は、プロキシ化ディレクトリ・サーバによってディレクトリ・サーバとインタラクトする。このサーバは、ディレクトリ・プロキシ・サーバまたはプロキシ・ディレクトリ・サーバとしても知られ、プロキシ・サーバ206として示す。プロキシ・サーバ206は、ユーザのクライアント・デバイス上、または、図1に示すもの等の接続されたデバイスのネットワーク内のどこか他の場所で実行することができる。プロキシ・サーバ206は、コンフィギュレーション・ファイル208に関連付けることができる。このファイル208が含む情報は、管理ユーザ・アプリケーションによって管理されて、これによってプロキシ・サーバ206の機能を制御する。
プロキシ・サーバ206は、分散型ディレクトリ環境に対する中間エージェントとして機能する。プロキシ・サーバ206は、LDAP仕様を含む様々なディレクトリ・スキームおよびプロトコルに従って動作を実行することができる。プロキシ・サーバ206はプロキシ許可制御機能ユニット210を含み、これは、プロキシ化許可制御とも呼ばれるプロキシ許可制御を発生させる。これらの制御がプロキシ・サーバ206によって用いられて、クライアント・アプリケーション204のために、または同様にユーザ202のために、分散型ディレクトリに関する動作を実行する。Wahl等の「LightweightDirectory Access Protocol(v3)」、IETF RFC2251(1997年12月)において記載されているように、制御は、LDAP動作と共に用いるための拡張情報を規定する方法である。制御は、LDAP要求の一部として送信され、それに伴う要求のみに適用することができる。サーバが制御タイプを認識し、それが動作に適切である場合、要求された動作を実行する際にサーバは制御を利用する。様々な任意のパラメータを用いて、制御が認識されないかまたは不適切である場合にそれを無視するか否かを、サーバに知らせることができる。また、制御は、割り当てられたオブジェクト識別子を含む。
従って、プロキシ許可制御機能ユニット210は、入力パラメータとしてプロキシ識別名(DN)を受け入れるアプリケーション・プログラミング・インタフェース(API)を提供することができる。この入力パラメータは、クライアント・アプリケーション204またはユーザ202のために動作を実行する際にプロキシ・サーバ206が想定するアイデンティティの項目のDNを特定する。提供されたAPIを呼び出し側が用いて、プロキシ許可アイデンティティを含むLDAP制御を生成することができる。次いで、生成されたプロキシ許可制御をLDAP動作に含ませて、ディレクトリ・サーバから動作を要求する。このプロキシ許可制御機構を用いて、クライアント、またはこの場合にはプロキシ・サーバ206は、それ自身のアイデンティティを用いてディレクトリ・エンジンにバインドすることができるが、別のユーザすなわちユーザ202またはクライアント・アプリケーション204のプロキシ許可権を与えられてターゲット・ディレクトリにアクセスする。LDAPサーバがプロキシ許可制御を有する動作要求を受信すると、バインドDNが管理グループあるいは既定のプロキシ認証グループに対して有効になって、バインドDNにプロキシ許可権を与えるか否かが判定される。換言すると、この例ではプロキシ・サーバ206であるバインドされたアプリケーション・クライアントは、プロキシ許可動作を要求するために、管理グループまたはプロキシ許可グループのメンバでなければならない。プロキシ許可制御を用いることに関する更に詳しい情報は、Weltmanの「LDAP ProxiedAuthorization Control」、IETF Internet-Draft、draft-weltman-ldapv3-proxy-l2.txt(2003年4月)において見ることができる。また、LDAPプロトコルは、拡張機構をサポートして、LDAP仕様内で規定されないサービスについて追加動作を規定することができる。拡張動作によって、クライアントは、特定の実施に限定されている場合がある既定のシンタクスおよびセマンティクスを用いて要求を行い応答を受信することができる。
分散型ディレクトリ環境は、複数のディレクトリ・サーバ212〜216を含み、これらは、例えば図1および図3に示した分散型データ処理環境と同様に、プロキシ・サーバ206およびクライアント・アプリケーション204と同じ分散型データ処理環境内で相互協調する。ディレクトリ・サーバ212〜216は、分散型ディレクトリの一部、すなわち、分散型ディレクトリ・データストア218〜222として示すディレクトリ情報ツリーの一部を含むデータストアにアクセスするための機能をサポートする。また、ディレクトリ・サーバ212〜216は、例えばプロキシ・サーバ206または他のディレクトリ・クライアントによって送信することができるプロキシ化許可制御の受信および処理をサポートするという、図4には図示しない機能も含む。
先に記載した状況と同様の方法で、特定のディレクトリ動作に関して対象となるユーザ項目、グループ項目、およびターゲット・オブジェクト項目は、異なるシステム上でサポートされる分散型ディレクトリの異なる部分に存在する場合がある。図4に示す例では、ターゲット・オブジェクト項目224は分散型ディレクトリ・データストア218内にあり、ユーザ項目226は分散型ディレクトリ・データストア220内にあり、グループ項目228は分散型ディレクトリ・データストア222内にある。
ここで図5を参照すると、このブロック図は、本発明の一実施形態に従った、グループ・メンバーシップを考慮してディレクトリ・アクセス許可をサポートするための機能を含むように拡張した分散型ディレクトリ環境を示す。図5は図4と同様であり、同様の参照番号は同様の要素を示す。しかしながら、図4とは異なり、図5は本発明の実施形態をサポートするための追加の機能も示す。
図5は、本発明に従って分散型ディレクトリ環境を拡張させる2つの機構を含む例示的な実施形態を示す。第1の機構は、ユーザの識別名および1組の属性が与えられた場合に、グループ・メンバーシップを評価するために、分散型ディレクトリ環境内でディレクトリ・サーバに対する要求をサポートする機能から成る。この機構によって、同一サーバ上のユーザ項目なしで、グループ・メンバーシップの評価が可能となる。例えば、アプリケーションがユーザのための動作を実行している場合、この機構を用いて、ユーザが属する分散型ディレクトリ内のグループを決定することができる。
第2の機構は、ディレクトリ動作を実行するためにディレクトリ・サーバに対する要求をサポートする機能から成り、その一方で、ディレクトリ動作に対する要求と共に提供されたユーザ・グループ・メンバーシップに関する情報内で示されるように1組のグループに特定のユーザが属することの表明を受け入れる。例えば、いったんユーザが1組のグループに属すると判定されると、それ以降、グループ識別名およびグループ属性等のこれらのグループに関する情報を、ユーザのためのディレクトリ動作に対する全ての要求において送信することができ、これによって、許可アクセスを決定するための必要な情報が全てローカルにあるかのように、ユーザに同じ有効な許可アクセスを与える。換言すると、ユーザはそれ以降、必要なグループ項目が全て同一のディレクトリ・サーバ上にストアされている場合に有するのと同じアクセスを有する。
図5は、これらの2つの機構がプロキシ・ディレクトリ・サーバ内および1つ以上のディレクトリ・サーバ内の機能ユニットによって表される例示的な実施形態を示す。第1の機構は、ディレクトリ・サーバ上の対応するコンポーネントと共にプロキシ・サーバ206上のマルチサーバ・グループ・メンバーシップ・コンパイル機能ユニット250、ディレクトリ・サーバ212上のグループ・メンバーシップ評価機能ユニット(GMEFU)252、ディレクトリ・サーバ214上のGMEFU254、およびディレクトリ・サーバ216上のGMEFU256によってサポートされる。第1の機構は、新規の拡張ディレクトリ動作を用い、これはプロキシ・サーバによって用いられて、所与のユーザについてグループ・メンバーシップを決定および評価することができる。ディレクトリ・サーバがプロキシ・サーバから拡張動作要求を受信すると、ディレクトリ・サーバはそのバックエンド・データストアにアクセスして、グループ・メンバーシップを決定する。この機構についての詳細は、残りの図面を参照して以下で説明する。
第2の機構は、ディレクトリ・サーバ上の対応するコンポーネントと共にプロキシ・サーバ206上のグループ表明制御発生機能ユニット260、ディレクトリ・サーバ212上のグループ表明制御処理機能ユニット(GACPFU)262、ディレクトリ・サーバ214上のGACPFU264、ディレクトリ・サーバ216上のGACPFU266によってサポートされる。第2の機構は、本発明ではグループ表明制御と呼ぶ新規の制御を用い、これは、プロキシ・サーバによっていずれかのディレクトリ動作と関連付けて用いることができる。好適な実施形態において、グループ表明制御は、LDAP制御に従ってフォーマット化して処理することができる。ディレクトリ・サーバがディレクトリ動作要求と共にプロキシ・サーバからグループ表明制御を受信すると、ディレクトリ・サーバは、識別されたユーザ、すなわちディレクトリ動作を実行しているアイデンティティが、1組の識別されたグループ、すなわちグループ表明制御内で指定された1組のグループに属すると想定する。ディレクトリ・サーバが、分散型ディレクトリ環境内でのディレクトリ・サーバとプロキシ・サーバとの間の暗示的または明示的な信頼関係に基づいてグループ表明制御を受け入れると想定することができる。グループ表明制御を受信した後、ディレクトリ・サーバは、表明されたグループ組に基づいて分散型ディレクトリにアクセスするための全ての許可判定を実行する。グループ表明制御をプロキシ認証制御と共に用いて、グループ表明制御およびプロキシ許可制御を同一のディレクトリ動作に関連付けて用いるようにすることができる。同一のディレクトリ動作に関して2つの制御が用いられた場合、ディレクトリ・サーバは、識別されたユーザの1組のグループ・メンバーシップを考慮して、与えられたユーザ・アイデンティティのために要求されたディレクトリ動作を実行する。この機構についてのこれ以上の詳細は、残りの図面を参照して以下で説明する。
ここで図6を参照すると、このブロック図は、クライアントまたはクライアント・アプリケーションとディレクトリ・プロキシ・サーバとの間の典型的なデータフローを示す。クライアント302は、プロキシ・サーバ306に、ディレクトリ動作についての要求を表す要求メッセージ304を送信する。要求されたディレクトリ動作を実行した後、プロキシ・サーバ306は、クライアント302に、要求されたディレクトリ動作についての応答を表す応答メッセージ308を戻す。次いで、クライアント302は、受信した情報について何らかの追加の計算タスクを実行する。このように、クライアントとディレクトリ・プロキシ・サーバとの間のディレクトリ動作に関する要求および応答の交換は、典型的な分散型ディレクトリ環境内で行われるデータフローと類似している。プロキシ・サーバ306は、ディレクトリ動作が実行されているユーザまたはクライアントについての認証動作(図示せず)を実行するためのユーザ・アイデンティティおよびいずれかの必要な認証証明書を取得しているかまたは以前にキャッシュしていると想定することができる。
ここで図7を参照すると、このブロック図は、本発明の一実施形態に従って所与のユーザのグループ・メンバーシップに関する情報を取得するための、ディレクトリ・プロキシ・サーバとディレクトリ・サーバとの間のデータフローを示す。プロキシ・サーバ312は、要求メッセージ316をディレクトリ・サーバ314に送信する。要求メッセージ316は、ディレクトリ・サーバ314がサポートするディレクトリ情報ツリーの一部にストアされた情報に関して、識別されたユーザが属するグループを判定するためのディレクトリ・サーバ314に対する要求を表す。要求メッセージ316は、特定のユーザを識別するためのユーザDN318を含み、また、ディレクトリ・サーバ314がサポートするデータストアにローカルに存在するグループ項目を考慮してグループ・メンバーシップ判定を実行するための、特定のユーザについてのユーザ属性320も含む。ディレクトリ・サーバ314が、識別されたユーザについて適切な1組のグループ・メンバーシップを判定した後、ディレクトリ・サーバ314は、プロキシ・サーバ312に、以前に指定したユーザのグループ評価判定についての応答を表す応答メッセージ322を戻す。応答メッセージ322は、1組のグループDN324を含み、更に、好ましくは、付随するグループDNについての1組の対応するグループ属性326を含む。また、応答メッセージ322は、ユーザDN318よびユーザ属性320を返すことができる。分散型ディレクトリ環境内のメッセージは、必要に応じて、暗号によって保護すると想定することができる。
このように、プロキシ・サーバおよびディレクトリ・サーバが要求および応答を交換することで、プロキシ・サーバは、ディレクトリ・サーバ314等の特定のディレクトリ・サーバに既知の1組のグループ・メンバーシップをユーザのために取得することができる。しかしながら、分散型ディレクトリ環境では、ディレクトリ・サーバ314は、例えば複数のディレクトリ・サーバを示す図5に示すように、多くのデータストア間で物理的に分割されたディレクトリ情報ツリーをサポートする複数のディレクトリ・サーバの1つである。従って、以下で更に詳細に記載するように、プロキシ・サーバは、所与のユーザのグループ・メンバーシップを全て判定するために、分散型ディレクトリ環境内の各ディレクトリ・サーバにグループ・メンバーシップ評価要求を送信し、これは、分散型ディレクトリを含むデータストア全体に広がるグループ項目に反映させることができる。
ここで図8を参照すると、このブロック図は、本発明の一実施形態に従って、識別したユーザまたはクライアントおよびその関連グループ・メンバーシップに関して、ディレクトリ動作を実行するための、ディレクトリ・プロキシ・サーバとディレクトリ・サーバとの間のデータフローを示す。図7および図8における同様の参照番号は同様の要素を示す。プロキシ・サーバ312は、要求メッセージ332をディレクトリ・サーバ314に送信する。要求メッセージ332は、識別したユーザについて与えられた情報に関してディレクトリ動作を実行するためのディレクトリ・サーバ314に対する要求を表す。
図8に示すようなディレクトリ動作を要求するために用いられる要求メッセージ332は、図6に示すようなディレクトリ動作を要求するために用いられる要求メッセージ304と同一ではないことに留意すべきである。要求メッセージ304は、要求メッセージ304からコピーした情報を含むように、変更、コピーおよび変更、または発生されている。従って、要求メッセージ332は、最初に要求されたディレクトリ動作を実行するための要求メッセージ304からのあらゆる必要な情報を含む。更に、要求メッセージ332はプロキシ許可制御334を含み、これは、特定のユーザを識別するためのユーザDN318を含み、更に、この特定のユーザのためのユーザ属性320も含む。ディレクトリ・サーバ314がプロキシ許可制御334を受け入れることによって、プロキシ・サーバ312は、例えば図6のクライアント302のようなクライアントのためのプロキシ・エンージェントとして機能することができる。換言すると、プロキシ許可制御334は、例えばディレクトリ・サーバ314のような受信側ディレクトリ・サーバに対して、ディレクトリ・サーバ314がクライアント302から直接要求メッセージ332を受信したかのように、要求メッセージ332によって表されるディレクトリ動作をプロキシ・サーバ312が要求する許可を受けていることを知らせる。
本発明の新規の機能に従って、要求メッセージ332は、グループ表明制御336も含む。上述のように、プロキシ・サーバ312は、例えば図7に関して上述したような要求/応答交換を用いることによって、識別したユーザのグループ・メンバーシップに関する情報をあらかじめ収集している。ここで、プロキシ・サーバ312は、ディレクトリ動作の要求と共にグループ表明制御336を送信することによって、ディレクトリ動作の間にこの蓄積したグループ・メンバーシップ情報を表明する。グループ表明制御336は、1組のグループDN338を含み、好ましくは、付随するグループDNのための1組の対応するグループ属性340も含む。グループ表明制御は、オブジェクトID(OID)等のいずれかの他の適切な情報も含むことができる。場合によっては、要求メッセージ332における1組のグループDNおよびグループ属性は、図7の応答メッセージ322の1組のグループDNおよびグループ属性と同一である場合がある。しかしながら、それらは同一でない可能性が高い。なぜなら、グループ表明制御336におけるグループ・メンバーシップ情報は、ディレクトリ・サーバ314を含む1つ以上のディレクトリ・サーバから検索したゼロ以上のグループDNを含むからである。
要求されたディレクトリ動作を実行した後、ディレクトリ・サーバ314は、応答メッセージ342をプロキシ・サーバ312に送信する。応答メッセージ342はディレクトリ動作の結果を含み、これは失敗情報を含む場合がある。プロキシ・サーバ312は、応答メッセージ342を処理し、例えば図6に示すように要求側クライアントに応答メッセージを戻す。
ここで図9を参照すると、このフローチャートは、本発明の一実施形態に従った、分散型ディレクトリ環境内で所与のユーザについてのディレクトリ動作中にこの所与のユーザに関する1組のグループ・メンバーシップを後に用いるためにコンパイルするプロキシ・サーバにおけるプロセスを示す。このプロセスは、ディレクトリ・プロキシ・サーバが所与のユーザに関して認証動作を実行することを決定すると開始する(ステップ402)。この決定は、図9には図示しない以前のイベントによってトリガされ、このプロセスは、図9には図示しない追加のステップによって終了することができる。例えば、プロキシ・サーバは、クライアント・アプリケーションから、分散型ディレクトリ環境にログインする要求を受信する場合がある。別の例では、プロキシ・サーバは最初のディレクトリ動作についての要求を受信するが、プロキシ・サーバが要求側ユーザのための認証証明書を有しないと判定された後、プロキシ・サーバはユーザに関して認証動作を実行することを決定する。図9の認証動作は、ユーザ名−パスワード検証プロセスを示すが、例えばデジタル証明書に基づいた認証動作のような別のタイプの認証動作も実行可能である。
プロキシ・サーバは、例えばクライアント・アプリケーションとのインタラクションによって、ユーザのためのユーザ名およびパスワードの組み合わせを取得する(ステップ404)。プロキシ・サーバは、分散型ディレクトリを検索して、適切なユーザ項目を見つけて取り出し(ステップ406)、以前に取得したユーザ・パスワードを、ユーザ項目内にストアしたユーザ・パスワードに対して照合する(ステップ408)。パスワードが確認されない場合、何らかのタイプのエラーを報告し、プロセスを終了する。その他の場合、パスワードが確認されたと仮定すると、プロキシ・サーバは以降の使用のためにユーザ項目をキャッシュする(ステップ410)。
ステップ402〜410に示す認証関連手順は、一般的に、多くのディレクトリ環境内で実行される。しかしながら、図9は、本発明の一実施形態に従って実行される新規のステップも示す。
プロキシ・サーバは、その分散型ディレクトリ環境内の分散型ディレクトリ・サーバのリストを検索する(ステップ412)。このリストは、プロキシ・サーバのためのコンフィギュレーション・ファイルを含むいずれかの適切な位置から検索することができる。次いで、プロキシ・サーバは、ディレクトリ・サーバのリストを進んでいき、リスト内の各ディレクトリ・サーバに関して一連のステップを実行する。
プロキシ・サーバは、リスト内の次のディレクトリ・サーバに関する情報を検索する(ステップ414)。このディレクトリ・サーバは、プロキシ・サーバの現在のアクションに関して現在のディレクトリ・サーバと見なされる。現在のディレクトリ・サーバに関する検索された情報は様々な情報を含み得る。すなわち、ディレクトリ・サーバの識別子、ディレクトリ・サーバに接触するために用いられるプロトコル、ディレクトリ・サーバに接触するために用いられるアドレス、および、プロキシ・サーバに様々な動作をどのように実行するかを通知するために特定の分散型ディレクトリ環境内で使用可能ないずれかの他の情報である。次いで、プロキシ・サーバは、ユーザのグループ・メンバーシップを取得するために、現在のディレクトリ・サーバに拡張動作要求を送信する(ステップ416)。拡張動作要求は、ユーザのためのユーザDNおよびユーザ属性を含む。ある時点で、プロキシ・サーバは、現在のディレクトリ・サーバからいずれかのグループ・メンバーシップ情報を受信する(ステップ418)。グループ情報は、1組のグループDNおよび1組のグループ属性と共に、他のいずれかの適切な情報を含む。
次いで、プロキシ・サーバは、ディレクトリ・サーバのリストに他のディレクトリ・サーバがあるか否かを調べる(ステップ420)。ある場合、プロセスはステップ414に戻り、異なるディレクトリ・サーバに関するグループ・メンバーシップ情報の検索を行う。それ以上ディレクトリ・サーバが存在しない場合、プロキシ・サーバはユーザのグループ・メンバーシップ・リストをコンパイルする(ステップ422)。グループ・メンバーシップに関する情報は、以降のディレクトリ動作のために、ユーザについてのユーザDNに関連付けてキャッシュされ(ステップ424)、プロセスは終了する。
ここで図10を参照すると、このフローチャートは、本発明の一実施形態に従った、分散型ディレクトリ環境内で所与のユーザについて1組のグループ・メンバーシップを用いながら要求されたディレクトリ動作を実行するためのプロキシ・サーバにおけるプロセスを示す。このプロセスは、ディレクトリ・プロキシ・サーバがクライアント・アプリケーションからディレクトリ動作についての要求を受信すると開始する(ステップ502)。分散型ディレクトリ動作がセキュアな動作をサポートまたは要求する場合、プロキシ・サーバは要求側クライアントまたはそのユーザをすでに認証していると想定することができる。そうでない場合、例えば図9に示すように、ステップ502の後に認証動作を実行することができる。次いで、プロキシ・サーバは、ディレクトリ動作が要求されているユーザのユーザDNおよびユーザ属性を検索し(ステップ504)、プロキシ・サーバは、後にディレクトリ・サーバに送信するディレクトリ要求内に含ませるプロキシ許可制御を発生する(ステップ506)。
ステップ502〜506に示すプロキシ関連手順は、一般的に、多くのディレクトリ環境内で実行される。しかしながら、図10は、本発明の一実施形態に従って実行される新規のステップも示す。
プロキシ・サーバは、ユーザのためのグループ・メンバーシップ情報を以前にキャッシュしており(ステップ508)、次いで、ユーザのグループ・メンバーシップ情報を含むグループ表明制御を発生する(ステップ510)。プロキシ・サーバは、発生したプロキシ認証制御および発生したグループ表明制御を含むディレクトリ要求を生成する(ステップ512)。プロキシ・サーバは、そのディレクトリ要求を必要に応じて1つ以上のディレクトリ・サーバに送信する(ステップ514)。ある時点で、プロキシ・サーバは、例えばステップ514に関した動作に対して適宜、1つ以上のディレクトリ・サーバからディレクトリ応答を受信する(ステップ516)。次いで、プロキシ・サーバは、ディレクトリ応答を発生して要求側クライアント・アプリケーションに送信し(ステップ518)、プロセスは終了する。
ここで図11を参照すると、このフローチャートは、本発明の一実施形態に従った、分散型ディレクトリ環境内で所与のユーザについてディレクトリ・プロキシ・サーバによって提供された1組のグループ・メンバーシップを用いながら要求されたディレクトリ動作を実行するためのディレクトリ・サーバにおけるプロセスを示す。このプロセスは、ディレクトリ・サーバがディレクトリ・プロキシ・サーバからディレクトリ動作についての要求を受信すると開始する(ステップ602)。ディレクトリ・サーバは、受信したディレクトリ動作要求から、プロキシ許可制御およびグループ表明制御を認識して取得する(ステップ604)。次いで、ディレクトリ・サーバは、何らかの方法でプロキシ許可制御を検証する(ステップ606)。検証が失敗すると、何らかのタイプのエラーが報告されるか、あるいは戻される、またはその両方が実行される。プロキシ許可制御が確認されると、ディレクトリ・サーバは、プロキシ許可制御内で識別されたユーザに関して以降の動作を実行する。
次いで、ディレクトリ・サーバは、グループ表明制御からグループ・メンバーシップ情報を取得する(ステップ608)。ディレクトリ・サーバは、識別されたユーザのために、グループ・メンバーシップ情報に関して要求されたディレクトリ動作を実行する(ステップ610)。ディレクトリ動作の結果についての情報は、発生したディレクトリ応答内にストアされる(ステップ612)。ディレクトリ応答を要求側のプロキシ・サーバに送信し(ステップ614)、これによってプロセスを終了する。
本発明の利点は、上述の詳細な説明を考慮すれば明らかであろう。ディレクトリ・サーバがディレクトリ動作についての要求内でグループ表明制御を受信した場合、グループ表明制御は以前に評価された所与のユーザのグループ・メンバーシップに関する情報を含む。次いで、ディレクトリ・サーバは、ディレクトリ情報ツリーのその部分内にストアされた情報を用い、例えば1組のグループDNおよび関連するグループ属性のような受信したグループ・メンバーシップ情報を用いて、要求されたディレクトリ動作を実行することができる。
要求されたディレクトリ動作が、特定グループのユーザのみにアクセスが限定されているディレクトリ情報ツリーの部分に対するアクセスを必要とする場合、ディレクトリ・サーバは、ユーザがその特定のグループに属するか否かを判定する機能を有する。従って、本発明は、分散型ディレクトリ環境におけるアクセスを決定するために、更にデータ複製を行う必要なく、また、分散型ディレクトリの部分のストレージ位置を更に制限する必要なく、分散型ディレクトリをサポートするように、所与のユーザについてのグループ・メンバーシップの評価をサポートする機構を提供する。
本発明は、充分に機能するデータ処理システムの状況において説明したが、本発明に関連するプロセスの一部は、コンピュータ読み取り可能媒体において命令の形態で、および様々な他の形態で分散させることができ、その分散を行うために実際に用いる信号記録媒体の特定のタイプには無関係であることは、当業者には認められよう。コンピュータ読み取り可能媒体の例には、EPROM、ROM、テープ、紙、フレキシブル・ディスク、ハード・ディスク・ドライブ、RAM、およびCD−ROM等の媒体、デジタルおよびアナログ通信リンク等の伝送型の媒体が含まれる。
本発明の記載は、例示の目的で与えるものであり、網羅的であったり開示する実施形態を限定したりすることは意図していない。当業者には、多くの変更および変形が明らかであろう。実施形態は、本発明の原理およびその実際の応用を説明するため、ならびに、当業者が本発明を理解して、他の考えられる使用に適切であるような様々な変更と共に様々な実施形態を実施することができるように選んだものである。
本発明を実施可能な典型的な分散型データ処理システムを示す。 本発明を実施可能なデータ処理システム内で用いることができる典型的なコンピュータ・アーキテクチャを示す。 企業領域の典型的な分散型データ処理システムを示すブロック図である。 典型的な分散型ディレクトリ環境を示すブロック図である。 本発明に従って、グループ・メンバーシップを考慮してディレクトリ・アクセス許可をサポートするための機能を含むように拡張した分散型ディレクトリ環境を示すブロック図である。 クライアントまたはクライアント・アプリケーションとディレクトリ・プロキシ・サーバとの間の典型的なデータフローを示すブロック図である。 本発明の一実施形態に従って所与のユーザのグループ・メンバーシップに関する情報を取得するための、ディレクトリ・プロキシ・サーバとディレクトリ・サーバとの間のデータフローを示すブロック図である。 本発明の一実施形態に従って、識別したユーザまたはクライアントおよびその関連グループ・メンバーシップに関して、ディレクトリ動作を実行するための、ディレクトリ・プロキシ・サーバとディレクトリ・サーバとの間のデータフローを示すブロック図である。 本発明の一実施形態に従った、分散型ディレクトリ環境内で所与のユーザについてのディレクトリ動作中にこの所与のユーザに関する1組のグループ・メンバーシップを後に用いるためにコンパイルするプロキシ・サーバにおけるプロセスを示すフローチャートである。 本発明の一実施形態に従った、分散型ディレクトリ環境内で所与のユーザについて1組のグループ・メンバーシップを用いながら要求されたディレクトリ動作を実行するためのプロキシ・サーバにおけるプロセスを示すフローチャートである。 本発明の一実施形態に従った、分散型ディレクトリ環境内で所与のユーザについてディレクトリ・プロキシ・サーバによって提供された1組のグループ・メンバーシップを用いながら要求されたディレクトリ動作を実行するためのディレクトリ・サーバにおけるプロセスを示すフローチャートである。

Claims (15)

  1. 分散型ディレクトリ環境内でディレクトリ動作を実行するための方法であって、前記分散型ディレクトリ環境が、複数の分散型ディレクトリ・サーバおよび、クライアントと前記分散型ディレクトリ環境との間の中間エージェントとして機能するプロキシ・サーバを含み、
    前記方法が、
    ユーザについての識別名及び属性を含む第1の要求をプロキシ・サーバから前記複数の分散型ディレクトリ・サーバのそれぞれに送信するステップであって、前記ユーザについて、前記複数の分散型ディレクトリ・サーバのそれぞれによって前記複数の分散型ディレクトリ・サーバのそれぞれによってサポートされる分散型ディレクトリの一部内のグループ項目に関するグループ・メンバーシップが判定される、前記送信するステップと、
    前記ユーザがグループ・メンバーシップを有するグループを表すグループ項目についての1組のグループ識別名及びグループ属性を含む第1の応答を前記複数の分散型ディレクトリ・サーバのそれぞれから前記プロキシ・サーバにおいて受信するステップと、
    前記複数の分散型ディレクトリ・サーバからの前記受信した複数の第1の応答に基づいて、前記ユーザがグループ・メンバーシップを有するグループを表すグループ項目についてのコンパイルされた1組のグループ識別名及びグループ属性を発生させるステップと、
    前記コンパイルされた前記1組のグループ識別名及びグループ属性を前記プロキシ・サーバにおいてストアするステップと
    を含む、前記方法。
  2. ディレクトリ・アクセス・プロトコル内で拡張動作を用いてィレクトリ・サーバから情報を要求し受信することによって、前記ユーザがグループ・メンバーシップを有するグループを表すグループ項目についての1組の識別名及び属性を前記プロキシ・サーバにおいて取得するステップを更に含み、前記拡張動作が、前記ディレクトリ・アクセス・プロトコル仕様内で規定されていないサービスについて規定された追加動作を含む、請求項1に記載の方法。
  3. 前記分散型ディレクトリ環境内の各ディレクトリ・サーバから、前記ユーザがグループ・メンバーシップを有するグループを表すグループ項目についての1組の識別名及び属性を前記プロキシ・サーバにおいて取得するステップを更に含む、請求項1または2に記載の方法。
  4. 前記プロキシ・サーバからディレクトリ・サーバに第2の要求を送信するステップを更に含み、
    前記第2の要求が前記ユーザのために実行されるディレクトリ動作を指示し、
    前記第2の要求が、前記ユーザがグループ・メンバーシップを有するグループを表すグループ項目についての前記コンパイルされた1組のグループ識別名及びグループ属性を含む、
    請求項1〜3のいずれか一項に記載の方法。
  5. ディレクトリ・アクセス・プロトコルに従ってフォーマット化されているグループ表明制御発生させるステップであって、前記グループ表明制御は、前記ユーザがグループ・メンバーシップを有するグループを表すグループ項目についての前記コンパイルされた1組のグループ識別名及びグループ属性を含む、前記発生させるステップと、
    前記発生させられグループ表明制御を前記第2の要求に含めるステップと
    を更に含む、請求項に記載の方法。
  6. 前記ユーザについての前記識別名及び属性に関して、および、前記分散型ディレクトリ・サーバによってサポートされるディレクトリ情報ツリーにおけるグループ項目に関して、前記ユーザについてのグループ・メンバーシップを評価するステップを更に含む、請求項1〜5のいずれか一項に記載の方法。
  7. 前記分散型ディレクトリ・サーバによってサポートされる前記ディレクトリ情報ツリー、前記ユーザについての前記識別名及び属性、ならびに、前記ユーザがグループ・メンバーシップを有するグループを表すグループ項目についての前記第2の組の識別名及び属性に関して、前記ディレクトリ動作を実行するステップと、
    前記ディレクトリ動作を実行した後、前記複数の分散型ディレクトリ・サーバのそれぞれから前記プロキシ・サーバに第2の応答を送信するステップと
    を更に含む、請求項4又は5に記載の方法。
  8. 分散型ディレクトリ環境内でディレクトリ動作を実行するためのシステムであって、複数の分散型ディレクトリ・サーバおよび、クライアントと前記分散型ディレクトリ環境との間の中間エージェントとして機能するプロキシ・サーバを含み、
    前記システムが、
    ユーザについての識別名及び属性を含む第1の要求をプロキシ・サーバから前記複数の分散型ディレクトリ・サーバのそれぞれに送信するための手段と、
    前記ユーザがグループ・メンバーシップを有するグループを表すグループ項目についての1組のグループ識別名及びグループ属性を含む第1の応答を前記複数の分散型ディレクトリ・サーバのそれぞれから前記プロキシ・サーバにおいて受信するための手段であって、前記ユーザについて、前記複数の分散型ディレクトリ・サーバのそれぞれによって前記複数の分散型ディレクトリ・サーバのそれぞれによってサポートされる分散型ディレクトリの一部内のグループ項目に関するグループ・メンバーシップが判定される、前記送信するための手段と、
    前記複数の分散型ディレクトリ・サーバからの前記受信した複数の第1の応答に基づいて、前記ユーザがグループ・メンバーシップを有するグループを表すグループ項目についてのコンパイルされた1組のグループ識別名及びグループ属性を発生させるための手段と、
    前記コンパイルされた前記1組のグループ識別名及びグループ属性を前記プロキシ・サーバにおいてストアするための手段と
    を備えている、前記システム
  9. ディレクトリ・アクセス・プロトコル内で拡張動作を用いてディレクトリ・サーバから情報を要求し受信することによって、前記ユーザがグループ・メンバーシップを有するグループを表すグループ項目についての1組の識別名及び属性を前記プロキシ・サーバにおいて取得するための手段を更に備えており、前記拡張動作が、前記ディレクトリ・アクセス・プロトコル仕様内で規定されていないサービスについて規定された追加動作を含む、請求項8に記載のシステム。
  10. 前記分散型ディレクトリ環境内の各ディレクトリ・サーバから、前記ユーザがグループ・メンバーシップを有するグループを表すグループ項目についての1組の識別名及び属性を前記プロキシ・サーバにおいて取得するための手段を更に備えている、請求項8または9に記載のシステム。
  11. 前記プロキシ・サーバからディレクトリ・サーバに第2の要求を送信するための手段を更に備えており、
    前記第2の要求が前記ユーザのために実行されるディレクトリ動作を指示し、
    前記第2の要求が、前記ユーザがグループ・メンバーシップを有するグループを表すグループ項目についての前記コンパイルされた1組のグループ識別名及びグループ属性を含む、
    請求項8〜10のいずれか一項に記載のシステム。
  12. ディレクトリ・アクセス・プロトコルに従ってフォーマット化されているグループ表明制御を発生させるための手段であって、前記グループ表明制御は、前記ユーザがグループ・メンバーシップを有するグループを表すグループ項目についての前記コンパイルされた1組のグループ識別名及びグループ属性を含む、前記発生させるための手段と、
    前記発生させられたグループ表明制御を前記第2の要求に含めるための手段と
    を更に含む、請求項11に記載のシステム。
  13. 分散型ディレクトリ環境内でディレクトリ動作を実行するためのコンピュータ・プログラムであって、前記分散型ディレクトリ環境が、複数の分散型ディレクトリ・サーバおよび、クライアントと前記分散型ディレクトリ環境との間の中間エージェントとして機能するプロキシ・サーバを含み、
    前記コンピュータ・プログラムは、コンピュータを、
    ユーザについての識別名及び属性を含む第1の要求をプロキシ・サーバから前記複数の分散型ディレクトリ・サーバのそれぞれに送信するための手段であって、前記ユーザについて、前記複数の分散型ディレクトリ・サーバのそれぞれによって前記複数の分散型ディレクトリ・サーバのそれぞれによってサポートされる分散型ディレクトリの一部内のグループ項目に関するグループ・メンバーシップが判定される、前記送信するための手段と、
    前記ユーザがグループ・メンバーシップを有するグループを表すグループ項目についての1組のグループ識別名及びグループ属性を含む第1の応答を前記複数の分散型ディレクトリ・サーバのそれぞれから前記プロキシ・サーバにおいて受信するための手段と、
    前記複数の分散型ディレクトリ・サーバからの前記受信した複数の第1の応答に基づいて、前記ユーザがグループ・メンバーシップを有するグループを表すグループ項目についてのコンパイルされた1組のグループ識別名及びグループ属性を発生させるための手段と、
    前記コンパイルされた前記1組のグループ識別名及びグループ属性を前記プロキシ・サーバにおいてストアするための手段と
    して機能させる、前記コンピュータ・プログラム。
  14. 分散型ディレクトリ環境内でディレクトリ動作を実行するためのコンピュータ・プログラムであって、前記分散型ディレクトリ環境が、複数の分散型ディレクトリ・サーバおよび、クライアントと前記分散型ディレクトリ環境との間の中間エージェントとして機能するプロキシ・サーバを含み、前記プロキシ・サーバに請求項1〜5のいずれか一項に記載の方法の各ステップを実行させる前記コンピュータ・プログラム。
  15. 分散型ディレクトリ環境内でディレクトリ動作を実行するためのコンピュータ・プログラムであって、前記分散型ディレクトリ環境が、複数の分散型ディレクトリ・サーバおよび、クライアントと前記分散型ディレクトリ環境との間の中間エージェントとして機能するプロキシ・サーバを含み、前記プロキシ・サーバを請求項8〜12のいずれか一項に記載の各手段として機能させる前記コンピュータ・プログラム。
JP2008505876A 2005-04-14 2006-04-07 分散型ディレクトリ中でのグループ・メンバーシップを伴うアクセス許可のための方法およびシステム Expired - Fee Related JP4979683B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/105,613 US20060235850A1 (en) 2005-04-14 2005-04-14 Method and system for access authorization involving group membership across a distributed directory
PCT/EP2006/061457 WO2006108815A1 (en) 2005-04-14 2006-04-07 Method and system for access authorization involving group membership across a distributed directory

Publications (2)

Publication Number Publication Date
JP2009532748A JP2009532748A (ja) 2009-09-10
JP4979683B2 true JP4979683B2 (ja) 2012-07-18

Family

ID=36500604

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008505876A Expired - Fee Related JP4979683B2 (ja) 2005-04-14 2006-04-07 分散型ディレクトリ中でのグループ・メンバーシップを伴うアクセス許可のための方法およびシステム

Country Status (6)

Country Link
US (1) US20060235850A1 (ja)
EP (1) EP1875706A1 (ja)
JP (1) JP4979683B2 (ja)
CN (1) CN101160906B (ja)
CA (1) CA2604335C (ja)
WO (1) WO2006108815A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070055775A1 (en) * 2005-09-06 2007-03-08 Chia Mei Kwang K Method and system for controlling information access from a website via Web or WAP access
US8412750B2 (en) * 2005-09-26 2013-04-02 Research In Motion Limited LDAP to SQL database proxy system and method
US20100077316A1 (en) * 2006-11-22 2010-03-25 Omansky Adam H Method and system for inspectng and managing information
US7562075B2 (en) * 2006-12-07 2009-07-14 International Business Machines Corporation Change approvals for computing systems
CN101720548B (zh) * 2007-04-10 2015-08-12 阿珀蒂奥有限公司 代表请求实体访问目录中数据的方法和系统
US8230455B2 (en) * 2007-07-11 2012-07-24 International Business Machines Corporation Method and system for enforcing password policy for an external bind operation in a distributed directory
US8935805B2 (en) * 2007-07-11 2015-01-13 International Business Machines Corporation Method and system for enforcing password policy in a distributed directory
US8042153B2 (en) * 2008-01-09 2011-10-18 International Business Machines Corporation Reducing overhead associated with distributed password policy enforcement operations
US8347347B2 (en) * 2008-01-09 2013-01-01 International Business Machines Corporation Password policy enforcement in a distributed directory when policy information is distributed
CN101764791B (zh) * 2008-12-24 2013-08-28 华为技术有限公司 一种业务链中的用户身份验证方法、设备及系统
US8473505B2 (en) * 2009-06-30 2013-06-25 Sap Ag System and method for providing delegation assistance
US8479078B2 (en) * 2009-10-30 2013-07-02 Cleversafe, Inc. Distributed storage network for modification of a data object
US8793355B2 (en) * 2010-04-27 2014-07-29 Symantec Corporation Techniques for directory data resolution
US8806040B2 (en) * 2010-12-06 2014-08-12 Red Hat, Inc. Accessing external network via proxy server
EP3035629A1 (en) * 2014-12-19 2016-06-22 Gemalto Sa Method for authenticating attributes in a non-traceable manner and without connection to a server
US10606902B1 (en) * 2016-09-29 2020-03-31 EMC IP Holding Company LLC Method and system for cached early-binding document search
US10291602B1 (en) * 2017-04-12 2019-05-14 BlueTalon, Inc. Yarn rest API protection
US11070540B1 (en) * 2018-12-28 2021-07-20 Juniper Networks, Inc. Dynamic provisioning of user groups within computer networks based on user attributes
US12047373B2 (en) * 2019-11-05 2024-07-23 Salesforce.Com, Inc. Monitoring resource utilization of an online system based on browser attributes collected for a session
US11411954B1 (en) * 2021-12-27 2022-08-09 Coretech LT, UAB Access control policy for proxy services

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6366913B1 (en) * 1998-10-21 2002-04-02 Netscape Communications Corporation Centralized directory services supporting dynamic group membership
US6684331B1 (en) * 1999-12-22 2004-01-27 Cisco Technology, Inc. Method and apparatus for distributing and updating group controllers over a wide area network using a tree structure
US6708170B1 (en) * 1999-12-14 2004-03-16 International Business Machines Corporation Method and system for usage of non-local data within a lightweight directory access protocol directory environment
FR2816781B1 (fr) * 2000-11-10 2003-01-31 Evidian Procede et dispositif de securisation d'un portail dans un systeme informatique
US6633872B2 (en) * 2000-12-18 2003-10-14 International Business Machines Corporation Extendible access control for lightweight directory access protocol
FR2818853B1 (fr) * 2000-12-26 2004-04-23 Matra Nortel Communications Serveur d'annuaire reparti
US7165182B2 (en) * 2002-07-05 2007-01-16 Sun Microsystems, Inc. Multiple password policies in a directory server system
US7571180B2 (en) * 2003-06-27 2009-08-04 Attachmate Corporation Utilizing LDAP directories for application access control and personalization

Also Published As

Publication number Publication date
CA2604335C (en) 2016-03-29
EP1875706A1 (en) 2008-01-09
JP2009532748A (ja) 2009-09-10
WO2006108815A1 (en) 2006-10-19
CN101160906A (zh) 2008-04-09
CN101160906B (zh) 2011-12-28
CA2604335A1 (en) 2006-10-19
US20060235850A1 (en) 2006-10-19

Similar Documents

Publication Publication Date Title
JP4979683B2 (ja) 分散型ディレクトリ中でのグループ・メンバーシップを伴うアクセス許可のための方法およびシステム
US8464317B2 (en) Method and system for creating a protected object namespace from a WSDL resource description
US8347347B2 (en) Password policy enforcement in a distributed directory when policy information is distributed
US7296077B2 (en) Method and system for web-based switch-user operation
US8230455B2 (en) Method and system for enforcing password policy for an external bind operation in a distributed directory
US8935805B2 (en) Method and system for enforcing password policy in a distributed directory
JP5052523B2 (ja) フェデレーション内のプリンシパルの認証
US7903656B2 (en) Method and system for message routing based on privacy policies
US8464311B2 (en) Method and system for implementing privacy notice, consent, and preference with a privacy proxy
US8095658B2 (en) Method and system for externalizing session management using a reverse proxy server
US7797726B2 (en) Method and system for implementing privacy policy enforcement with a privacy proxy
US7249369B2 (en) Post data processing
US7464162B2 (en) Systems and methods for testing whether access to a resource is authorized based on access information
US8042153B2 (en) Reducing overhead associated with distributed password policy enforcement operations
US20050015621A1 (en) Method and system for automatic adjustment of entitlements in a distributed data processing environment
WO2002005185A1 (en) Query string processing
CN111444495A (zh) 一种基于容器实现单点登录的系统及方法
JP5039053B2 (ja) マクロ・サポートによりhttpセキュリティ・メッセージ処理を外部化するための方法およびシステム
US7685300B2 (en) Method for access by server-side components using unsupported communication protocols through passthrough mechanism
JP2002324051A (ja) ユーザ認証方法および装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20111124

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111124

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20111124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20111125

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120124

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120125

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120321

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120321

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20120321

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120417

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150427

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees