OAuth2.0认证模式

当用户需要使用某个资源服务器内的部分资源时候,往往需要先拥有这个资源的访问权限,也就需要用户登录资源服务器的账号。但是如果每一次获取资源都要登录账号的话,用户体检非常的不好,而且频繁的发送账号密码信息也太安全,于是授权登录后资源服务器发给用户一个动态令牌(授权码),表明用户身份与授权访问权限,并且设置有效时间,减少了令牌泄漏的影响。
这一过程主要涉及操作用户(以下简称U),客户端(以下简称C),客户服务器(以下简称S,可能没有),第三方资源服务器(以下简称O)这几方之间的交互。

  1. 授权码模式:这也是最常用的模式;

用户操作操作向客户端向客户服务器请求资源;
客户服务器发现资源在第三方的服务器上,但是需要获取访问权限,于是就把这件事告诉客户端;
客户端加载第三方服务器的授权页面,用户在授权页给予授权,客户端获取临时授权凭证(授权码);
客户端把授权码交给客户服务器再去请求资源;
客户服务器拿着授权凭证到第三方的服务器上获取资源,在第三方的服务器检验凭证的真实性、有效期、以及对应权限后,返回资源给客户服务器;
客户服务器拿到资源,整理为约定格式后交给客户端,客户端将资源展示给用户。

举个例子:
U:“小C啊,我要看XX方案全部文件,去拿来给我。”
C找到管文件的S:“老大要看XX方案全部文件。”
S:“稍等一会,我找找……”
S:“XX方案里的几个文件在另外一个部门,我去拿一下。”
S找到另外一个部门的O:“我们老大要看XX方案全部文件,里面有几件在你们这里,麻烦拿一下。”
O:“你要的这几个文件都是内部保密的,拿着这张申请表,签字或盖章后给我。”
S回来后,告诉C:“有几个文件都是内部保密的,需要签字或盖章,你拿这张申请表给老大。”
C拿到申请表交给U:“有几个文件都是内部保密的,需要您签字或盖章。”
U:“还挺麻烦的……”
过了一会,C拿着申请表找到S:“都签好了,尽快把文件拿来吧。”
S拿着申请表找到O:“申请表弄好了,给我文件吧。”
O检查申请表确定没有问题后,将文件交给S,S将文件所有文件整理好后交给C,最后由C把文件交到U。

  1. 授权码简化模式:与授权码模式的差别只在于不经过客户服务器,完全由客户端自己处理;

用户操作操作向客户端向第三方服务器请求资源;
第三方服务器告诉客户端获取资源需要拥有访问权限;
客户端加载第三方服务器的授权页面,用户在授权页给予授权,客户端获取临时授权凭证(授权码);
客户端拿着授权凭证到第三方的服务器上获取资源,在第三方的服务器检验凭证的真实性、有效期、以及对应权限后,返回资源给客户端;
客户端拿到资源,整理后将资源展示给用户。

举个例子:
U:“小C啊,我要看XX方案全部文件,去拿来给我。”
C去档案室查找文件,发现有几个文件不在这里,按照文件目录记载,C找到另外一个部门的O:“我们老大要看XX方案全部文件,里面有几件在你们这里,麻烦拿一下。”
O:“你要的这几个文件都是内部保密的,拿着这张申请表,签字或盖章后给我。”
C拿到申请表交给U:“有几个文件都是内部保密的,需要您签字或盖章。”
U:“还挺麻烦的……”
过了一会,C拿着申请表找到O:“申请表弄好了,给我文件吧。”
O检查申请表确定没有问题后,将文件交给C,C将文件所有文件整理好,把资料交到U。

  1. 账号密码模式:与授权码模式的差别在于不通过第三方授权页获取授权凭证,而是拿着用户的账号密码直接到第三方服务器获取凭证;另外这个模式不一定要有客户服务器;

用户操作操作向客户端向客户服务器请求资源;
客户服务器发现资源在第三方的服务器上,但是需要获取访问权限,于是就把这件事告诉客户端;
客户端加载准备好的账号密码输入页面,获取用户的账号密码;
客户端将账号密码交给客户服务器再去请求资源;
客户服务器使用用户账号密码请求第三方服务器凭证;
客户服务器拿着授权凭证到第三方的服务器上获取资源,在第三方的服务器检验凭证的真实性、有效期、以及对应权限后,返回资源给客户服务器;
客户服务器拿到资源,整理为约定格式后交给客户端,客户端将资源展示给用户。

举个例子:
U:“小C啊,我要看XX方案全部文件,去拿来给我。”
C找到管文件的S:“老大要看XX方案全部文件。”
S:“稍等一会,我找找……”
S:“XX方案里的几个文件在另外一个部门,我去拿一下。”
S找到另外一个部门的O:“我们老大要看XX方案全部文件,里面有几件在你们这里,麻烦拿一下。”
O:“你要的这几个文件都是内部保密的,拿着这张申请表,签字或盖章后给我。”
S:“这样太麻烦了,我去拿印章过来。”
S回来后,告诉C:“有几个文件都是内部保密的,需要签字或盖章,你把印章拿来吧。”
C回来跟U讲:“有几个文件都是内部保密的,需要您签字或盖章,您把印章交给我,剩下的我来办。”
U:“还挺麻烦的……”
过了一会,C拿着印章S:“给你印章,有需要的直接盖章,尽快把文件拿来吧。”
S拿着印章找到O,直接申请并盖章:“申请表弄好了,给我文件吧。”
O检查申请表确定没有问题后,将文件交给S,S将文件所有文件整理好后交给C,最后由C把文件交到U。

  1. 凭证模式:与授权码模式的差别在于授权凭证是提前准备好的,不需要授权页授权,也不需要用户的账号密码;另外这个模式不一定要有客户服务器;

用户操作操作向客户端向客户服务器请求资源;
客户服务器发现资源在第三方的服务器上,但是需要获取访问权限,于是就把这件事告诉客户端;
客户端将事先准备好的凭证交给客户服务器再去请求资源;
客户服务器拿着授权凭证到第三方的服务器上获取资源,在第三方的服务器检验凭证的真实性、有效期、以及对应权限后,返回资源给客户服务器;
客户服务器拿到资源,整理为约定格式后交给客户端,客户端将资源展示给用户。

举个例子:
U:“小C啊,我要看XX方案全部文件,拿着这张申请单,去把文件拿来给我。”
C找到管文件的S:“老大要看XX方案全部文件,这是老大的申请单。”
S:“稍等一会,我找找……”
S:“XX方案里的几个文件在另外一个部门,我去拿一下。”
S找到另外一个部门的O:“我们老大要看XX方案全部文件,里面有几件在你们这里,麻烦拿一下。对了,这是我们老大写的申请单”
O检查申请单确定没有问题后,将文件交给S,S将文件所有文件整理好后交给C,最后由C把文件交到U。

2020-10-12

你可能感兴趣的:(OAuth2.0认证模式)