© Excellent backgrounds/Shutterstock.com
Java Magazin
Sicher in die Cloud mit Angular 2 und Spring

Verteidigungsstrategien für Webanwendungen

Single-Page-Anwendungen auf Basis von Angular 2 in Kombination mit Spring Boot Microservices sind aktuell sehr beliebt. Im Zeitalter der Cloud und mithilfe von Praktiken wie Continuous Delivery sind sie auch schnell in Produktion gebracht. Doch wie steht es um die Sicherheit derartiger Anwendungen?

Andreas Falk


In den letzten Jahren hat sich die Sicherheit vieler Webanwendungen spürbar verbessert. Das ist einerseits auf ein erhöhtes Sicherheitsbewusstsein in der Entwicklung zurückzuführen, andererseits tragen Bewegungen wie DevOpsSec [1] und die fortschreitende Integration der Sicherheit in agile Entwicklungsprozesse ebenfalls entscheidend dazu bei. Inzwischen machen es viele Frameworks durch ihre „Secure by Default“-Implementierung den Entwicklern auch wesentlich leichter, Anwendungen sicher umzusetzen. Zwei prominente Vertreter dieser Art werde ich in diesem Artikel genauer vorstellen: Zum einen Angular 2 für die Entwicklung von Web­clients, zum anderen die Spring-Plattform als Basis für die Implementierung der Serverseite. In einem Projekt im IoT-Cloud-Umfeld sammle ich aktuell entsprechende Erfahrungen. Abbildung 1 zeigt die dem Projekt zugrunde liegende Architektur mit Angular 2 Frontend, API-Gateway, Service-Discovery-Dienst sowie mehrere mit Spring Boot implementierte Microservices. Das Konzept des API-Gateways mit Service Discovery wird in [2] im Detail vorgestellt. Hinsichtlich der Sicherheit wird dort meist HTTPS terminiert und z. B. ein Authentifizierungstoken validiert. Schließlich ist auch noch der .NET-basierte IdentityServer3 als OpenID Connect Identity Provider mit involviert.

Abb. 1: Spring-Boot-Microservices-Architektur mit Angular 2 Frontend und IdentityServer3

Die Microservices im Projekt sind wie in Abbildung 2 aufgebaut. Das RESTful API mit Hypermedia-Elementen ist mit Spring MVC und Spring HATEOAS implementiert. Für die sichere Bereitstellung kommt Spring Security inklusive dem Spring-Security-OAuth-Modul [3] zum Einsatz. Zur Datenhaltung wird eine relationale Datenbank verwendet, auf die mittels Spring Data JPA plus Hibernate als Provider zugegriffen wird. Aus dem Spring-Cloud-Projekt [4] werden hier neben dem Netflix-Stack noch der Cloud Config Server und die Cloud Connectors verwendet. Spring Boot ermöglicht es durch seine Autokonfiguration, einen Microservice mit den erwähnten Spring-Modulen einfach aufzusetzen. Die Anwendungsteile werden alle in einer von Kundenseite als Private Cloud aufgesetzten Cloud-Foundry-Instanz betrieben.

Abb. 2: Spring-Module innerhalb der Microservices

Angular 2 mit Schutz vor XSS- und CSRF-Angriffen

Seit September letzten Jahres ist das finale Release von Angular 2 verfügbar. Dennoch hat auch Angular 1 nochmals die Aufmerksamkeit auf sich gezogen, als die Expression Sandbox in Release 1.6 entfernt wurde. Die E...

Java Magazin
Sicher in die Cloud mit Angular 2 und Spring

Verteidigungsstrategien für Webanwendungen

Single-Page-Anwendungen auf Basis von Angular 2 in Kombination mit Spring Boot Microservices sind aktuell sehr beliebt. Im Zeitalter der Cloud und mithilfe von Praktiken wie Continuous Delivery sind sie auch schnell in Produktion gebracht. Doch wie steht es um die Sicherheit derartiger Anwendungen?

Andreas Falk


In den letzten Jahren hat sich die Sicherheit vieler Webanwendungen spürbar verbessert. Das ist einerseits auf ein erhöhtes Sicherheitsbewusstsein in der Entwicklung zurückzuführen, andererseits tragen Bewegungen wie DevOpsSec [1] und die fortschreitende Integration der Sicherheit in agile Entwicklungsprozesse ebenfalls entscheidend dazu bei. Inzwischen machen es viele Frameworks durch ihre „Secure by Default“-Implementierung den Entwicklern auch wesentlich leichter, Anwendungen sicher umzusetzen. Zwei prominente Vertreter dieser Art werde ich in diesem Artikel genauer vorstellen: Zum einen Angular 2 für die Entwicklung von Web­clients, zum anderen die Spring-Plattform als Basis für die Implementierung der Serverseite. In einem Projekt im IoT-Cloud-Umfeld sammle ich aktuell entsprechende Erfahrungen. Abbildung 1 zeigt die dem Projekt zugrunde liegende Architektur mit Angular 2 Frontend, API-Gateway, Service-Discovery-Dienst sowie mehrere mit Spring Boot implementierte Microservices. Das Konzept des API-Gateways mit Service Discovery wird in [2] im Detail vorgestellt. Hinsichtlich der Sicherheit wird dort meist HTTPS terminiert und z. B. ein Authentifizierungstoken validiert. Schließlich ist auch noch der .NET-basierte IdentityServer3 als OpenID Connect Identity Provider mit involviert.

Abb. 1: Spring-Boot-Microservices-Architektur mit Angular 2 Frontend und IdentityServer3

Die Microservices im Projekt sind wie in Abbildung 2 aufgebaut. Das RESTful API mit Hypermedia-Elementen ist mit Spring MVC und Spring HATEOAS implementiert. Für die sichere Bereitstellung kommt Spring Security inklusive dem Spring-Security-OAuth-Modul [3] zum Einsatz. Zur Datenhaltung wird eine relationale Datenbank verwendet, auf die mittels Spring Data JPA plus Hibernate als Provider zugegriffen wird. Aus dem Spring-Cloud-Projekt [4] werden hier neben dem Netflix-Stack noch der Cloud Config Server und die Cloud Connectors verwendet. Spring Boot ermöglicht es durch seine Autokonfiguration, einen Microservice mit den erwähnten Spring-Modulen einfach aufzusetzen. Die Anwendungsteile werden alle in einer von Kundenseite als Private Cloud aufgesetzten Cloud-Foundry-Instanz betrieben.

Abb. 2: Spring-Module innerhalb der Microservices

Angular 2 mit Schutz vor XSS- und CSRF-Angriffen

Seit September letzten Jahres ist das finale Release von Angular 2 verfügbar. Dennoch hat auch Angular 1 nochmals die Aufmerksamkeit auf sich gezogen, als die Expression Sandbox in Release 1.6 entfernt wurde. Die E...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang