SSO 单点登录和 OAuth2.0 有何区别?

SSO(Single Sign-On,单点登录)和 OAuth2.0(Open Authorization 2.0)都是现代互联网安全领域中常用的两种技术,它们虽然都涉及到了用户的身份验证和授权,但是它们解决的问题和应用场景有所不同。

SSO 单点登录

定义:SSO 是一种身份验证机制,它允许用户在一个应用程序或服务中登录后,无需再次输入凭据即可访问其他相关应用程序或服务。这意味着用户只需要在一个地方完成登录,就能在多个系统之间自由切换。
目的:简化用户的登录体验,提高安全性并降低维护多个系统独立登录机制的成本。
实现方式:通常涉及到一个中心化的认证服务,该服务负责验证用户的凭证,并向其他应用程序发放票据(ticket)或令牌(token),应用程序可以根据这些票据或令牌来确认用户的身份。
典型框架:CAS(Central Authentication Service)、Kerberos 等。

OAuth2.0

定义:OAuth2.0 是一个开放标准,用于授权应用程序访问用户存储在另一个服务提供商上的资源(如照片、视频、联系人等)。它不是用来做用户认证的,而是用来授权的。
目的:允许第三方应用安全地访问用户的数据,而不必暴露用户的密码。
实现方式:OAuth2.0 定义了四种授权模式:授权码模式、隐式模式、密码模式和客户端凭证模式。其中授权码模式是最常见也是最安全的一种。
典型场景:例如,当你使用微信账号登录第三方网站时,微信就是一个 OAuth2.0 的提供商,它允许第三方网站通过 OAuth2.0 协议请求访问你的微信账户信息。

区别总结

解决的问题不同:

SSO 主要解决的是用户在多个应用程序和服务之间的无缝切换和保持登录状态的问题。
OAuth2.0 主要解决的是授权问题,即允许用户授权第三方应用程序访问其存储在服务提供商上的特定资源。

应用场景不同:

SSO 通常处理的是同一个公司或组织的不同应用间的访问登录问题,如企业应用有很多子系统,只需登录一个系统,就可以实现不同子系统间的跳转,而避免了重复登录的操作。
OAuth2.0 处理的是跨域的资源访问授权问题,通常用于第三方应用与服务提供商之间的交互。

角色参与不同:

在 SSO 场景中,通常涉及到用户、应用程序和服务提供者(认证中心)。
在 OAuth2.0 场景中,涉及到用户、客户端应用(第三方应用)、资源服务器(存储用户资源的服务)和授权服务器(处理授权请求)。

安全性和隐私保护:

SSO 通常关注的是如何保护用户登录信息的安全性,防止凭证被滥用。
OAuth2.0 更加关注的是如何在不暴露用户密码的情况下,安全地授予第三方应用访问权限。
总的来说,虽然 SSO 和 OAuth2.0 都涉及到令牌的使用,但它们解决的核心问题是不一样的。SSO 关注的是如何简化用户的登录体验,而 OAuth2.0 关注的是如何安全地进行授权。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值