REST Web服务的身份验证/访问控制的软件体系结构


12

我正在设置一个新的RESTful Web服务,我需要提供一个基于角色的访问控制模型。我需要创建一个体系结构,该体系结构将允许用户提供用户名和密码来访问服务,然后根据角色限制他们如何使用服务(可以使用哪些服务,读取与读取/写入等)。分配给该用户。

我环顾了其他问题,发现了我想要的东西。例如,关于如何处理将凭证传递到REST服务的静态身份验证最佳实践等方面,存在许多精彩的讨论。关于创建网站时程序员应了解的知识(每个开发人员在构建公共网站之前应了解的知识),也有一些很好的指导。

但是我找不到关于实现这些解决方案的软件体系结构的最佳实践和模式的好文章,文章和书。

特别:

  • 用户信息和访问权限应如何存储?(数据模型,位置,格式)
  • 有哪些好的设计模式可以表示和跟踪服务器中的这些模式?(内存中的会话,每次数据库查找等)
  • 在代码库中以哪种安全方式将这些权利映射到服务的良好模式是什么?
  • 哪些架构选择可以帮助保持系统更安全和可靠?
  • 人们从战es中学到了什么?

我正在寻找针对任何特定技术之外的软件体系结构的设计模式和建议。

(如果技术很重要,我计划使用python,twisted和postgresql数据库来实现)


听起来您只需要有人为您编写代码即可;)
Martin Blore

不幸的是,它看起来像这样。堆栈的这一部分没有在任何地方描述,这似乎很奇怪。即使我可以找到有关类似newegg,digg或什至stackoverflow之类的网站如何处理后端中的用户凭据和访问权限的文章,也将有所帮助。
艾伦(Allen)

你在这方面有什么进展吗?
布莱恩·艾吉

您考虑过oAuth2吗?有许多流行语言可用的服务器和客户端库,应该可以更轻松地实现它。
山姆

Answers:


5

OpenAM。

http://forgerock.com/openam.html

用户信息和访问权限应如何存储?(数据模型,位置,格式)

身份管理器。与任何Web服务器分开。基于LDAP。

有哪些好的设计模式可以表示和跟踪服务器中的这些模式?(内存中的会话,每次数据库查找等)

由您的框架解决。别再想了。只需使用框架已构建好的设计模式即可。

在代码库中以哪种安全方式将这些权利映射到服务的良好模式是什么?

由您的框架解决。每个框架使用略有不同的方法。每种语言都有稍微不同的功能。例如,Django为此大量使用Python的装饰器。

哪些架构选择可以帮助保持系统更安全和可靠?

更多?超过什么?


在我的特定设置中,我认为我无法使用OpenAM之类的工具。我不需要企业范围的单点登录。我想我需要一些更小且更独立的东西。
艾伦(Allen)

@艾伦 我们不会将其用于企业范围的单点登录。我们将其用于简单的身份管理。
S.Lott
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.