2014-07-02 27 views
1

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

基本上,云上的服务是一个MapProxy,它本身不支持多种认证方法。因此,我想在该地图代理前创建一个代理来进行一些连接处理。我们决定使用cookie作为验证方式,现在什么是进行授权的标准方式?

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

回答

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, David。