讲OAuth2.0之前,我们先理解一个概念,授权用户和资源权限的概念
授权用户:用户访问某个应用系统,该应用系统请求认证中心授权以获取这个登录用户的信息,但并没有得到这个用户的密码,这个就是OAuth2.0实现的要素。
资源权限:用户是否有权限访问某个系统的资源,在未登录之前,资源是保护的,CAS认证即是这种实现。
再来说说oauth2.0,我们先不要把他认为是一门技术,更确切的说,应该是一个标准模型,只要这个标准模型符合你的应用场景,用什么技术,如何开发,都可以。oauth2主要有四种模式,包含授权码模式、简单授权模式、密码模式和客户端模式,由于授权码模式逻辑比较严谨,是安全的,又比较通用 ,所以我这边以授权码模式针对性进行介绍下。
该oauth2.0模型要扣紧以下三个原则:
1、首先对于用户来说,需要访问系统资源
2、对于资源系统来讲,他请求认证中心以授权用户信息
3、对于认证中心,就是负责用户登录及授权
所以业务流程应该是这样的,用户请求资源--》系统资源请求授权--》认证中心授权--》授权通过访问资源
主要业务流程如下:
业务时序图如下:
应用场景有:
应用场景有:单点登录、授权登录、跨屏登录和扫码登录等
单点登录:一般只有一个认证中心,多个系统只要一个系统进行登录,其他系统免登
授权登录:多认证源,如支付宝、微信和相关认证源的方式进行登录
跨屏登录:不同端,如有app,pc、设备等,通过app进行登录,授权pc或某个设备进行登录
扫码登录:以扫码链接的方式进行授权登录