当在两个不同的公司工作时,软件工程师Alex Salazar和Les Hazlewood发现自己正在为每个应用重塑身份验证和访问控制。由于缺少可重用、灵活的企业以及安全云应用开发工具,促使他们辞掉工作并为开发人员和架构师构建可重用、开放源代码的和商业的安全工具。
Salazar和Hazlewood建立Apache Shiro的过程中,揭示了企业和云应用开发者所面临的安全问题,处理这些问题的方法以及避免常见的错误。他们为企业和云应用的身份验证、密码存储、用户管理、访问控制和共同安全工作流创建了Stormpath应用程序接口(API)。
在Georgia Tech上大学时,Salazar和Hazlewood曾是1999年成立的软件即服务(SaaS)工程团队的创办者。“但在当时被称为‘应用程序服务提供者’,”Salazar说,“在Marc Benioff使它成为标准之前,我们就建立了多租户系统……,它运行得很好并且我们痴迷于SaaS模型。”
纵观他们的职业生涯,他们都在不断地解决安全工具不足的问题,并一直在满足每一个项目中DIY安全的需求,开发人员通常不得不从头开始编写用户管理代码。
可重用云工具弥补应用安全问题
“所有的这些工作对于安全来说都很必要,但这并不是应用功能的核心,”Hazlewood说,“并且,因为这些自定义代码并不强大,而且不能被多个应用程序使用,开发人员通常为他们建立的每个应用重写相同的代码,进一步加剧了开发成本。”一旦实现,这些从零开始编写的代码通常就会被忽略并且很少更新,可能随着时间的推移就会出现安全漏洞。
Hazlewood启动Apache Shiro项目,创建一个用于认证、授权、加密和会话管理的开放源代码的Java安全框架。
“Shiro强大了,”Salazar说。即便如此,Hazlewood仍然发现一个问题:安全框架只解决了部分的认证访问控制问题,因为框架为了完成他们的工作,仍然不得不与后端系统对话,如Active Directory或LDAP。当构建基于云的应用程序时,然而,没有Active Directory或LDAP,因此他仍然不得不反复地重塑那一部分。
Hazlewood说,在公有云中,传统的网络安全策略并不适用,而且任何安全漏洞可能被迅速利用。这个缺陷与索尼PlayStation Network 、LinkedIn、Last.FM、雅虎和最近的Twitter相比,成本明显很高。
Hazlewood说:“大多数开发团队的员工没有足够的安全专业知识,所以当将他们的应用程序部署到公有云时,他们冒着非常高的风险”。Salazar表示同意,“云日渐成为应用程序的争议平台。”
Hazlewood不知道Salazar也在云中间件软件领域处理着同样的问题,现有的工具有单点登录功能,这些功能对于在云中构建新的应用程序是不够的。“当将Salesforce与其他产品集成时,单点登录是很好的,但对于你自己的自定义应用却并非如此,”Salazar说,“我看到每个人在构建定制云应用都很痛苦,以及非常具体应用程序、手机的应用程序、客户应用程序、伙伴应用程序等等。”
Salazar叫Hazlewood来解决他的技术验证的问题。“他开始笑了,因为他在做相同的事情,”Salazar说,“我说,‘好吧,让我们谈谈一些客户。辞掉工作并创办一个公司。’”
作为开放源代码软件的支持者,他们第一次计划发布他们的工具作为开放源代码的产品,使用典型的开放源代码的商业模式。在探索性研究中,他们发现,对于那些拥有内部安全与发展团队的大企业来说,开放源代码交付效果很好,但是那些小型和中型企业(SMB)却效果不佳。如必要的话,大公司有能力 DIY,但是他们却很欢迎可重用、内部的解决方案。大多数中小企业没有DIY的安全团队或内部专业。“显而易见,云交付是中小企业交付路线,”Salazar说,“中型企业不想做安全管理,他们担心修补数据库服务器和运行最新的副本。他们只是想要一个随需应变的API”。
开发人员构建新的应用程序,Stormpath提供自动化安全工作流的服务,启用身份验证服务、访问控制和更多服务,Hazlewood说:“因此开发人员可以回去写代码了”。如认证、密码重置和电子邮件帐户验证这样的工作,每一个都需要一个单一的REST调用。Salazar说:“没有数据建模,没有代码,没有UI,也没有那些”。语言库使Java、PHP和Rubydevelopers不必了解REST和JSON。
“没有人喜欢一遍又一遍地构建安全性,” Salazar说,“这是应用程序的关键,但它并不是核心;建立业务逻辑才是核心。”他们继续探索可重用应用安全解决方案,对于Salazar和 Hazlewood来说,接下来的一步是建立更多的Stormpath软件开发者工具包并扩展开发语言和平台支持。