1

Ich werde meine Spring Cloud-Anwendung mit OAuth2 und XACML sichern (mit AuthZForce, Balana, AT & T XACML oder etwas ähnliches).XACML für Spring Cloud

Ich möchte die Microservices von Spring-Cloud (-Netflix) verwenden. Um XACML verfügbar denke ich, dass ich diesen:

  1. PEP für jeden bestehenden API-Service
  2. PDPs als neue Dienste, die von PEP verwendet werden. Da Spring-Cloud (-Netflix) Lastausgleichsfunktionen (Eureka) hat, muss ich diese Dienste bei Eureka registrieren und eine REST-API implementieren.
  3. Da alle PDPs die gleichen Richtlinien verwenden sollten, müssen sie zentral (Policy Provider)

Welche Rahmen ist am besten geeignet für diesen Ansatz gespeichert werden.

Update 1 Es sollte mit AuthZForce (gemäß der Beschreibung der Funktion), aber ich bin nicht wirklich sicher, wie (es gibt keine detaillierten Dokumentationen oder Tutorials) möglich sein.

Antwort

1

Ich kenne nicht alle Frameworks so viel, so kann ich keine objektive Antwort geben, welches Framework am besten geeignet ist. Aber ich kann eine Antwort für AuthzForce geben.

Für den PDP-Teil können Sie AuthzForce Core als Java-Bibliothek verwenden. Die Datei wiki enthält Informationen zu Richtlinienanbietern und beschreibt, wie Sie diese bei Bedarf zum Framework hinzufügen können. Dort wird eine erwähnt, die Richtlinien von einer MongoDB-Datenbank erhält. Wenn Sie möchten, dass PDPs dieselben Richtlinien verwenden, ist ein zentraler Speicher eine Lösung, ein anderer jedoch die Verwendung von Replikation/Synchronisation. Wenn Sie beispielsweise den Richtlinienanbieter verwenden, der das Abrufen von Richtlinien für das lokale Dateisystem unterstützt, kann ein dezentrales Cluster-Synchronisierungstool wie csync2 die Aufgabe ohne einen einzelnen Fehlerpunkt ausführen.

Außerdem interessiert Sie möglicherweise AuthzForce Server, die eine multi-tenant REST API for both PDP and PAP (Richtlinienverwaltung) in Übereinstimmung mit XACML REST profile (für den PDP-Teil) bietet. Es ist wahrscheinlich zu viel Aufwand, wenn Sie nur PDPs benötigen, aber es lohnt sich, darauf zu schauen, ob Ihre Anforderungen in diese Richtung gehen.

Für den PEP Teil können Sie wiederverwenden authzforce-ce-xacml-model (und Abhängigkeiten) auf Maven Central (groupId = org.ow2.authzforce, artifactId = authzforce-ce-XACML-Modell), um die XACML Requests zu manipulieren/ausgetauscht Antworten mit PDPs 'REST API. Dies enthält hauptsächlich alle JAXB-annotierten Klassen, die vom XACML-Schema abgeleitet sind, und Enums für Standard-XACML-Identifikatoren: Kategorien, Attribute, Datentypen usw.

+0

Vielen Dank für die Antwort und dass Sie dem Core-Repo ein Wiki hinzugefügt haben. Ich werde AuthZForce eine weitere Chance geben und werde diese Antwort akzeptieren, wenn es funktioniert. – benkuly

+0

Okay. AuthZForce Core stellt kein OASIS XACML JSON Profil v1.0 zur Verfügung, daher ist es leider nicht für mich geeignet. Entschuldigung :(Wenn Core zumindest Unterstützung für das REST-Profil erhält, könnte ich meine Meinung ändern, aber eigentlich vermisse ich diese Funktion. – benkuly

+0

Wenn Sie JSON-Unterstützung und REST-Profil – cdan