私の質問は、XACMLコンテキストハンドラーの役割と目的に関係しています。OASIS XACML3.0の仕様を正しく理解している場合、PEPは、クライアントアプリからのリソースまたはアクセスの要求をインターセプトし、コンテキストハンドラーを使用して、PDPが処理するのに適したネイティブXACMLコンテキストオブジェクトを作成します。私の設計では、リクエストオブジェクトを作成し、xml結果を解析するメソッドを持つグローバルクラスとしてコンテキストハンドラーを使用しています。私はクラスが次のように見えることを想像しています:
public static class ContextHandler
{
public static bool CreatePolicy(PolicyType policyName)
{
// Serialize PolicyType to xml document
}
public static PolicyType LoadPolicy(string policyName)
{
// 1. Load policy from db, filesystem...
// 2. Hydrate/deserialize into XACML policy object
// 3. Return PolicyType object
}
public static RequestType BuildRequest(
Dictionary<string, string> subjects,
Dictionary<string, string> resources,
Dictionary<string, string> actions,
Dictionary<string, string> environment)
{
// 1. Create AttributesType collection, populate with subjects, resource...
// 2. Populate RequestType object
// 3. Return Request
}
}
オブジェクトRequestType
、AttributesType
およびその他はXACMLコンテキストの一部です。
これはコンテキストハンドラークラスの正しいアプローチですか、それともコンテキストハンドラーのポイントを完全に見逃しましたか?
どうもありがとう!