`

【系统安全】OAUTH、OPENID、SAML、CAS做统一认证与授权的联系与区别

 
阅读更多

首先,SSO和权限控制是两回事:

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

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

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

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

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

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

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

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

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

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

 

OAuth2.0认证和授权机制讲解:

认证和授权过程(包括三方)

  1、服务提供方,用户使用服务提供方来存储受保护的资源,如照片,视频,联系人列表。

  2、用户,存放在服务提供方的受保护的资源的拥有者。

  3、客户端,要访问服务提供方资源的第三方应用,通常是网站。在认证过程之前,客户端要向服务提供者申请客户端标识。

  

     

  用户访问客户端的网站,想操作用户存放在服务提供方的资源。

  客户端向服务提供方请求一个临时令牌。

  服务提供方验证客户端的身份后,授予一个临时令牌。

  客户端获得临时令牌后,将用户引导至服务提供方的授权页面请求用户授权。在这个过程中将临时令牌和客户端的回调连接发送给服务提供方。

  用户在服务提供方的网页上输入用户名和密码,然后授权该客户端访问所请求的资源。

  授权成功后,服务提供方引导用户返回客户端的网页,并返回已授权的临时凭证。

  客户端根据已授权的临时令牌从服务提供方那里获取访问令牌。

  服务提供方根据临时令牌和用户的授权情况授予客户端访问令牌。

  客户端使用获取的访问令牌访问该用户存放在服务提供方上的受保护的资源。(客户端只能访问给予它授权的用户的资源信息)

参考:

1、https://zhuanlan.zhihu.com/p/20913727

2、http://m.blog.csdn.net/article/details?id=12190075

原文:http://blog.sina.com.cn/s/blog_165e646820102xdxw.html

分享到:
评论

相关推荐

    cas4.2.7 实现其他系统和cas互相认证互信

    1. **配置CAS Server**:在CAS服务器端,需要配置支持的认证协议,如SAML、OAuth或OpenID Connect等,这些协议允许外部系统与CAS进行安全的身份验证通信。 2. **创建服务定义**:在CAS中为每个要信任的外部系统创建...

    spring-webmvc-pac4j:Spring Web MVC的安全性库:OAuth,CAS,SAML,OpenID Connect,LDAP,JWT ..

    ▸OAuth-SAML-CAS-OpenID Connect-HTTP-Google App Engine-LDAP-SQL-JWT-MongoDB-CouchDB-Kerberos-IP地址-Kerberos(SPNEGO)-REST API 者旨在检查已认证的用户个人资料或当前Web上下文中的授权: ▸角色/权限-...

    集成cas实现单点登录认证.zip

    CAS支持多种协议,如CAS协议、SAML2.0等,并且可以与其他身份验证服务(如OAuth、OpenID Connect)集成。 2. 单点登录原理:SSO的核心思想是用户只需要进行一次身份验证,然后这个验证结果可以在所有信任的系统之间...

    spark-pac4j:Sparkjava的安全性库:OAuth,CAS,SAML,OpenID Connect,LDAP,JWT。

    ▸OAuth-SAML-CAS-OpenID Connect-HTTP-OpenID-Google App Engine-LDAP-SQL-JWT-MongoDB-CouchDB-Kerberos-IP地址-Kerberos(SPNEGO)-REST API 者旨在检查已认证的用户个人资料或当前Web上下文中的授权:...

    是业界领先的IAM-IDaas身份管理和认证产品,支持OAuth2.x、OpenID Connectt、SAML2.0、JWT、

    MaxKey单点登录认证系统是业界领先的IAM-IDaas身份管理和认证产品,支持OAuth2.x、OpenID Connect、SAML2.0、JWT、CAS、SCIM等SSO标准协议,基于RBAC统一权限控制,实现用户生命周期管理,开源、安全、自主可控。

    pac4j:Java的安全引擎(身份验证,授权,多框架):OAuth,CAS,SAML,OpenID Connect,LDAP,JWT。

    pac4j是Java的一个简单而强大的安全引擎,用于对用户进行身份验证,获取其个人资料并管理授权,以保护Web应用程序和Web服务的安全。 它提供了一套完整的。 它基于Java 8,并在Apache 2许可下可用。 它可用于大多数...

    buji-pac4j:用于Shiro的pac4j安全性库:OAuth,CAS,SAML,OpenID Connect,LDAP,JWT。

    而直接客户端用于Web服务身份验证: ▸OAuth-SAML-CAS-OpenID Connect-HTTP-Google App Engine-Kerberos-LDAP-SQL-JWT-MongoDB-CouchDB-IP地址-REST API 者旨在检查已认证的用户个人资料或当前Web上下文中的授权:...

    undertow-pac4j:Undertow的安全性库:OAuth,CAS,SAML,OpenID Connect,LDAP,JWT。

    ▸OAuth-SAML-CAS-OpenID Connect-HTTP-OpenID-Google App Engine-LDAP-SQL-JWT-MongoDB-CouchDB-Kerberos-IP地址-Kerberos(SPNEGO)-REST API 者旨在检查已认证的用户个人资料或当前Web上下文中的授权: ▸角色...

    spring-security-pac4j:用于Spring安全性的pac4j安全性库:OAuth,CAS,SAML,OpenID Connect,LDAP,JWT。

    ▸OAuth-SAML-CAS-OpenID Connect-HTTP-Google App Engine-Kerberos-LDAP-SQL-JWT-MongoDB-CouchDB-IP地址-REST API 者旨在检查已认证的用户个人资料或当前Web上下文中的授权: ▸角色/权限-匿名/记住我/(完全)...

    针对JEE的安全库:OAuth, CAS, SAML, OpenID Connect, LDAP, JWT…- pac4j / jee-pac4j

    The jee-pac4j project is an easy and powerful security library for JEE web applications and web services which supports authentication and authorization, but also logout and advanced features like ...

    cas4认证服务

    1. **协议支持**:CAS支持多种身份验证协议,如CAS Protocol、SAML 1.1、OAuth、OpenID Connect等,使得它能与各种应用系统集成。 2. **多语言支持**:CAS 4.x版本提供了多语言界面,方便不同地区的用户使用。 3. **...

    统一用户认证系统设计方案.rar

    6. **常见SSO协议**:例如,SAML(Security Assertion Markup Language)、OAuth(开放授权)和OpenID Connect等,它们定义了不同组件间交换认证和授权信息的标准方式。 7. **用户中心**:用户中心是SSO系统的核心...

    cas-client-3.2.1 cas-server-3.4.11

    CAS支持与各种系统集成,如SAML 1.1和2.0,OAuth,OpenID Connect,JWT等,使得与其他身份验证标准和框架的互操作成为可能。 7. **监控与日志**: CAS服务器通常会记录详细的日志信息,以便于调试和审计。还可以...

    单点登录cas3.5.6版本资源

    9. **扩展性**:CAS设计为可扩展,允许添加自定义认证和授权模块,对接各种身份存储(如LDAP、数据库、Active Directory等),并能与其他系统集成,如SAML、OAuth、OpenID Connect等。 10. **社区支持**:CAS有一个...

    cas4.0源码包

    1. **认证协议**:CAS支持多种认证协议,如CAS协议(v1, v2, v3)、SAML1.1、OAuth、OpenID Connect等。这些协议使得CAS能够与各种不同类型的应用系统无缝集成。 2. **服务管理**:CAS4.0.0引入了服务注册和管理的...

    CAS单点登录服务端部署包

    CAS 是 Central Authentication Service 的缩写 —— 中央认证服务,一种独立开放指令协议,是 Yale 大学发起的一个企业级开源项目,旨在为 Web 应用系统提供一种可靠的 SSO 解决方案。 CAS 支持以下特性: CAS v1, ...

    单点登录CAS资料

    CAS支持多种认证协议,包括原始的CAS协议、SAML、OAuth和OpenID Connect等,这些协议使得CAS可以与各种不同类型的系统和服务集成。此外,CAS还提供了丰富的功能,如票证撤销、多因素认证支持、审计日志和自定义扩展...

    架构师熟悉cas技术方案实现sso

    1. **多协议支持**:CAS支持多种认证协议,包括自定义协议、CAS协议、OAuth、OpenID、RESTful API、SAML 1.1与SAML 2.0等。 2. **认证机制多样性**:CAS支持多种认证机制,如Active Directory、JAAS(Java ...

    Exploring OAuth and Spring Social

    ### 探索OAuth与Spring Social ...通过探索OAuth协议与Spring Social的功能,我们可以更好地理解如何在现代Web应用中实现安全、便捷的用户认证与授权机制。这些技术不仅增强了用户体验,还提高了系统的整体安全性。

    cas-3.4.1_单点登录_CAS_

    2. **协议支持**:CAS支持多种协议,如CAS原生协议、SAML 1.1和2.0、OAuth 2.0、OpenID Connect等,使得CAS能够与其他系统(如Web应用程序、APIs等)无缝集成。 3. **服务管理**:CAS提供了一个服务注册中心,可以...

Global site tag (gtag.js) - Google Analytics