2

私の質問は、wso2 ID サーバー 4.5 (IS) とバラナの「スタンドアロン」の両方に当てはまります。

「XACML v3.0 Multiple Decision Profile Version 1.0」で規定されているように、IS (PDP への Web サービス インターフェイス) のエンタイトルメント サービスに送信された XACML 複数の要求を正常に処理しました。

Web でカスタムの「属性ファインダー」の例をいくつか見つけましたが、これらの例ではすべて、リソースではなくサブジェクトの属性 (サブジェクトの役割など) を取得します。私の使用例では、サブジェクトのすべての属性とリソース ID のリストを含む xacml リクエストを PDP に送信します。外部システム (データベースや Web サービスなど) からリソースの属性を取得する属性ファインダーを実装しました。最初の質問は、このアプローチは同じ理由で推奨されないのですか?

2 番目の質問は、リソースの数が増加した場合のこの AttributeFinder 実装のパフォーマンスに関するものです。

ポリシー定義で使用できるリソースの属性のリストを制限したとします。たとえば、少数の属性です。

org.wso2.balana.finder.AttributeFinderModule からのメソッド:

public EvaluationResult findAttribute(URI attributeType, URI attributeId,
            String issuer, URI category, EvaluationCtx context) 

単一の属性の値を返す必要があります。そのため、ポリシーがリソースのより多くの属性を評価する場合、このメソッドは同じリソースに対してより多く呼び出されます。そのメソッドの最初の呼び出しでリソースのすべての属性を読み取り、そのデータを (たとえば、スレッドローカル変数に) 保存すると、同じリソースの異なる属性に対して外部システムを複数回呼び出すことを避けることができます。その後の呼び出し。

したがって、複数のリクエストがあり、リソースの属性に関するポリシーがそのリクエストに適用される場合、メソッドは同じリソースのすべての属性だけでなく、すべてのリソースに対してより多く呼び出されます。パフォーマンスを向上させるために、外部システムへの呼び出しの数を減らしたいので、メソッド「findAttribute」の最初の呼び出しで、すべてのリソースの属性 (または非常に大きなセットがある場合はサブセット) を読み取りたい)。そのためには、「findAttribute」メソッドで、リクエスト内のすべてのリソース ID のリストにアクセスする必要があります。属性ファインダーで受け取る EvaluationCtx は、複数の要求から構築されたセット内の 1 つにすぎません。フルセットは、メソッド org.wso2.balana.PDP.evaluate(EvaluationCtx) で周期的に処理され、メソッド "

たとえば、PDP クラスを拡張して、スレッド ローカル変数で EvaluationCtx の完全なセット (またはリソース ID のリスト) を公開することもできますが、これは wso2 ID サーバーではなく「バラナ スタンドアロン」で機能する可能性があります。何か案は?

ありがとうございました。ステファノ

4

1 に答える 1

0

はい.. 任意のカテゴリ タイプを使用できます.. サブジェクト、リソース、または任意のものにすることができます.. しかし、ほとんどの場合、ポリシーはユーザーの属性を探しています。これがサンプルがそのように見える理由だと思います..

はい..それは素晴らしい提案です。改善としてジラを作成しました。貢献したい場合。パッチを提供できます...

ただし、Identity Server では、実装する別のインターフェースがあります。Balana インターフェイスがラップされています。詳細はこちらをご覧ください。実際、Identity サーバーでは、属性キャッシュを使用してパフォーマンスを向上させます。ただし、Balana に提案を追加できれば、さらに改善するのに役立ちます。

于 2013-12-09T09:10:05.010 に答える