2017-07-05 3 views
2

Ich stelle FIWARE-Sicherheitssysteme (d. H. Wilma, AuthzForce, Keyrock) in meinem Computer bereit. Sicherheitsstufe 2 (Basic Authorization) funktioniert gut, aber jetzt brauche ich Sicherheitsstufe 3 (Advanced Authorization) mit XACML.Wie erreicht man Sicherheitsstufe 3 in FIWARE?

Lange Rede, kurzer Sinn, ich möchte ein Tutorial zur Implementierung der Sicherheitsstufe 3. Soweit ich weiß, gibt es jedoch keine Anleitungen oder Dokumente zu Sicherheitsstufe 3.

Für jetzt, ich erstelle meine Richtlinie mit PAP-API, und ändern Sie "custom_policy" -Option in config.js von "undefiniert" zu "policy.js". Und dann erstelle ich 'policy.js' Datei in 'PEP/Richtlinien', aber ändere nichts im Vergleich zu seiner Vorlagendatei, weil ich nicht weiß, was genau dieser Code macht. Ich denke, ich sollte XACML-Anfrage Formular mit 'Xml' Variable machen. Aber in meinem Fall gibt PEP mir den Fehler, wenn ich die XACML-Anfrage mit der Variable 'xml' mache und diese Variable zurückgebe. Hier ist mein Fehler von 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> 

Und hier ist mein 'getPolicy' Code (XACML Request) in policy.js. Ich habe nur sehr einfache Anfrage, ob Antwort Genehmigung ist oder nicht, weil ich nicht sicher bin, was ich damals .:

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

So tue, mir jemand irgendwelche Informationen über die Umsetzung der Sicherheitsstufe 3 geben kann?

+0

Welche Version von Wilma verwenden Sie? – cdan

+0

Keyrock ist 5.4.1, Wilma ist 5.4 und AuthzForce ist 5.4.1 jetzt. – weepi

Antwort

3

Upgrade auf Wilma 6.2 (Bugfixing).

Verwenden Sie den Code von lib/azf.js, der bekanntermaßen funktioniert, und passen Sie den Inhalt an Ihre Anforderungen an. Die Variable wird fälschlicherweise XACMLPolicy dort genannt, aber nicht falsch sein, das ist eine tatsächliche XACML Request. Dies ist mit xml2json Paket, um die JSON in XML zu konvertieren, während in Ihrem Code scheinen Sie eine andere, xmlbuilder vielleicht? Sie haben nicht den vollständigen Code eingefügt - woher kommt diese xmlBuilder Variable? - Ich vermute nur.

Wenn Sie in der Tat xmlbuilder Paket verwenden und dabei bleiben will, muss ich feststellen, dass in der example using namespaces, das Attribut xmlns auf eine andere Weise gestellt wird:

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

Vielleicht macht dies einen Unterschied, ich didn überprüfe nicht.

Sie können auch ein Problem mit Ihrer Frage auf Wilma's github erstellen, um Hilfe vom Entwicklerteam zu bekommen. (Ich bin nicht einer von ihnen, aber wir haben zusammen für AuthzForce Integration gearbeitet.)

+0

Wow, Danke für deine Antwort. Ich werde das später versuchen. Und ich habe noch eine Frage. Es gibt einen XACML-Abschnitt, wenn ich in Keyrock eine Erlaubnis erstelle (unter Verb + Pfad), was ist das? Ich muss etwas in den Abschnitt schreiben, um Level 3 zu erreichen? – weepi

+0

Ist der Abschnittstitel nur "XACML" oder "XACML-Regel"? Dies sollte sein, wo Sie eine XACML-Regel manuell (ohne xmlns-Zeug) schreiben können, z. ' ...'. Es wird mit den anderen Berechtigungen kombiniert. Jeder im Verb + Pfad wird in eine XACML-Regel umgewandelt (vgl. [Konvertierungsvorlagen] (https://github.com/ging/horizon/tree/master/openstack_dashboard/templates/access_control)). – cdan

+0

Am Ende erhalten Sie eine XACML-Regel pro Erlaubnis, eine pro Rolle (alle diese Regeln kombinierend); und ein für die Anwendung (alle diese kombinierend s); und dieses PolicySet ist das Stück, das an AuthzForce gesendet wird. – cdan

0

Der Fehler, den Sie bekommen ist wirklich

Ungültige Parameter: CVC-elt.1: Kann nicht die Erklärung des Elements ‚Antrag‘ gefunden.

Dies ist ein einfaches XML-Validierungsproblem. Sie müssen sicherstellen, dass die XACML-Anforderung, die Sie senden, die richtige Namespacedeklaration enthält.

Sie werden sehen, es gibt eine andere Frage zu diesem Thema here.

Können Sie Ihre XACML-Anfrage einfügen, damit wir feststellen können, ob sie gültig ist?

+0

Danke für Ihre Antwort. Ich habe meinen Inhalt bearbeitet und werde Ihren Rat prüfen. – weepi

Verwandte Themen