特許第5852340号(P5852340)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エクセリス インコーポレイテッドの特許一覧

<>
  • 特許5852340-ロールメンバーシップの動的管理 図000002
  • 特許5852340-ロールメンバーシップの動的管理 図000003
  • 特許5852340-ロールメンバーシップの動的管理 図000004
  • 特許5852340-ロールメンバーシップの動的管理 図000005
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5852340
(24)【登録日】2015年12月11日
(45)【発行日】2016年2月3日
(54)【発明の名称】ロールメンバーシップの動的管理
(51)【国際特許分類】
   G06F 21/40 20130101AFI20160114BHJP
   H04L 9/32 20060101ALI20160114BHJP
【FI】
   G06F21/40
   H04L9/00 673A
【請求項の数】15
【全頁数】24
(21)【出願番号】特願2011-137746(P2011-137746)
(22)【出願日】2011年6月21日
(65)【公開番号】特開2012-9026(P2012-9026A)
(43)【公開日】2012年1月12日
【審査請求日】2014年4月3日
(31)【優先権主張番号】12/821,758
(32)【優先日】2010年6月23日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】512067159
【氏名又は名称】エクセリス インコーポレイテッド
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100062409
【弁理士】
【氏名又は名称】安村 高明
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(72)【発明者】
【氏名】ロジャー エイチ. ネストラー
(72)【発明者】
【氏名】ダニエル ティー. ダン
【審査官】 青木 重徳
(56)【参考文献】
【文献】 米国特許出願公開第2006/0277595(US,A1)
【文献】 特開2010−117885(JP,A)
【文献】 特開2007−004549(JP,A)
【文献】 特開2010−020525(JP,A)
【文献】 特開2011−034365(JP,A)
【文献】 韓国公開特許第10−2009−0108152(KR,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/40
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
ロールメンバーシップを動的に管理するための方法であって、該方法は、
プロセッサーが、ロール名に関連するロール構成を生成しまたは修正するための第1のリクエストを受信することであって、該ロール構成は、1つ以上のロールフィルターと、互いに対する該1つ以上のロールフィルターの論理関係を特定する論理ステートメントとを含み、各ロールフィルターは、エンティティ属性に対する1つ以上の特定されたオプションを含み、各ロールフィルターは、該エンティティ属性に対する値を含むデータソースにリンクされる、ことと、
該第1のリクエストを受信することに応答して、該プロセッサーが、該ロール構成がなお存在しない場合、該ロール構成を生成し、または該ロール構成が既に存在する場合、該ロール構成を記憶エリアから検索することと、
該プロセッサーが、該ロール構成に含むための1つ以上のロールフィルターを選択することと、
該プロセッサーが、該ロール構成を保存する前に、該選択されたロールフィルターを検証することであって、該検証は、各ロールフィルターに対して、
該リンクされたデータソースへの接続を確認する第1の確認ステップと、
該リンクされたデータソースが該ロールフィルターの該エンティティ属性に対する値を含むことを確認する第2の確認ステップであって、該第1の確認ステップおよび該第2の確認ステップの両方が成功である場合、該ロールフィルターが検証され、該ロール構成が保存され、1つまたは両方の確認ステップが失敗である場合、該ロールフィルターが検証されない、第2の確認ステップと
を含む、ことと、
該プロセッサーが、該1つ以上のロールフィルターの該論理関係を特定する該論理ステートメントを編集することと、
該プロセッサーが、該選択されおよび検証されたロールフィルターと、該編集された論理ステートメントとを含む該ロール構成を、該記憶エリア内に保存することと、
該プロセッサーが、エンティティがロールのメンバーであるか否かを確認するための第2のリクエストを受信することであって、該確認するための第2のリクエストが、ロール名および該エンティティの名前を含む、ことと、
該確認するための第2のリクエストを受信することに応答して、該プロセッサーが、該ロール名に関連するロール構成を記憶エリアから検索すること、
該プロセッサーが、該論理ステートメントを構文解析し、そして該論理ステートメントの各ロールフィルターに対して、該データソース内の該エンティティの該名前に関連するエンティティ属性の該値が、該ロールフィルターの該1つ以上の特定されたオプションにマッチするか否かを決定することによって、該ロールフィルターが真かまたは真でない結果を有するのを決定することと、
該プロセッサーが、該論理関係に従って、該論理ステートメントの各ロールフィルターに対する該真または真でない結果を処理することによって、該論理ステートメントの真または真でないことを評価することと、
該プロセッサーが、該エンティティが該ロールのメンバーであるか否かを決定することであって、該論理ステートメントが真である場合、該エンティティがメンバーであり、該論理ステートメントが真でない場合、該エンティティがメンバーではない、ことと
を含み、
エンティティ属性は、対応するエンティティに関する特性である、方法。
【請求項2】
前記ロールフィルターが真かまたは真でない結果を有するのを決定することは、各ロールフィルターに対して、
前記プロセッサーが、前記リンクされたデータソースに接続することと、
該プロセッサーが、前記エンティティ属性に対する前記値を前記データソースから検索することと、
該プロセッサーが、該検索された値を該ロールフィルターの前記1つ以上の特定されたオプションと比較することと
を含み、
該検索された値が該特定されたオプションのうちの1つ以上にマッチする場、該ロールフィルターの結果が真であり、該検索された値が該特定されたオプションのうちの1つ以上にマッチしない場合、該ロールフィルターの結果が真でない、請求項1に記載の方法。
【請求項3】
任意のロールフィルターに対して、前記リンクされたデータソースへの接続が構成され得ない場合、前記プロセッサーが、該ロールフィルターに対する前記真または真でない結果を真でないことに設定することをさらに含む、請求項2に記載の方法。
【請求項4】
前記プロセッサーが、前記1つ以上のロールフィルターのうちの1つを構成するための第3のリクエスト受信することと、
該第3のリクエストを受信することに応答して、該プロセッサーが、該ロールフィルターがなお存在しない場合、該ロールフィルターを生成し、または該ロールフィルターが既に存在する場合、該ロールフィルターを前記記憶エリアから検索することと、
該プロセッサーが、該ロールフィルターにリンクされるべき1つ以上のデータソースを選択することであって、各データソースが、該データソース内のエンティティの1つ以上のエンティティ属性の各々に対する値を含、ことと、
各データソースに対して、該プロセッサーが、該ロールフィルターに含むようにエンティティ属性を該データソース内のエンティティの該1つ以上のエンティティ属性から選択し、そして該ロールフィルター内該選択されたエンティティ属性に対する1つ以上オプションを特定することと、
該プロセッサーが、該ロールフィルターを該記憶エリア内に保存することと
を含む、請求項1に記載の方法。
【請求項5】
各データソースに対して、前記プロセッサーが、前記データソースとそのリンクされたロールフィルターとの間の接続を、該データソースに対する位置情報を該リンクされたロールフィルターに入力することによって構成することをさらに含む、請求項に記載の方法。
【請求項6】
各選択されたエンティティ属性に対して、前記プロセッサーが、前記ロールフィルターに含むように該ロールフィルター内に1つ以上の状態を特定することをさらに含み、各状態前記データソース内のエンティティ名に関連する前記エンティティ属性の前記値が、前記ロールフィルター内のエンティティ属性に対する特定されたオプションとどのように比較するかを特定する、請求項に記載の方法。
【請求項7】
前記データソースは、データベースである、請求項1に記載の方法。
【請求項8】
前記データソースは、ウェブサービスである、請求項1に記載の方法。
【請求項9】
ロールメンバーシップを動的に管理するためのシステムであって、該システムは、
ユーザーによって動作可能な管理クライアントであって、該管理クライアントは、
ロール構成を生成しまたは修正するための第1のリクエストをロールマネージャープロセスに送信するステップであって、該ロール構成は、ロール名に関連し、かつ、1つ以上のロールフィルターと、互いに対する該1つ以上のロールフィルターの論理関係を特定する論理ステートメントとを含み、各ロールフィルターは、エンティティ属性に対する1つ以上の特定されたオプションを含み、各ロールフィルターは、該エンティティ属性に対する値を含むデータソースにリンクされる、ステップと、
構成オプションのセットを該ロールマネージャープロセスから受信するステップであって、記憶エリアからの該構成オプションは、該ロール構成に含まれ得る1つ以上のロールフィルターのロールフィルターリストを含む、ステップと、
1つ以上の構成オプションを該受信された構成オプションのセットから選択するステップであって、該選択された構成オプションは、該ロールフィルターリストからの1つ以上の選択されたロールフィルターを含む、ステップと、
該論理ステートメントを編集するステップと、
該選択された構成オプションおよび該論理ステートメントを該ロールマネージャープロセスに送信するステップと
の各々を第1のプロセッサーと共に行う、管理クライアントと、
ユーザーによって動作可能なクライアントであって、
エンティティがロールのメンバーであるか否かを確認するための第2のリクエストを送信するステップであって、該確認するための第2のリクエストが、ロール名と、該エンティティの名前とを含む、ステップと、
ロールメンバーシップの決定を受信するステップ
の各々を第2のプロセッサーと共に行うクライアントと、
該ロール構成を生成しまたは修正するように構成された該ロールマネージャープロセスであって、該生成しまたは修正することは
第3のプロセッサーが、該管理クライアントから該ロール構成を生成しまたは修正するための該第1のリクエストを受信することと、
該第1のリクエストを受信することに応答して、該第3のプロセッサーが、該ロール構成がなお存在しない場合、該ロール構成を生成し、または該ロール構成が既に存在する場合、該ロール構成を該記憶エリアから検索することと、
該第3のプロセッサーが、構成オプションのセットを該管理クライアントに送信することと、
該第3のプロセッサーが、該選択された構成オプションおよび該編集された論理ステートメントを該管理クライアントから受信することと、
該第3のプロセッサーが、該選択されたロールフィルターを検証することであって、該検証は、各ロールフィルターに対して、
該リンクされたデータソースへの接続を確認する第1の確認ステップと、
該リンクされたデータソースが該ロールフィルターの該エンティティ属性に対する値を含むことを確認する第2の確認ステップであって、該第1の確認ステップおよび該第2の確認ステップの両方が成功である場合、該ロールフィルターが検証され、該ロール構成が保存され、1つまたは両方の確認ステップが失敗である場合、該ロールフィルターが検証されない、第2の確認ステップと
を含む、ことと、
該第3のプロセッサーが、該受信された構成オプションと、該検証されたロールフィルターと、該編集された論理ステートメントとを含む該ロール構成を、該記憶エリア内に保存することと
によって行われる、該ロールマネージャープロセスと
を含み、
該ロールマネージャープロセスはさらに、
該第3のプロセッサーが、該クライアントから該確認するための第2のリクエストを受信することと、
該確認するための第2のリクエストを受信することに応答して、該第3のプロセッサーが、該ロール名に関連するロール構成を記憶エリアから検索すること、
該第3のプロセッサーが、理ステートメントを構文解析し、そして該論理ステートメントの各ロールフィルターに対して、該データソース内の該エンティティの該名前に関連する該エンティティ属性の該値が、該ロールフィルターの該1つ以上の特定されたオプションにマッチするか否かを決定することによって、該ロールフィルターが真かまたは真でない結果を有するのを決定することと、
該第3のプロセッサーが、該論理関係に従って、該論理ステートメントの各ロールフィルターに対する該真または真でない結果を処理することによって、該論理ステートメントの真または真でないことを評価することと、
該第3のプロセッサーが、該ロールメンバーシップの決定を生成することであって、該論理ステートメントが真である場合、該エンティティがメンバーであり、該論理ステートメントが真でない場合、該エンティティがメンバーではない、ことと、
該第3のプロセッサーが、該ロールメンバーシップの決定を該クライアントに送信することと
により、該確認するための第2のリクエストを処理するように構成され、
エンティティ属性は、対応するエンティティに関する特性である、システム。
【請求項10】
ロールメンバーシップを動的に管理するためのプログラムが記録されたコンピュータ読み取り可能な格納媒体であって、該プログラムは、ユーザーによって動作可能な管理クライアント、ユーザーによって動作可能なクライアント、およびロールマネージャープロセスとして、コンピュータを動作させることが可能であり、
該ユーザーによって動作可能な管理クライアントは、
ロール構成を生成しまたは修正するための第1のリクエストをロールマネージャープロセスに送信するステップであって、該ロール構成は、ロール名に関連し、かつ、1つ以上のロールフィルターと、互いに対する該1つ以上のロールフィルターの論理関係を特定する論理ステートメントとを含み、各ロールフィルターは、エンティティ属性に対する1つ以上の特定されたオプションを含み、各ロールフィルターは、該エンティティ属性に対する値を含むデータソースにリンクされる、ステップと、
構成オプションのセットを該ロールマネージャープロセスから受信するステップであって、記憶エリアからの該構成オプションは、該ロール構成に含まれ得る1つ以上のロールフィルターのロールフィルターリストを含む、ステップと、
1つ以上の構成オプションを該受信された構成オプションのセットから選択するステップであって、該選択された構成オプションは、該ロールフィルターリストからの1つ以上の選択されたロールフィルターを含む、ステップと、
該論理ステートメントを編集するステップと、
該選択された構成オプションおよび該論理ステートメントを該ロールマネージャープロセスに送信するステップと
の各々を第1のプロセッサーと共に行い、
該ユーザーによって動作可能なクライアントは、
エンティティがロールのメンバーであるか否かを確認するための第2のリクエストを送信するステップであって、該確認するための第2のリクエストが、ロール名と、該エンティティの名前とを含む、ステップと、
ロールメンバーシップの決定を受信するステップ
の各々を第2のプロセッサーと共に行い
該ロールマネージャープロセスは、該ロール構成を生成しまたは修正するように構成されており、該生成しまたは修正することは、
第3のプロセッサーが、該管理クライアントから該ロール構成を生成しまたは修正するための該第1のリクエストを受信することと、
該第1のリクエストを受信することに応答して、該第3のプロセッサーが、該ロール構成がなお存在しない場合、該ロール構成を生成し、または該ロール構成が既に存在する場合、該ロール構成を該記憶エリアから検索することと、
該第3のプロセッサーが、構成オプションのセットを該管理クライアントに送信することと、
該第3のプロセッサーが、該選択された構成オプションおよび該編集された論理ステートメントを該管理クライアントから受信することと、
該第3のプロセッサーが、該選択されたロールフィルターを検証することであって、該検証は、各ロールフィルターに対して、
該リンクされたデータソースへの接続を確認する第1の確認ステップと、
該リンクされたデータソースが該ロールフィルターの該エンティティ属性に対する値を含むことを確認する第2の確認ステップであって、該第1の確認ステップおよび該第2の確認ステップの両方が成功である場合、該ロールフィルターが検証され、該ロール構成が保存され、1つまたは両方の確認ステップが失敗である場合、該ロールフィルターが検証されない、第2の確認ステップと
を含む、ことと、
該第3のプロセッサーが、該受信された構成オプションと、該検証されたロールフィルターと、該編集された論理ステートメントとを含む該ロール構成を、該記憶エリア内に保存することと
によって行われ、
該ロールマネージャープロセスはさらに、
該第3のプロセッサーが、該クライアントから該確認するための第2のリクエストを受信することと、
該確認するための第2のリクエストを受信することに応答して、該第3のプロセッサーが、該ロール名に関連するロール構成を記憶エリアから検索すること、
該第3のプロセッサーが、理ステートメントを構文解析し、そして該論理ステートメントの各ロールフィルターに対して、該データソース内の該エンティティの該名前に関連する該エンティティ属性の該値が、該ロールフィルターの該1つ以上の特定されたオプションにマッチするか否かを決定することによって、該ロールフィルターが真かまたは真でない結果を有するのを決定することと、
該第3のプロセッサーが、該論理関係に従って、該論理ステートメントの各ロールフィルターに対する該真または真でない結果を処理することによって、該論理ステートメントの真または真でないことを評価することと、
該第3のプロセッサーが、該ロールメンバーシップの決定を生成することであって、該論理ステートメントが真である場合、該エンティティがメンバーであり、該論理ステートメントが真でない場合、該エンティティがメンバーではない、ことと、
該第3のプロセッサーが、該ロールメンバーシップの決定を該クライアントに送信することと
により、該確認するための第2のリクエストを処理するように構成されており、
エンティティ属性は、対応するエンティティに関する特性である、媒体。
【請求項11】
前記ロールマネージャープロセスは、各ロールフィルターが真かまたは真でない結果を有するのを決定するようにさらに構成され、該決定することが、各ロールフィルターに対して、
前記第3のプロセッサーが、前記リンクされたデータソースに接続することと、
該第3のプロセッサーが、前記エンティティ属性に対する前記値を該データソースから検索することと、
該第3のプロセッサーが、該検索された値を該ロールフィルターの前記1つ以上の特定されたオプションと比較することであって該検索された値が該特定されたオプションのうちの1つ以上にマッチする場合、該真または真でない結果が真であり該検索された値が該特定されたオプションのうちの1つ以上にマッチしない場合、該真または真でない結果が真でなく、該リンクされたデータソースへの接続が作られ得ない場合、該真または真でない結果が真でない、ことと
によって行われる、請求項に記載のシステム。
【請求項12】
ユーザーによって動作可能な前記管理クライアントをさらに含み、該管理クライアントが、
前記ロールフィルターのうちの1つを生成しまたは修正するための前記第1のリクエストを前記ロールマネージャープロセスに送信するステップと、
フィルターオプションのセットを該ロールマネージャープロセスから受信するステップと、
1つ以上のフィルターオプションを該受信されたフィルターオプションのセットから選択するステップと、
該選択されたフィルターオプションを該ロールマネージャープロセスに送信するステップ
の各々を前記第1のプロセッサーと共に行い、
該ロールマネージャープロセスが、該ロールフィルターを生成しまたは修正するようにさらに構成され、該生成しまたは修正することが、
該第3のプロセッサーが、該ロールフィルターを生成しまたは修正するための該第1のリクエストを該管理クライアントから受信することと、
第1のリクエストを受信することに応答して、該第3のプロセッサーが、該ロールフィルターがなお存在しない場合、該ロールフィルターを生成し、または該ロールフィルターが既に存在する場合、該ロールフィルターを前記記憶エリアから検索することと、
該第3のプロセッサーが、フィルターオプションのセットを該管理クライアントに送信することであって、該フィルターオプションが、該ロールフィルターにリンクされ得るデータソースのソースリストを含み、各データソースが、該データソース内のエンティティの1つ以上のエンティティ属性の各々に対する値を含、ことと、
該第3のプロセッサーが、該選択されたフィルターオプションを該管理クライアントから受信することであって、該選択されたフィルターオプションが、該ソースリストからの1つ以上の選択されたデータソースと、各選択されたデータソースに対する該データソースからの1つ以上の選択されたエンティティ属性と、各選択されたエンティティ属性に対する1つ以上のオプションとを含む、ことと、
該第3のプロセッサーが、該受信されたフィルターオプションを含む該ロールフィルターを該記憶エリアに保存することと
によって行われる、請求項に記載のシステム。
【請求項13】
前記選択されたフィルターオプションは、各選択されたエンティティ属性に対して、前記ロールフィルターに含むように1つ以上の状態をさらに含み、各状態は、前記データソース内のエンティティ名に関連する前記エンティティ属性の前記値が、前記ロールフィルター内のエンティティ属性に対する特定されたオプションとどのように比較するかを特定する、請求項12に記載のシステム。
【請求項14】
前記データソースは、データベースである、請求項に記載のシステム。
【請求項15】
前記データソースは、ウェブサービスである、請求項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(連邦政府支援の研究に関する声明)
本発明は、米国国土安全保障省によって与えられた契約番号FA8750−08−C−0114の下に政府支援でなされた。政府は、本発明に一定の権利を有する。
【背景技術】
【0002】
(本発明の背景)
任意の所与の企業において、資産が存在し、これらの資産は、さまざまな理由のために、例えば、資産にアクセスし得る従業員の数およびタイプを制限するために、または資産の使用量を制限するために、安全にされることが望まれる。例えば、従来のコンピュータネットワークは、アクセスコントロール設定または許可を提供して、さまざまな資産へのユーザーアクセスの範囲およびタイプが事前に設定されることによって電子ファイルのような資産に対してセキュリティを提供し得る。例えば、会社において、あるユーザー、特定の電子ドキュメントに対して読み取り専用の特権を有し得、他のユーザーは、読み取り/書き込み特権を有し得、その一方で、なおそれ以外のユーザーは、アクセス特権を全く有しない場合がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
これらのアクセスコントロール設定は、ロールベースアクセスコントロール(RBAC)によって管理され得、その場合、資産にアクセスしたいユーザーが、資産にアクセスすることを許可されるロールのメンバーでなければならない。ロールベースアクセスコントロールの使用は、大体において静的であり、すなわち、管理者がユーザーまたはユーザーのグループをロールに直接にマッピングすることによってロールを定義し、そしてユーザーをロールに加えまたは取り除くためにロールまたはグループの定義を編集しなければならない。所定のロールメンバーシップの静的性質に起因して、変化に速く適応する能力は、やや妨げられる。
【課題を解決するための手段】
【0004】
(本発明の概要)
従って、本発明の実施形態は、動的ロールフィルターを用いてロールメンバーシップを動的に管理するための方法およびシステムを提供する。実施形態は、ロールメンバーシップを動的に管理するための方法を提供し、方法は、エンティティがロールのメンバーであるか否かを確認するためのリクエストを受信することであって、確認するためのリクエストが、ロール名を含む、ことと、確認するためのリクエストを受信するのに応答して、ロール名に関連するロール構成を記憶エリアから検索することであって、ロール構成が、1つ以上のロールフィルターと、互いに対して1つ以上のフィルターの論理関係を特定する論理ステートメントとを含み、各ロールフィルターが、エンティティ属性に対する1つ以上の特定されたオプションを含み、かつエンティティ属性に対する値を含むデータソースにリンクされる、ことと、論理ステートメントを構文解析し、そして論理ステートメントの各ロールフィルターに対して、データソースの値が、ロールフィルターの1つ以上の特定されたオプションにマッチするか否かを決定することによって、ロールフィルターが真かまたは真でない結果を有するのを決定することと、論理関係に従って、論理ステートメントの各ロールフィルターに対する真または真でない結果を処理することによって、論理ステートメントの真または真でないことを評価することと、エンティティがロールのメンバーであるか否かを決定することであって、論理ステートメントが真である場合、エンティティがメンバーであり、論理ステートメントが真でない場合、エンティティがメンバーではない、こととを含む。
【0005】
もう1つの実施形態は、クライアントおよびロールマネージャープロセスを含むロールメンバーシップを動的に管理するためのシステムを提供する。クライアントは、エンティティがロールのメンバーであるか否かを確認するためのリクエストを送信することであって、確認するためのリクエストが、ロール名を含む、ことと、ロールメンバーシップの決定を受信することとを行うために、ユーザーによって動作可能である。ロールマネージャープロセスは、確認するためのリクエストを受信することと、確認するためのリクエストを受信するのに応答して、ロール名に関連するロール構成を記憶エリアから検索することであって、ロール構成が、1つ以上のロールフィルターと、互いに対して1つ以上のフィルターの論理関係を特定する論理ステートメントとを含み、各ロールフィルターが、エンティティ属性に対する1つ以上の特定されたオプションを含み、かつエンティティ属性に対する値を含むデータソースにリンクされる、ことと、論理ステートメントを構文解析し、そして論理ステートメントの各ロールフィルターに対して、データソースの値が、ロールフィルターの1つ以上の特定されたオプションにマッチするか否かを決定することによって、ロールフィルターが真かまたは真でない結果を有するのを決定することと、論理関係に従って、論理ステートメントの各ロールフィルターに対する真または真でない結果を処理することによって、論理ステートメントの真または真でないことを評価することと、ロールメンバーシップの決定を生成することであって、論理ステートメントが真である場合、エンティティがメンバーであり、論理ステートメントが真でない場合、エンティティがメンバーではない、ことと、ロールメンバーシップの決定をクライアントに送信することとによって、確認するためのリクエストを処理するように構成される。
【0006】
本発明の実施形態の上述およびなおさらなる特徴および利点は、以下のその詳細な記述に考慮して明白になり、特に添付の図面に関連して解釈されるとき、さまざまな図面の同様の参照数字が、同様の構成要素を明示するために利用される。
【0007】
本発明は、例えば、以下を提供する。
(項目1) ロールメンバーシップを動的に管理するための方法であって、該方法は、
エンティティがロールのメンバーであるか否かを確認するためのリクエストを受信することであって、該確認するためのリクエストが、ロール名を含む、ことと、
該確認するためのリクエストを受信することに応答して、該ロール名に関連するロール構成を記憶エリアから検索することであって、該ロール構成が、1つ以上のロールフィルターと、互いに対する該1つ以上のフィルターの論理関係を特定する論理ステートメントとを含み、各ロールフィルターが、エンティティ属性に対する1つ以上の特定されたオプションを含み、該エンティティ属性に対する値を含むデータソースにリンクされる、ことと、
該論理ステートメントを構文解析し、そして該論理ステートメントの各ロールフィルターに対して、該データソースの該値が、該ロールフィルターの該1つ以上の特定されたオプションにマッチするか否かを決定することによって、該ロールフィルターが真かまたは真でない結果を有するのを決定することと、
該論理関係に従って、該論理ステートメントの各ロールフィルターに対する該真または真でない結果を処理することによって、該論理ステートメントの真または真でないことを評価することと、
該エンティティが該ロールのメンバーであるか否かを決定することであって、該論理ステートメントが真である場合、該エンティティがメンバーであり、該論理ステートメントが真でない場合、該エンティティがメンバーではない、ことと
を含む、方法。
(項目2) 上記ロールフィルターが真かまたは真でない結果を有するのを決定することは、各ロールフィルターに対して、
上記リンクされたデータソースに接続することと、
上記エンティティ属性に対する上記値を上記データソースから検索することと、
該検索された値を該ロールフィルターの上記1つ以上の特定されたオプションと比較することと
を含み、該検索された値が該1つ以上の特定されたオプションにマッチする場合には、該ロールフィルターの結果が真であり、該検索された値が該1つ以上の特定されたオプションにマッチしないなら、該ロールフィルターの結果が真でない、上記項目に記載の方法。
(項目3) 任意のロールフィルターに対して、上記リンクされたデータソースへの接続が構成され得ない場合、該ロールフィルターに対する上記真または真でない結果を真でないことに設定することをさらに含む、上記項目のいずれかに記載の方法。
(項目4) 上記ロール構成を生成しまたは修正するためのリクエストを受信することと、
該リクエストを受信するのに応答して、該ロール構成がなお存在しない場合、該ロール構成を生成し、または該ロール構成が既に存在する場合、該ロール構成を上記記憶エリアから検索することと、
該ロール構成内に含むように1つ以上のロールフィルターを選択することと、
該1つ以上のロールフィルターの上記論理関係を特定する上記論理ステートメントを編集することと、
該選択されたロールフィルターと該編集された論理ステートメントとを含む該ロール構成を該記憶エリアに保存することと
をさらに含む、上記項目のいずれかに記載の方法。
(項目5) 上記ロール構成を保存する前に、上記選択されたロールフィルターを検証することをさらに含み、該検証は、各ロールフィルターに対して、
上記リンクされたデータソースへの接続を確認することと、
該リンクされたデータソースが該ロールフィルターの上記エンティティ属性に対する値を含むことを確認することと含み、
両方の確認ステップが成功である場合、該ロールフィルターが検証され、該ロール構成が保存され、1つまたは両方の確認ステップが失敗である場合、該ロールフィルターが検証されなく、該ロール構成の上記修正が繰り返される、上記項目のいずれかに記載の方法。(項目6) 上記1つ以上のロールフィルターのうちの1つを構成するためのリクエスト受信することと、
該リクエストを受信するのに応答して、該ロールフィルターがなお存在しない場合、該ロールフィルターを生成し、または該ロールフィルターが既に存在する場合、該ロールフィルターを上記記憶エリアから検索することと、
該ロールフィルターにリンクされるべき1つ以上のデータソースを選択することであって、各データソースが、1つ以上のエンティティ属性の各々に対する値を含み、各データソースの各エンティティ属性が、同じまたは別のデータソースの各エンティティ属性と異なり得る、ことと、
各データソースに対して、該ロールフィルターに含むようにエンティティ属性を該1つ以上のエンティティ属性から選択し、そして該ロールフィルター内に該選択されたエンティティ属性に対する1つ以上にオプションを特定することと、
該ロールフィルターを該記憶エリア内に保存することと
を含む、上記項目のいずれかに記載の方法。
(項目7) 各データソースに対して、上記データソースとそのリンクされたロールフィルターとの間の接続を、該データソースに対する位置情報を該リンクされたロールフィルターに入力することによって構成することをさらに含む、上記項目のいずれかに記載の方法。
(項目8) 各選択されたエンティティ属性に対して、上記ロールフィルターに含むように該ロールフィルター内に1つ以上の状態を特定することをさらに含み、各状態が、上記エンティティ属性に対する上記値の許可されたバリエーションを特定する、上記項目のいずれかに記載の方法。
(項目9) 上記データソースは、データベースである、上記項目のいずれかに記載の方法。
(項目10) 上記データソースは、ウェブサービスである、上記項目のいずれかに記載の方法。
(項目11) ロールメンバーシップを動的に管理するためのシステムであって、該システムは、
エンティティがロールのメンバーであるか否かを確認するためのリクエストを送信することであって、該確認するためのリクエストが、ロール名を含む、ことと、
ロールメンバーシップの決定を受信することと
を行うようにユーザーによって動作可能であるクライアントと、
該確認するためのリクエストを処理するように構成されるロールマネージャープロセスであって、該処理することが、
該確認するためのリクエストを受信することと、
該確認するためのリクエストを受信するのに応答して、該ロール名に関連するロール構成を記憶エリアから検索することであって、該ロール構成が、1つ以上のロールフィルターと、互いに対して該1つ以上のフィルターの論理関係を特定する論理ステートメントとを含み、各ロールフィルターが、エンティティ属性に対する1つ以上の特定されたオプションを含み、該エンティティ属性に対する値を含むデータソースにリンクされる、ことと、
論理ステートメントを構文解析し、そして該論理ステートメントの各ロールフィルターに対して、該データソースの該値が、該ロールフィルターの該1つ以上の特定されたオプションにマッチするか否かを決定することによって、該ロールフィルターが真かまたは真でない結果を有するのを決定することと、
該論理関係に従って、該論理ステートメントの各ロールフィルターに対する該真または真でない結果を処理することによって、該論理ステートメントの真または真でないことを評価することと、
該ロールメンバーシップの決定を生成することであって、該論理ステートメントが真である場合、該エンティティがメンバーであり、該論理ステートメントが真でない場合、該エンティティがメンバーではない、ことと、
該ロールメンバーシップの決定を該クライアントに送信することと
によって行われる、ロールマネージャープロセスと
を含む、システム。
(項目12) ロールメンバーシップを動的に管理するためのプログラムが記録されたコンピュータ読み取り可能な格納媒体であって、該プログラムは、
エンティティがロールのメンバーであるか否かを確認するためのリクエストを送信することであって、該確認するためのリクエストが、ロール名を含む、ことと、
ロールメンバーシップの決定を受信することと
を行うようにユーザーによって動作可能であるクライアントと、
該確認するためのリクエストを処理するように構成されるロールマネージャープロセスであって、該処理することが、
該確認するためのリクエストを受信することと、
該確認するためのリクエストを受信するのに応答して、該ロール名に関連するロール構成を記憶エリアから検索することであって、該ロール構成が、1つ以上のロールフィルターと、互いに対して該1つ以上のフィルターの論理関係を特定する論理ステートメントとを含み、各ロールフィルターが、エンティティ属性に対する1つ以上の特定されたオプションを含み、該エンティティ属性に対する値を含むデータソースにリンクされる、ことと、
論理ステートメントを構文解析し、そして該論理ステートメントの各ロールフィルターに対して、該データソースの該値が、該ロールフィルターの該1つ以上の特定されたオプションにマッチするか否かを決定することによって、該ロールフィルターが真かまたは真でない結果を有するのを決定することと、
該論理関係に従って、該論理ステートメントの各ロールフィルターに対する該真または真でない結果を処理することによって、該論理ステートメントの真または真でないことを評価することと、
該ロールメンバーシップの決定を生成することであって、該論理ステートメントが真である場合、該エンティティがメンバーであり、該論理ステートメントが真でない場合、該エンティティがメンバーではない、ことと、
該ロールメンバーシップの決定を該クライアントに送信することと
によって行われる、ロールマネージャープロセスと
して該コンピュータを動作させる、媒体。
(項目12A) 上記システムは、有形記憶媒体上に格納されるコンピュータプログラム製品である、上記項目のいずれかに記載のシステム。
(項目13) 上記ロールマネージャープロセスは、上記確認するためのリクエストを処理するための論理を用いて構成されるプロセッサーによってインプリメントされる、上記項目のいずれかに記載のシステム。
(項目14) 上記ロールマネージャープロセスは、各ロールフィルターが真かまたは真でない結果を有するのを決定するようにさらに構成され、該決定することが、各ロールフィルターに対して、
上記リンクされたデータソースに接続することと、
上記エンティティ属性に対する上記値を該データソースから検索することと、
該検索された値を該ロールフィルターの上記1つ以上の特定されたオプションと比較することであって、もし該検索された値が1つ以上の該特定されたオプションにマッチするなら、該真または真でない結果が真であり、もし該検索された値が1つ以上の該特定されたオプションにマッチしないなら、該真または真でない結果が真でなく、該リンクされたデータソースへの接続が作られ得ない場合、該真または真でない結果が真でない、こととによって行われる、上記項目のいずれかに記載のシステム。
(項目15) ユーザーによって動作可能な管理クライアントをさらに含み、該クライアントが、
上記ロール構成を生成しまたは修正するためのリクエストを上記ロールマネージャープロセスに送信することと、
構成オプションのセットを該ロールマネージャープロセスから受信することと、
1つ以上の構成オプションを該受信された構成オプションのセットから選択することと、
上記論理ステートメントを編集することと、
該選択された構成オプションおよび該論理ステートメントを該ロールマネージャープロセスに送信することと
を行うためであり、
該ロールマネージャープロセスが、該ロール構成を生成しまたは修正するようにさらに構成され、該生成しまたは修正することが、
該ロール構成を生成しまたは修正するための該リクエストを該管理クライアントから受信することと、
該リクエストを受信するのに応答して、該ロール構成がなお存在しない場合、それを生成し、または該ロール構成が既に存在する場合、それを上記記憶エリアから検索することと、
構成オプションのセットを該管理クライアントに送信することであって、該構成オプションが、該ロール構成に含まれ得る1つ以上のロールフィルターのロールフィルターリストを含む、ことと、
該選択された構成オプションおよび該編集された論理ステートメントを該管理クライアントから受信することであって、該選択された構成オプションが、該ロールフィルターリストからの1つ以上の選択されたロールフィルターを含む、ことと、
該受信された構成オプションおよび該編集された論理ステートメントを含む該ロール構成を該記憶エリアに保存することと
によって行われる、上記項目のいずれかに記載のシステム。
(項目16) 上記ロールマネージャープロセスは、上記ロール構成を保存する前に上記選択されたロールフィルターを検証するようにさらに構成され、該検証は、各ロールフィルターに対して、
上記リンクされたデータソースへの接続を確認することと、
該リンクされたデータソースが該ロールフィルターの上記エンティティ属性に対する値を含むことを確認することと含み、
両方の確認ステップが成功である場合、該ロールフィルターが検証され、該ロール構成が保存され、1つまたは両方の確認ステップが失敗である場合、該ロールフィルターが検証されなく、該ロール構成の上記修正が繰り返される、上記項目のいずれかに記載のシステム。
(項目17) ユーザーによって動作可能な管理クライアントをさらに含み、該クライアントが、
上記ロールフィルターのうちの1つを生成しまたは修正するためのリクエストを上記ロールマネージャープロセスに送信することと、
フィルターオプションのセットを該ロールマネージャープロセスから受信することと、
1つ以上のフィルターオプションを該受信されたフィルターオプションのセットから選択することと、
該選択されたフィルターオプションを該ロールマネージャープロセスに送信することと
を行うためであり、
該ロールマネージャープロセスが、該ロールフィルターを生成しまたは修正するようにさらに構成され、該生成しまたは修正することが、
該ロールフィルターを生成しまたは修正するための該リクエストを該管理クライアントから受信することと、
該リクエストを受信するのに応答して、該ロールフィルターがなお存在しない場合、それを生成し、または該ロールフィルターが既に存在する場合、それを上記記憶エリアから検索することと、
フィルターオプションのセットを該管理クライアントに送信することであって、該フィルターオプションが、該ロールフィルターにリンクされ得るデータソースのソースリストを含み、各データソースが、1つ以上のエンティティ属性の各々に対する値を含み、各データソースの各エンティティ属性が、同じまたは別のデータソースの各エンティティ属性と異なるかもしれない、ことと、
該選択されたフィルターオプションを該管理クライアントから受信することであって、該選択されたフィルターオプションが、該ソースリストからの1つ以上の選択されたデータソースと、各選択されたデータソースに対する該データソースからの1つ以上の選択されたエンティティ属性と、各選択されたエンティティ属性に対する1つ以上のオプションとを含む、ことと、
該受信されたフィルターオプションを含む該ロールフィルターを該記憶エリアに保存することと
によって行われる、上記項目のいずれかに記載のシステム。
(項目18) 上記選択されたフィルターオプションは、各選択されたエンティティ属性に対して、上記ロールフィルターに含むように1つ以上の状態をさらに含み、各状態は、上記エンティティ属性に対する上記値の許可されたバリエーションを特定する、上記項目のいずれかに記載のシステム。
(項目19) 上記データソースは、データベースである、上記項目のいずれかに記載のシステム。
(項目20) 上記データソースは、ウェブサービスである、上記項目のいずれかに記載のシステム。
【0008】
(摘要)
データベースまたはウェブサービスのようなデータソースにリンクされる1つ以上の動的ロールフィルターを含むロール構成を用いるロールのエンティティメンバーシップを動的に管理するための方法およびシステム。ロールフィルターは、毎回、ロールメンバーシップが要求されるゆえに、動的であり、ロール構成およびその構成要素ロールフィルターは、リンクされたデータソースの現在の情報に対して評価されなければならない。ロールは、ロールベースアクセスコントロールシステムまたはエンティティ識別システムに使われ得る。
【図面の簡単な説明】
【0009】
図1図1は、本発明の実施形態の例示的ロール管理システムのブロックダイヤグラムを描く。
図2図2は、本発明の実施形態に従う動的ロール構成の生成または修正を説明するフローチャートである。
図3図3は、本発明の実施形態に従う動的ロール構成の生成ウィザードを説明するスクリーンショットである。
図4図4は、本発明の実施形態に従うロールのメンバーのようなユーザーの検証を説明するフローチャートである。
【発明を実施するための形態】
【0010】
(好ましい実施形態の詳細な記述)
本発明は、データベース、ウェブサービスのようなデータソースにリンクされる1つ以上の動的ロールフィルターを含む動的ロール構成を用いてロールメンバーシップを動的に管理するための方法およびシステムを対象とする。ロールフィルターは、毎回、ロールが、例えばユーザーがロールベースアクセスコントロール(RBAC)システムによって保護される資産にアクセスしようするときに発動されるゆえに、動的であり、ロール構成およびその構成要素ロールフィルターは、データソース(複数可)の現在の情報に対して評価されなければならない。動的ロール構成はまた、ユーザーまたはエンティティが単なる名前以外の基準によって十分に定義されることを要求することによって、例えば、ロールメンバーシップを取得するために適切な仕事肩書、ワーク位置、またはワーク責任を要求することによって、状態をロールメンバーシップに提供する。
【0011】
従って、従来の静的ロール定義と違って、動的ロールフィルターは、ほとんどリアル時間でユーザー情報の変化に動的かつ自動に適応するのを可能にし、従って、ロールメンバーシップが、それらの自身でロール構成を変えるためのニーズがなく、常に現在のニーズを関して最新であることを確保する。システムがロールのメンバーを定義するためのロールフィルター基準に頼るゆえに、ユーザーが間違って無視され、正しくないロールに割り当てられ、正しいロールから削除されるときに生じるエラーは、大いに減らされ得または除去され得る。さらに、方法およびシステムは、ロールメンバーシップを定義するとき、粒度のカスタマイズ可能なレベルを提供する。例えば、単一粒度(single−grained)ユーザー名のアプローチの代わりに、管理者は、ユーザーが特定のロールのメンバーであり得る前に、満たされるべき複数の属性を要求することにとって、細粒度(fine−grained)方式でロールを定義し得る。管理者は、ロール構成およびそのロールフィルターセットを生成し得、そして次に、誰がロールのメンバーであるかを決定するためにロールメンバーシップを確認するバックエンドアルゴリズムに頼る。
【0012】
ロールフィルターが、データソースのユーザーまたはエンティティ属性の値に基づくゆえに、ロールフィルターは、ユーザーが誰であるのに基づく静的ルールではなく、むしろ代わりに、ユーザーに関する情報の検証に基づく動的ルールである。例えば、RBACシステムは、企業のあるタイプの情報へのアクセスを制限するために使われ得、例えば、財政報告または従業員レビューは、「マネージャー」ロールのメンバーに制限され得る。マネージャーロールは、ユーザーがマネージャーまたは部門長の仕事肩書を有することを要求する動的ロールフィルターを用いて定義され得、ロールフィルターが仕事肩書の情報を含む従業員データベースにリンクされる。従業員が、ソフトウェアエンジニアからマネージャーへの昇進を受け取るとき、続いて、仕事肩書の属性の変化は、仕事肩書の属性を利用する全定義されたロールに自動に流し、そして次回、従業員は、「マネージャー」ロールのメンバーに制限される情報にアクセスしようとすると、システムは、従業員がロールのメンバーであることを自動に決定すし、アクセスが認められる。従って、ロール定義は、ロールフィルターデータの変化に自動に適応する。
【0013】
ここで、図面を参照すると、本発明の実施形態に従うロールメンバーシップの動的管理を使用する例示的システムは、図1で説明される。図1に示されるシステムは、特に、ネットワークまたはインターネットにわたるロールメンバーシップの動的管理に適され、しかし、本実施形態のシステムが、そのように制限されなく、非ネットワークまたは内蔵型のシステムに使われ得ることは理解されるべきである。
【0014】
描かれたシステム50は、ロールマネージャープロセス10と、関連する共有または働くメモリー20と、ディレクトリ31、ウェブサービス32、ユーザーデータベース33およびフラットファイル34を含むデータソースと、ロール構成を格納するためのデータ記憶エリア40と、1つ以上の資産51、52とを含み、それらが、オプションなネットワーク12、14、16にわたって互いおよびクライアント5に接続される。システム50は、追加のサーバー、クライアント、および示されていない他のデバイスを含み得、システムの個々の構成要素は、単独かまたは複数で存在し得、例えば、2つ以上のデータ記憶エリアがあり得る。
【0015】
概して、クライアント5は、ロール管理システム50によって提供される機能、例えば、システムからのロール構成を生成し、観察し、適用し、そしてエクスポートするためのメカニズム等のためのインターフェースを提供する。クライアント5は、「目に見える」または「目に見えない」インターフェースをシステムに提供するように構成され得る。例えば、第1の実施形態において、クライアント5は、エンドユーザーにロール管理システムに対する目に見えないインターフェースを提供し、それにおいて、エンドユーザーは、エンドユーザーがシステムを知ることさえもなく、アクセスがシステムによって管理されるロールによってコントロールされる資産にアクセスしまたは操作することを可能にする。このような実施形態において、クライアント5はまた、システム管理者が、例えば、システムからのロール構成を生成し、観察し、適用し、そしてエクスポートすることを可能にするように、システム管理者にシステムに対する目に見えるインターフェースを提供する。例えば、エンドユーザーは、実験室の施設にアクセスするために、ロール管理システムを知らなくても、(例えば、アクセスカードを通しまたはキーパッド入力を許可するための)電子アクセスパネルのようなクライアントデバイスを使い得、その一方で、システム管理者は、自身でシステムにアクセスするためのコンピュータ端末のようなクライアントデバイスを使い得る。第2の実施形態において、クライアント5は、エンドユーザーおよび管理者にシステムに対する目に見えるインターフェースを提供し、しかし、管理者は、エンドユーザーに対して利用不可能である追加のオプション(例えば、ロールを削除しまたはエクスポートすること)を提供され得る。
【0016】
ロールマネージャープロセス10は、システム50によって管理されるロール構成を生成し、修正し、圧縮保存し、削除しまたは取り除くために構成される適用プログラムを提供し得、ロール管理、アクセスコントロール、およびサーチを行うための機能のために使われるツールと、システム50によって管理されるロールに関連する他のオプションと含み得る。ロールマネージャープロセス10は、機能、応用プログラムインターフェース(API)、またはロール構成の生成、ロールのメンバーシップの検証等のようなロール関連プロセスを行うのに必要とされるように呼ばれ得るウェブサービスであり得、または、サーバー、例えばディレクトリ(例えば、LDAP、アクティブディレクトリ等)サーバーまたはDBMS(例えば、Oracle、PostgreSQL、SQLサーバー等)サーバーであり得る。ユーザーが特定のロール構成にアクセスするとき、それは、データ記憶エリア40からメモリー20内にロードされ、それにより、ロール構成が、ロールマネージャープロセス10に必要とされるように更新され得る。メモリー20は、任意の従来または他のメモリーまたは記憶デバイスによってインプリメントされ得、揮発性(例えば、RAM、キャッシュ、フラッシュ等)、または不揮発性(例えば、ROM、ハードディスク、光学記憶装置等)であり得、他の適切な記憶キャパシティーを含み得る。
【0017】
ネットワーク12、14、16は、任意量の任意の適切な通信メディア(例えば、WAN、LAN、インターネット、イントラネット、有線、無線等)によってインプリメントされ得る。本実施形態のコンピュータシステムは、任意の従来または他のプロトコールを介してネットワークにわたって通信するための任意の従来または他の通信デバイスを含み得、ネットワークへのアクセスのための任意タイプの接続(例えば、有線、無線等)を利用し得る。クライアント5、ロールマネージャープロセス10、メモリー20、データソース31、32、33、34、データ記憶システム40および資産51、52のうちのどれが、システム50の1つ以上の構成要素に対してローカルであり得、1つ以上のネットワーク12、14、16を介してシステム50の1つ以上の他の構成要素から遠く離れ得、そしてそれらと通信し得ることは理解される。
【0018】
データソース31、32、33、34は、所望のやり方でシステムを動作させるのに必要とされるような任意の適切な数およびタイプのデータソースであり得る。データソースは、企業データソース(例えば、DB2、Oracle、IBM Enterprise Content Management(ECM)システム、ERPシステム等)、個人およびイントラ組織データソース(例えば、spreadsheets(例えば、Microsoft Excel)またはデータベース(例えば、Microsoft Access、MySQL、Sharepoint、Quickr、XML等))、公開データベースのようなウェブベースデータソース(例えば、税金記録、不動産記録、裁判所文書等)、ウェブサービス等を含み得る。データ記憶システム40は、任意量の任意タイプの従来または他のデータベース(例えば、ネットワーク、階層、関係、オブジェクト等)または記憶構造(例えば、ファイル、データ構造、ウェブベース記憶、ディスクまたは他の記憶等)によってインプリメントされ得る。
【0019】
資産51、52は、セキュリティが望まれる任意タイプの資産であり得、物理的、電子的、または他の適切な形式であり得る。例示的物理資産は、建物のような施設、実験室またはファイルルームのようなワークスペース、自動車またはオートバイのような乗り物、コンピュータのようなオフィス設備、複写機のようなモデム、ルームのようなエリアまたは構造、ガレージのようなキャビネット、デバイス内の個々のハードウェア部品等を含み得る。例えば、システムおよび方法は、ハードウェアアイテム、コンピュータネットワークに対する使用およびアクセス、または実験室またはファイルルームのような施設へのアクセスさえをコントロールするロールに対して、ロールメンバーシップを自動に管理するために使われ得る。
【0020】
例示的電子資産は、データベース、電子ドキュメント、サーバーアクセス、ソフト適用、ユーザープロフィール等を含み得る。電子ドキュメントは、HTMLおよびXMLウェブ内容、ドキュメントイメージ、電子記録、データベース記録、ワード処理ドキュメント、プレゼンテーションスライド、オフィスドキュメント、e−mailメッセージまたはアーカイブ、ゲーム、テキストデータ、電子書籍、グラフ、オーディオ、ビデオ、SMSまたはMMSメッセージ、情報の他のデジタル表示、および/またはそれらの組み合わせのような、しかし制限されない現在に公知また後に開発される任意タイプの電子ファイルまたはデータであり得る。
【0021】
システムおよび方法は、RBACシステムだけではなく、ユーザーまたはエンティティがロールのメンバーであり得る他のシステムにも使われ得る。例えば、データ分類システムにおいて、エンティティは、データファイルであり得、データアイデンティティーロールは、サイズ、内容、ファイル位置、関連適用(複数可)等に基づくロールフィルターを用いて定義され得る。同様に、ファイル編集システムにおいて、「冒涜な言葉」のようなロールは、例えば、「汚い言葉」、わいせつな用語、低俗またはわいせつな表現等のデータソースにリンクされるロールフィルターに基づいて定義され得、「慎重に扱うべき情報」のようなロールは、職員情報、機密プロジェクト名、クレジットカード番号、電話番号などのデータソースにリンクされるロールフィルターに基づいて定義され得る。データソースが更新されるとき、ロールフィルターおよびロールは、変えられた情報を反映するために自動に更新される。
【0022】
他の潜在的な適用は、アイデンティティ確認システムを含み、例えば、安全を確保された施設へのアクセスに対して、個々は、網膜スキャンおよび掌形認識と、セキュリティクリアランスレベル、軍のランク、パスポート番号等のような他の情報との組み合わせのようなさまざまな物理的および法医学的特性によって許可されたロールメンバーとして確認され得る。データソースが、例えば、新しい従業員に対して網膜スキャンを加え、職員が昇進されるように軍のランクを変えることによって更新されるとき、システムは、認可されたユーザーのみに対するアクセスを制限するようにロールメンバーシップを自動に変えるためにそのよう情報を自動に利用する。
【0023】
ここで、図2を参照すると、管理者は、前に記述されるシステム、特に図2のステップを行うためのロールマネージャープロセス10を使い得、参照数字100が、概して、動的ロール構成を生成しまたは修正するためのプロセスを描くフローチャートを明示する。プロセスは、105で開始し、そしてステップ110において、ロール構成が既に存在するか否かを決定し、存在する場合、ロール構成をメモリー内にロードし、そしてステップ120へ進む。存在しない場合、新しいロール構成は、ステップ115において生成され、そしてプロセスは、ステップ120へ進む。
【0024】
ステップ120において、管理者は、ロールフィルターを選択する。ロールフィルターは、簡単にエンティティ名またはユーザー名を聞くことの代わりに、構成されるロールのメンバーであるエンティティの種類またはタイプを定義する。各ロール構成は、共にロールを定義する1つ以上のロールフィルターのセットを含む。ステップ125において、管理者は、データソースを選択する。データソースは、ロールフィルターによって使われる情報、例えば従業員または他のエンティティに関する情報を含みまたは得る任意のソースであり得る。データソースは、値を有するの少なくとも1つエンティティ属性を含み、例えば、従業員データベースは、フルータイム、パートタイム、契約者またはインターンの可能な値を有する従業員ステータス属性と、New York Office、California Office等の可能な値を有するワーク位置属性と含み得る。望まれるロールフィルターのタイプに依存して、異なるソースが使われ得る。管理者は、データソースへの接続を構成し得、例えば、データソースがウェブサービスである場合、接続を構成することは、サービス、ポート、およびユーザー名とパスワードとのような認証情報にアクセスするための場合、IPアドレスまたは他の位置を入力するのに必要とし得る。
【0025】
ステップ130において、管理者は、フィルター(例えば、従業員タイプ、セキュリティクリアランスレベル、部門、ワーク位置、郵便番号、マネージャー、特定のグループのメンバー等)に使われるべき1つ以上のエンティティ属性を選択する。ステップ135において、管理者は、エンティティ属性に対する値の許可されたバリエーションを特定する1つ以上の状態を選択する。例えば、状態は、「starts with」、「ends with」、「is not」、「is」、「is exactly」、「contains」等であり得る。ステップ140において、管理者は、ロールフィルターのためのオプションを選択する。オプションは、ロールフィルター、選択されるデータソース、データソースのエンティティ属性に依存し、テキスト文字列、表現、または他の適切な入力であり得る。例えば、ロールフィルターが、セキュリティクリアランスに基づき、選択されたデータソースが、セキュリティクリアランス属性を含む従業員情報のアクティブディレクトリである場合、属性の可能な値は、例えば、なし、FOUN、機密、秘密、トップ秘密等を含む。利用可能なオプションは、可能な値、例えば、秘密クリアランスに直接にマッチし得、または複数の値、例えば、秘密、トップ秘密、およびより高いレベルのクリアランスにマッチする秘密またはより高いクリアランスにマッチし得る。オプションはまた、ユーザー定義であり得る。同時に、エンティティ属性のための状態およびオプションは、フィルター基準として知られる。
【0026】
ステップ145において、管理者は、ロールフィルターをロール構成に加え、そしてステップ150においてフィルターを検証する。ロールフィルターは、任意の適切な方法、例えば、リンクされたデータソースへの接続を確認することと、リンクされたデータソースがエンティティ属性に対する値を含むことを確認することとによって検証され得る。ステップ155において、システムは、検証が成功だったか否かを決定し、両方の確認ステップが成功である場合、ロールフィルターが検証され、そしてプロセスがステップ160へ進み、確認ステップのうちの1つまたは両方が失敗である場合、ロールフィルターが検証されなく、そしてプロセスがステップ125に戻る。
【0027】
ステップ160において、プロセスは、全ロールフィルターが、例えば、管理者に、ロール構成に加えるための別のロールフィルターがあるか否かを促すことによって定義されるか否かを決定する。追加のフィルターがある場合、プロセスは、ステップ120に戻り、ない場合、プロセスは、ステップ165へ進む。ステップ165において、管理者は、AND、ORおよびNOTのような論理表現を用いて、1つ以上のロールフィルターおよびそれらの間の関係を特定する論理ステートメントを生成し得または編集し得る。例えば、管理者は、以下の論理ステートメント:Employee Type AND Security Clearanceを入力し得る。ステップ170において、管理者は、ロール構成を保存し、オプション的にステップ175において、管理者は、ロール構成を適用する。プロセスは、ステップ180で終了する。
【0028】
ロール構成を生成するためのプロセス100の実施形態を説明する例示的Graphic User Interface (GUI)は、例示的「Employee Type」ロールフィルターに関連して、図3に示される。参照ポイント1で、管理者は、ロール名、この場合において「Primary Developer」を入力し、参照ポイント2で、管理者は、例えばLDAPディレクトリのようなデータソースに対するドメイン名を入力しまたは選択することによってデータソースを選択する。ソースの選択は、データソースのドロップダウンリストから1つ以上のデータソースを選択すること、または、データソースまたはソースに対する位置情報を手動で入力することによって作られ得る。描かれたロール構成に対して、管理者は、「Ad.info.com」の名前を有するアクティブディレクトリを選択する。GUIはまた、管理者に、IPアドレス、ポート、ユーザー名、およびパスワードのようなソース情報の入力を許可し、または入力される情報が有効であるか否かを決定するために、管理者がこの時間においてデータソースへの接続をテストすることを許可するポップアップウィンドウ(示されていない)を提供し得る。
【0029】
参照ポイント3で、管理者は、各データソースに対するエンティティ属性を選択し、かつ構成する。例えば、選択された「Title」属性に対して、管理者は、「Starts With」状態、および「Software」オプションを選択する。従って、選択された「Title」属性が、特定された状態およびオプションを有するフィルターで適用されるとき、それは、「Software Engineer」、「Software Programmer」、「Software Designer」等のようなエンティティ属性値にマッチする。管理者は、次に、このエンティティ属性をフィルターセットに加えるために、「add」ボタンをクリックし得る。フィルターセット内のフィルターは、参照ポイント4でディスプレイされる。参照ポイント5で、管理者は、ロール構成のための論理ステートメントを編集する。
【0030】
管理者は、ロールフィルターによって選択されるエンティティを見るために、フィルター(複数可)を適用するように「find」ボタンをクリックし得、この適用の結果は、参照ポイント6でディスプレイされる。これらの結果は、この特定のロールのメンバーで、この場合においてSyracuseオフィス位置に割り当てられ、言葉「Software」で始まる肩書有する会社従業員であるエンティティを説明する。参照ポイント7で、管理者は、このロール構成を保存しまたは適用し、またはGUIを終了する。
【0031】
ここで、図4を参照すると、参照数字200は、概して、特定のロールのメンバーのようなエンティティまたはユーザーを確認するためのプロセスを描くフローチャートを特定し、フローチャートが、前に記述されるシステム、特にロールマネージャープロセス10によって行われ得る。プロセス200は、機能、応用プログラミングインターフェース(API)、またはウェブサービスとして提供され得る。プロセスは、205で始まり、ロールベースアクセスコントロールによって保護される資産にアクセスするために、ユーザーリクエストによってトリガーされ得、またはプロセス、適用、または特定のロールのエンティティのメンバーシップを確認するための動作するシステムで呼ばれ得る。ステップ210においてユーザーまたはエンティティ名が入力され、ステップ215においてロール名が入力され、そしてステップ220において、そのロールのためのロール構成が、例えば記憶エリアから検索される。ステップ225において、プロセスは、論理ステートメントを構文解析し、見つけられるロールフィルターの各々をステートメントにロードする。
【0032】
各ロールフィルターは、次に、ステップ230から265までを用いて個々に処理される。ステップ230で、ロールフィルターが選択され、かつ検索され、ステップ235で、そのロールフィルターに対するデータソースへの接続がロードされる。ステップ240で、プロセスは、接続が確立されたか否かを決定し、されていない場合、プロセスは、ステップ245へ進み、ユーザーまたはエンティティがロールのメンバーではないと決定され(メンバーシップが確認され得ないゆえに)、そしてステップ250で終了する。接続がステップ240で確立された場合、プロセスは、ステップ255へ進み、そしてユーザーまたはエンティティに関連するエンティティ属性値(複数可)をデータソースから検索し、そしてステップ260において、検索された値(複数可)をロールフィルターによって特定されるフィルター基準と比較する。例えば、「Employee Title」」ロールフィルターに対して、検索された値は、ロールフィルターの特定された状態(「Starts with」)およびオプション(「Software」)と一致する「Software Engineer」であり得、そのゆえに、ロールフィルターは、「真」の結果を有する。または、例えば、「Employee Title」」ロールフィルターに対して、検索された値は、フィルター基準のどちらもと一致しない「Financial Analyst」であり得、そのゆえに、ロールフィルターは、「真でない」結果を有する。ステップ265で、プロセスは、処理するための他のロールフィルターがあるか否かを決定し、ある場合、ステップ230に戻る。ない場合、プロセスは、ステップ270へ進む。
【0033】
ステップ270において、プロセスは、関連するロールフィルターの各々が真または真でない結果を有するか否かに基づいて、最終結果が真または真でないか否かを決定するように論理ステートメントを評価し、ステップ275において、プロセスは、論理ステートメントが通過されたか否かを決定する。言い換えると、プロセスは、論理ステートメントの全部の結果が真である場合において、プロセスがステップ280へ進み、または論理ステートメントの全部の結果が真でない場合において、プロセスがステップ245へ進むことを決定する。もし真であるなら、ステップ280において、プロセスは、ユーザーまたはエンティティがロールのメンバーであることを決定し、そして次にステップ285で終了し、もし真でないなら、ステップ245において、プロセスは、ユーザーまたはエンティティがロールのメンバーではないと決定し、そして次にステップ250で終了する。
【0034】
本発明の実施形態は、完全にハードウェア実施形態、完全にソフトウェア実施形態またはハードウェアおよびソフトウェア要素の両方を含む実施形態の形を取り得る。好ましい実施形態において、本発明は、ファームウェア、常駐ソフトウェア、マイクロコード等を含み、しかし制限されないソフトウェアでインプリメントされる。ソフトウェアは、記録可能な媒体(例えば、磁気的、光学的、フロッピー(登録商標)、DVD、CD等)で利用可能または通信媒体(例えば、ネットワーク、LAN、WAN、イントラネット、インターネット等)を介してソースからダウンロードするためのキャリア波または信号の形であり得る。ソフトウェアは、動作するシステムまたは特定の適用、部品、プログラム、モジュール、オブジェクト、または命令順序の一部分であり得る。
【0035】
ソフトウェアが、任意の所望のコンピュータ言語でインプリメントされ得、図面で説明される詳説およびフローチャートに含まれる機能の記述に基づいてコンピュータ技術の当業者によって開発され得ることは理解されるべきである。例のみとして、ソフトウェアは、C#、C++、Python、Java(登録商標)、XML、またはPHPプログラミング言語でインプリメントされ得、データ記憶は、MySQL、Oracle、SQL Server、IBM DB2、Informixまたはフラットデータベース等でインプリメントされ得る。さらに、さまざまな機能を行うソフトウェアに対する本明細書での任意の参照文献は、概して、ソフトウェアコントロールの下でそれらの機能を行うコンピュータシステムまたはプロセッサーに関連する。前述およびフローチャートで説明されるソフトウェアおよび/またはアルゴリズムは、本明細書に記述される機能を達成する任意の方式で修正され得、フローチャートまたは記述の機能は、所望の動作を達成する任意の命令で行われ得る。
【0036】
コンピュータシステムは、代替的に、任意タイプのハードウェアおよび/または他の処理回路でインプリメントされ得る。コンピュータシステムのさまざまな機能は、任意量のソフトウェアモジュールまたはユニット、処理またはコンピュータシステム、オブジェクト、データ構造および/または回路の間の任意の方式で分配され得、コンピュータまたは処理システムが、ローカルにまたは互いに遠く離れて配置され得、任意の適切な通信媒体(例えば、LAN、WAN、イントラネット、インターネット、ハードワイヤ、モデム接続、無線等)を介して通信し得る。
【0037】
さらに、本実施形態は、コンピュータまたは他の命令実行システムによりまたはそれらとの接続での使用のためのプログラムコードを提供するコンピュータ使用可能またはコンピュータ読み取り可能な媒体からアクセス可能なコンピュータプログラム製品の形を取り得る。この記述の目的に対して、コンピュータ使用可能またはコンピュータ読み取り可能な媒体は、命令実行システム、装置、またはデバイスによりまたはそれらとの接続での使用のためのプログラムを含み得、格納し得、通信し得、伝播し得または輸送し得る任意の装置であり得る。媒体は、電子的、磁気的、光学的、電磁気的、赤外線、または半導体システム(または装置またはデバイス)または伝播媒体であり得る。コンピュータ読み取り可能な媒体の例は、半導体または固体状態のメモリー、磁気テープ、取り除き可能なコンピュータディスケット、ランダムアクセスメモリー(RAM)、読み取り専用のメモリー(ROM)、硬直の磁気ディスクおよび光学ディスクを含む。光学ディスクの現在の例は、コンパクトディスク(読み取り専用メモリー)(CD−ROM)、コンパクトディスク(読む/書く)(CD−R/W)およびDVDを含む。望ましい実施形態において、コンピュータ使用可能またはコンピュータ読み取り可能な媒体は、有形媒体である。
【0038】
プログラムコードを格納し、そして/または実行するのに適切な処理システムは、ディスプレイまたはモニター、(例えば、プロセッサー、メモリーおよび/または内部または外部の通信デバイス(例えば、モデム、ネットワークカード等)およびオプション的な入力デバイス(例えば、キーボード、マウスまたは他の入力デバイス)を含む)ベースを好ましく装備される任意の従来または他のコンピュータまたは処理システムでインプリメントされ得る。システムは、システムバスを通して直接または間接にメモリー要素と結合される少なくとも1つのプロセッサーを含み得る。メモリーは、任意の従来または他のメモリーまたは記憶デバイス(例えば、RAM、キャッシュ、フラッシュ等)でインプリメントされ得、任意の適切な記憶キャパシティーを含み得る。メモリー要素は、プログラムコードの実際の実行の間に使用されるローカルメモリー、バルク記憶装置、および実行の間にバルク記憶装置から検索されるべき時間コードの数を減らすために、少なくともいくつかのプログラムコードの一時的な記憶域を提供するキャッシュメモリーを含み得る。(キーボード、ディスプレイ、ポインティングデバイス等を含み、しかし制限しない)入力/出力またはI/Oデバイスは、直接かまたは間にあるI/Oコントローラを通してシステムと結合され得る。ネットワークアダプターはまた、処理システムが間にあるプライベートまたは公共ネットワークを通して他の処理システムまたはリモートプリンターまたは記憶デバイスと結合されるようになることを可能にするために、システムと結合され得る。モデム、ケーブルモデムまたはイーサネット(登録商標)カードは、ただ少数の現在に利用可能なタイプのネットワークアダプターである。
【0039】
エンドユーザーシステムは、任意量の従来または他のコンピュータシステムまたはデバイス(例えば、コンピュータ端末、個人コンピュータ(例えば、IBM−compatible、Apple MacIntosh、タブレット、ラップトップ等)等)、セルラー電話、個人データアシスタント(例えば、Palm Pre、Droid、iPhone等)等でインプリメントされ得、任意の市販で利用可能な動作するシステム(例えば、AIX、Android、Linux、OSX、Sun Solaris、Unix(登録商標)、Windows(登録商標)等)および任意の市販で利用可能またはカスタムソフトウエア(例えば、ブラウザソフトウェア、通信ソフトウェア、ワード処理ソフトウェア等)を含み得る。これらのシステムは、情報を入力し、そして/またはビューするためのディスプレイおよび入力デバイス(例えば、キーボート、マウス、音声認識等)を含み得る。エンドユーザーシステムは、プロセスおよびデータ記憶エリアに対してローカルであり得、またはネットワークを介してサーバーおよびデータ記憶エリアから遠く離れ得、かつそれらと通信し得る。
【0040】
ネットワークは、任意量の任意の適切な通信メディア(例えば、WAN、LAN、インターネット、イントラネット、有線、無線等)でインプリメントされ得る。コンピュータシステムは、任意の従来または他のプロトコールを介してネットワークにわたって通信するための任意の従来または他の通信デバイスを含み得、ネットワークへのアクセスのための任意タイプの接続(例えば、有線、無線等)を利用され得る。
【0041】
本発明の好ましい実施形態の前の開示は、例示および記述の目的のために示される。それは、完全であり、または開示される正確な形式に対して本発明を制限するように意図されない。本明細書に記述される実施形態の多くのバリエーションおよび修正は、当業者にとって、上の本開示を考慮して明白である。本発明の範囲は、本明細書に添えられた特許請求範囲によりだけではなく、それらの同等物によっても規定されるべきである。
【0042】
さらに、本発明の代表的な実施形態を記述するのにおいて、詳説は、本発明の方法および/またはプロセスをステップの特定の順序として示し得る。しかし、方法またはプロセスが本明細の前のステップセットの特定の命令に頼らない範囲に対して、方法またはプロセスは、記述されるステップの特定の順序に制限されるべきではない。当業者が認識するように、ステップの他の順序が可能であり得る。そのゆえに、詳説において前のステップセットの特定の命令は、請求範囲上の制限として構成されるべきではない。加えて、本発明の方法および/またはプロセスに対象とする請求範囲は、書かれた命令のそれらのステップの性能に制限されるべきではなく、当業者は、順序が変えられ得、なお本発明の真意および範囲内に残り得ることを容易に認識し得る。
【符号の説明】
【0043】
5 クライアント
10 ロールマネージャープロセス
12、14、16 ネットワーク
20 メモリー
31 ディレクトリ
32 ウェブサービス
33 ユーザーデータベース
34 フラットファイル
40 データ記憶エリア
50 システム
51、52 資産
図1
図2
図3
図4