采访和书摘:Masoud Kalali的GlassFish安全性

由作者Masoud Kalali撰写的GlassFish Security书涵盖了Java EE安全模型以及如何在Java EE应用程序中设计和开发安全的Web和EJB模块并将其部署到GlassFish服务器环境。 在本书中,Masoud讨论了基于轻量级目录访问协议(LDAP)的用户身份验证和授权的应用程序服务器和OpenDS目录服务器的安装和配置。

该书还介绍了使用OpenSSO框架的单一登录(SSO)解决方案,该解决方案包括使用RESTful Web服务对用户进行身份验证和授权,以及使用/通过OpenSSO解决方案保护Java EE应用程序和Web服务的安全。

InfoQ与Masoud谈到了这本书,编写本书的主要动机,Java EE 6版本中的新安全功能以及其他主题。 我们还将从本书中摘录 (第3章-设计和开发安全Java EE应用程序; 778 KB PDF)供读者阅读。

InfoQ:写书的主要动机是什么?

Masoud Kalali:我可以列举出撰写本书的许多原因,但最大的动机如下:

编写本书的最重要的原因是必须对一般安全性以及对所有开发人员尤其是Java EE安全性有清楚的了解。 我相信对于任何从事Java EE领域的开发人员来说,了解Java EE安全基础都是至关重要的,因此我试图在书中以简单而详尽的方式对其进行解释。

另一方面,Glassfish是杰出的应用程序服务器,并且在生产环境中使用它的任何人都需要了解其安全性。

最后,与参考文档相比,需要将Java EE 6中引入的新安全功能引入对该主题感兴趣的开发人员,以某种方式更易于理解。

InfoQ:您如何看待Java EE 6版本中引入的新安全功能?

Masoud:与其他服务和组件相比,安全性在Java EE中还没有看到太多变化。 看看我们在Java EE 5和Java EE 6中针对EJB和Web层看到的巨大变化,并将其与安全性进行比较。 尽管Java EE 6为平台安全性增添了新的活力,但我相信我们仍然落后于我们应有的功能。

InfoQ:现在可以在Web层组件(Servlet)中使用声明性(@ServletSecurity批注)和编程性(HTTP Servlet Request接口中的登录和身份验证方法)进行身份验证。 您如何看待Web层中的这种安全支持?

Masoud:添加注释适合从XML描述符到注释的总体开发过程,有时甚至可以节省部署时间。 但是更有趣的是程序安全性的增强,包括登录和注销方法,这些方法使开发人员可以更好地控制身份验证和授权过程。 我很高兴看到我们正在将平台更改为具有更好的安全功能。

InfoQ: Java EE 6中的新安全功能与Spring Security版本3等其他安全框架相比如何?

Masoud:我相信我们无法将Java EE平台安全性与Spring Security相提并论,因为它们的名字暗示一个是平台,另一个是在平台之上构建的框架,可以满足更细粒度的需求。 当我们整体上使用Spring框架时,或者当软件架构师知道它们不需要密集的安全集成方案时,使用Spring Security是必经之路。

当Java EE平台的安全性还不够时,我宁愿使用OpenSSO之类的产品,该产品不仅提供与Java应用程序的非介入式集成,而且还可以使用本机或通过其其他编程语言使用相同的基础结构。 RESTful接口。

InfoQ:其他与安全性相关的JSR,例如Java容器安全认证服务提供者接口( JSR 196 )和Java Java容器授权合同(JSR 115 )如何适合Java安全模型?

Masoud:我们都知道,当我们需要为产品添加新功能时,可插入性和可扩展性非常重要。 我们意识到,当我们知道产品A支持的相同合同接口也受到其他类似产品的支持时,这种可插入性将具有更大的价值。

在我们的案例中,JSR-196和JSR-115是两个规范,它们提供指南和合同接口以统一Java EE应用程序服务器的身份验证和授权模型。

JSR-196的目标不是应用程序开发人员,而是框架和安全产品开发人员,因为它促进了不同身份验证模型与Java EE应用程序服务器的集成。 使用JSR-196 SPI,开发人员可以开发自己的身份验证模块,将其插入应用程序服务器,配置该模块,并拦截在服务器及其客户端之间传输的消息。 可以从四点截取该消息:

  1. 在客户端中,将请求传输到服务器之前。
  2. 在服务器中,目标服务接收到客户端请求之前。
  3. 在服务器中,可以将响应发送回客户端之前。
  4. 在客户端中,可以使用服务器响应之前。

在GlassFish应用程序服务器消息安全性中可以看到其用法的示例, Metro Web服务框架使用它来提供易于配置和管理的Web服务安全性。

JSR-196的另一个用例是将诸如OpenID之类的“不支持”身份验证模型集成到应用程序服务器中,然后将其用于在该应用程序服务器中部署的不同应用程序。

每当我们谈论安全性时,首先弹出的两件事就是身份验证和授权,如上文所述,JSR-196解决了Java EE应用程序服务器身份验证柔韧性的统一问题。 JSR-115引入了SPI,该SPI通过允许模块开发人员围绕如何定义主体,角色的定义以及如何检查主体的方式介绍自己的逻辑,从而向支持JSR的Java EE应用服务器添加新的授权模型。是否起作用。

InfoQ:您还希望在Java EE的未来版本中看到哪些其他安全功能?

Masoud:我希望对整个身份验证和授权过程有更多控制,以使开发人员可以使用默认值,也可以使用自己的配置和自定义项。 目前,我们拥有一些具有特定安全层的框架(如Seam)和一些安全框架(如Spring Security),这些框架为开发人员提供了大量的安全措施定制,我期待一些基于规则的访问控制和SSO的广泛接受。 现在,所有这些以及许多其他安全集成功能都是通过不同的访问管理产品(从OpenSSO,Oracle Access Manager,IBM Tivoli Access Manager等)开始提供的。

InfoQ:谢谢您的采访。 最后一个问题,您最喜欢的IT和非IT书籍是什么?

Masoud:好吧, 谈到 IT书籍,我喜欢大型软件体系结构:有关使用UML的实用指南 ,对于非IT书籍,我比其他所有书籍更喜欢“指环王”系列。

翻译自: https://www.infoq.com/articles/kalali-glassfish/?topicPageSponsorship=c1246725-b0a7-43a6-9ef9-68102c8d48e1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值