Security Technologien in Java EE 6



Ähnliche Dokumente
Softwareentwicklung mit Enterprise JAVA Beans

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

WebSphere Application Server Installation

Zend PHP Cloud Application Platform

Enterprise Web-SSO mit CAS und OpenSSO

Spring Dynamic Modules for OSGi Service Platforms

Application Frameworks

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Java 2, Enterprise Edition Einführung und Überblick

Spring Dynamic Modules for OSGi Service Platforms

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Web- Applikationen. in Java-Web

!"#$"%&'()*$+()',!-+.'/',

Benutzung eines Login Modules zur Authentifizierung unter JBoss 4.0.5

Programmierung von Client/Server- Anwendungen

HMS. Statistiken mit SAS ins Internet. HMS Analytical Software GmbH - Johannes Lang

Java EE Projektseminar

Contexts and Dependency Injection. W3L AG

Internetanbindung von Datenbanken

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen?

Federated Identity Management

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme

Nutzung und Erweiterung von IT-Standards zur Realisierung von Authentifizierung und Zugriffsschutz für Geo Web Services

Sind Cloud Apps der nächste Hype?

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Was ist bei der Entwicklung sicherer Apps zu beachten?

Oracle Weblogic Administration Grundlagen

openk platform Dokumentation Setup Liferay Version 0.9.1

(c) 2014, Peter Sturm, Universität Trier

SE2-10-Entwurfsmuster-2 15

Programmierhandbuch SAP NetWeaver* Sicherheit

Tomcat Konfiguration und Administration

Einleitung. Funktion. Panzenböck Phillipp. Download Installation. Testen. Konfiguration

SAP NetWeaver Gateway. 2013

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013

MOA-ID Workshop. Anwendungsintegration, Installation und Konfiguration. Klaus Stranacher Graz,

Client/Server Applikation mit Android BDA Zwischenpräsentation. Agenda. Einführung. Einführung. Planung & Vorgehen. Systemübersicht.

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke J.M.Joller 1

Java Web Services mit Apache Axis2 Entwickler

Portale mit dem Java-Portlet-Standard JSR168, Jetspeed 2 und WSRP

Administration und Konfiguration für JBoss 7

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr.

Shopz Erfahrungsaustausch

MOBILE ON POWER MACHEN SIE IHRE ANWENDUNGEN MOBIL?!

Universität Zürich Informatikdienste. SpamAssassin. Spam Assassin Go Koordinatorenmeeting 27. April

Erfahrungsbericht zu JBoss SOA Platform 6 Tech Talk 2013, 17. Oktober 2013, Bern

Neuerungen bei Shibboleth 2

Application Server und Continuous Integration

A Domain Specific Language for Project Execution Models

Benutzerauthentifizierung und Zugriffsschutz mit JAAS

Inhalt Einführung Was ist SAML Wozu braucht man SAML Wo wird SAML verwendet kleine Demo SAML. Security Assertion Markup Language.

Verteidigung gegen SQL Injection Attacks

JSP und Servlet Programmierung

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

12.4 Sicherheitsarchitektur

Überblick Produkte. ORACLE AS 10g R3 JAVA Programming. (5 Tage)

Seminare Softwaretechnik - Einführungsveranstaltung

Eignet sich Eclipse RCP als Enterprise Plattform? 2. Mai 2006 Lars Stucki & Edwin Steiner

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Weblogic Server: Administration für Umsteiger

Oliver Paulus, 7. Februar Spring Framework Einführung. Oliver Paulus, Was ist Spring?

Automatisiertes Testen von Java EE-Applikationen mit Arquillian

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition


Enterprise Java Beans Einführung

Windows Azure für Java Architekten. Holger Sirtl Microsoft Deutschland GmbH

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

Neues aus dem 52 North WPS Projekt. Benjamin Proß, FOSSGIS,

Hibernate Das Praxisbuch für Entwickler

SharePoint Security Einführung in das SharePoint Sicherheitssystem. Fabian Moritz MVP Office SharePoint Server

NetScaler Integration bei Hellmann Worldwide Logistics. Benjamin Kania IS Enterprise Services Manager Hannover,

Inhalt. Vorwort 13. L.., ',...":%: " j.

Hybride Cloud-Infrastrukturen Bereitstellung & Verwaltung mit System Center 2012

Seminar Business Process Management und Workflow-Technologie: Grundlagen, Produkte, Forschung

EJB jar.xml und Name Service (JNDI)

Release-Informationen

Björn Heinemann Leiter Entwicklung Energiewirtschaft

Module für eine Java-Administrationsschulung

