(57)【特許請求の範囲】
【請求項１】
ロールメンバーシップを動的に管理するための方法であって、該方法は、
プロセッサーが、ロール名に関連するロール構成を生成しまたは修正するための第１のリクエストを受信することであって、該ロール構成は、１つ以上のロールフィルターと、互いに対する該１つ以上のロールフィルターの論理関係を特定する論理ステートメントとを含み、各ロールフィルターは、エンティティ属性に対する１つ以上の特定されたオプションを含み、各ロールフィルターは、該エンティティ属性に対する値を含むデータソースにリンクされる、ことと、
該第１のリクエストを受信することに応答して、該プロセッサーが、該ロール構成がなお存在しない場合、該ロール構成を生成し、または該ロール構成が既に存在する場合、該ロール構成を記憶エリアから検索することと、
該プロセッサーが、該ロール構成に含むための１つ以上のロールフィルターを選択することと、
該プロセッサーが、該ロール構成を保存する前に、該選択されたロールフィルターを検証することであって、該検証は、各ロールフィルターに対して、
該リンクされたデータソースへの接続を確認する第１の確認ステップと、
該リンクされたデータソースが該ロールフィルターの該エンティティ属性に対する値を含むことを確認する第２の確認ステップであって、該第１の確認ステップおよび該第２の確認ステップの両方が成功である場合、該ロールフィルターが検証され、該ロール構成が保存され、１つまたは両方の確認ステップが失敗である場合、該ロールフィルターが検証されない、第２の確認ステップと
を含む、ことと、
該プロセッサーが、該１つ以上のロールフィルターの該論理関係を特定する該論理ステートメントを編集することと、
該プロセッサーが、該選択されおよび検証されたロールフィルターと、該編集された論理ステートメントとを含む該ロール構成を、該記憶エリア内に保存することと、
該プロセッサーが、エンティティがロールのメンバーであるか否かを確認するための第２のリクエストを受信することであって、該確認するための第２のリクエストが、ロール名および該エンティティの名前を含む、ことと、
該確認するための第２のリクエストを受信することに応答して、該プロセッサーが、該ロール名に関連するロール構成を該記憶エリアから検索することと、
該プロセッサーが、該論理ステートメントを構文解析し、そして該論理ステートメントの各ロールフィルターに対して、該データソース内の該エンティティの該名前に関連するエンティティ属性の該値が、該ロールフィルターの該１つ以上の特定されたオプションにマッチするか否かを決定することによって、該ロールフィルターが真かまたは真でない結果を有するのを決定することと、
該プロセッサーが、該論理関係に従って、該論理ステートメントの各ロールフィルターに対する該真または真でない結果を処理することによって、該論理ステートメントの真または真でないことを評価することと、
該プロセッサーが、該エンティティが該ロールのメンバーであるか否かを決定することであって、該論理ステートメントが真である場合、該エンティティがメンバーであり、該論理ステートメントが真でない場合、該エンティティがメンバーではない、ことと
を含み、
エンティティ属性は、対応するエンティティに関する特性である、方法。
【請求項２】
前記ロールフィルターが真かまたは真でない結果を有するのを決定することは、各ロールフィルターに対して、
前記プロセッサーが、前記リンクされたデータソースに接続することと、
該プロセッサーが、前記エンティティ属性に対する前記値を前記データソースから検索することと、
該プロセッサーが、該検索された値を該ロールフィルターの前記１つ以上の特定されたオプションと比較することと
を含み、
該検索された値が該特定されたオプションのうちの１つ以上にマッチする場合、該ロールフィルターの結果が真であり、該検索された値が該特定されたオプションのうちの１つ以上にマッチしない場合、該ロールフィルターの結果が真でない、請求項１に記載の方法。
【請求項３】
任意のロールフィルターに対して、前記リンクされたデータソースへの接続が構成され得ない場合、前記プロセッサーが、該ロールフィルターに対する前記真または真でない結果を真でないことに設定することをさらに含む、請求項２に記載の方法。
【請求項４】
前記プロセッサーが、前記１つ以上のロールフィルターのうちの１つを構成するための第３のリクエストを受信することと、
該第３のリクエストを受信することに応答して、該プロセッサーが、該ロールフィルターがなお存在しない場合、該ロールフィルターを生成し、または該ロールフィルターが既に存在する場合、該ロールフィルターを前記記憶エリアから検索することと、
該プロセッサーが、該ロールフィルターにリンクされるべき１つ以上のデータソースを選択することであって、各データソースが、該データソース内のエンティティの１つ以上のエンティティ属性の各々に対する値を含む、ことと、
各データソースに対して、該プロセッサーが、該ロールフィルターに含むようにエンティティ属性を該データソース内のエンティティの該１つ以上のエンティティ属性から選択し、そして該ロールフィルター内で該選択されたエンティティ属性に対する１つ以上のオプションを特定することと、
該プロセッサーが、該ロールフィルターを該記憶エリア内に保存することと
を含む、請求項１に記載の方法。
【請求項５】
各データソースに対して、前記プロセッサーが、前記データソースとそのリンクされたロールフィルターとの間の接続を、該データソースに対する位置情報を該リンクされたロールフィルターに入力することによって構成することをさらに含む、請求項４に記載の方法。
【請求項６】
各選択されたエンティティ属性に対して、前記プロセッサーが、前記ロールフィルターに含むように該ロールフィルター内に１つ以上の状態を特定することをさらに含み、各状態は、前記データソース内のエンティティ名に関連する前記エンティティ属性の前記値が、前記ロールフィルター内のエンティティ属性に対する特定されたオプションとどのように比較するかを特定する、請求項４に記載の方法。
【請求項７】
前記データソースは、データベースである、請求項１に記載の方法。
【請求項８】
前記データソースは、ウェブサービスである、請求項１に記載の方法。
【請求項９】
ロールメンバーシップを動的に管理するためのシステムであって、該システムは、
ユーザーによって動作可能な管理クライアントであって、該管理クライアントは、
ロール構成を生成しまたは修正するための第１のリクエストをロールマネージャープロセスに送信するステップであって、該ロール構成は、ロール名に関連し、かつ、１つ以上のロールフィルターと、互いに対する該１つ以上のロールフィルターの論理関係を特定する論理ステートメントとを含み、各ロールフィルターは、エンティティ属性に対する１つ以上の特定されたオプションを含み、各ロールフィルターは、該エンティティ属性に対する値を含むデータソースにリンクされる、ステップと、
構成オプションのセットを該ロールマネージャープロセスから受信するステップであって、記憶エリアからの該構成オプションは、該ロール構成に含まれ得る１つ以上のロールフィルターのロールフィルターリストを含む、ステップと、
１つ以上の構成オプションを該受信された構成オプションのセットから選択するステップであって、該選択された構成オプションは、該ロールフィルターリストからの１つ以上の選択されたロールフィルターを含む、ステップと、
該論理ステートメントを編集するステップと、
該選択された構成オプションおよび該論理ステートメントを該ロールマネージャープロセスに送信するステップと
の各々を第１のプロセッサーと共に行う、管理クライアントと、
ユーザーによって動作可能なクライアントであって、
エンティティがロールのメンバーであるか否かを確認するための第２のリクエストを送信するステップであって、該確認するための第２のリクエストが、該ロール名と、該エンティティの名前とを含む、ステップと、
ロールメンバーシップの決定を受信するステップと
の各々を第２のプロセッサーと共に行う、クライアントと、
該ロール構成を生成しまたは修正するように構成された該ロールマネージャープロセスであって、該生成しまたは修正することは、
第３のプロセッサーが、該管理クライアントから該ロール構成を生成しまたは修正するための該第１のリクエストを受信することと、
該第１のリクエストを受信することに応答して、該第３のプロセッサーが、該ロール構成がなお存在しない場合、該ロール構成を生成し、または該ロール構成が既に存在する場合、該ロール構成を該記憶エリアから検索することと、
該第３のプロセッサーが、構成オプションのセットを該管理クライアントに送信することと、
該第３のプロセッサーが、該選択された構成オプションおよび該編集された論理ステートメントを該管理クライアントから受信することと、
該第３のプロセッサーが、該選択されたロールフィルターを検証することであって、該検証は、各ロールフィルターに対して、
該リンクされたデータソースへの接続を確認する第１の確認ステップと、
該リンクされたデータソースが該ロールフィルターの該エンティティ属性に対する値を含むことを確認する第２の確認ステップであって、該第１の確認ステップおよび該第２の確認ステップの両方が成功である場合、該ロールフィルターが検証され、該ロール構成が保存され、１つまたは両方の確認ステップが失敗である場合、該ロールフィルターが検証されない、第２の確認ステップと
を含む、ことと、
該第３のプロセッサーが、該受信された構成オプションと、該検証されたロールフィルターと、該編集された論理ステートメントとを含む該ロール構成を、該記憶エリア内に保存することと
によって行われる、該ロールマネージャープロセスと
を含み、
該ロールマネージャープロセスはさらに、
該第３のプロセッサーが、該クライアントから該確認するための第２のリクエストを受信することと、
該確認するための第２のリクエストを受信することに応答して、該第３のプロセッサーが、該ロール名に関連するロール構成を記憶エリアから検索することと、
該第３のプロセッサーが、該論理ステートメントを構文解析し、そして該論理ステートメントの各ロールフィルターに対して、該データソース内の該エンティティの該名前に関連する該エンティティ属性の該値が、該ロールフィルターの該１つ以上の特定されたオプションにマッチするか否かを決定することによって、該ロールフィルターが真かまたは真でない結果を有するのを決定することと、
該第３のプロセッサーが、該論理関係に従って、該論理ステートメントの各ロールフィルターに対する該真または真でない結果を処理することによって、該論理ステートメントの真または真でないことを評価することと、
該第３のプロセッサーが、該ロールメンバーシップの決定を生成することであって、該論理ステートメントが真である場合、該エンティティがメンバーであり、該論理ステートメントが真でない場合、該エンティティがメンバーではない、ことと、
該第３のプロセッサーが、該ロールメンバーシップの決定を該クライアントに送信することと
により、該確認するための第２のリクエストを処理するように構成され、
エンティティ属性は、対応するエンティティに関する特性である、システム。
【請求項１０】
ロールメンバーシップを動的に管理するためのプログラムが記録されたコンピュータ読み取り可能な格納媒体であって、該プログラムは、ユーザーによって動作可能な管理クライアント、ユーザーによって動作可能なクライアント、およびロールマネージャープロセスとして、コンピュータを動作させることが可能であり、
該ユーザーによって動作可能な管理クライアントは、
ロール構成を生成しまたは修正するための第１のリクエストをロールマネージャープロセスに送信するステップであって、該ロール構成は、ロール名に関連し、かつ、１つ以上のロールフィルターと、互いに対する該１つ以上のロールフィルターの論理関係を特定する論理ステートメントとを含み、各ロールフィルターは、エンティティ属性に対する１つ以上の特定されたオプションを含み、各ロールフィルターは、該エンティティ属性に対する値を含むデータソースにリンクされる、ステップと、
構成オプションのセットを該ロールマネージャープロセスから受信するステップであって、記憶エリアからの該構成オプションは、該ロール構成に含まれ得る１つ以上のロールフィルターのロールフィルターリストを含む、ステップと、
１つ以上の構成オプションを該受信された構成オプションのセットから選択するステップであって、該選択された構成オプションは、該ロールフィルターリストからの１つ以上の選択されたロールフィルターを含む、ステップと、
該論理ステートメントを編集するステップと、
該選択された構成オプションおよび該論理ステートメントを該ロールマネージャープロセスに送信するステップと
の各々を第１のプロセッサーと共に行い、
該ユーザーによって動作可能なクライアントは、
エンティティがロールのメンバーであるか否かを確認するための第２のリクエストを送信するステップであって、該確認するための第２のリクエストが、該ロール名と、該エンティティの名前とを含む、ステップと、
ロールメンバーシップの決定を受信するステップと
の各々を第２のプロセッサーと共に行い、
該ロールマネージャープロセスは、該ロール構成を生成しまたは修正するように構成されており、該生成しまたは修正することは、
第３のプロセッサーが、該管理クライアントから該ロール構成を生成しまたは修正するための該第１のリクエストを受信することと、
該第１のリクエストを受信することに応答して、該第３のプロセッサーが、該ロール構成がなお存在しない場合、該ロール構成を生成し、または該ロール構成が既に存在する場合、該ロール構成を該記憶エリアから検索することと、
該第３のプロセッサーが、構成オプションのセットを該管理クライアントに送信することと、
該第３のプロセッサーが、該選択された構成オプションおよび該編集された論理ステートメントを該管理クライアントから受信することと、
該第３のプロセッサーが、該選択されたロールフィルターを検証することであって、該検証は、各ロールフィルターに対して、
該リンクされたデータソースへの接続を確認する第１の確認ステップと、
該リンクされたデータソースが該ロールフィルターの該エンティティ属性に対する値を含むことを確認する第２の確認ステップであって、該第１の確認ステップおよび該第２の確認ステップの両方が成功である場合、該ロールフィルターが検証され、該ロール構成が保存され、１つまたは両方の確認ステップが失敗である場合、該ロールフィルターが検証されない、第２の確認ステップと
を含む、ことと、
該第３のプロセッサーが、該受信された構成オプションと、該検証されたロールフィルターと、該編集された論理ステートメントとを含む該ロール構成を、該記憶エリア内に保存することと
によって行われ、
該ロールマネージャープロセスはさらに、
該第３のプロセッサーが、該クライアントから該確認するための第２のリクエストを受信することと、
該確認するための第２のリクエストを受信することに応答して、該第３のプロセッサーが、該ロール名に関連するロール構成を記憶エリアから検索することと、
該第３のプロセッサーが、該論理ステートメントを構文解析し、そして該論理ステートメントの各ロールフィルターに対して、該データソース内の該エンティティの該名前に関連する該エンティティ属性の該値が、該ロールフィルターの該１つ以上の特定されたオプションにマッチするか否かを決定することによって、該ロールフィルターが真かまたは真でない結果を有するのを決定することと、
該第３のプロセッサーが、該論理関係に従って、該論理ステートメントの各ロールフィルターに対する該真または真でない結果を処理することによって、該論理ステートメントの真または真でないことを評価することと、
該第３のプロセッサーが、該ロールメンバーシップの決定を生成することであって、該論理ステートメントが真である場合、該エンティティがメンバーであり、該論理ステートメントが真でない場合、該エンティティがメンバーではない、ことと、
該第３のプロセッサーが、該ロールメンバーシップの決定を該クライアントに送信することと
により、該確認するための第２のリクエストを処理するように構成されており、
エンティティ属性は、対応するエンティティに関する特性である、媒体。
【請求項１１】
前記ロールマネージャープロセスは、各ロールフィルターが真かまたは真でない結果を有するのを決定するようにさらに構成され、該決定することが、各ロールフィルターに対して、
前記第３のプロセッサーが、前記リンクされたデータソースに接続することと、
該第３のプロセッサーが、前記エンティティ属性に対する前記値を該データソースから検索することと、
該第３のプロセッサーが、該検索された値を該ロールフィルターの前記１つ以上の特定されたオプションと比較することであって、該検索された値が該特定されたオプションのうちの１つ以上にマッチする場合、該真または真でない結果が真であり、該検索された値が該特定されたオプションのうちの１つ以上にマッチしない場合、該真または真でない結果が真でなく、該リンクされたデータソースへの接続が作られ得ない場合、該真または真でない結果が真でない、ことと
によって行われる、請求項９に記載のシステム。
【請求項１２】
ユーザーによって動作可能な前記管理クライアントをさらに含み、該管理クライアントが、
前記ロールフィルターのうちの１つを生成しまたは修正するための前記第１のリクエストを前記ロールマネージャープロセスに送信するステップと、
フィルターオプションのセットを該ロールマネージャープロセスから受信するステップと、
１つ以上のフィルターオプションを該受信されたフィルターオプションのセットから選択するステップと、
該選択されたフィルターオプションを該ロールマネージャープロセスに送信するステップと
の各々を前記第１のプロセッサーと共に行い、
該ロールマネージャープロセスが、該ロールフィルターを生成しまたは修正するようにさらに構成され、該生成しまたは修正することが、
該第３のプロセッサーが、該ロールフィルターを生成しまたは修正するための該第１のリクエストを該管理クライアントから受信することと、
該第１のリクエストを受信することに応答して、該第３のプロセッサーが、該ロールフィルターがなお存在しない場合、該ロールフィルターを生成し、または該ロールフィルターが既に存在する場合、該ロールフィルターを前記記憶エリアから検索することと、
該第３のプロセッサーが、フィルターオプションのセットを該管理クライアントに送信することであって、該フィルターオプションが、該ロールフィルターにリンクされ得るデータソースのソースリストを含み、各データソースが、該データソース内のエンティティの１つ以上のエンティティ属性の各々に対する値を含む、ことと、
該第３のプロセッサーが、該選択されたフィルターオプションを該管理クライアントから受信することであって、該選択されたフィルターオプションが、該ソースリストからの１つ以上の選択されたデータソースと、各選択されたデータソースに対する該データソースからの１つ以上の選択されたエンティティ属性と、各選択されたエンティティ属性に対する１つ以上のオプションとを含む、ことと、
該第３のプロセッサーが、該受信されたフィルターオプションを含む該ロールフィルターを該記憶エリア内に保存することと
によって行われる、請求項９に記載のシステム。
【請求項１３】
前記選択されたフィルターオプションは、各選択されたエンティティ属性に対して、前記ロールフィルターに含むように１つ以上の状態をさらに含み、各状態は、前記データソース内のエンティティ名に関連する前記エンティティ属性の前記値が、前記ロールフィルター内のエンティティ属性に対する特定されたオプションとどのように比較するかを特定する、請求項１２に記載のシステム。
【請求項１４】
前記データソースは、データベースである、請求項９に記載のシステム。
【請求項１５】
前記データソースは、ウェブサービスである、請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（連邦政府支援の研究に関する声明）
本発明は、米国国土安全保障省によって与えられた契約番号ＦＡ８７５０−０８−Ｃ−０１１４の下に政府支援でなされた。政府は、本発明に一定の権利を有する。
【背景技術】
【０００２】
（本発明の背景）
任意の所与の企業において、資産が存在し、これらの資産は、さまざまな理由のために、例えば、資産にアクセスし得る従業員の数およびタイプを制限するために、または資産の使用量を制限するために、安全にされることが望まれる。例えば、従来のコンピュータネットワークは、アクセスコントロール設定または許可を提供して、さまざまな資産へのユーザーアクセスの範囲およびタイプが事前に設定されることによって電子ファイルのような資産に対してセキュリティを提供し得る。例えば、会社において、あるユーザー、特定の電子ドキュメントに対して読み取り専用の特権を有し得、他のユーザーは、読み取り／書き込み特権を有し得、その一方で、なおそれ以外のユーザーは、アクセス特権を全く有しない場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
これらのアクセスコントロール設定は、ロールベースアクセスコントロール（ＲＢＡＣ）によって管理され得、その場合、資産にアクセスしたいユーザーが、資産にアクセスすることを許可されるロールのメンバーでなければならない。ロールベースアクセスコントロールの使用は、大体において静的であり、すなわち、管理者がユーザーまたはユーザーのグループをロールに直接にマッピングすることによってロールを定義し、そしてユーザーをロールに加えまたは取り除くためにロールまたはグループの定義を編集しなければならない。所定のロールメンバーシップの静的性質に起因して、変化に速く適応する能力は、やや妨げられる。
【課題を解決するための手段】
【０００４】
（本発明の概要）
従って、本発明の実施形態は、動的ロールフィルターを用いてロールメンバーシップを動的に管理するための方法およびシステムを提供する。実施形態は、ロールメンバーシップを動的に管理するための方法を提供し、方法は、エンティティがロールのメンバーであるか否かを確認するためのリクエストを受信することであって、確認するためのリクエストが、ロール名を含む、ことと、確認するためのリクエストを受信するのに応答して、ロール名に関連するロール構成を記憶エリアから検索することであって、ロール構成が、１つ以上のロールフィルターと、互いに対して１つ以上のフィルターの論理関係を特定する論理ステートメントとを含み、各ロールフィルターが、エンティティ属性に対する１つ以上の特定されたオプションを含み、かつエンティティ属性に対する値を含むデータソースにリンクされる、ことと、論理ステートメントを構文解析し、そして論理ステートメントの各ロールフィルターに対して、データソースの値が、ロールフィルターの１つ以上の特定されたオプションにマッチするか否かを決定することによって、ロールフィルターが真かまたは真でない結果を有するのを決定することと、論理関係に従って、論理ステートメントの各ロールフィルターに対する真または真でない結果を処理することによって、論理ステートメントの真または真でないことを評価することと、エンティティがロールのメンバーであるか否かを決定することであって、論理ステートメントが真である場合、エンティティがメンバーであり、論理ステートメントが真でない場合、エンティティがメンバーではない、こととを含む。
【０００５】
もう１つの実施形態は、クライアントおよびロールマネージャープロセスを含むロールメンバーシップを動的に管理するためのシステムを提供する。クライアントは、エンティティがロールのメンバーであるか否かを確認するためのリクエストを送信することであって、確認するためのリクエストが、ロール名を含む、ことと、ロールメンバーシップの決定を受信することとを行うために、ユーザーによって動作可能である。ロールマネージャープロセスは、確認するためのリクエストを受信することと、確認するためのリクエストを受信するのに応答して、ロール名に関連するロール構成を記憶エリアから検索することであって、ロール構成が、１つ以上のロールフィルターと、互いに対して１つ以上のフィルターの論理関係を特定する論理ステートメントとを含み、各ロールフィルターが、エンティティ属性に対する１つ以上の特定されたオプションを含み、かつエンティティ属性に対する値を含むデータソースにリンクされる、ことと、論理ステートメントを構文解析し、そして論理ステートメントの各ロールフィルターに対して、データソースの値が、ロールフィルターの１つ以上の特定されたオプションにマッチするか否かを決定することによって、ロールフィルターが真かまたは真でない結果を有するのを決定することと、論理関係に従って、論理ステートメントの各ロールフィルターに対する真または真でない結果を処理することによって、論理ステートメントの真または真でないことを評価することと、ロールメンバーシップの決定を生成することであって、論理ステートメントが真である場合、エンティティがメンバーであり、論理ステートメントが真でない場合、エンティティがメンバーではない、ことと、ロールメンバーシップの決定をクライアントに送信することとによって、確認するためのリクエストを処理するように構成される。
【０００６】
本発明の実施形態の上述およびなおさらなる特徴および利点は、以下のその詳細な記述に考慮して明白になり、特に添付の図面に関連して解釈されるとき、さまざまな図面の同様の参照数字が、同様の構成要素を明示するために利用される。
【０００７】
本発明は、例えば、以下を提供する。
（項目１）  ロールメンバーシップを動的に管理するための方法であって、該方法は、
エンティティがロールのメンバーであるか否かを確認するためのリクエストを受信することであって、該確認するためのリクエストが、ロール名を含む、ことと、
該確認するためのリクエストを受信することに応答して、該ロール名に関連するロール構成を記憶エリアから検索することであって、該ロール構成が、１つ以上のロールフィルターと、互いに対する該１つ以上のフィルターの論理関係を特定する論理ステートメントとを含み、各ロールフィルターが、エンティティ属性に対する１つ以上の特定されたオプションを含み、該エンティティ属性に対する値を含むデータソースにリンクされる、ことと、
該論理ステートメントを構文解析し、そして該論理ステートメントの各ロールフィルターに対して、該データソースの該値が、該ロールフィルターの該１つ以上の特定されたオプションにマッチするか否かを決定することによって、該ロールフィルターが真かまたは真でない結果を有するのを決定することと、
該論理関係に従って、該論理ステートメントの各ロールフィルターに対する該真または真でない結果を処理することによって、該論理ステートメントの真または真でないことを評価することと、
該エンティティが該ロールのメンバーであるか否かを決定することであって、該論理ステートメントが真である場合、該エンティティがメンバーであり、該論理ステートメントが真でない場合、該エンティティがメンバーではない、ことと
を含む、方法。
（項目２）  上記ロールフィルターが真かまたは真でない結果を有するのを決定することは、各ロールフィルターに対して、
上記リンクされたデータソースに接続することと、
上記エンティティ属性に対する上記値を上記データソースから検索することと、
該検索された値を該ロールフィルターの上記１つ以上の特定されたオプションと比較することと
を含み、該検索された値が該１つ以上の特定されたオプションにマッチする場合には、該ロールフィルターの結果が真であり、該検索された値が該１つ以上の特定されたオプションにマッチしないなら、該ロールフィルターの結果が真でない、上記項目に記載の方法。
（項目３）  任意のロールフィルターに対して、上記リンクされたデータソースへの接続が構成され得ない場合、該ロールフィルターに対する上記真または真でない結果を真でないことに設定することをさらに含む、上記項目のいずれかに記載の方法。
（項目４）  上記ロール構成を生成しまたは修正するためのリクエストを受信することと、
該リクエストを受信するのに応答して、該ロール構成がなお存在しない場合、該ロール構成を生成し、または該ロール構成が既に存在する場合、該ロール構成を上記記憶エリアから検索することと、
該ロール構成内に含むように１つ以上のロールフィルターを選択することと、
該１つ以上のロールフィルターの上記論理関係を特定する上記論理ステートメントを編集することと、
該選択されたロールフィルターと該編集された論理ステートメントとを含む該ロール構成を該記憶エリアに保存することと
をさらに含む、上記項目のいずれかに記載の方法。
（項目５）  上記ロール構成を保存する前に、上記選択されたロールフィルターを検証することをさらに含み、該検証は、各ロールフィルターに対して、
上記リンクされたデータソースへの接続を確認することと、
該リンクされたデータソースが該ロールフィルターの上記エンティティ属性に対する値を含むことを確認することと含み、
両方の確認ステップが成功である場合、該ロールフィルターが検証され、該ロール構成が保存され、１つまたは両方の確認ステップが失敗である場合、該ロールフィルターが検証されなく、該ロール構成の上記修正が繰り返される、上記項目のいずれかに記載の方法。（項目６）  上記１つ以上のロールフィルターのうちの１つを構成するためのリクエスト受信することと、
該リクエストを受信するのに応答して、該ロールフィルターがなお存在しない場合、該ロールフィルターを生成し、または該ロールフィルターが既に存在する場合、該ロールフィルターを上記記憶エリアから検索することと、
該ロールフィルターにリンクされるべき１つ以上のデータソースを選択することであって、各データソースが、１つ以上のエンティティ属性の各々に対する値を含み、各データソースの各エンティティ属性が、同じまたは別のデータソースの各エンティティ属性と異なり得る、ことと、
各データソースに対して、該ロールフィルターに含むようにエンティティ属性を該１つ以上のエンティティ属性から選択し、そして該ロールフィルター内に該選択されたエンティティ属性に対する１つ以上にオプションを特定することと、
該ロールフィルターを該記憶エリア内に保存することと
を含む、上記項目のいずれかに記載の方法。
（項目７）  各データソースに対して、上記データソースとそのリンクされたロールフィルターとの間の接続を、該データソースに対する位置情報を該リンクされたロールフィルターに入力することによって構成することをさらに含む、上記項目のいずれかに記載の方法。
（項目８）  各選択されたエンティティ属性に対して、上記ロールフィルターに含むように該ロールフィルター内に１つ以上の状態を特定することをさらに含み、各状態が、上記エンティティ属性に対する上記値の許可されたバリエーションを特定する、上記項目のいずれかに記載の方法。
（項目９）  上記データソースは、データベースである、上記項目のいずれかに記載の方法。
（項目１０）  上記データソースは、ウェブサービスである、上記項目のいずれかに記載の方法。
（項目１１）  ロールメンバーシップを動的に管理するためのシステムであって、該システムは、
エンティティがロールのメンバーであるか否かを確認するためのリクエストを送信することであって、該確認するためのリクエストが、ロール名を含む、ことと、
ロールメンバーシップの決定を受信することと
を行うようにユーザーによって動作可能であるクライアントと、
該確認するためのリクエストを処理するように構成されるロールマネージャープロセスであって、該処理することが、
該確認するためのリクエストを受信することと、
該確認するためのリクエストを受信するのに応答して、該ロール名に関連するロール構成を記憶エリアから検索することであって、該ロール構成が、１つ以上のロールフィルターと、互いに対して該１つ以上のフィルターの論理関係を特定する論理ステートメントとを含み、各ロールフィルターが、エンティティ属性に対する１つ以上の特定されたオプションを含み、該エンティティ属性に対する値を含むデータソースにリンクされる、ことと、
該論理ステートメントを構文解析し、そして該論理ステートメントの各ロールフィルターに対して、該データソースの該値が、該ロールフィルターの該１つ以上の特定されたオプションにマッチするか否かを決定することによって、該ロールフィルターが真かまたは真でない結果を有するのを決定することと、
該論理関係に従って、該論理ステートメントの各ロールフィルターに対する該真または真でない結果を処理することによって、該論理ステートメントの真または真でないことを評価することと、
該ロールメンバーシップの決定を生成することであって、該論理ステートメントが真である場合、該エンティティがメンバーであり、該論理ステートメントが真でない場合、該エンティティがメンバーではない、ことと、
該ロールメンバーシップの決定を該クライアントに送信することと
によって行われる、ロールマネージャープロセスと
を含む、システム。
（項目１２）  ロールメンバーシップを動的に管理するためのプログラムが記録されたコンピュータ読み取り可能な格納媒体であって、該プログラムは、
エンティティがロールのメンバーであるか否かを確認するためのリクエストを送信することであって、該確認するためのリクエストが、ロール名を含む、ことと、
ロールメンバーシップの決定を受信することと
を行うようにユーザーによって動作可能であるクライアントと、
該確認するためのリクエストを処理するように構成されるロールマネージャープロセスであって、該処理することが、
該確認するためのリクエストを受信することと、
該確認するためのリクエストを受信するのに応答して、該ロール名に関連するロール構成を記憶エリアから検索することであって、該ロール構成が、１つ以上のロールフィルターと、互いに対して該１つ以上のフィルターの論理関係を特定する論理ステートメントとを含み、各ロールフィルターが、エンティティ属性に対する１つ以上の特定されたオプションを含み、該エンティティ属性に対する値を含むデータソースにリンクされる、ことと、
該論理ステートメントを構文解析し、そして該論理ステートメントの各ロールフィルターに対して、該データソースの該値が、該ロールフィルターの該１つ以上の特定されたオプションにマッチするか否かを決定することによって、該ロールフィルターが真かまたは真でない結果を有するのを決定することと、
該論理関係に従って、該論理ステートメントの各ロールフィルターに対する該真または真でない結果を処理することによって、該論理ステートメントの真または真でないことを評価することと、
該ロールメンバーシップの決定を生成することであって、該論理ステートメントが真である場合、該エンティティがメンバーであり、該論理ステートメントが真でない場合、該エンティティがメンバーではない、ことと、
該ロールメンバーシップの決定を該クライアントに送信することと
によって行われる、ロールマネージャープロセスと
して該コンピュータを動作させる、媒体。
（項目１２Ａ）  上記システムは、有形記憶媒体上に格納されるコンピュータプログラム製品である、上記項目のいずれかに記載のシステム。
（項目１３）  上記ロールマネージャープロセスは、上記確認するためのリクエストを処理するための論理を用いて構成されるプロセッサーによってインプリメントされる、上記項目のいずれかに記載のシステム。
（項目１４）  上記ロールマネージャープロセスは、各ロールフィルターが真かまたは真でない結果を有するのを決定するようにさらに構成され、該決定することが、各ロールフィルターに対して、
上記リンクされたデータソースに接続することと、
上記エンティティ属性に対する上記値を該データソースから検索することと、
該検索された値を該ロールフィルターの上記１つ以上の特定されたオプションと比較することであって、もし該検索された値が１つ以上の該特定されたオプションにマッチするなら、該真または真でない結果が真であり、もし該検索された値が１つ以上の該特定されたオプションにマッチしないなら、該真または真でない結果が真でなく、該リンクされたデータソースへの接続が作られ得ない場合、該真または真でない結果が真でない、こととによって行われる、上記項目のいずれかに記載のシステム。
（項目１５）  ユーザーによって動作可能な管理クライアントをさらに含み、該クライアントが、
上記ロール構成を生成しまたは修正するためのリクエストを上記ロールマネージャープロセスに送信することと、
構成オプションのセットを該ロールマネージャープロセスから受信することと、
１つ以上の構成オプションを該受信された構成オプションのセットから選択することと、
上記論理ステートメントを編集することと、
該選択された構成オプションおよび該論理ステートメントを該ロールマネージャープロセスに送信することと
を行うためであり、
該ロールマネージャープロセスが、該ロール構成を生成しまたは修正するようにさらに構成され、該生成しまたは修正することが、
該ロール構成を生成しまたは修正するための該リクエストを該管理クライアントから受信することと、
該リクエストを受信するのに応答して、該ロール構成がなお存在しない場合、それを生成し、または該ロール構成が既に存在する場合、それを上記記憶エリアから検索することと、
構成オプションのセットを該管理クライアントに送信することであって、該構成オプションが、該ロール構成に含まれ得る１つ以上のロールフィルターのロールフィルターリストを含む、ことと、
該選択された構成オプションおよび該編集された論理ステートメントを該管理クライアントから受信することであって、該選択された構成オプションが、該ロールフィルターリストからの１つ以上の選択されたロールフィルターを含む、ことと、
該受信された構成オプションおよび該編集された論理ステートメントを含む該ロール構成を該記憶エリアに保存することと
によって行われる、上記項目のいずれかに記載のシステム。
（項目１６）  上記ロールマネージャープロセスは、上記ロール構成を保存する前に上記選択されたロールフィルターを検証するようにさらに構成され、該検証は、各ロールフィルターに対して、
上記リンクされたデータソースへの接続を確認することと、
該リンクされたデータソースが該ロールフィルターの上記エンティティ属性に対する値を含むことを確認することと含み、
両方の確認ステップが成功である場合、該ロールフィルターが検証され、該ロール構成が保存され、１つまたは両方の確認ステップが失敗である場合、該ロールフィルターが検証されなく、該ロール構成の上記修正が繰り返される、上記項目のいずれかに記載のシステム。
（項目１７）  ユーザーによって動作可能な管理クライアントをさらに含み、該クライアントが、
上記ロールフィルターのうちの１つを生成しまたは修正するためのリクエストを上記ロールマネージャープロセスに送信することと、
フィルターオプションのセットを該ロールマネージャープロセスから受信することと、
１つ以上のフィルターオプションを該受信されたフィルターオプションのセットから選択することと、
該選択されたフィルターオプションを該ロールマネージャープロセスに送信することと
を行うためであり、
該ロールマネージャープロセスが、該ロールフィルターを生成しまたは修正するようにさらに構成され、該生成しまたは修正することが、
該ロールフィルターを生成しまたは修正するための該リクエストを該管理クライアントから受信することと、
該リクエストを受信するのに応答して、該ロールフィルターがなお存在しない場合、それを生成し、または該ロールフィルターが既に存在する場合、それを上記記憶エリアから検索することと、
フィルターオプションのセットを該管理クライアントに送信することであって、該フィルターオプションが、該ロールフィルターにリンクされ得るデータソースのソースリストを含み、各データソースが、１つ以上のエンティティ属性の各々に対する値を含み、各データソースの各エンティティ属性が、同じまたは別のデータソースの各エンティティ属性と異なるかもしれない、ことと、
該選択されたフィルターオプションを該管理クライアントから受信することであって、該選択されたフィルターオプションが、該ソースリストからの１つ以上の選択されたデータソースと、各選択されたデータソースに対する該データソースからの１つ以上の選択されたエンティティ属性と、各選択されたエンティティ属性に対する１つ以上のオプションとを含む、ことと、
該受信されたフィルターオプションを含む該ロールフィルターを該記憶エリアに保存することと
によって行われる、上記項目のいずれかに記載のシステム。
（項目１８）  上記選択されたフィルターオプションは、各選択されたエンティティ属性に対して、上記ロールフィルターに含むように１つ以上の状態をさらに含み、各状態は、上記エンティティ属性に対する上記値の許可されたバリエーションを特定する、上記項目のいずれかに記載のシステム。
（項目１９）  上記データソースは、データベースである、上記項目のいずれかに記載のシステム。
（項目２０）  上記データソースは、ウェブサービスである、上記項目のいずれかに記載のシステム。
【０００８】
（摘要）
データベースまたはウェブサービスのようなデータソースにリンクされる１つ以上の動的ロールフィルターを含むロール構成を用いるロールのエンティティメンバーシップを動的に管理するための方法およびシステム。ロールフィルターは、毎回、ロールメンバーシップが要求されるゆえに、動的であり、ロール構成およびその構成要素ロールフィルターは、リンクされたデータソースの現在の情報に対して評価されなければならない。ロールは、ロールベースアクセスコントロールシステムまたはエンティティ識別システムに使われ得る。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明の実施形態の例示的ロール管理システムのブロックダイヤグラムを描く。
【図２】図２は、本発明の実施形態に従う動的ロール構成の生成または修正を説明するフローチャートである。
【図３】図３は、本発明の実施形態に従う動的ロール構成の生成ウィザードを説明するスクリーンショットである。
【図４】図４は、本発明の実施形態に従うロールのメンバーのようなユーザーの検証を説明するフローチャートである。
【発明を実施するための形態】
【００１０】
（好ましい実施形態の詳細な記述）
本発明は、データベース、ウェブサービスのようなデータソースにリンクされる１つ以上の動的ロールフィルターを含む動的ロール構成を用いてロールメンバーシップを動的に管理するための方法およびシステムを対象とする。ロールフィルターは、毎回、ロールが、例えばユーザーがロールベースアクセスコントロール（ＲＢＡＣ）システムによって保護される資産にアクセスしようするときに発動されるゆえに、動的であり、ロール構成およびその構成要素ロールフィルターは、データソース（複数可）の現在の情報に対して評価されなければならない。動的ロール構成はまた、ユーザーまたはエンティティが単なる名前以外の基準によって十分に定義されることを要求することによって、例えば、ロールメンバーシップを取得するために適切な仕事肩書、ワーク位置、またはワーク責任を要求することによって、状態をロールメンバーシップに提供する。
【００１１】
従って、従来の静的ロール定義と違って、動的ロールフィルターは、ほとんどリアル時間でユーザー情報の変化に動的かつ自動に適応するのを可能にし、従って、ロールメンバーシップが、それらの自身でロール構成を変えるためのニーズがなく、常に現在のニーズを関して最新であることを確保する。システムがロールのメンバーを定義するためのロールフィルター基準に頼るゆえに、ユーザーが間違って無視され、正しくないロールに割り当てられ、正しいロールから削除されるときに生じるエラーは、大いに減らされ得または除去され得る。さらに、方法およびシステムは、ロールメンバーシップを定義するとき、粒度のカスタマイズ可能なレベルを提供する。例えば、単一粒度（ｓｉｎｇｌｅ−ｇｒａｉｎｅｄ）ユーザー名のアプローチの代わりに、管理者は、ユーザーが特定のロールのメンバーであり得る前に、満たされるべき複数の属性を要求することにとって、細粒度（ｆｉｎｅ−ｇｒａｉｎｅｄ）方式でロールを定義し得る。管理者は、ロール構成およびそのロールフィルターセットを生成し得、そして次に、誰がロールのメンバーであるかを決定するためにロールメンバーシップを確認するバックエンドアルゴリズムに頼る。
【００１２】
ロールフィルターが、データソースのユーザーまたはエンティティ属性の値に基づくゆえに、ロールフィルターは、ユーザーが誰であるのに基づく静的ルールではなく、むしろ代わりに、ユーザーに関する情報の検証に基づく動的ルールである。例えば、ＲＢＡＣシステムは、企業のあるタイプの情報へのアクセスを制限するために使われ得、例えば、財政報告または従業員レビューは、「マネージャー」ロールのメンバーに制限され得る。マネージャーロールは、ユーザーがマネージャーまたは部門長の仕事肩書を有することを要求する動的ロールフィルターを用いて定義され得、ロールフィルターが仕事肩書の情報を含む従業員データベースにリンクされる。従業員が、ソフトウェアエンジニアからマネージャーへの昇進を受け取るとき、続いて、仕事肩書の属性の変化は、仕事肩書の属性を利用する全定義されたロールに自動に流し、そして次回、従業員は、「マネージャー」ロールのメンバーに制限される情報にアクセスしようとすると、システムは、従業員がロールのメンバーであることを自動に決定すし、アクセスが認められる。従って、ロール定義は、ロールフィルターデータの変化に自動に適応する。
【００１３】
ここで、図面を参照すると、本発明の実施形態に従うロールメンバーシップの動的管理を使用する例示的システムは、図１で説明される。図１に示されるシステムは、特に、ネットワークまたはインターネットにわたるロールメンバーシップの動的管理に適され、しかし、本実施形態のシステムが、そのように制限されなく、非ネットワークまたは内蔵型のシステムに使われ得ることは理解されるべきである。
【００１４】
描かれたシステム５０は、ロールマネージャープロセス１０と、関連する共有または働くメモリー２０と、ディレクトリ３１、ウェブサービス３２、ユーザーデータベース３３およびフラットファイル３４を含むデータソースと、ロール構成を格納するためのデータ記憶エリア４０と、１つ以上の資産５１、５２とを含み、それらが、オプションなネットワーク１２、１４、１６にわたって互いおよびクライアント５に接続される。システム５０は、追加のサーバー、クライアント、および示されていない他のデバイスを含み得、システムの個々の構成要素は、単独かまたは複数で存在し得、例えば、２つ以上のデータ記憶エリアがあり得る。
【００１５】
概して、クライアント５は、ロール管理システム５０によって提供される機能、例えば、システムからのロール構成を生成し、観察し、適用し、そしてエクスポートするためのメカニズム等のためのインターフェースを提供する。クライアント５は、「目に見える」または「目に見えない」インターフェースをシステムに提供するように構成され得る。例えば、第１の実施形態において、クライアント５は、エンドユーザーにロール管理システムに対する目に見えないインターフェースを提供し、それにおいて、エンドユーザーは、エンドユーザーがシステムを知ることさえもなく、アクセスがシステムによって管理されるロールによってコントロールされる資産にアクセスしまたは操作することを可能にする。このような実施形態において、クライアント５はまた、システム管理者が、例えば、システムからのロール構成を生成し、観察し、適用し、そしてエクスポートすることを可能にするように、システム管理者にシステムに対する目に見えるインターフェースを提供する。例えば、エンドユーザーは、実験室の施設にアクセスするために、ロール管理システムを知らなくても、（例えば、アクセスカードを通しまたはキーパッド入力を許可するための）電子アクセスパネルのようなクライアントデバイスを使い得、その一方で、システム管理者は、自身でシステムにアクセスするためのコンピュータ端末のようなクライアントデバイスを使い得る。第２の実施形態において、クライアント５は、エンドユーザーおよび管理者にシステムに対する目に見えるインターフェースを提供し、しかし、管理者は、エンドユーザーに対して利用不可能である追加のオプション（例えば、ロールを削除しまたはエクスポートすること）を提供され得る。
【００１６】
ロールマネージャープロセス１０は、システム５０によって管理されるロール構成を生成し、修正し、圧縮保存し、削除しまたは取り除くために構成される適用プログラムを提供し得、ロール管理、アクセスコントロール、およびサーチを行うための機能のために使われるツールと、システム５０によって管理されるロールに関連する他のオプションと含み得る。ロールマネージャープロセス１０は、機能、応用プログラムインターフェース（ＡＰＩ）、またはロール構成の生成、ロールのメンバーシップの検証等のようなロール関連プロセスを行うのに必要とされるように呼ばれ得るウェブサービスであり得、または、サーバー、例えばディレクトリ（例えば、ＬＤＡＰ、アクティブディレクトリ等）サーバーまたはＤＢＭＳ（例えば、Ｏｒａｃｌｅ、ＰｏｓｔｇｒｅＳＱＬ、ＳＱＬサーバー等）サーバーであり得る。ユーザーが特定のロール構成にアクセスするとき、それは、データ記憶エリア４０からメモリー２０内にロードされ、それにより、ロール構成が、ロールマネージャープロセス１０に必要とされるように更新され得る。メモリー２０は、任意の従来または他のメモリーまたは記憶デバイスによってインプリメントされ得、揮発性（例えば、ＲＡＭ、キャッシュ、フラッシュ等）、または不揮発性（例えば、ＲＯＭ、ハードディスク、光学記憶装置等）であり得、他の適切な記憶キャパシティーを含み得る。
【００１７】
ネットワーク１２、１４、１６は、任意量の任意の適切な通信メディア（例えば、ＷＡＮ、ＬＡＮ、インターネット、イントラネット、有線、無線等）によってインプリメントされ得る。本実施形態のコンピュータシステムは、任意の従来または他のプロトコールを介してネットワークにわたって通信するための任意の従来または他の通信デバイスを含み得、ネットワークへのアクセスのための任意タイプの接続（例えば、有線、無線等）を利用し得る。クライアント５、ロールマネージャープロセス１０、メモリー２０、データソース３１、３２、３３、３４、データ記憶システム４０および資産５１、５２のうちのどれが、システム５０の１つ以上の構成要素に対してローカルであり得、１つ以上のネットワーク１２、１４、１６を介してシステム５０の１つ以上の他の構成要素から遠く離れ得、そしてそれらと通信し得ることは理解される。
【００１８】
データソース３１、３２、３３、３４は、所望のやり方でシステムを動作させるのに必要とされるような任意の適切な数およびタイプのデータソースであり得る。データソースは、企業データソース（例えば、ＤＢ２、Ｏｒａｃｌｅ、ＩＢＭ  Ｅｎｔｅｒｐｒｉｓｅ  Ｃｏｎｔｅｎｔ  Ｍａｎａｇｅｍｅｎｔ（ＥＣＭ）システム、ＥＲＰシステム等）、個人およびイントラ組織データソース（例えば、ｓｐｒｅａｄｓｈｅｅｔｓ（例えば、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌ）またはデータベース（例えば、Ｍｉｃｒｏｓｏｆｔ  Ａｃｃｅｓｓ、ＭｙＳＱＬ、Ｓｈａｒｅｐｏｉｎｔ、Ｑｕｉｃｋｒ、ＸＭＬ等））、公開データベースのようなウェブベースデータソース（例えば、税金記録、不動産記録、裁判所文書等）、ウェブサービス等を含み得る。データ記憶システム４０は、任意量の任意タイプの従来または他のデータベース（例えば、ネットワーク、階層、関係、オブジェクト等）または記憶構造（例えば、ファイル、データ構造、ウェブベース記憶、ディスクまたは他の記憶等）によってインプリメントされ得る。
【００１９】
資産５１、５２は、セキュリティが望まれる任意タイプの資産であり得、物理的、電子的、または他の適切な形式であり得る。例示的物理資産は、建物のような施設、実験室またはファイルルームのようなワークスペース、自動車またはオートバイのような乗り物、コンピュータのようなオフィス設備、複写機のようなモデム、ルームのようなエリアまたは構造、ガレージのようなキャビネット、デバイス内の個々のハードウェア部品等を含み得る。例えば、システムおよび方法は、ハードウェアアイテム、コンピュータネットワークに対する使用およびアクセス、または実験室またはファイルルームのような施設へのアクセスさえをコントロールするロールに対して、ロールメンバーシップを自動に管理するために使われ得る。
【００２０】
例示的電子資産は、データベース、電子ドキュメント、サーバーアクセス、ソフト適用、ユーザープロフィール等を含み得る。電子ドキュメントは、ＨＴＭＬおよびＸＭＬウェブ内容、ドキュメントイメージ、電子記録、データベース記録、ワード処理ドキュメント、プレゼンテーションスライド、オフィスドキュメント、ｅ−ｍａｉｌメッセージまたはアーカイブ、ゲーム、テキストデータ、電子書籍、グラフ、オーディオ、ビデオ、ＳＭＳまたはＭＭＳメッセージ、情報の他のデジタル表示、および／またはそれらの組み合わせのような、しかし制限されない現在に公知また後に開発される任意タイプの電子ファイルまたはデータであり得る。
【００２１】
システムおよび方法は、ＲＢＡＣシステムだけではなく、ユーザーまたはエンティティがロールのメンバーであり得る他のシステムにも使われ得る。例えば、データ分類システムにおいて、エンティティは、データファイルであり得、データアイデンティティーロールは、サイズ、内容、ファイル位置、関連適用（複数可）等に基づくロールフィルターを用いて定義され得る。同様に、ファイル編集システムにおいて、「冒涜な言葉」のようなロールは、例えば、「汚い言葉」、わいせつな用語、低俗またはわいせつな表現等のデータソースにリンクされるロールフィルターに基づいて定義され得、「慎重に扱うべき情報」のようなロールは、職員情報、機密プロジェクト名、クレジットカード番号、電話番号などのデータソースにリンクされるロールフィルターに基づいて定義され得る。データソースが更新されるとき、ロールフィルターおよびロールは、変えられた情報を反映するために自動に更新される。
【００２２】
他の潜在的な適用は、アイデンティティ確認システムを含み、例えば、安全を確保された施設へのアクセスに対して、個々は、網膜スキャンおよび掌形認識と、セキュリティクリアランスレベル、軍のランク、パスポート番号等のような他の情報との組み合わせのようなさまざまな物理的および法医学的特性によって許可されたロールメンバーとして確認され得る。データソースが、例えば、新しい従業員に対して網膜スキャンを加え、職員が昇進されるように軍のランクを変えることによって更新されるとき、システムは、認可されたユーザーのみに対するアクセスを制限するようにロールメンバーシップを自動に変えるためにそのよう情報を自動に利用する。
【００２３】
ここで、図２を参照すると、管理者は、前に記述されるシステム、特に図２のステップを行うためのロールマネージャープロセス１０を使い得、参照数字１００が、概して、動的ロール構成を生成しまたは修正するためのプロセスを描くフローチャートを明示する。プロセスは、１０５で開始し、そしてステップ１１０において、ロール構成が既に存在するか否かを決定し、存在する場合、ロール構成をメモリー内にロードし、そしてステップ１２０へ進む。存在しない場合、新しいロール構成は、ステップ１１５において生成され、そしてプロセスは、ステップ１２０へ進む。
【００２４】
ステップ１２０において、管理者は、ロールフィルターを選択する。ロールフィルターは、簡単にエンティティ名またはユーザー名を聞くことの代わりに、構成されるロールのメンバーであるエンティティの種類またはタイプを定義する。各ロール構成は、共にロールを定義する１つ以上のロールフィルターのセットを含む。ステップ１２５において、管理者は、データソースを選択する。データソースは、ロールフィルターによって使われる情報、例えば従業員または他のエンティティに関する情報を含みまたは得る任意のソースであり得る。データソースは、値を有するの少なくとも１つエンティティ属性を含み、例えば、従業員データベースは、フルータイム、パートタイム、契約者またはインターンの可能な値を有する従業員ステータス属性と、Ｎｅｗ  Ｙｏｒｋ  Ｏｆｆｉｃｅ、Ｃａｌｉｆｏｒｎｉａ  Ｏｆｆｉｃｅ等の可能な値を有するワーク位置属性と含み得る。望まれるロールフィルターのタイプに依存して、異なるソースが使われ得る。管理者は、データソースへの接続を構成し得、例えば、データソースがウェブサービスである場合、接続を構成することは、サービス、ポート、およびユーザー名とパスワードとのような認証情報にアクセスするための場合、ＩＰアドレスまたは他の位置を入力するのに必要とし得る。
【００２５】
ステップ１３０において、管理者は、フィルター（例えば、従業員タイプ、セキュリティクリアランスレベル、部門、ワーク位置、郵便番号、マネージャー、特定のグループのメンバー等）に使われるべき１つ以上のエンティティ属性を選択する。ステップ１３５において、管理者は、エンティティ属性に対する値の許可されたバリエーションを特定する１つ以上の状態を選択する。例えば、状態は、「ｓｔａｒｔｓ  ｗｉｔｈ」、「ｅｎｄｓ  ｗｉｔｈ」、「ｉｓ  ｎｏｔ」、「ｉｓ」、「ｉｓ  ｅｘａｃｔｌｙ」、「ｃｏｎｔａｉｎｓ」等であり得る。ステップ１４０において、管理者は、ロールフィルターのためのオプションを選択する。オプションは、ロールフィルター、選択されるデータソース、データソースのエンティティ属性に依存し、テキスト文字列、表現、または他の適切な入力であり得る。例えば、ロールフィルターが、セキュリティクリアランスに基づき、選択されたデータソースが、セキュリティクリアランス属性を含む従業員情報のアクティブディレクトリである場合、属性の可能な値は、例えば、なし、ＦＯＵＮ、機密、秘密、トップ秘密等を含む。利用可能なオプションは、可能な値、例えば、秘密クリアランスに直接にマッチし得、または複数の値、例えば、秘密、トップ秘密、およびより高いレベルのクリアランスにマッチする秘密またはより高いクリアランスにマッチし得る。オプションはまた、ユーザー定義であり得る。同時に、エンティティ属性のための状態およびオプションは、フィルター基準として知られる。
【００２６】
ステップ１４５において、管理者は、ロールフィルターをロール構成に加え、そしてステップ１５０においてフィルターを検証する。ロールフィルターは、任意の適切な方法、例えば、リンクされたデータソースへの接続を確認することと、リンクされたデータソースがエンティティ属性に対する値を含むことを確認することとによって検証され得る。ステップ１５５において、システムは、検証が成功だったか否かを決定し、両方の確認ステップが成功である場合、ロールフィルターが検証され、そしてプロセスがステップ１６０へ進み、確認ステップのうちの１つまたは両方が失敗である場合、ロールフィルターが検証されなく、そしてプロセスがステップ１２５に戻る。
【００２７】
ステップ１６０において、プロセスは、全ロールフィルターが、例えば、管理者に、ロール構成に加えるための別のロールフィルターがあるか否かを促すことによって定義されるか否かを決定する。追加のフィルターがある場合、プロセスは、ステップ１２０に戻り、ない場合、プロセスは、ステップ１６５へ進む。ステップ１６５において、管理者は、ＡＮＤ、ＯＲおよびＮＯＴのような論理表現を用いて、１つ以上のロールフィルターおよびそれらの間の関係を特定する論理ステートメントを生成し得または編集し得る。例えば、管理者は、以下の論理ステートメント：Ｅｍｐｌｏｙｅｅ  Ｔｙｐｅ  ＡＮＤ  Ｓｅｃｕｒｉｔｙ  Ｃｌｅａｒａｎｃｅを入力し得る。ステップ１７０において、管理者は、ロール構成を保存し、オプション的にステップ１７５において、管理者は、ロール構成を適用する。プロセスは、ステップ１８０で終了する。
【００２８】
ロール構成を生成するためのプロセス１００の実施形態を説明する例示的Ｇｒａｐｈｉｃ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  （ＧＵＩ）は、例示的「Ｅｍｐｌｏｙｅｅ  Ｔｙｐｅ」ロールフィルターに関連して、図３に示される。参照ポイント１で、管理者は、ロール名、この場合において「Ｐｒｉｍａｒｙ  Ｄｅｖｅｌｏｐｅｒ」を入力し、参照ポイント２で、管理者は、例えばＬＤＡＰディレクトリのようなデータソースに対するドメイン名を入力しまたは選択することによってデータソースを選択する。ソースの選択は、データソースのドロップダウンリストから１つ以上のデータソースを選択すること、または、データソースまたはソースに対する位置情報を手動で入力することによって作られ得る。描かれたロール構成に対して、管理者は、「Ａｄ．ｉｎｆｏ．ｃｏｍ」の名前を有するアクティブディレクトリを選択する。ＧＵＩはまた、管理者に、ＩＰアドレス、ポート、ユーザー名、およびパスワードのようなソース情報の入力を許可し、または入力される情報が有効であるか否かを決定するために、管理者がこの時間においてデータソースへの接続をテストすることを許可するポップアップウィンドウ（示されていない）を提供し得る。
【００２９】
参照ポイント３で、管理者は、各データソースに対するエンティティ属性を選択し、かつ構成する。例えば、選択された「Ｔｉｔｌｅ」属性に対して、管理者は、「Ｓｔａｒｔｓ  Ｗｉｔｈ」状態、および「Ｓｏｆｔｗａｒｅ」オプションを選択する。従って、選択された「Ｔｉｔｌｅ」属性が、特定された状態およびオプションを有するフィルターで適用されるとき、それは、「Ｓｏｆｔｗａｒｅ  Ｅｎｇｉｎｅｅｒ」、「Ｓｏｆｔｗａｒｅ  Ｐｒｏｇｒａｍｍｅｒ」、「Ｓｏｆｔｗａｒｅ  Ｄｅｓｉｇｎｅｒ」等のようなエンティティ属性値にマッチする。管理者は、次に、このエンティティ属性をフィルターセットに加えるために、「ａｄｄ」ボタンをクリックし得る。フィルターセット内のフィルターは、参照ポイント４でディスプレイされる。参照ポイント５で、管理者は、ロール構成のための論理ステートメントを編集する。
【００３０】
管理者は、ロールフィルターによって選択されるエンティティを見るために、フィルター（複数可）を適用するように「ｆｉｎｄ」ボタンをクリックし得、この適用の結果は、参照ポイント６でディスプレイされる。これらの結果は、この特定のロールのメンバーで、この場合においてＳｙｒａｃｕｓｅオフィス位置に割り当てられ、言葉「Ｓｏｆｔｗａｒｅ」で始まる肩書有する会社従業員であるエンティティを説明する。参照ポイント７で、管理者は、このロール構成を保存しまたは適用し、またはＧＵＩを終了する。
【００３１】
ここで、図４を参照すると、参照数字２００は、概して、特定のロールのメンバーのようなエンティティまたはユーザーを確認するためのプロセスを描くフローチャートを特定し、フローチャートが、前に記述されるシステム、特にロールマネージャープロセス１０によって行われ得る。プロセス２００は、機能、応用プログラミングインターフェース（ＡＰＩ）、またはウェブサービスとして提供され得る。プロセスは、２０５で始まり、ロールベースアクセスコントロールによって保護される資産にアクセスするために、ユーザーリクエストによってトリガーされ得、またはプロセス、適用、または特定のロールのエンティティのメンバーシップを確認するための動作するシステムで呼ばれ得る。ステップ２１０においてユーザーまたはエンティティ名が入力され、ステップ２１５においてロール名が入力され、そしてステップ２２０において、そのロールのためのロール構成が、例えば記憶エリアから検索される。ステップ２２５において、プロセスは、論理ステートメントを構文解析し、見つけられるロールフィルターの各々をステートメントにロードする。
【００３２】
各ロールフィルターは、次に、ステップ２３０から２６５までを用いて個々に処理される。ステップ２３０で、ロールフィルターが選択され、かつ検索され、ステップ２３５で、そのロールフィルターに対するデータソースへの接続がロードされる。ステップ２４０で、プロセスは、接続が確立されたか否かを決定し、されていない場合、プロセスは、ステップ２４５へ進み、ユーザーまたはエンティティがロールのメンバーではないと決定され（メンバーシップが確認され得ないゆえに）、そしてステップ２５０で終了する。接続がステップ２４０で確立された場合、プロセスは、ステップ２５５へ進み、そしてユーザーまたはエンティティに関連するエンティティ属性値（複数可）をデータソースから検索し、そしてステップ２６０において、検索された値（複数可）をロールフィルターによって特定されるフィルター基準と比較する。例えば、「Ｅｍｐｌｏｙｅｅ  Ｔｉｔｌｅ」」ロールフィルターに対して、検索された値は、ロールフィルターの特定された状態（「Ｓｔａｒｔｓ  ｗｉｔｈ」）およびオプション（「Ｓｏｆｔｗａｒｅ」）と一致する「Ｓｏｆｔｗａｒｅ  Ｅｎｇｉｎｅｅｒ」であり得、そのゆえに、ロールフィルターは、「真」の結果を有する。または、例えば、「Ｅｍｐｌｏｙｅｅ  Ｔｉｔｌｅ」」ロールフィルターに対して、検索された値は、フィルター基準のどちらもと一致しない「Ｆｉｎａｎｃｉａｌ  Ａｎａｌｙｓｔ」であり得、そのゆえに、ロールフィルターは、「真でない」結果を有する。ステップ２６５で、プロセスは、処理するための他のロールフィルターがあるか否かを決定し、ある場合、ステップ２３０に戻る。ない場合、プロセスは、ステップ２７０へ進む。
【００３３】
ステップ２７０において、プロセスは、関連するロールフィルターの各々が真または真でない結果を有するか否かに基づいて、最終結果が真または真でないか否かを決定するように論理ステートメントを評価し、ステップ２７５において、プロセスは、論理ステートメントが通過されたか否かを決定する。言い換えると、プロセスは、論理ステートメントの全部の結果が真である場合において、プロセスがステップ２８０へ進み、または論理ステートメントの全部の結果が真でない場合において、プロセスがステップ２４５へ進むことを決定する。もし真であるなら、ステップ２８０において、プロセスは、ユーザーまたはエンティティがロールのメンバーであることを決定し、そして次にステップ２８５で終了し、もし真でないなら、ステップ２４５において、プロセスは、ユーザーまたはエンティティがロールのメンバーではないと決定し、そして次にステップ２５０で終了する。
【００３４】
本発明の実施形態は、完全にハードウェア実施形態、完全にソフトウェア実施形態またはハードウェアおよびソフトウェア要素の両方を含む実施形態の形を取り得る。好ましい実施形態において、本発明は、ファームウェア、常駐ソフトウェア、マイクロコード等を含み、しかし制限されないソフトウェアでインプリメントされる。ソフトウェアは、記録可能な媒体（例えば、磁気的、光学的、フロッピー（登録商標）、ＤＶＤ、ＣＤ等）で利用可能または通信媒体（例えば、ネットワーク、ＬＡＮ、ＷＡＮ、イントラネット、インターネット等）を介してソースからダウンロードするためのキャリア波または信号の形であり得る。ソフトウェアは、動作するシステムまたは特定の適用、部品、プログラム、モジュール、オブジェクト、または命令順序の一部分であり得る。
【００３５】
ソフトウェアが、任意の所望のコンピュータ言語でインプリメントされ得、図面で説明される詳説およびフローチャートに含まれる機能の記述に基づいてコンピュータ技術の当業者によって開発され得ることは理解されるべきである。例のみとして、ソフトウェアは、Ｃ＃、Ｃ＋＋、Ｐｙｔｈｏｎ、Ｊａｖａ（登録商標）、ＸＭＬ、またはＰＨＰプログラミング言語でインプリメントされ得、データ記憶は、ＭｙＳＱＬ、Ｏｒａｃｌｅ、ＳＱＬ  Ｓｅｒｖｅｒ、ＩＢＭ  ＤＢ２、Ｉｎｆｏｒｍｉｘまたはフラットデータベース等でインプリメントされ得る。さらに、さまざまな機能を行うソフトウェアに対する本明細書での任意の参照文献は、概して、ソフトウェアコントロールの下でそれらの機能を行うコンピュータシステムまたはプロセッサーに関連する。前述およびフローチャートで説明されるソフトウェアおよび／またはアルゴリズムは、本明細書に記述される機能を達成する任意の方式で修正され得、フローチャートまたは記述の機能は、所望の動作を達成する任意の命令で行われ得る。
【００３６】
コンピュータシステムは、代替的に、任意タイプのハードウェアおよび／または他の処理回路でインプリメントされ得る。コンピュータシステムのさまざまな機能は、任意量のソフトウェアモジュールまたはユニット、処理またはコンピュータシステム、オブジェクト、データ構造および／または回路の間の任意の方式で分配され得、コンピュータまたは処理システムが、ローカルにまたは互いに遠く離れて配置され得、任意の適切な通信媒体（例えば、ＬＡＮ、ＷＡＮ、イントラネット、インターネット、ハードワイヤ、モデム接続、無線等）を介して通信し得る。
【００３７】
さらに、本実施形態は、コンピュータまたは他の命令実行システムによりまたはそれらとの接続での使用のためのプログラムコードを提供するコンピュータ使用可能またはコンピュータ読み取り可能な媒体からアクセス可能なコンピュータプログラム製品の形を取り得る。この記述の目的に対して、コンピュータ使用可能またはコンピュータ読み取り可能な媒体は、命令実行システム、装置、またはデバイスによりまたはそれらとの接続での使用のためのプログラムを含み得、格納し得、通信し得、伝播し得または輸送し得る任意の装置であり得る。媒体は、電子的、磁気的、光学的、電磁気的、赤外線、または半導体システム（または装置またはデバイス）または伝播媒体であり得る。コンピュータ読み取り可能な媒体の例は、半導体または固体状態のメモリー、磁気テープ、取り除き可能なコンピュータディスケット、ランダムアクセスメモリー（ＲＡＭ）、読み取り専用のメモリー（ＲＯＭ）、硬直の磁気ディスクおよび光学ディスクを含む。光学ディスクの現在の例は、コンパクトディスク（読み取り専用メモリー）（ＣＤ−ＲＯＭ）、コンパクトディスク（読む／書く）（ＣＤ−Ｒ／Ｗ）およびＤＶＤを含む。望ましい実施形態において、コンピュータ使用可能またはコンピュータ読み取り可能な媒体は、有形媒体である。
【００３８】
プログラムコードを格納し、そして／または実行するのに適切な処理システムは、ディスプレイまたはモニター、（例えば、プロセッサー、メモリーおよび／または内部または外部の通信デバイス（例えば、モデム、ネットワークカード等）およびオプション的な入力デバイス（例えば、キーボード、マウスまたは他の入力デバイス）を含む）ベースを好ましく装備される任意の従来または他のコンピュータまたは処理システムでインプリメントされ得る。システムは、システムバスを通して直接または間接にメモリー要素と結合される少なくとも１つのプロセッサーを含み得る。メモリーは、任意の従来または他のメモリーまたは記憶デバイス（例えば、ＲＡＭ、キャッシュ、フラッシュ等）でインプリメントされ得、任意の適切な記憶キャパシティーを含み得る。メモリー要素は、プログラムコードの実際の実行の間に使用されるローカルメモリー、バルク記憶装置、および実行の間にバルク記憶装置から検索されるべき時間コードの数を減らすために、少なくともいくつかのプログラムコードの一時的な記憶域を提供するキャッシュメモリーを含み得る。（キーボード、ディスプレイ、ポインティングデバイス等を含み、しかし制限しない）入力／出力またはＩ／Ｏデバイスは、直接かまたは間にあるＩ／Ｏコントローラを通してシステムと結合され得る。ネットワークアダプターはまた、処理システムが間にあるプライベートまたは公共ネットワークを通して他の処理システムまたはリモートプリンターまたは記憶デバイスと結合されるようになることを可能にするために、システムと結合され得る。モデム、ケーブルモデムまたはイーサネット（登録商標）カードは、ただ少数の現在に利用可能なタイプのネットワークアダプターである。
【００３９】
エンドユーザーシステムは、任意量の従来または他のコンピュータシステムまたはデバイス（例えば、コンピュータ端末、個人コンピュータ（例えば、ＩＢＭ−ｃｏｍｐａｔｉｂｌｅ、Ａｐｐｌｅ  ＭａｃＩｎｔｏｓｈ、タブレット、ラップトップ等）等）、セルラー電話、個人データアシスタント（例えば、Ｐａｌｍ  Ｐｒｅ、Ｄｒｏｉｄ、ｉＰｈｏｎｅ等）等でインプリメントされ得、任意の市販で利用可能な動作するシステム（例えば、ＡＩＸ、Ａｎｄｒｏｉｄ、Ｌｉｎｕｘ、ＯＳＸ、Ｓｕｎ  Ｓｏｌａｒｉｓ、Ｕｎｉｘ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）等）および任意の市販で利用可能またはカスタムソフトウエア（例えば、ブラウザソフトウェア、通信ソフトウェア、ワード処理ソフトウェア等）を含み得る。これらのシステムは、情報を入力し、そして／またはビューするためのディスプレイおよび入力デバイス（例えば、キーボート、マウス、音声認識等）を含み得る。エンドユーザーシステムは、プロセスおよびデータ記憶エリアに対してローカルであり得、またはネットワークを介してサーバーおよびデータ記憶エリアから遠く離れ得、かつそれらと通信し得る。
【００４０】
ネットワークは、任意量の任意の適切な通信メディア（例えば、ＷＡＮ、ＬＡＮ、インターネット、イントラネット、有線、無線等）でインプリメントされ得る。コンピュータシステムは、任意の従来または他のプロトコールを介してネットワークにわたって通信するための任意の従来または他の通信デバイスを含み得、ネットワークへのアクセスのための任意タイプの接続（例えば、有線、無線等）を利用され得る。
【００４１】
本発明の好ましい実施形態の前の開示は、例示および記述の目的のために示される。それは、完全であり、または開示される正確な形式に対して本発明を制限するように意図されない。本明細書に記述される実施形態の多くのバリエーションおよび修正は、当業者にとって、上の本開示を考慮して明白である。本発明の範囲は、本明細書に添えられた特許請求範囲によりだけではなく、それらの同等物によっても規定されるべきである。
【００４２】
さらに、本発明の代表的な実施形態を記述するのにおいて、詳説は、本発明の方法および／またはプロセスをステップの特定の順序として示し得る。しかし、方法またはプロセスが本明細の前のステップセットの特定の命令に頼らない範囲に対して、方法またはプロセスは、記述されるステップの特定の順序に制限されるべきではない。当業者が認識するように、ステップの他の順序が可能であり得る。そのゆえに、詳説において前のステップセットの特定の命令は、請求範囲上の制限として構成されるべきではない。加えて、本発明の方法および／またはプロセスに対象とする請求範囲は、書かれた命令のそれらのステップの性能に制限されるべきではなく、当業者は、順序が変えられ得、なお本発明の真意および範囲内に残り得ることを容易に認識し得る。
【符号の説明】
【００４３】
５  クライアント
１０  ロールマネージャープロセス
１２、１４、１６  ネットワーク
２０  メモリー
３１  ディレクトリ
３２  ウェブサービス
３３  ユーザーデータベース
３４  フラットファイル
４０  データ記憶エリア
５０  システム
５１、５２  資産
【図１】
0005852340.tif 000002
【図２】
0005852340.tif 000003
【図３】
0005852340.tif 000004
【図４】
0005852340.tif 000005