Endeca Server接続のデータの表示に関するロールベースのセキュリティの構成

Endeca Server接続は、ユーザー・ロールに基づいてデータを表示可能なユーザーを制御するように構成することもできます。

ロールベースのセキュリティに関連するEndeca Server接続の設定は、次のとおりです。
設定 説明
securityEnabled Endeca Server接続への問合せ用のセキュリティ・フィルタを有効化するかどうか。

trueに設定した場合、Endeca Server接続はsecurityFiltersに構成されているフィルタを使用します。

securityFilters Endeca Server接続で使用されるセキュリティ・フィルタをすべて定義します。各フィルタには、セキュリティ・ロールをマップするために名前が付けられます。
セキュリティ・フィルタでサポートされているタイプは、DataSourceFiltersのみです。それぞれのフィルタには、次を指定します。
  • class: DataSourceFilterクラスへのフルパス。
  • filterString: フィルタ情報を含むEQLスニペット。これは基本的にEQL文のWHERE句のコンテンツになります。
  • viewKey: EQLを実行するためのデータ・セットのキー名(表示ではなく)です。
rolePermissionsMultiOr 複数のセキュリティ・ロールを持つユーザーの場合に、論理ORを使用して各ロールからのフィルタを1つに結合されたセキュリティ・ロール・フィルタにするかどうか。

trueに設定した場合は、論理ORが使用され、ユーザーはそのセキュリティ・ロールのフィルタの少なくとも1つに一致するデータにアクセスできます。

falseに設定した場合は(デフォルト値)、論理ANDが使用され、ユーザーはそのすべてのセキュリティ・ロールに関連付けられたフィルタすべてに一致するデータにのみアクセスできます。

論理ORが使用される場合、これは各種セキュリティ・ロールのフィルタを結合するためにのみ使用されます。各ロールのフィルタが別のロールのフィルタに結合されるまでは、論理ANDがそれぞれのフィルタで適用されます。

データ・セットのベース・フィルタも論理ANDを使用して適用されます。

rolePermissions ユーザー・ロールをセキュリティ・フィルタにマップします。
それぞれのマッピングについて、形式は次のようになります。
"<role name>" : [<filter list>]
これらの意味は、次のとおりです。
  • <role name>はユーザー・ロールの名前です。
  • <filter list>は、指定のロールに適用するフィルタ名のカンマ区切りリストです。名前はそれぞれ引用符で囲みます。たとえば、["filter1", "filter2", "filter3"]のように指定します。

セキュリティ・フィルタを使用したEndeca Server接続の例

次の例では、ロールFrench Wineを持つユーザーは、Bordeaux地域とBurgundy地域のデータのみを表示できます。一方、ロールAustrian Wineを持つユーザーは、Austria、BurgenlandおよびSteiermarkの地域のデータのみを表示できます。

rolePermissionsMultiOrがtrueに設定されているため、これらの両ロールを持つユーザーは、この5地域のレコードを表示できます。

{
 "server":"server01.lab.acme.com",
 "port":"15000",
 "dataDomainName":"acmeDB",
 "name":"European Wines",
 "description":"Sales transactions for European wines",
 "securityEnabled":"true",
 "securityFilters": {
    "frenchFilter": {
        "class":"com.endeca.portal.data.functions.DataSourceFilter",
        "filterString":"Region='Bordeaux' OR Region='Burgundy'",
        "viewKey":"Wines"
    },
    "austrianFilter": {
        "class":"com.endeca.portal.data.functions.DataSourceFilter",
        "filterString":"Region='Austria' OR Region='Burgenland' OR Region='Steiermark'",
        "viewKey":"Wines"
    }
  },
 "rolePermissionsMultiOr":"true",
 "rolePermissions": {
    "French Wine": ["frenchFilter"],
    "Austrian Wine": ["austrianFilter"]
  }
}