2 votes

Comment atteindre le niveau de sécurité 3 dans FIWARE ?

Je déploie des GEs de sécurité FIWARE (i.e., Wilma, AuthzForce, Keyrock) dans mon ordinateur. Le niveau de sécurité 2 (autorisation de base) fonctionne bien, mais maintenant j'ai besoin du niveau de sécurité 3 (autorisation avancée) en utilisant XACML.

Pour faire court, je veux un tutoriel de mise en œuvre de la sécurité de niveau 3. Cependant, pour autant que je sache, aucun tutoriel ou document sur le niveau de sécurité 3 n'existe.

Pour l'instant, je crée ma politique avec l'API de PAP, et je change l'option 'custom_policy' dans config.js de 'undefined' à 'policy.js'. Ensuite, je crée le fichier 'policy.js' dans 'PEP/policies', mais je ne change rien par rapport à son fichier modèle car je ne sais pas ce que ce code fait exactement. Je pense que je devrais créer un formulaire de demande XACML en utilisant la variable 'xml'. Mais dans mon cas, PEP me donne une erreur lorsque je crée la requête XACML en utilisant la variable 'xml', et que je retourne cette variable. Voici mon erreur de 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>

Et voici mon code 'getPolicy' (requête XACML) dans policy.js. J'ai juste fait une demande très simple pour savoir si la réponse est autorisée ou non parce que je ne suis pas sûr de ce que je fais à ce moment-là.. :

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'});

Donc, quelqu'un peut me donner des informations sur la mise en œuvre du niveau de sécurité 3 ?

3voto

Cyril Dangerville Points 1357

Mise à niveau vers Wilma 6.2 (correction de bogues).

Réutiliser le code de lib/azf.js qui est connu pour fonctionner, et adapter le contenu de la demande à vos besoins. La variable s'appelle à tort XACMLPolicy ici, mais ne vous méprenez pas, c'est un vrai XACML Request . Il s'agit d'utiliser xml2json pour convertir le JSON en XML, alors que dans votre code vous semblez en utiliser un autre, xmlbuilder peut-être ? Tu n'as pas collé le code complet - où est-ce que ça se trouve ? xmlBuilder d'où vient la variable ? - donc je ne fais que deviner.

Si vous utilisez effectivement xmlbuilder et que je veux m'y tenir, j'ai remarqué que dans le fichier d'aide à la décision de l'entreprise, il y a un lien entre les deux. exemple d'utilisation des espaces de noms l'attribut xmlns est placé d'une manière différente :

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'});

Peut-être que cela fait une différence, je n'ai pas vérifié.

N'hésitez pas non plus à créer un problème avec votre question sur le site Web de la Commission européenne. Github de Wilma pour obtenir de l'aide de l'équipe de développement. (Je ne suis pas l'un d'entre eux mais nous avons travaillé ensemble pour l'intégration d'AuthzForce).

0voto

David Brossard Points 2225

L'erreur que vous obtenez est vraiment

Paramètres non valides : cvc-elt.1 : Impossible de trouver la déclaration de l'élément 'Request'.

Il s'agit d'un simple problème de validation XML. Vous devez vous assurer que la requête XACML que vous envoyez contient la bonne déclaration d'espace de nom.

Vous verrez qu'il y a une autre question sur ce sujet. aquí .

Pouvez-vous coller votre requête XACML pour que nous puissions savoir si elle est valide ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X