Projekt: RFC to FTP. Szenario der serviceorientierten Anwendungsintegration. Sebastian Altendorf Dirk Brillski David Gebhardt

Sicherheit in unternehmenskritischen Applikationen

Big Data Projekte richtig managen!

Produktionsfähige Applikationen

Mindestschutz für JSF-Anwendungen

Inhaltsverzeichnis. Christian Wischki. ITIL V2, ITIL V3 und ISO/IEC Gegenüberstellung und Praxisleitfaden für die Einführung oder den Umstieg

Evaluation of Database Design and Reverse Engineering Tools for a Large Software System

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen

Java Web Services mit Apache Axis2

Transkript:

Security Technologien in Java EE 6 Java Forum Stuttgart 2010 Sebastian Glandien Acando GmbH sebastian.glandien@acando.de

Agenda I. Einleitung II. Java Authentication SPI for Containers (JSR-196) I. Message Processing Model II. Profile III. Demo III. Java Autorization Contract for Containers (JSR-115) I. Klassendiagramm II. Subcontracts III. Demo IV. Weitere Standards V. Zusammenfassung 2

Java EE 6 Technologies Einleitung Web Application Technologies Servlet 3.0 JSF 2.0 Enterprise Application Technologies Dependency Injection for Java EJB 3.1/JPA 2.0 Management and Security Technologies Java Authentication and Authorization for Containers Web Services Technologies RESTful Web Services JAX-WS/JAXB/JAX- RPC Java Platform, Enterprise Edition 6 Java EE-related Specs in Java SE JAXP/JMX/JAF 3

Management and Security Technologies Einleitung Security Technologies: Java Authentication SPI for Containers (JSR-196) Java Authorization Contract for Containers (JSR-115) Management Technologies: Java EE Application Deployment 1.2 (JSR 88) J2EE Management 1.1 (JSR 77) 4

Sicherheitsmodelle für JEE-Anwendungen Einleitung Programmatische Sicherheit Steuerung des Zugriffs im Programmcode Deklarative Sicherheit Verwendung ohne Eingriff in den Quellcode Definition von Rollen und Berechtigungen innerhalb des Codes Keine Trennung von Busineslogik und Sicherheitaspekten Problem: Überprüfung der Bedingungen erst zur Laufzeit ausschließliche Definition im Deployment Descriptor Vergabe von Zugriffsrechten einzig über Rollen Hintergrund: Sicherheit ist nicht Aufgabe des Progammieres 5

Begriffsklärung Einleitung Subject/ Principal Policy Gruppe/Rolle Berechtigung Constraint 6

Blickwinkel auf die Standards Einleitung What the runtime must do. How to use it. 7

Java Authentication SPI for Containers (JSR-196) Standard Service-Provider Interface (SPI) zur Integration eines Authentifizierungsmechanismus in message processing runtimes Definition von Profilen zur Verwendung des SPI in einem spezifischen Kontext Notwendige Interfaces für Authentifizierungsmodule: javax.security.auth.message.module.clientauthmodule javax.security.auth.message.module.serverauthmodule 8

Message Processing Model Java Authentication SPI for Containers 9

Servlet Container Profile Java Authentication SPI for Containers Definition der Verwendung von JSR-196 in einem Servlet Container Fokus liegt auf den Punkten 2 und 3 des Message Processing Models Verhalten in 1 und 4 ist nicht spezifiziert Message Layer Identifier: HttpServlet Verarbeitung von Objekten des Typs javax.servlet.http.httpservletrequest und javax.servlet.http.httpservletresponse 10

SOAP Profile Java Authentication SPI for Containers gültig für SOAP Versionen 1.1 und 1.2 Unterteilung der Anforderungen des Profils in: Clientseitig Serverseitig Message Layer Identifier: SOAP Verarbeitung von Objekten des Typs javax.xml.soap.soapmessage 11

Weitere Profile Java Authentication SPI for Containers LoginModule Bridge Profile Delegation der Sicherheitsvalidierung an JAAS-Loginmodul (javax.security.auth.spi.loginmodule) Future Profiles JMS Profile RMI/IIOP Portable Interceptor Profile 12

Java Authentication SPI im JBoss 5 1. Registrierung und Konfiguration des JSR-196 Modul in jaspi-webformjboss-beans.xml org.jboss.web.tomcat.security.jaspi.modules.httpformserverauthmodule 2. Konfiguration eines Valve-Elements in context.xml <Context> <Valve classname="org.jboss.web.tomcat. security.jaspi.tomcatjaspiauthenticator" /> </Context> 3. Konfiguration der Security Domain der Webapplikation in jbossweb.xml <jboss-web> <security-domain>java:/jaas/jaspi-test</security-domain> </jboss-web> 13

