ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server ロールおよびポリシーによるリソースの保護
11g リリース 1 (10.3.1)
B55556-01
 

目次
目次

戻る
戻る
 

A WebLogic Server における XACML のリファレンス

XACML (eXtensible Access Control Markup Language) は、認可ポリシーおよびロールの割り当てを記述するための XML 言語です。XACML には拡張ポイントが用意されており、Oracle のようなベンダが独自のリソース、データ型、関数を XACML で表現できるようになっています。

WebLogic Server の XACML 認可プロバイダおよび XACML ロール マッピング プロバイダ :

以下の節では、XACML 2.0 ドキュメントを記述して WebLogic Server 上のリソースを保護する場合に使用できる拡張について説明します。また、WebLogic Server で XACML を使用する場合の制約についても説明します。

ここでは、XACML の WebLogic Server 拡張、およびその制限事項についてのみ説明しています。XACML 2.0 言語の完全なリファレンス情報については、OASIS XACML 2.0 コア仕様 および OASIS RBAC 仕様を参照してください。

WebLogic Server と XACML のセキュリティ モデルの比較

WebLogic Server でリソースやポリシーを表現するためのモデルは、Java EE デプロイメント記述子のモデルに準拠しています。この Java EE モデルでは、リソースの階層を作成し、最上位のロールと認可ポリシーによって下位層のリソースを保護します。(リソースの階層の保護を参照。)下位階層のポリシーは、常に上位階層のポリシーをオーバーライドします。リソース階層の上位には、エンタープライズ アプリケーション、Web アプリケーション、および EJB が配置されます。リソース階層の最下位には、EJB メソッド、特定の URL パターンの HTTP メソッド、および MBean のゲッターとセッターが配置されます。

XACML モデルでも、リソースの階層は認識されます。しかし、ネイティブの WebLogic Server モデルと異なり、作成する XACML ポリシーでは、リソースをそのリソース自体のポリシーで保護するのか、リソースの親または祖先のポリシーで保護するのかを判断する方法を指定する必要があります。

また、XACML ドキュメントでは、リソースとリソースのアクションを区別するのが一般的です。たとえば、XACML ドキュメントでリソースとして EJB を定義したら、その EJB リソース内に EJB のメソッドを表すアクションを定義します。ネイティブの WebLogic Server モデルでは、EJB と各 EJB メソッドがリソースと見なされます。「図 A-1」を参照してくだい。

図 A-1 メソッドを含む WebLogic のリソース階層

図 A-1 の説明は図の下のリンクをクリックしてください。
「図 A-1 メソッドを含むWebLogic のリソース階層」の説明

EJB メソッドなどのアクションを XACML リソースとして記述することが可能ですが、XACML でのより自然な表現方法は、EJB をリソースとして定義し、EJB メソッドをリソース内のアクションとして定義する方法です。

用語の比較

WebLogic Server でリソースやポリシーについて説明するための用語は、Java EE デプロイメント記述子のモデルに準拠しています。この Java EE モデルでは、以下の用語を使用して主要な概念を説明しています。

  • ロールには、特定の時間にどのユーザまたはグループにそのロールを割り当てるかを示す 1 つまたは複数の条件が含まれている。ロールは、条件と、その条件に従ってロールに追加するユーザまたはグループの名前を組み合わせたものです。これらの式の集合をロールと呼びます。

  • ポリシーには、特定の時間に誰がリソースにアクセスできるかを示す 1 つまたは複数の条件が含まれている。ポリシー式は、条件と、その条件に従ってアクセスを許可するユーザ、グループ、またはロールの名前を組み合わせたものです。これらの式の集合をポリシー文と呼びます。

XACML では、ポリシーはルールのセットから構成されており、誰にロールを割り当て、誰がリソースにアクセスできるかは、このポリシーを使用して決定します。つまり、XACML のポリシーは、WebLogic Server のロール文やポリシー文に相当します。

データ型について

WebLogic Server では、XACML のコア仕様で必要とされているすべてのデータ型がサポートされます。それ以外にも、標準 XML データ型や、さまざまなカスタム データ型がサポートされています。このマニュアルでは、Oracle 独自のカスタム データ型を、bea: というプレフィックスを付けて表します。

WebLogic XACML プロバイダで認識されるすべてのデータ型の詳細については、『Oracle Fusion Middleware Oracle WebLogic Server API リファレンス』の (com.bea.common.security.xacml.Type) を参照してください。

Action 識別子

XACML では、Action 要素を使用して、リソース内での処理やリソースの階層を識別します。

WebLogic Server では、XACML のコア仕様にのすべての Action 識別子がサポートされます (XACML 2.0 のコア仕様を参照)。また、XACML の environment 識別子を使用できる場所ならどこでも使用できる追加の識別子 1 つもサポートされています。

WebLogic Server リソース内の処理 (たとえば、特定の EJB メソッド) を識別するには、表 A-1 の説明に従って action 識別子を使用します。


注意 :

resource 識別子を使用して処理 (EJB メソッドなど) を記述することは可能ですが、XACML でのより自然な表現方法は action 識別子を使用する方法です。「WebLogic Server と XACML のセキュリティ モデルの比較」を参照してください。

表 A-1 Action 識別子

識別対象 使用する識別子

処理

  • 属性 ID : urn:oasis:names:tc:xacml:1.0:action:action-id

  • データ型 : string

  • 値 : 処理を含むリソースの種類によって異なる。「表 A-2」を参照。

プロバイダがセキュリティ チェックを実行するタイミング

  • 属性 ID : urn:bea:xacml:2.0:action:direction

  • データ型 : string

  • 値 : ONCEPRIOR、または POST

WebLogic Security SPI には、プロバイダが要求されたセキュリティ チェックを実行するタイミングを指定するためのオプション機能が含まれている。

  • ONCE は、認可チェックを 1 回実行することを要求する。処理の前に実行するか、後に実行するかは指定しない。

  • PRIOR は、リクエストを処理する前に認可チェックを実行することを要求する。

  • POST は、リクエストを処理した後、その結果を返す前に認可チェックを実行することを要求する。

この direction 識別子を使用すると、ONCEPRIOR、または POST でチェックされたリクエストを識別できる。

詳細については、『Oracle Fusion Middleware Oracle WebLogic Server API リファレンス』の「weblogic.security.spi.Direction」(セキュリティ プロバイダに ONCEPRIOR、または POST を渡すために使用するオブジェクト) を参照。

注意 : 認可プロバイダでは、Direction オブジェクトを判定内で使用することもできる。WebLogic Server の XACML 認可プロバイダでは、ONCE 値のみサポートされる。


表 A-2 では、action-id 識別子に指定する値について説明します。

表 A-2 action-id 識別子の値

その処理を含むリソースの種類 指定する値
Admin

