在和用户谈论有关SOA实现时,经常会涉及到数据隐私这个话题。它的典型用例类似于多组用户需要访问相同的数据库,但是鉴于法律或企业原因而无法查看其他用户的信息。例如,HR是非常重要的敏感信息,企业的其他部门都不能访问,类似信息还包括销售预测、生产配额和企业发展规划。很多数据被存储在数据库中,其安全程度并不比每个应用程序组的基本身份验证和私有视图/表高多少。
问题随着SOA的应用而加剧,当您开始使用启用服务的数据时,如何确保数据的使用者只能访问其权限范围内的数据。强制的解决方案将仅仅关闭那些您无权查看的服务。但是这样会造成服务延迟,因为您不得不为每个新用户创建新的服务。因此问题实际上就是:在不编写大量需要在终端保护的自定义服务代理情况下,如何对面向服务的数据实施安全策略?
AquaLogic Enterprise Security提高了一种细粒度授权策略引擎,它可以说明如何授权或者如何拒绝对某行数据的单个值的访问。在我们的最新版本中,我们实现了ALES和AquaLogic Data Services Platform (ALDSP)之间的有趣集成,这样,您就可以使用XQuery语句作为策略定义的一部分。这就是说,您可以调用一个ALDSP服务获取数据,并自动使ALES应用XQuery“收缩”过滤器作为安全检查的一部分。
例如,假如您具有一个可以检索投资基金列表的数据服务:
如果您以前没有在工作区内见过ALDSP服务的话,那么这里简单介绍一下:数据服务方法为“getFunds”(左侧),返回数据的状态显示在中间(FUND)。数据服务本身使用XQuery编码,而ALDSP在后台将其转换为相应的SQL格式。这种转换最关键的一点是结果集的状态,注意,我们具有一个名为“FUND_TYPE”的元素,它可能是“EQTY”、“BOND”或“FX”等。
现在假设根据基金类型(股票、债券等)将基金经理人划分为若干组。在ALES中,我们可以定义一组策略,这些策略提供了XQuery形式的数据修正过滤器,因此只返回某一类型的基金:
我们可以阅读这些策略,比如“grant access to the DataServices/Invest/FUND.ds/getFunds method for group equity_fund_manager, returning aldsp_xquery_expression "./FUND_TYPE = ‘EQTY’”。每种基金类型的策略都有所不同,并且将根据用户所属的组来实施这些策略。
这种方法具有如下几种优点:
数据修正策略完全独立于数据服务定义——所有的用户可以调用同一个getFunds方法,而ALES在后台删除用户无权访问的数据行。安全策略可独立于服务定义进行开发。
所有用户只需要一种数据服务——因此不需要为每种用户类型构建单独的getEquityFunds、getBondFunds、getFXFunds等。
在ALDSP将结果返回给调用方之前进行数据修正——因此即使我们只关心一百万条基金记录中的三种债券记录,也不会带来性能损失。
ALES对数据修正进行了充分的审计,因此我们可以跟踪服务调用的次数,以及未授权用户是否试图查看他无权访问的数据行。
整个实现过程没有进行任何编码——数据服务在工作区中以可视方式创建,并且ALES策略是通过管理控制台以可视方式创建的。惟一需要编写的代码是服务消费者(我们甚至可以使用ALDSP Service Control简化这一过程)。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
微软与《Privacy Shield》着眼于数据隐私
Privacy Shield填补了去年十月Safe Harbor协议解除后所留出的空白,被认为是隐私和透明领域的改进,虽然一些倡导团体仍然认为它不够完善。
-
事件驱动框架和SOA在空军的应用
空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。
-
揭秘New Relic APM技术细节
New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响
-
仅凭SOA和云无法解决业务数据管理风险问题
SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。