+ All Categories
Home > Documents > Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010...

Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010...

Date post: 25-Jun-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
26
Security Technologien in Java EE 6 © Acando GmbH Java Forum Stuttgart 2010 Sebastian Glandien Acando GmbH [email protected]
Transcript
Page 1: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

Security Technologien in Java EE 6

© Acando GmbH

Java Forum Stuttgart 2010

Sebastian Glandien

Acando GmbH

[email protected]

Page 2: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

Agenda

I. Einleitung

II. Java Authentication SPI for Containers

(JSR-196)

I. Message Processing Model

II. Profile

© Acando GmbH2

II. Profile

III. Demo

III. Java Autorization Contract for Containers

(JSR-115)

I. Klassendiagramm

II. Subcontracts

III. Demo

IV. Weitere Standards

V. Zusammenfassung

Page 3: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

Java EE 6 TechnologiesEinleitung

Web ApplicationTechnologies• Servlet 3.0• JSF 2.0

Enterprise ApplicationTechnologies• Dependency Injection

for Java• EJB 3.1/JPA 2.0

Management and Security Technologies• Java Authentication

and Authorization for

© Acando GmbH

Java Platform,

Enterprise Edition 6

Web Services Technologies• RESTful Web

Services• JAX-WS/JAXB/JAX-

RPC

and Authorization forContainers

Java EE-relatedSpecs in Java SE• JAXP/JMX/JAF

2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 63

Page 4: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

Management and Security TechnologiesEinleitung

● Security Technologies:� Java Authentication SPI for Containers

(JSR-196)

� Java Authorization Contract for Containers(JSR-115)

© Acando GmbH

(JSR-115)

●Management Technologies:� Java EE Application Deployment 1.2

(JSR 88)

� J2EE Management 1.1(JSR 77)

2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 64

Page 5: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

Sicherheitsmodelle für JEE-AnwendungenEinleitung

Programmatische Sicherheit

● Steuerung des Zugriffs im Programmcode

● Definition von Rollen und

Deklarative Sicherheit

● Verwendung ohne Eingriff in den Quellcode

● ausschließliche Definition im

© Acando GmbH

● Definition von Rollen und Berechtigungen innerhalb des Codes

● Keine Trennung von Busineslogikund 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

2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 65

Page 6: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

BegriffsklärungEinleitung

Subject/Principal

© Acando GmbH

Gruppe/Rolle

ConstraintBerechtigung

Policy

2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 66

Page 7: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

Blickwinkel auf die StandardsEinleitung

What the How to use

© Acando GmbH

What theruntime must

do.

How to useit.

2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 67

Page 8: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

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

© Acando GmbH

●Notwendige Interfaces für Authentifizierungsmodule:� javax.security.auth.message.module.ClientAuthModule

� javax.security.auth.message.module.ServerAuthModule

2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 68

Page 9: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

Message Processing ModelJava Authentication SPI for Containers

© Acando GmbH 2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 69

Page 10: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

Servlet Container ProfileJava 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

© Acando GmbH

●Message Layer Identifier: HttpServlet

● Verarbeitung von Objekten des Typs javax.servlet.http.HttpServletRequest und javax.servlet.http.HttpServletResponse

2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 610

Page 11: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

SOAP ProfileJava Authentication SPI for Containers

● gültig für SOAP Versionen 1.1 und 1.2

● Unterteilung der Anforderungen des Profils in:� Clientseitig

� Serverseitig

© Acando GmbH

� Serverseitig

●Message Layer Identifier: SOAP

● Verarbeitung von Objekten des Typs javax.xml.soap.SOAPMessage

2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 611

Page 12: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

Weitere ProfileJava Authentication SPI for Containers

● LoginModule Bridge Profile� Delegation der Sicherheitsvalidierung an JAAS-Loginmodul

(javax.security.auth.spi.LoginModule )

● Future Profiles

© Acando GmbH

� JMS Profile

� RMI/IIOP Portable Interceptor Profile

2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 612

Page 13: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

Java Authentication SPI im JBoss 5

1. Registrierung und Konfiguration des JSR-196 Modul in jaspi-webform-jboss-beans.xml

…org.jboss.web.tomcat.security.jaspi.modules.HTTPFor mServerAuthModule…

2. Konfiguration eines Valve-Elements in context.xml

<Context >

© Acando GmbH

<Context ><Valve className="org.jboss.web.tomcat.

security.jaspi.TomcatJASPIAuthenticator" /></Context>

3. Konfiguration der Security Domain der Webapplikation in jboss-web.xml

<jboss-web><security-domain>java:/jaas/jaspi-test</security-do main>

</jboss-web>

2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 613

