我正在我的计算机中部署FIWARE安全漏洞(即Wilma、AuthzForce、Keyrock)。安全级别2(基本授权)运行良好,但现在我需要使用XACML的安全级别3(高级授权)。
长话短说,我想要一个实现安全级别3的教程。然而,据我所知,任何关于安全级别3的教程或文档都不存在。
现在,我使用PAP的API创建我的策略,并将config.js中的“custom_policy”选项从“undefined”更改为“policy .js”。然后,我将'policy.js‘文件创建为'PEP/policies',但是与它的模板文件相比,不要改变任何东西,因为我不知道这段代码到底做了什么。我认为我应该使用'xml‘变量来生成XACML请求表单。但是在我的例子中,当我使用'xml‘变量发出XACML请求并返回这个变量时,PEP会给出错误信息。以下是我对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中的‘policy.js’代码(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级安全实现的信息吗?
发布于 2017-07-09 00:00:50
升级到Wilma 6.2 (错误修复)。
重用已知可以工作的lib/azf.js代码,并使请求内容适应您的需要。变量在那里被错误地称为XACMLPolicy,但是不要弄错,这是一个实际的XACML Request。这是使用xml2json包将JSON转换为XML,而在您的代码中,您似乎使用了不同的JSON包,可能是xmlbuilder?您没有粘贴完整的代码--这个xmlBuilder变量来自哪里?-所以我只是猜测。
如果您确实在使用xmlbuilder包并希望继续使用它,我注意到在使用命名空间的示例中,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'});也许这有什么区别,我没查过。
同时,也可以在威尔玛‘s github上创建一个问题,以获得开发团队的帮助。(我不是他们中的一员,但我们一起为AuthzForce集成而工作。)
发布于 2017-07-05 17:14:30
你所犯的错误是
无效参数: cvc-elt.1:找不到元素‘请求’的声明。
这是一个简单的XML验证问题。您需要确保您发送的XACML请求包含正确的命名空间声明。
您将看到关于这个主题这里还有另一个问题。
您能粘贴您的XACML请求吗?这样我们就可以知道它是否有效?
https://stackoverflow.com/questions/44916746
复制相似问题