Q:什么情况下选择OAuth2.0鉴权?
A:OAuth2.0主要解决的是系统间授权的问题,当client / user agent不被资源拥有者信任,所以不给client/user agent传递用户名和密码的时候,可以选择使用OAuth2.0鉴权。
做好生产环境隔离的前提下,一般内部服务之间调用也不通过OAuth认证,而是可以直接调。安全要求严格时可以考虑采用客户端凭证模式(Client Credential Grant)。OAuth2.0主要场景是开放api第三方调用或App调用。
Q:OAuth2.0是一个认证协议吗?
A:不是。它是一个授权框架,仅用于授权代理,并不是一个或一组协议。
Q:OAuth2.0支持什么通讯协议?
A:OAuth2.0仅支持HTTP协议。
Q:OAuth2.0有规定的授权处理机制吗?
A:没有。用户可根据具体使用场景选择授权处理机制。

根据具体场景选择授权机制
Q:OAuth2.0的token一定要是bearer token吗?
A:不是。OAuth2.0并没有定义token的格式,也没有定义加密方法,token格式和加密方法由架构师设计决定。
常见的token种类有:
1.Access Token:用于代表一个用户或服务直接去访问受保护的资源。
2.Bearer Token:不管是谁拿到token,都有权访问资源。
3.Proof of Possession(POP Token):可以校验客户端是否对token有明确的拥有权。
4.Refresh Token:一般仅存在于授权码模式中,用于去授权服务器获取一个新的访问令牌,也就是刷新令牌,简化令牌的获取。
5.Authorization Code Token:授权码模式中的code参数,用于获取访问令牌和刷新令牌。
Q:什么是授权服务器?什么是资源服务器?什么是资源拥有者?
A:授权服务器:主要的作用是给用户授权,它一般集成了用户登录认证(user identity)模块,用户登录统一授权第三方应用可以访问自己在资源服务器上的资源。
资源服务器:资源服务器下放置需要进行OAuth2.0认证的API。
在生产环境中,授权服务器与资源服务器分开部署。
资源拥有者(Resource Owner):相当于是用户。例如我在微信上有数据,我授权某个网站/APP使用我的微信信息,让它能使我通过微信登录上去。
Q:授权服务器有何作用?
A:授权服务器一般具备以下作用:授权、发放token、校验token、注销token。
OAuth2.0-Auth Server的作用
Q:scopes的作用是什么?
A:scopes是OAuth2.0支持的一种标准的权限机制,比如读写权限区分,加入scopes的话,资源服务器端要解释scopes并做权限判断逻辑。
也可以不使用scopes,而采用其它权限机制。
Q:Refresh Token如何保证安全?
A:Refresh Token主要用途是在授权码模式中,Access Token到期后方便换新,否则要走一个完整OAuth2.0授权码流程。它不是主要用来解决安全问题,安全由OAuth2.0流程+规范本身来解决。