Registrierung und Konfiguration des JSR-196 Moduls <deployment xmlns="urn:jboss:bean-deployer:2.0"> <application-policy xmlns="urn:jboss:security-beans:1.0 name="jaspi-test"> <authentication-jaspi> <login-module-stack name="lm-stack"> <login-module code="org.jboss.security.auth.spi.usersrolesloginmodule flag="required"> </login-module> </login-module-stack> <auth-module code="org.jboss.web.tomcat.security.jaspi.modules.httpformserverauthmodule login-module-stack-ref="lm-stack" /> </authentication-jaspi> </application-policy> </deployment> 14

JAAS vs. JSR-196 JAAS Authentifizierungs-API für Pluggable und Sequentielle Authentifzierung Standard zur Konfiguration und Verbindung von Loginmodulen mit Applikationen Callback-Fähigkeit zwischen Services und Applikationen Protokollunabhängige Verarbeitung User = Subject JSR-196 Nachrichtenbasierte Verarbeitung von Authentifizierungsinformationen SSO-Support verfügbar Verwendung der deklarativen JEE-Security Verarbeitung von protokollspezifischen Nachrichten User = Principal 15

Spring Security (Servlet Filter) vs. JSR-196 Spring Security (Servlet Filter) Konfiguration als Teil der Applikation (via web.xml) Aufruf des Servlet Filters nachdem Authentifizierung und Autorisierung verarbeitet wurde Vorteile: Spring-styled Konfiguration Aspekt-orientierte Programmierung Inversion-of-Control Mechanismus JSR-196 Nachrichtenbasierte Verarbeitung von Authentifizierungsinformationen SSO-Support verfügbar Verwendung der deklarativen JEE-Security Verarbeitung von protokollspezifischen Nachrichten Principal = User 16

Java Authorization Contract for Containers (JSR-115) Definition eines Standardmechanismus für Authorization Provider zur Verwendung im JEE-Container Einführung neuer java.security.permission Klassen zur Java EE Autorisierung Erfüllung neuer JEE-Anforderung zur Autorisierung: Definition von Rollen als Sammlung von Berechtigungen Zuweisung von Berechtigungen zu Principal mittels Rollen iscallerinrole Definition von Identifier zu Rollenmapping 17

javax.security.jacc Klassen Diagramm Java Authorization Contract for Containers 18

Policy Configuration and Enforcement Subcontracts Java Authorization Contract for Containers 19

Provider Configuration Subcontract Java Authorization Contract for Containers Festlegung der Berechtigungsverarbeitung (Policy) in Teilspezifikation Definition der Policy Provider Klassen: policy.provider java.security.policy auth.policy.provider javax.security.auth.policy javax.security.jacc.policy.provider Konfiguration in Java Security Properties-Datei 20

Policy Configuration Subcontract Java Authorization Contract for Containers Festlegung der Interaktion zwischen Container deployment tools und Providern Übersetzung der deklarativen JEE Autorisierungsinformationen in Policyregeln des Java Policy Provider Verarbeitung der Policy Deskriptoren: security-constraint method-permission security-role-ref exclude-list 21

Policy Decision and Enforcement Subcontract Java Authorization Contract for Containers Policy Enforcement durch Servlet Container EJB Container Evaluation der Berechtigungen Validierung von URL Pattern/EJB Methode Integrierter Privilege Test AccessControlContext unabhängige Grants 22

Java Authorization Contract im JBoss 5 <security-constraint> <display-name>secured files constraint</display-name> <web-resource-collection> <web-resource-name>secured files</web-resource-name> <url-pattern>/secure/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>admin</role-name> </auth-constraint> <user-data-constraint> <transport-guarantee>integral</transport-guarantee> </user-data-constraint> </security-constraint> 23

Weitere Standards JSR 250 Security Annotations (javax.annotation.security.) RunAs RolesAllowed PermitAll DenyAll DeclareRoles seit JSR 154 Servlet 2.5 (JEE5) web-resource-collection security-constraint auth-constraint 24

Zusammenfassung Deklaratives und portables Security Model Anwendbar für Web- und Enterprise JavaBeans (EJB) Module und Applikationen Standardisierte Authentifizierung und Autorisierung Anpassbar für diverse Transportprotokolle Konfiguration auf Container- und Verwendung auf Applikationsebene 25

Kontakt vielen Dank für Ihre Aufmerksamkeit! Sebastian Glandien IT-Consultant Geschäftsstelle Hamburg Millerntorplatz 1, Hamburg sebastian.glandien@acando.de 26