Mühsam ernährt sich das Eichhörnchen

Web Services Security

Bernhard Löwenstein


Nachdem wir uns zuletzt mit der Java EE 6 Security beschäftigten, geht es im letzten Teil der vierteiligen Artikelserie „Java & Security“ um die Sicherheit von Web Services. Da diese oftmals als Schnittstellen eines Systems zur Außenwelt fungieren, kommt dem Thema Sicherheit große Bedeutung zu. So sollen die Webdienste einerseits nur von autorisierten Benutzern aufgerufen werden können. Das macht eine Authentifizierung unumgänglich. Andererseits sollen die ausgetauschten Daten nicht von Fremden mitgelesen werden können. Sie müssen demnach verschlüsselt werden, damit Transportsicherheit gegeben ist.

Wir werden uns nachfolgend ansehen, wie sich das rollenbasierte Konzept auf Web Services umlegen lässt. Dazu implementieren wir für jede der beiden Web-Service-Technologien einen einfachen Dienst und sichern diesen dementsprechend ab. Als Applikationsserver nutzen wir wiederum den JBoss Application Server 6.

ArtikelserieTeil 1: Java SE 7 SecurityTeil 2: Java EE 6 SecurityTeil 3: Java EE 6 Security (Fortsetzung)Teil 4: Web Services Security

JBoss AS6 einrichten

Als wesentliche Teilkonzepte lernten wir im zweiten Artikel den Realm, den Benutzer, die Gruppe und die Rolle kennen. Ihre konkrete Umsetzung innerhalb des JBoss AS6 sahen wir im dritten Serienteil und stellten dabei Unterschiede zwischen Theorie und Praxis fest. So bezeichnet JBoss die einzelnen Fachbereiche, innerhalb derer die Benutzer und ihre Gruppen definiert werden, nicht als Realms, sondern als Security Domains. Das Mapping zwischen Gruppen und Rollen ersparen wir uns auch dieses Mal und setzen diese Begrifflichkeiten somit gleich.

Wir beginnen damit, in der default-Serverkonfiguration des JBoss AS6 eine eigene Security Domain für unsere beiden Web Services einzurichten. Dazu ergänzen wir unter …/conf/login-config.xml eine neue Application Policy zur Security Domain SecureWSDomain und wählen mit dem UsersRolesLoginModule wieder das einfachste Modul zur Benutzer-Rollen-Definition (Listing 1). In der bereits bekannten Art und Weise legen wir in …/conf/props/securews-users.properties drei Benutzer an (Listing 2) und ordnen ihnen in …/conf/props/securews-roles.properties jeweils eine unterschiedliche Rolle zu (Listing 3): Alexander fungiert als Manager, Bernhard als Entwickler und Christoph als Tester.

Listing 1 ...

Mühsam ernährt sich das Eichhörnchen

Web Services Security

Bernhard Löwenstein


Nachdem wir uns zuletzt mit der Java EE 6 Security beschäftigten, geht es im letzten Teil der vierteiligen Artikelserie „Java & Security“ um die Sicherheit von Web Services. Da diese oftmals als Schnittstellen eines Systems zur Außenwelt fungieren, kommt dem Thema Sicherheit große Bedeutung zu. So sollen die Webdienste einerseits nur von autorisierten Benutzern aufgerufen werden können. Das macht eine Authentifizierung unumgänglich. Andererseits sollen die ausgetauschten Daten nicht von Fremden mitgelesen werden können. Sie müssen demnach verschlüsselt werden, damit Transportsicherheit gegeben ist.

Wir werden uns nachfolgend ansehen, wie sich das rollenbasierte Konzept auf Web Services umlegen lässt. Dazu implementieren wir für jede der beiden Web-Service-Technologien einen einfachen Dienst und sichern diesen dementsprechend ab. Als Applikationsserver nutzen wir wiederum den JBoss Application Server 6.

ArtikelserieTeil 1: Java SE 7 SecurityTeil 2: Java EE 6 SecurityTeil 3: Java EE 6 Security (Fortsetzung)Teil 4: Web Services Security

JBoss AS6 einrichten

Als wesentliche Teilkonzepte lernten wir im zweiten Artikel den Realm, den Benutzer, die Gruppe und die Rolle kennen. Ihre konkrete Umsetzung innerhalb des JBoss AS6 sahen wir im dritten Serienteil und stellten dabei Unterschiede zwischen Theorie und Praxis fest. So bezeichnet JBoss die einzelnen Fachbereiche, innerhalb derer die Benutzer und ihre Gruppen definiert werden, nicht als Realms, sondern als Security Domains. Das Mapping zwischen Gruppen und Rollen ersparen wir uns auch dieses Mal und setzen diese Begrifflichkeiten somit gleich.

Wir beginnen damit, in der default-Serverkonfiguration des JBoss AS6 eine eigene Security Domain für unsere beiden Web Services einzurichten. Dazu ergänzen wir unter …/conf/login-config.xml eine neue Application Policy zur Security Domain SecureWSDomain und wählen mit dem UsersRolesLoginModule wieder das einfachste Modul zur Benutzer-Rollen-Definition (Listing 1). In der bereits bekannten Art und Weise legen wir in …/conf/props/securews-users.properties drei Benutzer an (Listing 2) und ordnen ihnen in …/conf/props/securews-roles.properties jeweils eine unterschiedliche Rolle zu (Listing 3): Alexander fungiert als Manager, Bernhard als Entwickler und Christoph als Tester.

Listing 1 ...

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