Page 14: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

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-modulecode= "org.jboss.security.auth.spi.UsersRolesLoginModule“

flag =" required ">

© Acando GmbH

flag =" required ">

</login-module>

</login-module-stack>

<auth-modulecode= " org.jboss.web.tomcat.security.jaspi.modules.HTTPFormServerAuthModule“ l ogin-module-stack-ref= "lm-stack" />

</authentication-jaspi>

</application-policy>

</deployment>

2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 614

Page 15: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

JAAS vs. JSR -196

JAAS

● Authentifizierungs-API fürPluggable und SequentielleAuthentifzierung

● Standard zur Konfiguration und

JSR-196

●Nachrichtenbasierte Verarbeitung von Authentifizierungsinformationen� SSO-Support verfügbar

© Acando GmbH

● Standard zur Konfiguration und Verbindung von Loginmodulen mitApplikationen

●Callback-Fähigkeit zwischenServices und Applikationen

● ProtokollunabhängigeVerarbeitung

●User = Subject

� SSO-Support verfügbar

● Verwendung der deklarativen JEE-Security

● Verarbeitung von protokollspezifischen Nachrichten

●User = Principal

2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 615

Page 16: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

Spring Security (Servlet Filter) vs. JSR -196

Spring Security (Servlet Filter)

● Konfiguration als Teil derApplikation (via web.xml)

● Aufruf des Servlet Filters nachdem

JSR-196

●Nachrichtenbasierte Verarbeitung von Authentifizierungsinformationen� SSO-Support verfügbar

© Acando GmbH

● Aufruf des Servlet Filters nachdemAuthentifizierung und Autorisierung verarbeitet wurde

● Vorteile:� Spring-styled Konfiguration� Aspekt-orientierte Programmierung� Inversion-of-Control Mechanismus

� SSO-Support verfügbar

● Verwendung der deklarativen JEE-Security

● Verarbeitung von protokollspezifischen Nachrichten

● Principal = User

2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 616

Page 17: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

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

© Acando GmbH

● 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

2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 617

Page 18: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

javax.security.jacc Klassen DiagrammJava Authorization Contract for Containers

© Acando GmbH 2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 618

Page 19: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

Policy Configuration and Enforcement SubcontractsJava Authorization Contract for Containers

© Acando GmbH 2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 619

Page 20: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

Provider Configuration SubcontractJava 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

© Acando GmbH 2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 620

� auth.policy.provider � javax.security.auth.Policy

� javax.security.jacc.policy.provider � …

� …

● Konfiguration in Java Security Properties-Datei

Page 21: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

Policy Configuration SubcontractJava Authorization Contract for Containers

● Festlegung der Interaktion zwischen Container deployment tools und Providern

●Übersetzung der deklarativen JEE Autorisierungsinformationen in Policyregeln des Java Policy Provider

© Acando GmbH 2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 621

● Verarbeitung der Policy Deskriptoren:� security-constraint

� method-permission

� security-role-ref

� exclude-list

Page 22: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

Policy Decision and Enforcement SubcontractJava Authorization Contract for Containers

● Policy Enforcement durch� Servlet Container

� EJB Container

● Evaluation der Berechtigungen

© Acando GmbH 2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 622

� Validierung von URL Pattern/EJB Methode

� Integrierter Privilege Test

● AccessControlContext unabhängige Grants

Page 23: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

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>

© Acando GmbH

</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>

2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 623

Page 24: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

Weitere Standards

● JSR 250 – Security Annotations (javax.annotation.security…. )� RunAs

� RolesAllowed

� PermitAll

� DenyAll

� DeclareRoles

© Acando GmbH

� DeclareRoles

● seit JSR 154 – Servlet 2.5 (JEE5)� web-resource-collection

� security-constraint

� auth-constraint

2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 624

Page 25: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

Zusammenfassung

●Deklaratives und portables Security Model

● Anwendbar für Web- und Enterprise JavaBeans (EJB) Module und Applikationen

© Acando GmbH

● Standardisierte Authentifizierung und Autorisierung

● Anpassbar für diverse Transportprotokolle

● Konfiguration auf Container- und Verwendung auf Applikationsebene

2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 625

Page 26: Security Technologien in Java EE 6alt.java-forum-stuttgart.de/jfs/2010/folien/B7.pdf · 7/2/2010  · Java EE 6 Technologies Einleitung Web Application Technologies • Servlet 3.0

Kontakt

…vielen Dank für Ihre Aufmerksamkeit!

© Acando GmbH 2010-07-02 Java Forum Stuttgart 2010 - Security Technologien in Java EE 626

Sebastian GlandienIT-ConsultantGeschäftsstelle HamburgMillerntorplatz 1, [email protected]


Recommended