Admin リソースによって保護する管理アクティビティの名前。たとえば UserLockout

有効な値については、『Oracle Fusion Middleware Oracle WebLogic Server API リファレンス』の「weblogic.security.service.AdminResource」コンストラクタを参照。

アプリケーション

Administration Console に表示されるアプリケーション名。

コントロール

Java コントロール内のメソッドの名前。Java コントロールは、再利用可能なコンポーネントで、WebLogic Platform アプリケーション内の任意の場所で使用できる。WebLogic Workshop が提供する組み込みコントロールを使用しても、独自のコントロールを作成しても構わない。

EJB

EJB メソッドの名前。たとえば mymethod。そのメソッドがオーバーロードされている場合は、指定したメソッド名を持つすべてのメソッドが一致する。

JDBC

JDBC リソースによって保護する管理アクティビティの名前。

有効な値については、『Oracle Fusion Middleware Oracle WebLogic Server API リファレンス』の「weblogic.security.service.JDBCResource」コンストラクタの action パラメータ を参照。

JMS

JMS リソースによって保護する管理アクティビティの名前。

有効な値については、『Oracle Fusion Middleware Oracle WebLogic Server API リファレンス』の「weblogic.security.service.JMSResource」コンストラクタ の action パラメータを参照。

JMX

WebLogic Server MBean 内の処理の名前。たとえば shutdown

JNDI

JNDI リソースによって保護する管理アクティビティの名前。

有効な値については、『Oracle Fusion Middleware Oracle WebLogic Server API リファレンス』の「weblogic.security.service.JNDIResource」コンストラクタの action パラメータを参照。

サーバ

サーバ リソースによって保護するサーバ ライフサイクル アクティビティの名前。たとえば boot

有効な値については、「サーバ リソース」を参照。

URL

HTTP メソッドの名前。たとえば POST

Web サービス

Web サービス メソッドの名前。たとえば mymethod

ワーク コンテキスト

ワーク コンテキスト リソースによって保護する管理アクティビティの名前。

有効な値については、『Oracle Fusion Middleware Oracle WebLogic Server API リファレンス』の「weblogic.security.service.WorkContextResource」の action パラメータを参照。

その他

文字列 access


次の例では、Action 要素を使用して、SimpleSoap Web サービス内の mymethod を対象として指定しています。

<Target>
  <Resources>
   <Resource>
   <ResourceMatch
    MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
    <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">
       type=&lt;webservices&gt;, application=webservicesJwsSimpleEar,
       contextPath=/jws_basic_simple, webService=SimpleSoapPort
    </AttributeValue>
    <ResourceAttributeDesignator
     AttributeId="urn:oasis:names:tc:xacml:2.0:resource:resource-ancestor"
     DataType="http://www.w3.org/2001/XMLSchema#string"
     MustBePresent="true"/>
   </ResourceMatch>
  </Resource>
  </Resources>
  <ActionMatch
    MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
    <AttributeValue
      DataType="http://www.w3.org/2001/XMLSchema#string">
        mymethod
     </AttributeValue>
     <ActionAttributeDesignator
      AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id"
      DataType="http://www.w3.org/2001/XMLSchema#string"
      MustBePresent="true"/>
  </ActionMatch>
</Target> 

Environment 識別子

XACML では、必要に応じて Environment 要素を使用して、対象にアクセスを許可する前に満たされなければならない条件をオペレーション環境内に記述できます。たとえば、Environment 要素を使用して、アクセスを許可する日付と時間の範囲を指定できます。

