我对SSO单点登录和OAuth2.0的理解

简介: 单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,用户只需一次登录就可以访问所有相互信任的应用系统。比如我们登录了公司的OA系统之后,在页面上点击邮件系统,则无需再跳转到邮件的登录页面,点过去就直接登录成功了。

一、概述


单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,用户只需一次登录就可以访问所有相互信任的应用系统。比如我们登录了公司的OA系统之后,在页面上点击邮件系统,则无需再跳转到邮件的登录页面,点过去就直接登录成功了。


OAuth(Open Authorization)是一个关于授权(authorization)的开放网络标准,允许用户授权第三方 应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他 们数据的所有内容。


二、区别


单点登录需要一个SSO认证系统用来登录,保存用户的登录信息;比如现在有系统A和系统B,首先访问系统A,发现未登录,那么跳转到 SSO 认证系统来登录,sso认证中心验证用户的用户名密码没问题,创建授权令牌,在接下来的跳转过程中,授权令牌作为参数发送给各个子系统,子系统拿到令牌,即得到了授权。子系统拿到令牌后,向SSO认证系统验证令牌的真伪,通过后,使用该令牌创建与用户的会话,key为用户字段,值为token,称为局部会话,返回受保护资源。系统B访问时,发现未登录,跳转到认证中心,认证中心发现已经登录,返回令牌,系统B拿到令牌后,验证真伪,通过后,创建会话,返回受保护资源。


OAuth 2.0的运行流程:


sso.png


(A)用户在浏览器打开京东商城,选择第三方微信登录,京东商城请求微信开放平台要求用户给予授权(目前是用户使用微信扫码)


(B)用户扫码后,微信开放平台会返回一个code给京东商城。


(C)京东商城使用上一步获得的授权code和在微信开放平台申请的appidappsecret等信息,向微信开放平台换取access_token


(D)微信开放平台认证通过后,返回access_token


(E)此时,京东商城可以通过拿到的 access_token微信开放平台获取受保护的资源信息,如用户的手机号等


(F)微信开放平台验证access_token正确后,返回手机号


(G)京东商城根据手机号判断是否注册过,注册过,直接登录成功;未注册过,在后台为其注册账号,前天显示登录成功。


目录
相关文章
|
安全 数据安全/隐私保护
单点登录
当今数字时代,我们面临着越来越多的在线服务和应用程序,每一个都要求我们输入用户名和密码以进行身份验证。这种情况下,如何在各种应用之间实现便捷而安全的身份验证变得至关重要。单点登录(Single Sign-On,简称SSO)便是一项解决这一问题的强大工具。在本文中,我们将详细介绍单点登录是什么以及为什么它如此重要。
|
4月前
|
存储 安全 数据安全/隐私保护
SSO 单点登录与 OAuth2.0 的技术区别与应用
【8月更文挑战第24天】在现代软件开发和企业信息化建设中,身份认证与授权是不可或缺的一环。SSO(Single Sign-On,单点登录)和OAuth 2.0作为两种重要的身份认证与授权机制,各自具有独特的特点和应用场景。本文将详细探讨这两种机制的区别,并分享在工作学习中的技术干货。
185 0
|
7月前
|
安全 数据安全/隐私保护 UED
|
JSON 安全 Cloud Native
什么是单点登录?什么又是 OAuth2.0?
什么是单点登录?什么又是 OAuth2.0?
176 0
|
存储 NoSQL Redis
什么是单点登录?
我们在真正的项目开发中一个项目往往是大型的,这时候会把一个单系统拆分成多个子系统,比如淘宝和天猫,虽然是两个系统,但隶属于一个公司开发的产品,当我们登录其中一个时,另一个也会登录。
128 0
|
存储 安全 前端开发
基于OIDC的SSO单点登录
基于OIDC的SSO单点登录
1176 0
|
安全 前端开发 JavaScript
|
消息中间件 前端开发 JavaScript
SSO 单点登录和 OAuth2.0 的区别和理解
SSO 单点登录和 OAuth2.0 的区别和理解
|
前端开发 算法 安全
单点登录 SSO 的实现
单点登录让你一次性解决多应用认证的繁琐
401 3
单点登录 SSO 的实现
|
JSON NoSQL 应用服务中间件