2017-07-05 12 views
2

私のコンピュータにFIWAREセキュリティGE(Wilma、AuthzForce、Keyrock)を導入しています。セキュリティレベル2(基本認証)はうまくいきましたが、今はXACMLを使用してセキュリティレベル3(高度な認証)が必要です。FIWAREでセキュリティレベル3を達成するには?

かいつまんで、私は実装のセキュリティレベル3のチュートリアルをしたいしかし、私の知る限り、セキュリティレベル3についてのチュートリアルや文書が存在していません。今の

、私はPAPのAPIと私のポリシーを作成し、「policy.js」に「未定義」からconfig.jsの変更「custom_policy」オプション。そして、私は 'policy.js'ファイルを 'PEP/policies'に作成しますが、このコードが正確に何をしているのかわからないので、テンプレートファイルと比べて何も変更しません。私は 'xml'変数を使用してXACMLリクエストフォームを作成する必要があると思います。しかし、私の場合、PEPは、xml変数を使用してXACMLリクエストを作成し、この変数を返すとエラーが表示されます。ここではPEPの私のエラーは、次のとおりです。

Error: Root - Error in AZF communication <?xml version="1.0" encoding="UTF-8" standalone="yes"?><error xmlns="http://authzforce.github.io/rest-api-model/xmlns/authz/S" xmlns:ns2="http://www.w3.org/2005/Atom" xmlns:ns3="http://authzforce.github.io/core/xmlns/pdp/5.0" xmlns:ns4="http://authzforce.github.io/pap-dao-flat-file/xmlns/properties/3.6"><message>Invalid parameters: cvc-elt.1: Cannot find the declaration of element 'Request'.</message></error> 

そして、ここではpolicy.jsで私の 'getPolicy' コード(XACML要求)です。私はちょうど私がその時に:

exports.getPolicy = function (roles, req, app_id) { 
    var xml = xmlBuilder.create('Request', { 
      'xmlns': 'urn:oasis:names:tc:xacml:3.0:core:schema:wd-17', 
      'CombinedDecision': 'false', 
      'ReturnPolicyIdList': 'false'}) 
    .ele('Attributes', { 
      'Category': 'urn:oasis:names:tc:xacml:1.0:subject-category:access-subject'}); 

私がやっているかわからないだから応答がそう許可するか否かの非常に単純な要求をした、誰も私のセキュリティレベル3の実装についての情報を与えることができますか?

+0

あなたはどのバージョンのWilmaを使用していますか? – cdan

+0

キーロックは5.4です。1、Wilmaは5.4、AuthzForceは5.4.1です。 – weepi

答えて

3

Wilma 6.2(バグ修正)にアップグレードしてください。

は仕事に知られているlib/azf.jsからのコードを再利用し、自分のニーズに要求内容を適応させます。変数は間違ってXACMLPolicyと呼ばれますが、間違いではありません。これは実際のXACML Requestです。これはxml2jsonパッケージを使用してJSONをXMLに変換しますが、コードでは別のものを使用しているようですが、xmlbuilderはおそらく?あなたは完全なコードを貼り付けませんでした - このxmlBuilder変数はどこから来ましたか?私はちょうど推測しています。

あなたが本当にxmlbuilderパッケージを使用し、それに固執したい場合は、私がexample using namespacesに、xmlns属性ことに気づくには別の方法で置かれる:

var xmlBuilder = require('xmlbuilder'); 

var xml = xmlBuilder.create('Request', { encoding: 'utf-8' }) 
.att('xmlns', 'urn:oasis:names:tc:xacml:3.0:core:schema:wd-17') 
.att('CombinedDecision': 'false') 
.att('ReturnPolicyIdList': 'false') 
.ele('Attributes', {'Category': 'urn:oasis:names:tc:xacml:1.0:subject-category:access-subject'}); 

多分これは違い、私はdidnのチェックしないでください。

はまた、開発チームからの助けを得るためにWilma's github上のご質問で問題を作成して自由に感じます。 (私はそれらの1つではありませんが、AuthzForceとの統合のために協力しました)

+0

うわー、あなたの答えをありがとう。私はこれを後で試してみます。そしてもう一つ質問があります。私がKeyrock(verb + pathセクション以下)でパーミッションを作成するとXACMLセクションがありますが、それは何ですか?レベル3を達成するためにセクションに何かを書く必要がありますか? – weepi

+0

セクションタイトルは「XACML」または「XACMLルール」のみですか?これはXACMLルールを手動で書くことができる場所でなければなりません。 '<ルールルールID ="カスタムルール "効果="許可 "> ...'。それは他のアクセス許可と組み合わせられます。動詞+パス形式のすべてがXACMLルールに変換されます([変換テンプレート](https://github.com/ging/horizo​​n/tree/master/openstack_dashboard/templates/access_control)参照)。 – cdan

+0

最終的に、アクセス許可ごとに1つのXACMLルールを取得します(すべてのルールを組み合わせた)役割ごとに1つずつになります。アプリケーションのための1つの(それらのすべてを組み合わせる)。このPolicySetはAuthzForceに送信される部分です。 – cdan

0

あなたが取得しているエラーは本当に

無効なパラメータです:CVC-elt.1:要素 「リクエスト」の宣言を見つけることができません。

これは、単純なXMLの検証の問題です。送信するXACMLリクエストに適切な名前空間宣言が含まれていることを確認する必要があります。

このトピックに関する別の質問があります。here

XACMLリクエストを貼り付けて、有効かどうかを確認できますか?

+0

あなたの答えをありがとう。私は自分のコンテンツを編集し、あなたのアドバイスを確認します。 – weepi

関連する問題