Weblogic Server では、XACML のすべての Environment 識別子がサポートされます。(http://docs.oasis-open.org/xacml/2.0/access_control-xacml-2.0-core-spec-os.pdf にある OASIS XACML 2.0 コア仕様 を参照)。また、XACML の environment 識別子 を使用できる場所ならどこでも使用できる追加の識別子 1 つもサポートされています。表 A-3 では、コンテナからプロバイダに渡す値を保持するのに使用できる識別子に対しての値のリストを提供します。

表 A-3 WebLogic Server の Environment 識別子

識別子 値 および 説明

属性 ID :

urn:bea:xacml:2.0:environment:context:key 

この識別子では、『Oracle Fusion Middleware Oracle WebLogic Server セキュリティ プロバイダの開発』の「ContextHandler と WebLogic リソース」で定義されているように、keyContextHandler 要素を指定します。ContextHandler は、リソース コンテナから追加のコンテキストとコンテナ固有の情報を取得し、その情報を名前と値のペアのリストとして表す WebLogic クラス。

データ型 :

bea:Objectstring、または double

値 :

一致させたい ContextHandler 要素の値


次の例では、Environment 要素を使用して、WebLogic Server のリスン ポートの値を一致させています。このような要素を使用して、リクエストをリスン ポート 9001 で受け付けることを要件とするポリシーを作成できます。

<Environment>
   <EnvironmentMatch
      MatchId="urn:oasis:names:tc:xacml:1.0:function:double-equal"> 
      <EnvironmentAttributeDesignator
           AttributeId="urn:bea:xacml:2.0:environment:context:com.bea.cont
           extelement.channel.Port"
            DataType="http://www.w3.org/2001/XMLSchema#double"/> 
      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#double">
          9001 
      </AttributeValue> 
   </EnvironmentMatch> 
</Environment>

Policy および PolicySet 識別子

XACML では、Policy 要素を使用して 1 つまたは複数のルールを記述し、PolicySet 要素を使用して 1 つまたは複数のポリシーを記述できます。各要素には、ユニークな識別子を提供するための PolicySetId 属性を含める必要があります。XACML 仕様では、PolicySetId 識別子を有効な URI 値にすることが要件になっています。

XACML ドキュメントでは、PolicySetId を使用して、特定の Policy または PolicySet 要素を別の PolicySet 要素に含めることができます。WebLogic Server では、認可プロバイダやロール マッピング プロバイダのポリシー ストアで、PolicySetId をキーとして使用します。

WebLogic Server では、urn:bea: で始まる URI 値は内部使用のために予約されています。urn:bea: で始まる URI を使用して独自のポリシーを作成することはできませんが、それらの値を使用して Oracle のポリシーを独自のポリシー セットに含めることはできます。

次に、Policy 要素の有効な識別子の例を示します。

<Policy
    PolicyId="urn:mycompany:myapplication:policyid:1"
...>

次に、上の Policy 要素への有効な参照の例を示します。

<PolicyIdReference>
    urn:mycompany:myapplication:policyid:1
</PolicyIdReference>

Resource 識別子

XACML では、Resource 要素を使用して、データ、サービス、またはシステム コンポーネントを表現します。

WebLogic Server では、XACML 2.0 コア仕様の説明に従って、すべての XACML Resource 識別子がサポートされます。

Weblogic server リソースを識別するには、Resource 識別子を表 A-4 に説明する方法で使用します。WebLogic Server リソースについては、「ポリシーで保護できるリソースのタイプ」を参照してください。

表 A-4 WebLogic Server の Resource 識別子

識別対象 以下の識別子を使用します。

Resource

  • 属性 ID : urn:oasis:names:tc:xacml:1.0:resource:resource-id

  • データ型 : string

  • 値 : WebLogic Server リソース タイプと WebLogic Server リソース階層内でのリソースの位置を指定する名前と値のペアの集合。WebLogic Server では、これらの識別子が生成される。

    なお、この識別子を使用するポリシーでは、指定したリソースより下位にあるリソースは保護されない。たとえば、この識別子を使用したポリシーを Web サービス モジュールに適用する場合、Web サービス内のメソッドはこのポリシーでは保護されない。

保護するリソースの ID の取得」を参照。

リソースとその祖先

  • 属性 ID : urn:oasis:names:tc:xacml:2.0:resource:resource-ancestor-or-self

  • データ型 : string

  • 値 : WebLogic Server リソース タイプを指定する名前と値のペアの集合。WebLogic Server では、これらの識別子が生成される。

保護するリソースの ID の取得」を参照。

リソースの親

  • 属性 ID : urn:oasis:names:tc:xacml:1.0:resource:resource-parent

  • データ型 : string

  • 値 : WebLogic Server リソース タイプを指定する名前と値のペアの集合。WebLogic Server では、これらの識別子が生成される。

保護するリソースの ID の取得」を参照。

リソースの祖先

  • 属性 ID : urn:oasis:names:tc:xacml:2.0:resource:resource-ancestor

  • データ型 : string

  • 値 : WebLogic Server リソース タイプを指定する名前と値のペアの集合。WebLogic Server では、これらの識別子が生成される。

保護するリソースの ID の取得」を参照。


次の例では、Resource 要素が SimpleSoapPort という Web サービスに一致し、その Web サービス内のすべてのメソッドが返されます。

<Resource>
   <ResourceMatch
    MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
    <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">
       type=&lt;webservices&gt;, application=webservicesJwsSimpleEar,
       contextPath=/jws_basic_simple, webService=SimpleSoapPort
    </AttributeValue>
    <ResourceAttributeDesignator
     AttributeId="urn:oasis:names:tc:xacml:2.0:resource:resource-ancestor"
     DataType="http://www.w3.org/2001/XMLSchema#string"
     MustBePresent="true"/>
   </ResourceMatch>
</Resource> 

Subject 識別子

XACML では、Subject 要素を使用して、述部から参照できる属性を持つアクタを表現します。

WebLogic Server では、XACML 2.0 のコア仕様に記載されている、XACML Subject 識別子がサポートされています。

WebLogic Server レルムに定義されている WebLogic Server のユーザ、グループ、またはロールを識別するには、subject 識別子を 表 A-5 に説明する方法で使用します。

表 A-5 WebLogic の Subject 識別子

識別対象 以下の識別子を使用します。

ユーザ プリンシパル

  • 属性 ID: urn:oasis:names:tc:xacml:1.0:subject:subject-id

  • データ型 : string

  • 値 : WebLogic Server ユーザ プリンシパルの名前。

グループ プリンシパル

  • 属性 ID : urn:oasis:names:tc:xacml:2.0:subject:group

  • データ型 : string

  • 値 : WebLogic Server グループ プリンシパルの名前。

ロール

  • 属性 ID : urn:oasis:names:tc:xacml:2.0:subject:role

  • データ型 : string

  • 値 : XACML ロール マッピング プロバイダによって解決された 1 つまたは複数のロールの名前。

注意 : WebLogic Server では、この属性を定義している RBAC プロファイル仕様の一部のみがサポートされている。

SOAP ドキュメントに署名したサブジェクト

  • 属性 ID : urn:bea:xacml:2.0:subject:context:com.bea.contextelement.webservice.Integrity{{namespace}element}

    namespace および element には、署名されたネームスペースと要素を指定する。

    たとえば、

    urn:bea:xacml:2.0:subject:context:com.bea.contextelement.webservice.Integrity{{ http://schemas.xmlsoap.org/soap/envelope/}Body}

  • データ型 : string

  • 値 : 要素に署名した Java サブジェクト (ユーザ ID またはグループ ID)。


Web サービスへのアクセスを保護するために使用できるセキュリティ ロールを、表 A-7 に示した識別子を使用して定義している XACML ドキュメントの例については、「コード リスト 7-2」を参照してください。

WebLogic Server の XACML 関数

以下の節では、XACML のコア仕様に定義されている関数以外に、WebLogic Server の XACML プロバイダでサポートされる関数について説明します。

カスタム データ型のバリアント

以下の function 識別子は、標準の XACML 関数を直接移植したもので、XML および WebLogic Server のデータ型 longfloatdecimal、および bea:Character に使用できます。これらのデータ型の詳細については、『Oracle Fusion Middleware Oracle WebLogic Server API リファレンス』の「com.bea.common.security.xacml.Type」を参照してください。

この一覧の type には、データ型の名前 (longfloatdecimal、または character) が入ります。

urn:bea:xacml:2.0:function:type-equal
urn:bea:xacml:2.0:function:type-greater-than
urn:bea:xacml:2.0:function:type-greater-than-or-equal
urn:bea:xacml:2.0:function:type-less-than
urn:bea:xacml:2.0:function:type-less-than-or-equal
urn:bea:xacml:2.0:function:type-one-and-only
urn:bea:xacml:2.0:function:type-bag-size
urn:bea:xacml:2.0:function:type-is-in
urn:bea:xacml:2.0:function:type-bag
urn:bea:xacml:2.0:function:type-intersection
urn:bea:xacml:2.0:function:type-union
urn:bea:xacml:2.0:function:type-at-least-one-member-of
urn:bea:xacml:2.0:function:type-subset
urn:bea:xacml:2.0:function:type-set-equals

bea:Object を比較する関数については、「オブジェクトの比較」を参照してください。

次に、urn:bea:xacml:2.0:function:character-equal を使用して 2 つの bea:character を比較する Condition の例を示します。

<Condition>
   <Apply FunctionId="urn:bea:xacml:2.0:function:character-equal">
     <AttributeValue DataType="urn:bea:xacml:2.0:data-type:character">
       Q
     </AttributeValue>
     <AttributeValue DataType="urn:bea:xacml:2.0:data-type:character">
       Q
     </AttributeValue>
   </Apply>
</Condition> 

その他の関数

表 A-6 に、標準の XACML 関数以外に WebLogic SERVER で提供されるその他の関数をまとめます。

表 A-6 その他の WebLogic Server XACML 関数

関数 説明

in-development-mode

  • URI : urn:bea:xacml:2.0:function:in-development-mode

  • 入力値の型 : null

  • 戻り値の型 : boolean

  • 説明 : この関数は、引数を取らず、レルムをホストする WebLogic Server インスタンスのモードが開発モードである場合に true を返す。

『Oracle WebLogic Server コンフィグレーション ウィザードを使用した WebLogic ドメインの作成』の「WebLogic ドメインの作成」を参照。

instance-method

  • URI : urn:bea:xacml:2.0:function:instance-method

  • 入力値の型 : bea:Object、string、bea:Class のバッグ、[bea:Object ... ]

  • 戻り値の型 : bea:Object

  • 説明 : この関数は、コンテナが現在のコンテキスト内で使用可能にする bea:Object でメソッドを呼び出す。

この関数は、以下の引数を取る。

  • bea:Object。この Java オブジェクトのメソッドが呼び出される。bea:Object を指定するには、environment 識別子 urn:bea:xacml:2.0:environment:context:key を使用する。「Environment 識別子」を参照。

  • string。メソッド名。

  • bea:Class のバッグ。メソッドのシグネチャ内に宣言されている Java クラス。必要なクラスを作成するには、Oracle の string-to-class 関数を使用する。「オブジェクト型の変換」を参照。

  • 0 個以上の bea:Objects。各オブジェクトは、メソッドに渡すパラメータ値を保持する。必要なオブジェクトを作成するには、Oracle のオブジェクト変換関数を使用する。「オブジェクト型の変換」を参照。

呼び出されたメソッドの戻り値は、関数からは bea:Object として返される。void を返すメソッドは呼び出されないことがある。

instance-method-match

  • URI : urn:bea:xacml:2.0:function:instance-method-match

  • 入力値の型 : bea:Object、string、[bea:Object ...]

  • 戻り値の型 : bea:Object

  • 説明 : この関数は、コンテナが現在のコンテキスト内で使用可能にする bea:Object でメソッドを呼び出す。

この関数は、以下の引数を取る。

  • bea:Object。この Java オブジェクトのメソッドが呼び出される。bea:Object を指定するには、environment 識別子 urn:bea:xacml:2.0:environment:context:key を使用する。「Environment 識別子」を参照。

  • string。メソッド名。

  • 0 個以上の bea:Objects 各オブジェクトは、メソッドに渡すパラメータ値を保持する。必要なオブジェクトを作成するには、Oracle のオブジェクト変換関数を使用する。「オブジェクト型の変換」を参照。

この関数は、パラメータ bea:object のメソッド名とクラス型を使用して、対象の bea:Object 内の適切なメソッドを検索する。対象の bea:Object に含まれるメソッドのうち、パラメータと一致するメソッドが 1 つだけではない場合は結果が確定されない。

呼び出されたメソッドの戻り値は、関数からは bea:Object として返される。void を返すメソッドは呼び出されないことがある。

instance-method-v2

  • URI : urn:bea:xacml:2.0:function:instance-method-v2

  • 入力値の型 : bea:Class、bea:Object、string、bea:Class のバッグ、[bea:Object ... ]

  • 戻り値の型 : bea:Object

  • 説明 : この関数は、コンテナが現在のコンテキスト内で使用可能にする bea:Object でメソッドを呼び出す。

この関数は、以下の引数を取る。

  • bea:Classbea:Object のクラス型。クラスを作成するには、Oracle の string-to-class 関数を使用する。「オブジェクト型の変換」を参照。

  • bea:Object。この Java オブジェクトのメソッドが呼び出される。bea:Object を指定するには、environment 識別子 urn:bea:xacml:2.0:environment:context:key を使用する。「Environment 識別子」を参照。

  • string。メソッド名。

  • bea:Class のバッグ。メソッドのシグネチャ内に宣言されている Java クラス。必要なクラスを作成するには、Oracle の string-to-class 関数を使用する。「オブジェクト型の変換」を参照。

  • 0 個以上の bea:Objects各オブジェクトは、メソッドに渡すパラメータ値を保持する。必要なオブジェクトを作成するには、Oracle のオブジェクト変換関数を使用する。「オブジェクト型の変換」を参照。

呼び出されたメソッドの戻り値は、関数からは bea:Object として返される。void を返すメソッドは呼び出されないことがある。

instance-method-match-v2

  • URI : urn:bea:xacml:2.0:function:instance-method-match-v2

  • 入力値の型 : bea:Class、bea:Object、string、[bea:Object ... ]

  • 戻り値の型 : bea:Object

  • 説明 : bea:Object のクラス名、メソッド名、およびパラメータ bea:Objects のクラス型を使用して、対象の bea:Object 内の適切なメソッドを検索する。対象の bea:Object に含まれるメソッドのうち、パラメータと一致するメソッドが 1 つだけではない場合は結果が確定されない。

この関数は、以下の引数を取る。

  • bea:Classbea:Object のクラス型。クラスを作成するには、Oracle の string-to-class 関数を使用する。「オブジェクト型の変換」を参照。

  • bea:Object。この Java オブジェクトのメソッドが呼び出される。bea:Object を指定するには、environment 識別子 urn:bea:xacml:2.0:environment:context:key を使用する。「Environment 識別子」を参照。

  • string。メソッド名。

  • 0 個以上の bea:Objects各オブジェクトは、メソッドに渡すパラメータ値を保持する。必要なオブジェクトを作成するには、Oracle のオブジェクト変換関数を使用する。「オブジェクト型の変換」を参照。

呼び出されたメソッドの戻り値は、関数からは bea:Object として返される。void を返すメソッドは呼び出されないことがある。

instance-method-match-v3

  • URI : urn:bea:xacml:2.0:function:instance-method-match-v3

  • 入力値の型 : string、bea:Object、string、string のバッグ、[bea:Object ...]

  • 戻り値の型 : bea:Object

  • 説明 : bea:Object のクラス名、メソッド名、およびパラメータ bea:Objects のクラス型を使用して、対象の bea:Object 内の適切なメソッドを検索する。対象の bea:Object に含まれるメソッドのうち、パラメータと一致するメソッドが 1 つだけではない場合は結果が確定されない。

この関数は、Java Reflection API を使用して、指定された bea:Object でメソッドを呼び出す。この関数は、以下の引数を取る。

  • Stringbea:Object のクラス型の名前。

  • bea:Object。この Java オブジェクトのメソッドが呼び出される。bea:Object. を指定するには、environment 識別子 urn:bea:xacml:2.0:environment:context:key を使用する。「Environment 識別子」を参照。

  • String。メソッド名。

  • string のバッグ。メソッド シグネチャ内のパラメータのクラス名。

  • 0 個以上の bea:Objects各オブジェクトは、メソッドに渡すパラメータ値を保持する。必要なオブジェクトを作成するには、Oracle のオブジェクト変換関数を使用する。「オブジェクト型の変換」を参照。

  • 呼び出されたメソッドの戻り値は、関数からは bea:Object として返される。void を返すメソッドは呼び出されないことがある。


次のポリシーは、リクエストが特定の URL パターンに一致すると、instance-method 関数を使用して HttpServletRequest.getAuthType() メソッドを呼び出します (http://java.sun.com/javaee/5/docs/api/javax/servlet/http/HttpServletRequest.html#getAuthType() にある Java EE 5.0 API Specificationjavax.servlet.http.HttpServletRequest.getAuthType() を参照)。WebLogic Server の ContextHandler は、サーブレット コンテナ経由で受け付けるすべてのリクエストにおいて、この HttpServletRequest オブジェクトを認可プロバイダおよびロール マッピング プロバイダで使用できるようにします。URL リソースのすべてのポリシーは、このメソッドまたは他の HttpServletRequest メソッドを呼び出すことができます。

コード リスト A-1 HttpServletRequest.getAuthType() を呼び出すポリシー

<Policy xmlns="urn:oasis:names:tc:xacml:2.0:policy:schema:os"
   PolicyId="urn:sample:xacml:2.0:function:instance-method"
   RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:
     first-applicable">
  <Description>function:instance-method</Description>
  <Target>
    <Resources>
      <Resource>
         <ResourceMatch
            MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
            <AttributeValue
             DataType="http://www.w3.org/2001/XMLSchema#string">
              type=&lt;url&gt;, application=MedRecEAR, contextPath=,uri=/docs/*
             </AttributeValue>
             <ResourceAttributeDesignator
               AttributeId="urn:oasis:names:tc:xacml:2.0:resource:
                  resource-ancestor-or-self"
               DataType="http://www.w3.org/2001/XMLSchema#string"
                MustBePresent="true"/>
         </ResourceMatch>
      </Resource>
    </Resources>
  </Target>
  <!-- Declaring the instance-method function as a variable because this policy
       invokes it multiple times.
  -->
  <VariableDefinition VariableId="authType">
    <Apply FunctionId="urn:bea:xacml:2.0:function:instance-method">
      <!-- HttpServletRequest オブジェクトを関数に渡す。
           BEA の ContextHandler は、このオブジェクトをセキュリティ フレームワークで使用できるようにする。
      -->
      <Apply FunctionId="urn:bea:xacml:2.0:function:object-one-and-only">
        <EnvironmentAttributeDesignator 
           DataType="urn:bea:xacml:2.0:data-type:object"
           AttributeId="urn:bea:xacml:2.0:environment:context:com.bea.
              contextelement.servlet.HttpServletRequest" />
      </Apply>
      <!--  呼び出す HttpServletRequest
             の名前として getAuthType() を渡す。
      -->
      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">
        getAuthType
      </AttributeValue>
      <!-- getAuthType() メソッド シグネチャにはパラメータは含まれないため、
           クラスの空のバッグを渡す。
      -->
      <Apply FunctionId="urn:bea:xacml:2.0:function:class-bag" />
    </Apply>
  </VariableDefinition>
  <!-- getAuthType() が null 以外の値として「CLIENT_CERT」
        を返した場合にのみリソースへのアクセスを許可する
       ルールを作成する。
  -->
  <Rule RuleId="primary-rule" Effect="Permit">
    <Condition>
      <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
        <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:not">
          <Apply FunctionId="urn:bea:xacml:2.0:function:object-is-null">
            <VariableReference VariableId="authType" />
          </Apply>
        </Apply>
        <Apply
           FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
           <!-- 関数は bea:Object を返すため、
                 このポリシーでは関数を object-to-string 関数内にラップする。
                 これにより、別の文字列で出力される関数の比較が可能
                 になる。
           -->
           <Apply FunctionId="urn:bea:xacml:2.0:function:object-to-string">
              <VariableReference VariableId="authType" />
           </Apply>
           <!--  Declaring a String object to compare to the
                 HttpServletRequest.getAuthType() return value. 
           -->
           <AttributeValue
              DataType="http://www.w3.org/2001/XMLSchema#string">
              CLIENT_CERT
           </AttributeValue>
         </Apply>
       </Apply>
    </Condition>
  </Rule>
  <Rule RuleId="deny-rule" Effect="Deny" />
</Policy>

日付および時刻の変換

表 A-7 に、XACML の日付と時刻を別のデータ型に変換するための Oracle 提供の関数をまとめます。

表 A-7 WebLogic Server の日付および時刻の変換

関数 説明

dateTime-dayOfMonth

  • URI : urn:bea:xacml:2.0:function:dateTime-dayOfMonth

  • 入力値の型 : dateTime

  • 戻り値の型 : integer

  • 説明 : この関数は、dateTime 型の引数 1 つを取り、入力された dateTime によって示唆される日 (その月の何日目か) を表す整数値を返す。

    月の 1 日目は、値 1 で表される。

dateTime-dayOfMonthMaximum

  • URI : urn:bea:xacml:2.0:function:dateTime-dayOfMonthMaximum

  • 入力値の型 : dateTime

  • 戻り値の型 : integer

  • 説明 : この関数は、datetime 型の引数 1 つを取り、その月の最終日が何日かを表す integer 値を返す。

    たとえば、dateTime が 12 月の日時を表す場合は、12 月の最大日数を表す 31 を返す。うるう年の 2 月の日数は自動的に調整される。

dateTime-dayOfWeek

  • URI : urn:bea:xacml:2.0:function:dateTime-dayOfWeek

  • 入力値の型 : dateTime

  • 戻り値の型 : integer

  • 説明 : この関数は、dateTime 型の引数 1 つを取り、入力されたdateTime.によって示唆される曜日 (その週の何日目か) を表す integer 値を返す。

    日曜日を週の始まりと考え、値 1 で表す。

dateTime-secondsOfDay

  • URI : urn:bea:xacml:2.0:function:dateTime-secondsOfDay

  • 入力値の型 : dateTime

  • 戻り値の型 : integer

  • 説明 : この関数は、datetime 型の引数 1 つを取り、入力された datetime によって示唆される経過時間 (その日が始まってから何秒経過したか) を表す integer 値を返す。

dayTimeDuration-timeZoneOffset

  • URI : urn:bea:xacml:2.0:function:dayTimeDuration-timeZoneOffset

  • 入力値の型 : null

  • 戻り値の型 : dayTimeDuration

  • 説明 : この関数は、引数を取らず、現地時間とグリニッジ標準時 (GMT) の時差を表す dayTimeDuration 値を返す。

string-to-dateTime

  • URI : urn:bea:xacml:2.0:function:string-to-dateTime

  • 入力値の型 : string

  • 戻り値の型 : dateTime

  • 説明 : この関数は、string 型の引数 1 つを取り、その引数を dateTime として返す。

string-to-date

  • URI : urn:bea:xacml:2.0:function:string-to-date

  • 入力値の型 : string

  • 戻り値の型 : date

  • 説明 : この関数は、string 型の引数 1 つを取り、その引数を date として返す。

object-to-dateTime

  • URI : urn:bea:xacml:2.0:function:object-to-dateTime

  • 入力値の型 : bea:Object

  • 戻り値の型 : dateTime

  • 説明 : この関数は、bea:Object 型の引数 1 つを取り、その値を dateTime オブジェクトとして返す。bea:Objectjava.util.Calendar のインスタンスである場合は、その値が直接返される。bea:Objectjava.security.Timestamp または java.util.Date のインスタンスである場合は、bea:Objectjava.util.Calendar に変換され、その Calendar 値が返される。それ以外の場合は、bea:Objectjava.lang.String に変換され、その StringdateTime 値に解析される。

object-to-date

  • URI : urn:bea:xacml:2.0:function:object-to-date

  • 入力値の型 : bea:Object

  • 戻り値の型 : date

  • 説明 : この関数は、bea:Object 型の引数 1 つを取り、その値を date オブジェクトとして返す。bea:Objectjava.util.Calendar のインスタンスである場合は、その値が直接返される。bea:Objectjava.util.Date のインスタンスである場合は、bea:Objectjava.util.Calendar に変換され、その Calendar 値が返される。それ以外の場合は、bea:Objectjava.lang.String に変換され、その Stringdate 値に解析される。


算術変換および算術関数

表 A-8 に、算術値を別の入力型に変換するための Oracle 提供の関数、および XACML で定義されている算術関数の基本セットを拡張するための Oracle 提供の関数をまとめます。

表 A-8 Weblogic Server の算術変換および算術関数

関数 説明

float-to-double

  • URI : urn:bea:xacml:2.0:function:float-to-double

  • 入力値の型 : float

  • 戻り値の型 : double

  • 説明 : この関数は、float 型の引数 1 つを取り、その引数を double として返す。

long-to-double

  • URI : urn:bea:xacml:2.0:function:long-to-double

  • 入力値の型 : long

  • 戻り値の型 : double

  • 説明 : この関数は、long 型の引数 1 つを取り、その引数を double として返す。

long-to-float

  • URI : urn:bea:xacml:2.0:function:long-to-float

  • 入力値の型 : long

  • 戻り値の型 : float

  • 説明 : この関数は、long 型の引数 1 つを取り、その引数を float として返す。

integer-to-float

  • URI : urn:bea:xacml:2.0:function:integer-to-float

  • 入力値の型 : integer

  • 戻り値の型 : float

  • 説明 : この関数は、integer 型の引数 1 つを取り、その引数を float として返す。

integer-to-long

  • URI : urn:bea:xacml:2.0:function:integer-to-long

  • 入力値の型 : integer

  • 戻り値の型 : long

  • 説明 : この関数は、integer 型の引数 1 つを取り、その引数を long として返す。

string-to-double

  • URI : urn:bea:xacml:2.0:function:string-to-double

  • 入力値の型 : string

  • 戻り値の型 : double

  • 説明 : この関数は、string 型の引数 1 つを取り、その引数を double として返す。

string-to-long

  • URI : urn:bea:xacml:2.0:function:string-to-long

  • 入力値の型 : string

  • 戻り値の型 : long

  • 説明 : この関数は、string 型の引数 1 つを取り、その引数を long として返す。

string-to-integer

  • URI : urn:bea:xacml:2.0:function:string-to-integer

  • 入力値の型 : string

  • 戻り値の型 : integer

  • 説明 : この関数は、string 型の引数 1 つを取り、その引数を integer として返す。

string-to-float

  • URI : urn:bea:xacml:2.0:function:integer-to-long

  • 入力型 : string

  • 戻り値の型 : float

  • 説明 : この関数は、string 型の引数 1 つを取り、その引数を float として返す。

to-degrees

  • URI : urn:bea:xacml:2.0:function:to-degrees

  • 入力値の型 : double

  • 戻り値の型 : double

  • 説明 : この関数は、double 型の引数 1 つを取り、その値をラジアンから度に変換して、その角度値を double として返す。

to-radians

  • URI : urn:bea:xacml:2.0:function:to-radians

  • 入力値の型 : double

  • 戻り値の型 : double

  • 説明 : この関数は、double 型の引数 1 つを取り、その値を度からラジアンに変換して、そのラジアン値を double として返す。

acos

  • URI : urn:bea:xacml:2.0:function:acos

  • 入力値の型 : double

  • 戻り値の型 : double

  • 説明 : この関数は、double 型の引数 1 つを取り、その引数の円弧のコサインを double として返す。

asin

  • URI : urn:bea:xacml:2.0:function:asin

  • 入力値の型 : double

  • 戻り値の型 : double

  • 説明 : この関数は、double 型の引数 1 つを取り、その引数の円弧のサインを double として返す。

atan

  • URI : urn:bea:xacml:2.0:function:atan

  • 入力値の型 : double

  • 戻り値の型 : double

  • 説明 : この関数は、double 型の引数 1 つを取り、その引数の円弧のタンジェントを double として返す。

atan2

  • URI : urn:bea:xacml:2.0:function:atan2

  • 入力値の型 : double

  • 戻り値の型 : double

  • 説明 : この関数は、ある点の x および y 座標を表す double 型の引数 2 つを取り、その x 座標に対応する r 値の極座標におけるその点のシータ成分を double 値として返す。

ceil

  • URI : urn:bea:xacml:2.0:function:ceil

  • 入力値の型 : double

  • 戻り値の型 : double

  • 説明 : この関数は、double 型の引数 1 つを取り、その引数値以上の整数のうち最小の値を double 値として返す。

cos

  • URI : urn:bea:xacml:2.0:function:cos

  • 入力値の型 : double

  • 戻り値の型 : double

  • 説明 : この関数は、double 型の引数 1 つを取り、その引数のコサインを double として返す。

exp

  • URI : urn:bea:xacml:2.0:function:exp

  • 入力値の型 : double

  • 戻り値の型 : double

  • 説明 : この関数は、double 型の引数 1 つを取り、オイラーの数 e を引数値で累乗した値を double 値として返す。

ieee-remainder

  • URI : urn:bea:xacml:2.0:function:ieee-remainder

  • 入力値の型 : double

  • 戻り値の型 : double

  • 説明 : この関数は、double 型の引数 2 つを取り、IEEE 754 標準に従って 2 つの引数値を剰余演算した結果を double 値として返す。「http://grouper.ieee.org/groups/754/」を参照。

log

  • URI : urn:bea:xacml:2.0:function:log

  • 入力値の型 : double

  • 戻り値の型 : double

  • 説明 : この関数は、double 型の引数 1 つを取り、その自然対数を double として返す。

maximum

  • URI : urn:bea:xacml:2.0:function:maximum

  • 入力値の型 : double

  • 戻り値の型 : double

  • 説明 : この関数は、double 型の引数 2 つを取り、大きい方の値を double として返す。

minimum

  • URI : urn:bea:xacml:2.0:function:minimum

  • 入力値の型 : double

  • 戻り値の型 : double

  • 説明 : この関数は、double 型の引数 2 つを取り、小さい方の値を double として返す。

pow

  • URI : urn:bea:xacml:2.0:function:pow

  • 入力値の型 : double

  • 戻り値の型 : double

  • 説明 : この関数は、double 型の引数 2 つを取り、1 番目の引数値を 2 番目の引数値で累乗した結果を double 値として返す。

random-number

  • URI : urn:bea:xacml:2.0:function:random-number

  • 入力値の型 : double

  • 戻り値の型 : double

  • 説明 : この関数は、double 型の引数 2 つを取り、1 番目の引数値以上かつ 2 番目の引数値未満の乱数を double 値として返す。

rint

  • URI : urn:bea:xacml:2.0:function:rint

  • 入力値の型 : double

  • 戻り値の型 : double

  • 説明 : この関数は、double 型の引数 1 つを取り、その引数値にもっとも近い整数を double 値として返す。引数値より大きい整数値との差と、引数値より小さい整数値との差が等しい場合は、偶数値の方が返される。

sqrt

  • URI : urn:bea:xacml:2.0:function:sqrt

  • 入力値の型 : double

  • 戻り値の型 : double

  • 説明 : この関数は、double 型の引数 1 つを取り、その平方根を double として返す。

tan

  • URI : uurn:bea:xacml:2.0:function:tan

  • 入力値の型 : double

  • 戻り値の型 : double

  • 説明 : この関数は、double 型の引数 1 つを取り、そのタンジェントを double として返す。


オブジェクト型の変換

WebLogic Server には、XACML データを Java オブジェクトに変換するためのさまざまな関数が用意されています。各関数の URI は、次のようになっています。

urn:bea:xacml:2.0:function:type-to-object 

type には、XACML データ型の名前が入ります。表 A-9 に、すべてのデータ型と、それらに対応する関数によって返される Java オブジェクトをまとめます。

たとえば、この関数では、java.lang.String オブジェクトとして「test」が返されます。

<Apply
  FunctionId="urn:bea:xacml:2.0:function:string-to-object">test</Apply> 

表 A-9 データから Java オブジェクトへの変換

XACML データ型 (type 部分) urn:bea:xacml:2.0:function:type-to-object 関数の戻り値

character

java.lang.Character

string

java.lang.String 

boolean

java.lang.Boolean

integer

java.lang.Integer

double

java.lang.Double

float

java.lang.Float

long

java.lang.Long

decimal

java.lang.Double

base64Binary

java.lang.Byte[] 

hexBinary

java.lang.Byte[] 

date

java.util.Calendar 

time

java.util.Calendar 

dateTime

java.util.Calendar

dayTimeDuration

java.lang.Long

yearMonthDuration

java.lang.Integer

rfc822Name

java.lang.String

x500Name

java.lang.String

anyURI

java.net.URI

ipAddress

java.lang.String

dnsAddress

java.lang.String

表 A-10 には、文字列または Java オブジェクトを別のデータ型またはオブジェクト型に変換するための Oracle 提供の関数をまとめます。コンテナが現在のコンテキストで使用可能にするオブジェクトを渡すには、environment 識別子 urn:bea:xacml:2.0:environment:context:key を使用して、bea:Object. を指定します。「Environment 識別子」を参照。

表 A-10 WebLogic Server オブジェクトの変換

関数 説明

string-to-class

  • URI : urn:bea:xacml:2.0:function:string-to-class

  • 入力値の型 : string

  • 戻り値の型 : bea:Class

  • 説明 : この関数は、string 型の引数 1 つを取り、その引数値で java.lang.Class.forName() を呼び出して、その結果を bea:Class として返す。

object-to-string

  • URI : urn:bea:xacml:2.0:function:object-to-string

  • 入力値の型 : bea:Object

  • 戻り値の型 : string

  • 説明 : この関数は、bea:Object 型の引数 1 つを取り、その引数値で java.lang.Object.toString() を呼び出して、その結果を string として返す。

object-to-double

  • URI : urn:bea:xacml:2.0:function:object-to-double

  • 入力値の型 : bea:Object

  • 戻り値の型 : double

  • 説明 : この関数は、bea:Object 型の引数 1 つを取り、その値を double として返す。bea:Objectdouble のインスタンスである場合は、その値が直接使用される。bea:Objectjava.lang.Number のインスタンスである場合は、その値で Number.doubleValue() を呼び出す。それ以外の場合は、bea:Objectjava.lang.String に変換され、その Stringdouble 値に解析される。

object-to-integer

  • URI : urn:bea:xacml:2.0:function:object-to-integer

  • 入力値の型 : bea:Object

  • 戻り値の型 : integer

  • 説明 : この関数は、bea:Object 型の引数 1 つを取り、その値を integer として返す。bea:Objectjava.lang.Integer のインスタンスである場合は、その値が直接使用される。bea:Objectjava.lang.Number のインスタンスである場合は、その値で Number.intValue() を呼び出す。それ以外の場合は、bea:Objectjava.lang.String に変換され、その Stringinteger に解析される。


オブジェクトの比較

表 A-11 に、Java オブジェクトを比較するための Oracle 提供の関数をまとめます。

表 A-11 WebLogic Server オブジェクトの比較

関数 説明

object-is-null

  • URI : urn:bea:xacml:2.0:function:object-is-null

  • 入力値の型 : bea:Object

  • 戻り値の型 : boolean

  • 説明 : この関数は、bea:Object 型の引数 1 つ を取り、そのオブジェクト参照が Javaキーワード null と 等しいかどうかを示す boolean 値を返す。指定したオブジェクト参照に対応するオブジェクトがない場合は true を返す。

object-equal

  • URI : urn:bea:xacml:2.0:function:object-equal

  • 入力値の型 : bea:Objectbea:Object

  • 戻り値の型 : boolean

  • 説明 : この関数は、bea:Object 型の引数 2 つを取り、java.lang.Object.equals() が呼び出され、2.つ の Object は等しいかどうかを表示する boolean の値を返す。

    java.lang.Object.equals() メソッドについては、(http://java.sun.com/javase/6/docs/api/java/lang/Object.html#equals(java.lang.Object)) を参照。

object-greater-than

  • URI : urn:bea:xacml:2.0:function:object-greater-than

  • 入力値の型 : bea:Objectbea:Object

  • 戻り値の型 : boolean

  • 説明 : この関数は、bea:Object 型の引数 2 つを取り、1 番目の bea:Object が 2 番目の bea:Object より大きいかどうかを示す boolean 値を返す。2 つの bea:Objectjava.lang.Comparable を実装している必要がある。実装していない場合は評価が確定されない。

object-greater-than-or-equal

  • URI : urn:bea:xacml:2.0:function:object-greater-than-or-equal

  • 入力値の型 : bea:Objectbea:Object

  • 戻り値の型 : boolean

  • 説明 : この関数は、bea:object 型の引数 2 つを取り、1 番目の bea:Object が 2 番目の bea:object 以上であるかどうかを示す boolean 値を返す。2 つの bea:Objectjava.lang.Comparable を実装している必要がある。実装していない場合は評価が確定されない。

object-less-than

  • URI : urn:bea:xacml:2.0:function:object-less-than

  • 入力値の型 : bea:Objectbea:Object

  • 戻り値の型 : boolean

  • 説明 : この関数は、bea:Object 型の引数 2 つを取り、1 番目の bea:Object が 2 番目の bea:Object より小さいかどうかを示す boolean 値を返す。2 つの bea:Objectjava.lang.Comparable を実装している必要がある。実装していない場合は評価が確定されない。

object-less-than-or-equal

  • URI : urn:bea:xacml:2.0:function:object-less-than-or-equal

  • 入力値の型 : bea:Objectbea:Object

  • 戻り値の型 : boolean

  • 説明 : この関数は、bea:Object 型の引数 2 つを取り、1 番目の bea:Object が 2 番目の bea:Object 以下であるかどうかを示す boolean 値を返す。2 つの bea:Objectjava.lang.Comparable を実装している必要がある。実装していない場合は評価が確定されない。

object-collection-contains

  • URI : urn:bea:xacml:2.0:function:object-collection-contains

  • 入力値の型 : bea:Objectbea:Object

  • 戻り値の型 : boolean

  • 説明 : この関数は、bea:Object 型 の引数 2 つを取り、1 番目の bea:ObjectCollection.contains() によって決定された 2 番目の bea:Object を含むかどうかを表示する boolean を返す。1 番目の bea:Objectjava.util.Collection を実装している必要がある。実装していない場合は評価が確定されない。

    Collection.contains() の メソッドについては、(http://java.sun.com/javase/6/docs/api/java/util/Collection.html#contains(java.lang.Object)) を参照。

object-collection-contains-all

  • URI : urn:bea:xacml:2.0:function:object-collection-contains-all

  • 入力値の型 : bea:Objectbea:Object

  • 戻り値の型 : boolean

  • 説明 : この関数は、bea:Object 型 の引数 2 つを取り、1 番目の bea:ObjectCollection.containsAll() によって決定された 2 番目の bea:Object を含むかどうかを表示する boolean を返す。2 つの bea:Objectjava.util.Collection を実装している必要がある。実装していない場合は評価が確定されない。

    Collection.containsAll() のメソッドについては、http://java.sun.com/javase/6/docs/api/java/util/Collection.html#containsAll(java.util.Collection) を参照。


文字列の比較と操作

表 A-12 に、Java オブジェクトを比較するための Oracle 提供の関数をまとめます。

表 A-12 Weblogic Server での文字列の比較と操作

関数 説明

string-char-at

  • URI : urn:bea:xacml:2.0:function:string-char-at

  • 入力値の型 : stringinteger

  • 戻り値の型 : bea:Character

  • 説明 : この関数は、string 型および integer 型の引数 2 つを取り、string 内で interger によって示される位置の文字を検索して、その文字を bea:Character として返す。

string-compare-to-ignore-case

  • URI : urn:bea:xacml:2.0:function:string-compare-to-ignore-case

  • 入力値の型 : stringstring

  • 戻り値の型 : integer

この関数は、string 型の引数 2 つを取り、2 つの string 引数を比較した結果を integer として返す。

  • 2 つがまったく同じ文字列である場合は 0 を返す。

  • 1 番目の文字列が、辞書的に 2 番目の文字列よりも先に出現する場合は 0 より小さい値を返す。

  • 1 番目の文字列が、辞書的に 2 番目の文字列よりも後に出現する場合は 0 より大きい値を返す。

比較では、大文字小文字は区別されない。

string-contains

  • URI : urn:bea:xacml:2.0:function:string-contains

  • 入力値の型 : stringstring

  • 戻り値の型 : boolean

  • 説明 : この関数は、string 型の引数 2 つを取り、1 番目の string に 2 番目の string の値が含まれるかどうかを示す boolean 値を返す。

string-starts-with

  • URI : urn:bea:xacml:2.0:function:string-starts-with

  • 入力値の型 : stringstring

  • 戻り値の型 : boolean

  • 説明 : この関数は、string 型の引数 2 つを取り、1 番目の string の値が 2 番目の string の値で始まるかどうかを示す boolean 値を返す。

string-ends-with

  • URI : urn:bea:xacml:2.0:function:string-ends-with

  • 入力値の型 : stringstring

  • 戻り値の型 : boolean

  • 説明 : この関数は、string 型の引数 2 つを取り、1 番目の string の値が 2 番目の string の値で終わるかどうかを示す boolean 値を返す。

string-length

  • URI : urn:bea:xacml:2.0:function:string-length

  • 入力型 : string

  • 戻り値の型 : integer

  • 説明 : この関数は、string 型の引数 1 つを取り、その string 値の長さを表す integer を返す。

string-replace

  • URI : urn:bea:xacml:2.0:function:string-replace

  • 入力値の型 : stringbea:Characterbea:Character

  • 戻り値の型 : string

  • 説明 : この関数は、string 型、bea:Character 型、および bea:character 型の引数 3 つを取り、1 番目の bea:character 値が文字列内に含まれる場合は、それらをすべて 2 番目の bea:Character の値で置き換えて、その結果を string として返す。

string-substring

  • URI : urn:bea:xacml:2.0:function:string-substring

  • 入力値の型 : stringintegerinteger

  • 戻り値の型 : string

  • 説明 : この関数は、string 型、integer 型、および integer 型の引数 3 つを取り、1 番目の integer 引数のインデックス (このインデックス自体を含む) から 2 番目の integer 引数のインデックスを除外して作成した string 引数のサブ文字列を string として返す。

string-normalize-to-upper-case

  • URI : urn:bea:xacml:2.0:function:string-normalize-to-upper-case

  • 入力型 : string

  • 戻り値の型 : string

  • 説明 : この関数は、string 型の引数 1 つを取り、その文字列を大文字に正規化した結果を string として返す。


ルールおよびポリシーの結合アルゴリズム

判定に複数の PolicySet を適用する場合は、それらの結果が次のアルゴリズムで結合されます。

urn:oasis:names:tc:xacml:1.0:policy-combining-algorithm:deny-overrides