ロールおよびポリシーによる WebLogic リソースの保護

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

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

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

WebLogic Server の XACML 認可プロバイダおよび XACML ロール マッピング プロバイダには、XACML 2.0 のコア仕様が実装および拡張されています (OASIS XACML 2.0 のコア仕様を参照)。また、これらのプロバイダには、「Core and Hierarchical Role Based Access Control (RBAC) Profile of XACML 2.0」も部分的に実装されています (OASIS RBAC 仕様を参照)。

以下の節では、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 メソッドがリソースと見なされます。図 7-1 を参照してください。

図 7-1 WebLogic のリソース階層にはメソッドが含まれる

WebLogic のリソース階層にはメソッドが含まれる

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

用語の比較

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

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

データ型について

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

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

 


Action 識別子

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

WebLogic Server では、XACML のすべての Action 識別子がサポートされます (OASIS 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 でチェックされたリクエストを識別できる。
詳細については、『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
有効な値については、『WebLogic Server API リファレンス』の weblogic.security.service.AdminResource コンストラクタの action パラメータを参照。
アプリケーション
Administration Console に表示されるアプリケーション名。
コントロール
Java コントロール内のメソッドの名前。Java コントロールは、再利用可能なコンポーネントで、WebLogic Platform アプリケーション内の任意の場所で使用できる。WebLogic Workshop が提供する組み込みコントロールを使用しても、独自のコントロールを作成しても構わない。
EJB
EJB メソッドの名前。たとえば mymethod。そのメソッドがオーバーロードされている場合は、指定したメソッド名を持つすべてのメソッドが一致する。
JDBC
JDBC リソースによって保護する管理アクティビティの名前。
有効な値については、『WebLogic Server API リファレンス』の weblogic.security.service.JDBCResource コンストラクタの action パラメータを参照。
JMS
JMS リソースによって保護する管理アクティビティの名前。
有効な値については、『WebLogic Server API リファレンス』の weblogic.security.service.JMSResource コンストラクタの action パラメータを参照。
JMX
WebLogic Server MBean 内の処理の名前。たとえば shutdown
JNDI
JNDI リソースによって保護する管理アクティビティの名前。
有効な値については、『WebLogic Server API リファレンス』の weblogic.security.service.JNDIResource コンストラクタの action パラメータを参照。
サーバ
サーバ リソースによって保護するサーバ ライフサイクル アクティビティの名前。たとえば boot
有効な値については、「サーバ リソース」を参照。
URL
HTTP メソッドの名前。たとえば POST
Web サービス
Web サービス メソッドの名前。たとえば mymethod
ワーク コンテキスト
ワーク コンテキスト リソースによって保護する管理アクティビティの名前。
有効な値については、『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 識別子がサポートされます (OASIS XACML 2.0 のコア仕様を参照)。また、XACML の environment 識別子を使用できる場所ならどこでも使用できる追加の識別子 1 つもサポートされています。表 A-3 を参照してください。

表 A-3 WebLogic Server の Environment 識別子
識別対象
使用する識別子
コンテナからプロバイダに渡す値
属性 ID :
urn:bea:xacml:2.0:environment:context:key
key には ContextHandler 要素名を指定する (『WebLogic セキュリティ プロバイダの開発』の「ContextHandler と WebLogic リソース」を参照)。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 のすべての Resource 識別子がサポートされています (OASIS XACML 2.0 のコア仕様を参照)。

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

表 A-4 WebLogic Server の Resource 識別子
識別対象
使用する識別子
リソース
属性 ID :
urn:oasis:names:tc:xacml:1.0:resource:resource-id
データ型 :
string
値 :
WebLogic Server リソース タイプと WebLogic Server リソース階層内でのリソースの位置を指定する名前と値のペアの集合。WebLogic Server では、これらの識別子が生成される。
なお、この識別子を使用するポリシーでは、指定したリソースより下位にあるリソースは保護されない。たとえば、この識別子を使用したポリシーを Web サービス モジュールに適用する場合、Web サービス内のメソッドはこのポリシーでは保護されない。
リソースとその祖先
属性 ID :
urn:oasis:names:tc:xacml:2.0:resource:resource-ancestor-or-self
データ型 :
string
値 :
WebLogic Server リソース タイプを指定する名前と値のペアの集合。WebLogic Server では、これらの識別子が生成される。
リソースの親
属性 ID :
urn:oasis:names:tc:xacml:1.0:resource:resource-parent
データ型 :
string
値 :
WebLogic Server リソース タイプを指定する名前と値のペアの集合。WebLogic Server では、これらの識別子が生成される。
リソースの祖先
属性 ID :
urn:oasis:names:tc:xacml:2.0:resource:resource-ancestor
データ型 :
string
値 :
WebLogic Server リソース タイプを指定する名前と値のペアの集合。WebLogic Server では、これらの識別子が生成される。

次の例では、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 のすべての Subject 識別子がサポートされています (OASIS XACML 2.0 のコア仕様を参照)。

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-5 に示した識別子を使用して定義している XACML ドキュメントの例については、コード リスト 7-1 を参照してください。

 


WebLogic Server の XACML 関数

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

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

以下の function 識別子は、標準の XACML 関数を直接移植したもので、XML および WebLogic Server のデータ型 longfloatdecimal、および bea:Character に使用できます。これらのデータ型の詳細については、『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 を返す。
『コンフィグレーション ウィザードを使用した WebLogic ドメインの作成』の「WebLogic ドメインの作成」を参照してください。
instance-method
URI :
urn:bea:xacml:2.0:function:instance-method
入力値の型 :
bea:Objectstringbea: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:Object。各オブジェクトは、メソッドに渡すパラメータ値を保持する。必要なオブジェクトを作成するには、Oracle のオブジェクト変換関数を使用する。「オブジェクト型の変換」を参照。
呼び出されたメソッドの戻り値は、関数からは bea:Object として返される。void を返すメソッドは呼び出されないことがある。
instance-method-match
URI :
urn:bea:xacml:2.0:function:instance-method-match
入力値の型 :
bea:Objectstring、[bea:Object ... ]
戻り値の型 :
bea:Object
説明 :
この関数は、コンテナが現在のコンテキスト内で使用可能にする bea:Object でメソッドを呼び出す。
この関数は、以下の引数を取る。
  • bea:Object。この Java オブジェクトのメソッドが呼び出される。bea:Object を指定するには、environment 識別子 urn:bea:xacml:2.0:environment:context:key を使用する。「Environment 識別子」を参照。
  • string。メソッド名。
  • 0 個以上の bea:Object。各オブジェクトは、メソッドに渡すパラメータ値を保持する。必要なオブジェクトを作成するには、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:Classbea:Objectstringbea: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:Object。各オブジェクトは、メソッドに渡すパラメータ値を保持する。必要なオブジェクトを作成するには、Oracle のオブジェクト変換関数を使用する。「オブジェクト型の変換」を参照。
呼び出されたメソッドの戻り値は、関数からは bea:Object として返される。void を返すメソッドは呼び出されないことがある。
instance-method-match-v2
URI :
urn:bea:xacml:2.0:function:instance-method-match-v2
入力値の型 :
bea:Classbea:Objectstring、[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。メソッド名。
  • 0 個以上の bea:Object。各オブジェクトは、メソッドに渡すパラメータ値を保持する。必要なオブジェクトを作成するには、Oracle のオブジェクト変換関数を使用する。「オブジェクト型の変換」を参照。
この関数は、bea:Object のクラス型、メソッド名、およびパラメータ bea:Object のクラス型を使用して、対象の bea:Object 内の適切なメソッドを検索する。対象の bea:Object に含まれるメソッドのうち、パラメータと一致するメソッドが 1 つだけではない場合は結果が確定されない。
呼び出されたメソッドの戻り値は、関数からは bea:Object として返される。void を返すメソッドは呼び出されないことがある。
instance-method-match-v3
URI :
urn:bea:xacml:2.0:function:instance-method-match-v3
入力値の型 :
stringbea:Objectstringstring のバッグ、[bea:Object ... ]
戻り値の型 :
bea:Object
説明 :
この関数は、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:Object。各オブジェクトは、メソッドに渡すパラメータ値を保持する。必要なオブジェクトを作成するには、Oracle のオブジェクト変換関数を使用する。「オブジェクト型の変換」を参照。
この関数は、bea:Object のクラス名、メソッド名、およびパラメータ bea:Object のクラス型を使用して、対象の bea:Object 内の適切なメソッドを検索する。対象の bea:Object に含まれるメソッドのうち、パラメータと一致するメソッドが 1 つだけではない場合は結果が確定されない。
呼び出されたメソッドの戻り値は、関数からは bea:Object として返される。void を返すメソッドは呼び出されないことがある。

次に示すポリシーは、リクエストが特定の URL パターンに一致すると、instance-method 関数を使用して HttpServletRequest.getAuthType() メソッドを呼び出します (Java EE 5.0 API 仕様の javax.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>
  <!-- このポリシーでは、instance-method 関数を複数回呼び出すため、
       これを変数として宣言する。
  -->
  <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>
      <!-- 「getAuthType()」を、呼び出す HttpServletRequest メソッドの
             名前として渡す。
      -->
      <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">
           <!-- instance-method 関数は bea:Object を返すため、
                このポリシーでは関数を object-to-string 関数内にラップする。
                これにより、別の文字列で出力される関数の比較が可能
                になる。
           -->
           <Apply FunctionId="urn:bea:xacml:2.0:function:object-to-string">
              <VariableReference VariableId="authType" />
           </Apply>
           <!-- String オブジェクトを宣言して
                 HttpServletRequest.getAuthType() 戻り値と比較する。
           -->
           <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 によって示唆される日 (その月の何日目か) を表す integer 値を返す。
月の 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 値を返す。
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 つを取り、Collection.contains() を呼び出して、1 番目の bea:Object に 2 番目の bea:Object が含まれるかどうかを示す boolean 値を返す。1 番目の bea:Objectjava.util.Collection を実装している必要がある。実装していない場合は評価が確定されない。
object-collection-contains-all
URI :
urn:bea:xacml:2.0:function:object-collection-contains-all
入力値の型 :
bea:Objectbea:Object
戻り値の型 :
boolean
説明 :
この関数は、bea:Object 型の引数 2 つを取り、Collection.containsAll() を呼び出して、1 番目の bea:Object に 2 番目の bea:Object のすべてが含まれるかどうかを示す boolean 値を返す。2 つの bea:Objectjava.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


ページの先頭       前  次