认证授权方式
本文最后更新于 2023-12-09,文章内容可能已经过时。
认证授权方式:
主要介绍在不同的应用场景下,如何进行网关搭建中的用户身份体系认证.
1.简单token模式:
最简单的情况,适用于一个系统内,一套前端对接一套后端系统.使用token来进行身份校验.
1.1 角色:
主要有三个角色,用户,前端,后端.
1.2 工作流程:
1.用户进入登录页面,输入账号密码
2.前端带着账号密码请求后端登录接口,登陆成功后后端返回token,存储在前端.
3.接下来访问其它接口的时候前端携带着token访问,后端校验后返回具体数据.
2.跨系统api对接:AppID、AppKey和AppSecret:
适用于系统之间对接,验证系统身份的情形.
通常以api为单位.
2.1 角色:
主要有两个角色,api提供者,api使用者.
2.2 工作流程:
1.api提供者在提供api的同时,建立生成AppID、AppKey和AppSecret的相关代码.
2.api使用者通过某些方式注册并获取自己的AppID、AppKey和AppSecret.
3.api使用者携带AppKey和AppSecret访问相关接口,key相当于用户名,表明了这个用户的权限,secret相当于密码,表明了这个用户的身份.
4.api提供者校验AppKey和AppSecret,通过后返回相关的信息.
也可以提供类似token和reflshtoken的免登陆方式.
3.跨系统用户对接:oauth2:
这种情形主要适用于第三方用户登录情况,比如系统a支持系统b登录,两边的相关配置.
或者说,在资源提供者
OAuth 2.0(Open Authorization)是一种用于授权的开放标准,允许用户授权第三方应用访问其在某一网站上存储的私有资源,而无需将用户名和密码提供给第三方应用。OAuth 2.0 主要用于身份验证(Authentication)和授权(Authorization)。
3.1角色:
资源所有者(Resource Owner): 拥有资源的用户,可以是最终用户或者应用程序。 即用户
客户端(Client): 请求访问资源的第三方应用,需要得到资源所有者的授权才能访问资源。即英雄联盟前端和英雄联盟后端
授权服务器(Authorization Server): 验证资源所有者的身份并颁发访问令牌给客户端。qq后端
资源服务器(Resource Server): 存储资源,能够接收和响应使用访问令牌请求的受保护资源。qq后端
oauth2的工作流程理解起来有些复杂,用通俗易懂的方式理解.
以qq登录英雄联盟为例.
主要有五个角色:用户,英雄联盟前端,英雄联盟后端,qq前端,qq后端.
3.2 工作流程:
3.2.1 授权码模式:
1.用户在英雄联盟前端点击qq登录
2.英雄联盟前端处理,弹出qq前端的登录页面
3.用户在qq前端的登录页面进行登录.qq前端发送信息到qq后端.
4.qq后端调用回调接口,把生成的授权码返回给英雄联盟后端.
5.英雄联盟后端拿着刚刚获得的授权码请求qq后端,获得令牌.
6.英雄联盟后端拿着令牌访问qq后端的资源服务器,获取用户信息.
7.英雄联盟后端拿着用户信息在自己的系统内进行处理.并把最终的处理信息返回给英雄联盟前端.
3.2.2 简化模式:
相当于去掉了上面授权码模式中的英雄联盟后端,直接由浏览器去请求qq后端.
3.3.3 密码模式:
相当于去掉了qq的前端,而是改成英雄联盟前端,用户输入密码后,由英雄联盟后端携带着账号密码去访问qq后端.并获取相应的信息.
这通常用在用户对客户端高度信任的情况.
3.3.4 客户端模式;
与用户授权无关的模式,而与AppID、AppKey和AppSecret模式相似,是两个客户端之间互相授权的方式.