为在线服务进行访问控制的标准方法

时间:2014-07-02 19:03:42

标签: web-services proxy authorization

我想知道什么是对云托管的一些私人在线服务进行访问控制的标准方法?

基本上,云上的服务是MapProxy,它本身不支持太多的身份验证方法。因此,我正在考虑在Map Proxy之前构建一个代理来进行一些连接处理。我们已经决定使用cookie作为一种身份验证方式,现在什么是授权的标准方式?

是否有任何记录良好的库可以帮助构建授权的连接处理程序?

1 个答案:

答案 0 :(得分:0)

这完全取决于您对授权的含义。如果你的目标是定义真正的访问控制逻辑,例如:

  • 如果用户角色是经理并且用户位置与API中请求的文档位置相同,则用户可以调用此API的方法,

然后你可以使用XACML eXtensible Access Control Markup Language。我在这里回复了类似的问题:RESTFul API endpoint design with filtering and authorizationhttps://stackoverflow.com/questions/24514711/authorization-framework-in-a-java-web-application/24526891#24526891

要实施ABAC,您需要XACML,即可扩展访问控制标记语言。它是OASIS标准(SAML和许多其他标准背后的同一机构)。 XACML定义:

  • 用于表达上述授权要求的政策语言
  • 查询授权的请求/响应方案,例如" Alice可以查看文档d?"
  • 定义标准组件的体系结构,例如策略决策点(PDP)和策略执行点(PEP)。后者保护您的应用并将授权问题发送给PDP。

何时选择XACML(和ABAC)而不是其他框架,例如Spring Security(和RBAC)?如果您的用户与您的数据之间存在关系(例如所有权,医患,团队负责人 - 团队成员......),那么XACML就适合您。如果您有许多不同语言的应用程序(Python,Java,.NET,Ruby ......),那么XACML就适合您。 XACML与技术无关,因此可以更轻松地在所有应用程序中重复使用。

有几个框架可以为您提供XACML。有些是基于供应商的,例如Axiomatics(我工作的地方)。其他是开源的,如SunXACML或Heras AF。

HTH, 大卫。