130 likes | 276 Views
Masoud Kalali Author of GlassFish security book Http://kalali.me. Java EE Platform Security What is included, what is missing. What can Security refer to?. Authentication Authorization Transport Security Single Sign-On. Security requirements. Java EE and Security Requirements I.
E N D
Masoud Kalali Author of GlassFish security book Http://kalali.me Java EE Platform SecurityWhat is included, what is missing.
Authentication Authorization Transport Security Single Sign-On Security requirements
Java EE and Security Requirements I What Java EE provides for Authentication: • Authentication Methods (Form, Basic, Digest, Client-Cert) • Security Realms • Programmatic login/ logout, setHttpOnly isHttpOnly, @ServletSecurity • Adding new or Extending Realms, extending current realms • JSR-196, pluggable authentication <login-config> <auth-method>BASIC</auth-method> <realm-name>JDBCRealm</realm-name> </login-config> ... String usrname = request.getParameter("username"); String pass = request.getParameter("password"); request.login(strUsername, strPassword); .... @ServletSecurity(@HttpConstraint(rolesAllowed = {"manager", "administrator"}))
Java EE and Security Requirements II What Java EE platform provides for authorization: • Role based access control over resources • Roles are defined in a vendor specific way • Roles are based on the info from the same security realm • Enforced using Annotation or XML description • Can be extend using JSR-115 <method-permission> <role-name>manager</role-name> <method> <ejb-name>Emp</ejb-name> <method-name>getAge</method-name> </method> </method-permission>
Java EE and Security Requirements III The Transport Security facilities: • Confidentiality • Data integrity • Different set of resources, different level of transport security <security-constraint> <display-name>Current Online Users</display-name> <web-resource-collection> <web-resource-name>online users</web-resource-name> <description/> <url-pattern>/admin/online/*</url-pattern> </web-resource-collection> <auth-constraint> <description/> <role-name>manager</role-name> </auth-constraint> <user-data-constraint> <description/> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
Java EE and Security Requirements IV What Java EE platform provides for SSO: • Nothing out of JSRs • Application servers provide some basic functionalities with restrictions: • Same Realm • Same Virtual Server/ Host • Other solutions like proxies like delegated authentication to Apache mod_proxy • Clustering the instances • Need same realm
Really, Is that all we need to have? Do we miss anything major? Is there anything still basic and good to have? Is that All?
Authentication chain Fine grained access control Single Sign-On Basic, but missing requirements
Basic, but missing requirements I Authentication chain: • Chain of authentication challenges • One realm, provider failed chain to the next one • Put Challenges together in groups • Basic rules to forms the groups • Authentication levels • Higher level for more secure realms • More resources accessible on higher authentication levels
Basic, but missing requirements II Fine grained access control • Coarse grained allow/not-allow are not sufficient anymore • A very common issue: time, location based access control • XACML is there, but not in the platform • Attribute based access evaluation • Attributes for all involving factors • Version 2 is mature enough, Version 3 in the corner • JBoss and Sun open source XACML implementations • http://sunxacml.sourceforge.net/ • http://www.jboss.org/picketbox/
Basic, but missing requirements III What to do with more SSO requirements? • It may never get into the platform • Involve more than just Java EE • Heavy, complex and open ended • Go with JOSSO, http://www.josso.org/ • Go with OpenSSO, http://opensso.dev.java.net • Both work with CDSSO • Integrate with many platforms/ servers • Can be used from almost any language
Questions? You can contact me at kalali@gmail.com or http://twitter.com/MasoudKalali Time For Questions