身份验证和授权作为开源解决方案服务

本文探讨了如何为用户提供集中的身份验证和授权服务,通过结合CAS(Central Authentication Service)作为认证服务器,Spring Security作为受保护客户端框架,并与LDAP服务器集成。CAS提供SSO解决方案,支持多种协议,而Spring Security可以通过扩展实现自定义权限管理。文章讨论了集中授权和分散授权的利弊,并提供了一个完全开源的商业解决方案。
摘要由CSDN通过智能技术生成

通过实施身份验证和授权(a&a)机制为所有用户数据设计集中式服务。 我将分享我的经验并最终确定解决方案的结论。

该设计包括客户端(Web应用程序)和服务器(A&A中心)。

术语:


1.验证:

认证是系统可以安全地标识其用户的机制。 回答问题“谁是用户?” 身份验证还包括SSO(单点登录)。 一种机制,使用户能够一次登录并获得所有参与资源的“免费通行证”,而无需附加标志。

2.授权:

授权是验证用户是否具有访问某些资源或部分的角色/权限的过程。
回答问题:用户X是否有权访问资源/操作Y?

3.受保护的客户:

通常,a&a机制与受保护的客户端框架配合使用:Spring安全性,Apache Shiro,Wicket身份验证等。 我将在稍后的文章中进行评论。

要考虑的主要主题:

  1. 认证服务器
  2. 安全的Web客户端框架
  3. 授权职责

完整的解决方案提供商:

在我的研究中,我遇到了完整的解决方案提供商:

  • Open AM(称为OpenSSO)–他们声称是一个开源项目。 但是过了一会儿,您发现它确实是一个开放源代码,但并非用于商业用途。 您需要为他们的a&a配套支付大量的钱。
  • 人群– Atlassian。 似乎是一种快速,良好且非常便宜的解决方案。 但是,我们仍在走向完全商业化的开源解决方案。 这个也不符合我们的需求。

受保护的客户:

  • Spring安全性:非常流行并且广泛使用。 当您想要拥有除基本设置以外的更多功能时,Spring Security需要大量的xml配置。
  • 此外,如果您需要支持权限(而不仅是角色),Spring安全性不提供现成的支持。

  • Apache Shiro:–很棒的产品。 开箱即用的配置和权限支持非常简单。
  • 问题在于Shiro的社区仍然很小,而且该项目还很新。

解:

  1. 认证服务器:

    我遇到了CAS(中央身份验证服务)–伟大且完全开源的项目。 CAS提供SSO解决方案并支持流行的协议,例如SAML,OPENID,Auth。

    因此,如果我们将CAS与LDAP服务器集成在一起(以保存用户的信息),我们就可以实现身份验证模型(并且开箱即用地拥有SSO)。

    CAS基于Spring,非常容易扩展,以防我们要进行自定义更改。 您可以轻松下载源代码,并根据需要对其进行自定义。

    CAS配置非常容易并且有据可查。

  2. 受保护的客户端框架:

    我选择了Spring Security。 三个原因:

    1. 该Web应用程序是基于Spring的。
    2. 受欢迎和背后的社区绰绰有余。
    3. 与CAS完美集成。

    *我提到Spring安全缺乏权限。 但是有一种解决方法。 可以在此处找到简短的示例: http : //en.tekstenuitleg.net/blog/spring-security-with-roles-and-rights

    到目前为止,我们有Spring Security,Cas和LDAP(OpenLdap)服务器。

  3. 授权职责:

    可能有些棘手取决于您的项目要求。 您可以通过两种方式配置授权流:

    1. 集中授权:

      CAS支持属性。 这意味着您可以向返回的响应中添加其他属性(角色/权限)(通过SAML,这非常简单)。

      您实际上可以选择并配置从哪个源中提取其他属性(数据库,Ldap,Active Directory等)。

      这是一个非常简洁而优雅的解决方案–一个中心,可以按要求提供每个用户的身份验证和授权角色/权限。

    2. 分散授权:

      您可以通过扩展UserDetails接口来配置Spring Security。 然后,让每个应用程序在成功通过身份验证后控制授权逻辑。

      *是否存在每个Web客户端应用程序应对其授权逻辑负责还是对其进行集中管理的公开辩论(正如我在第一点所述)。

我建议根据您的项目需求用例来确定正确的态度。

最后,我们有了一个完全用于商业用途的a&a开源解决方案。


翻译自: https://www.javacodegeeks.com/2013/11/authentication-and-authorization-as-an-open-source-solution-service.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值