概述
开源RBAC产品的利与弊
在企业层面,基于角色的访问控制(Role-based AccessControl, RBAC)是一种常用的服务,也是目前公认的用户授权管理最佳实践。尽管RBAC实施最佳实践仍处于未成熟阶段,但是多数企业已经以某种形式部署了这一技术。现在,绝大多数已部署的RBAC服务都是基于商业化的现成产品,而只有少数内部 开发的RBAC服务支持自定义 功能。与此同时,开源RBAC产品方兴未艾,并深受经验丰富的身份管理人员的青睐。然而,当企业希望在内部扩展RBAC服务时,问题随之而来:“商业化的RBAC产品是扩展RBAC服务的唯一选择吗?可以使用开源RBAC产品扩展RBAC服务吗?”要回答这一问题,企业必须清楚,开源RBAC产品与现有应用整合的难度如何,能否提供与商业化RBAC产品相同的安全性级别?
开源RBAC产品的优势
需要指出的是,放眼当今的商业RBAC市场,最畅销的RBAC产品并不是出自最大的公司。这是因为RBAC的潜在功能尚未完全实现,如果一个厂商可以更快地改进RBAC产品的功能,则它就可以获得超过其竞争对手的优势。正是由于这一原因,在商业RBAC市场上,一些小公司(例如Aveksa、 BHOLDCompany和SailPoint Technologies)反而战胜了作为其竞争对手的大公司(例如CA、IBM和已被 甲骨文收购的 SunMicrosystems等)。
这种“船小好调头”的灵活性在开源RBAC产品上也得到了很好的体现。与商业化的RBAC产品不同,RSBAC、USRBAC、django-rbac、grsecurity以及其他开源RBAC产品,均是由独立开发人员在活跃的用户社区的帮助下完成的。由于开源RBAC产品的开发人员不用考虑商业化厂商所需的开销,所以他们可以集中更多的精力来增强其产品的性能。另外,通常情况下,开源RBAC产品的开发人员在改进和提高其产品性能时,产品的发布审查流程既正式又快速,从而可以更加迅速地将创新 应用到其产品中。还有一点需要指出的是,开源RBAC产品的开发人员之所以自己动手开发RBAC产品,往往是因为市场上的RBAC产品达不到其严格的功能和性能标准。在有些情况下(例如django-rbac),一些已经开始开发自己的开源RBAC产品的开发人员会放弃自己的工作,转而加入 django-rbac的开发团队,以便为所有用户提供更好的开源RBAC产品。
开源RBAC产品区别于商业化的RBAC产品的第二个不同之处是,它们通常专注于特定的问题领域。举例来说,如果企业希望部署一种面向小规模的、专注于特定网络领域(例如ActiveDirectory(活动目录)、Unix或LDAP(轻量目录访问协议))的RBAC授权管理机制,则对企业来说,更便宜、更合适的选择可能是开源RBAC产品,而不是旨在为大型企业提供RBAC服务且价格昂贵的商业RBAC产品。另外,由于开源RBAC产品一般专注于单一的问题领域,所以往往能够提供更深入的功能,而且具有更多的配置选项,以增强部署的灵活性。
开源RBAC产品区别于商业化的RBAC产品的第三个不同之处是,它们不关心市场占有率。开源RBAC产品的代码在全球范围内发布,并尽可能广泛地进行分发,因此产品中不包括意在锁定客户的专利功能。相反,开源RBAC产品的开发基于开放、免费的可用标准,例如美国国家标准与技术研究所(NIST)的RBAC标准。由于开源RBAC产品完全基于开放的标准,所以往往能够与更多的其他身份管理产品及其支持的应用进行互操作。
尽管上述的诸多优势使开源RBAC产品魅力四射,但企业必须知道,使用开源RBAC产品也需要花费一定的开销,其中首当其冲的是聘用顶级专业人员的费用。虽然开源RBAC产品功能众多,但要求使用者必须深入了解RBAC系统。通常情况下,开源RBAC产品的管理接口是命令行方式,而且很少提供技术文档,即使提供,也是基于维基百科的文档。因此,开源RBAC产品的管理人员必须是该领域的行家里手,精通RBAC产品的安装、配置和执行。
开源RBAC产品的技术支持方式也是一个需要考虑的因素。商业化RBAC产品一般是通过800电话、人工咨询等形式为用户提供技术支持,支持人员可以协助用户部署产品或者识别和解决产品出现的问题。虽然开源RBAC产品的开发人员可能聪明能干,但其技术支持形式与商业化RBAC产品不同,一般是通过论坛、邮件列表、维基百科和IRC(互联网中继聊天)等形式提供的。也就是说,尽管开源RBAC产品可能提供了更强大的技术能力,但使用起来普遍不太方便。
开源RBAC产品的一大优势就是专注于特定的问题领域,因此企业可以针对要部署RBAC产品的系统(例如ActiveDirectory、Unix、LDAP等)量身打造RBAC产品。如果部署开源RBAC产品的系统在一段时间内相对稳定,则开源RBAC产品的效果很好。但是,一旦企业需要增加一个新系统,而已部署的开源RBAC产品又不支持该新系统,则必须引入其他的开源RBAC产品或商业RBAC产品,以便将新系统整合到现有的RBAC体系结构中。在这种情况下,对企业来说,商业化的RBAC产品可能是更好的选择,因为商业化的RBAC产品可以更广泛地兼容价格昂贵、具有战略意义的重要系统。
有一种错误的观点认为,开源RBAC产品的许可是免费的。实际上,尽管开源RBAC产品不要求强制性的财政义务,但有些开源RBAC产品(例如grsecurity)要求使用者提供捐助。而对企业来说,向自己使用的开源RBAC产品提供资金支持是一个明智之举,因为这样将更有可能使聪明能干的开发人员继续致力于该项目的开发。但是,即使企业捐助了一个开源RBAC产品项目,开发人员也照样可以终止该项目的开发和向用户社区提供的产品支持。
最后,无论企业考虑部署开源RBAC产品还是商业化的RBAC产品,实施RBAC的体系结构仍然是一门艺术而不是一门科学。通常情况下,商业化的RBAC产品提供人工技术支持,可以帮助企业规划RBAC授权模型的体系结构,而开源RBAC产品则不提供此类支持。
* 哪些企业应该考虑开源RBAC产品?
* 要判断开源RBAC产品是否为可行的选择,企业必须先弄清楚下列问题:
* 我们是否对自己的RBAC体系结构的正确性充满信心?
* 我们是否拥有精通RBAC技术的专业人员,可以驾驭这项工作?
* 我们考虑部署RBAC是否只是为了重要的端点系统?
* 我们是否追求RBAC的基础功能而不是那些华而不实的功能?
* 我们已经部署了基于标准的企业RBAC产品吗?如果没有,我们是否将要部署这样的产品?
如果对上述全部问题的回答都是“是”,则说明企业非常适合考虑部署开源RBAC产品。不然的话,即使开源RBAC产品符合企业的要求,企业也要悉心研究以确保成功。无论如何,商业化的RBAC产品都不可能扼杀开源RBAC产品。但是,开源RBAC产品应该用于什么地方,能够提供什么样的价值将取决于其部署的环境。
最后
以上就是清脆老师为你收集整理的开源RBAC产品的利与弊开源RBAC产品的利与弊的全部内容,希望文章能够帮你解决开源RBAC产品的利与弊开源RBAC产品的利与弊所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复