[英]How to achieve security level 3 in FIWARE?
我正在计算机上部署FIWARE安全GE(即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中的“ 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的任何信息?
升级到Wilma 6.2(错误修复)。
重用已知可用的lib / azf.js中的代码,并根据您的需求调整Request内容。 在那里,该变量被错误地称为XACMLPolicy
,但是请不要误解,这是一个实际的XACML Request
。 这是使用xml2json
包将JSON转换为XML,而在您的代码中您似乎使用了另一种,也许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'});
也许这有所作为,我没有检查。
也可以在Wilma的github上随意提出问题,以获取开发团队的帮助。 (我不是其中之一,但我们已经为AuthzForce集成而合作。)
您得到的错误确实是
无效的参数:cvc-elt.1:找不到元素'Request'的声明。
这是一个简单的XML验证问题。 您需要确保您发送的XACML请求包含正确的名称空间声明。
您会在这里看到关于此主题的另一个问题。
您可以粘贴您的XACML请求,以便我们判断其是否有效吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.