zoukankan      html  css  js  c++  java
  • [转]cas sso oauth openid saml的联系与区别

    cas sso oauth openid saml的联系与区别

    转载地址:http://jingyan.baidu.com/article/60ccbceb47f50764cbb19761.html

    • |
    • 更新:2016-12-09 16:06

    这几个设计用户认证、鉴权、单点登录的概念相互交织,很难区分,项目需要做了较为深入的分析和实现,将经验纪录分享,欢迎探讨拍砖。

    首先,SSO英文全称Single Sign On,单点登录。单点登录是一个标准规范,用于解决多个系统重复建设用户认证管理功能,而是将用户身份认证集中管理应用场景。是一个规范标准。简单的 SSO 的体系中,会有下面三种角色:

           1 , User (多个)

           2 , Web 应用(多个)

           3 , SSO 认证中心( 1 个)

      CAS(Central Authentication Service) 是 Yale 大学发起的一个开源项目,据统计,大概每 10 个采用开源构建 Web SSO 的 Java 项目,就有 8 个使用 CAS 。CAS 是我认为最简单实效,而且足够安全的 SSO 选择。

     CAS系统解决单点登录问题,对身份认证的具体方法不做要求。

    Oauth、openID、SAML是身份身份认证授权的规范和标准,是解决认证授权问题的。

    OpenID与Oauth协议的区别,可以从其标准定义的核心应用场景来分析:

    1)  Oauth协议的使用场景:用户通过第三方照片打印应用打印在某个网站存储的照片,而不希望泄露照片网站的用户名、密码等信息给第三方的照片打印应用。

    2)  OpenID协议的使用场景,用户在多个网站注册,需要注册并记住多个用户名密码,openid希望帮用户提供一个身份ID,可以在多个网站用来登录。登录网站时,用户选择用其身份ID登录,跳转到身份ID颁发的网站输入用户名、密码进行身份认证,然后跳转会网站实现登录。即我们当前很多时候看到的用”QQ帐号登录”、“微信帐号登录”等。

    所以我们可以总结,两个协议的核心区别:

     1)Oauth协议的认证凭证必须是资源拥有者发放的;而OpenID的认证凭证可以是你需要登录的网站支持的其它任何正规Openid Provier网站均可。

    2)OpenID只是身份的象征,可以看作是身份证;而Oauth认证凭证,一定是资源拥有者发放的,不仅是用户在资源拥有者系统身份的凭证,还是其某些授权资源访问的凭证,可以看作是钥匙。

    SAML支持XACML协议进行权限控制。SAML协议较OAUTH来说确实比较复杂,但是功能也十分强大,支持认证,权限控制和用户属性。

    进一步,我们开发时候,如果是单系统身份认证,根据使用场景和技术特点,选择OpenID、Oauth、或者SAML。如果不是单系统,不仅涉及身份认证,而是涉及众多系统需要单点登录,则需要选择CAS+认证方案(OpenID/Oauth/SAML)来实现的。

    SSO(CAS)与认证服务标准是合作而不是排斥的关系。

  • 相关阅读:
    Insus Meta Utility
    The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
    Insus Binary Utility
    asp.net实现文件下载功能
    Column 'Column Name' does not belong to table Table
    程序已被编译为DLL,怎样去修改程序功能
    如何在Web网站实现搜索功能
    如何把数据流转换为二进制字符串
    Asp.net更新文件夹的文件
    如何显示中文月份
  • 原文地址:https://www.cnblogs.com/Crysaty/p/7381621.html
Copyright © 2011-2022 走看看