白话OAuth2用户认证及鉴权标准流程
一、OAuth2需求场景 在说明OAuth2需求及使用场景之前,需要先介绍一下OAuth2授权流程中的各种角色: 资源拥有者(User) - 指应用的用户 认证服务器 (Authorization Server) - 提供登录认证接口的服务器,比如:github等 资源服务器 (Resources Server) - 提供资源接口及服务的服务器,通常和认证服务器是同一个应用。 第三方客户端(Client) - 第三方应用,希望使用资源服务器提供的资源 服务提供商(Provider): 认证服务和资源服务归属于一个机构,该机构就是服务提供商 如果您对这些角色承担的作用还不清晰,也请先记住这些角色,继续往下看: 从资源拥有者,即用户的角度:举个例子,用户在B应用上,想使用自己在A应用中的保存的图片等资源。所以用户希望A应用开放接口给B应用,从而使用自己的这些图片资源。 从资源提供者的角度:我想让其他厂商的应用都使用我提供的资源,以增强用户对我的的粘性。越多的第三方应用依赖于我开放的接口,就表示会有越多的用户依赖于我。参考:某某平台开放扫码登录接口。 从第三方客户端,即资源申请者的角度:A应用是一个大厂开发的,它那里用户量大。A应用既然提供了基于OAuth2的接口,我可以获取一些基本用户数据信息,我干嘛不用呢。特别是扫码登录功能接口,给我自己的用户也带来了极大的方便