经常使用的身份管理技术堆栈

时间:2014-10-30 11:39:18

标签: web-services oauth architecture ldap shiro

据我所知,身份管理可以使用多种协议以多种方式完成,具体取决于您的需求。但是,我读到的关于各种安全框架和协议的内容越多,我就越不清楚何时何地使用它们。我需要的是,我需要一个强大的中央身份管理系统来管理可能会查询它的大量Web应用程序的身份验证和授权。此外,我正在寻找这样一种结构,当软件扩展时,可以逐步用于SSO(单点登录)。全球用于此类身份管理系统的常见技术堆栈是什么? LDAP,Apache Shiro,OAuth,CAS等技术和协议如何适用于所有这些;即他们扮演什么角色?它们是互补技术还是可互换的?他们中的一些人执行相同的功能,使用它们的优点和缺点是什么?

我知道我在问一些问题和很多信息,但我找不到任何可以给我带来更大图片的好资源"对于这样的要求。任何帮助,任何来源将不胜感激。

1 个答案:

答案 0 :(得分:1)

对于身份验证和授权,您应该检查OpenID Connect,这是“OAuth 2.0协议之上的简单身份层”。以下摘自the FAQ page

(Identity, Authentication) + OAuth 2.0 = OpenID Connect

通常,管理自己的最终用户并提供Web API以允许第三方应用程序使用Web服务的Web服务包含以下三个角色。

  1. 验证
  2. 授权
  3. 资源管理
  4. 身份验证处理有关“是谁”的信息。与用户管理相关的解决方案属于该领域。您提到的Apache Shiro和CAS(中央身份验证服务)与身份验证有关。 Apache Shiro PMC Chair是Stormpath的创始人,提供“用户管理API”

    授权处理有关“谁授予哪些权限”的信息。 RFC 6749(OAuth 2.0)是授权的行业标准。

    资源管理处理用户数据。主机数据的解决方案与该领域相关。在OAuth 2.0的上下文中,提供对资源的访问的端点(Web API)称为“受保护资源端点”RFC 6750列出了三种向受保护资源端点提供访问令牌的方法。

    这些角色通常以单一的方式实现,但如果您意识到角色之间的差异,您的困惑就会消失。

    经常听说入门级工程师将授权与身份验证混为一谈。使用OAuth进行身份验证(非授权)的某些解决方案(例如OmniAuthAuth0)可能会使这些工程师更加困惑,尽管解决方案很棒。专用于授权的Authlete等解决方案仅在身份验证之外设置授权。工程师可以从Authlete的软件架构中了解授权和身份验证之间的区别。