OAuth2 OpenID Connect概述

 在传统的Client-Server认证模型中,客户端请求访问服务器上受限的资源(Protected Resource),需要通过使用资源所有者(Resource Owner)的凭证在服务器上进行认证。为了支持第三方应用程序访问受限资源,资源所有者需要向第三方应用共享其凭证。这就会造成以下问题:

  1. 第三方应用为了后续使用,会存储资源所有者的凭证主要是密码。
  2. 服务端需要支持密码认证,尽管密码认证不安全。
  3. 第三方应用获得对资源的过度访问而不仅局限于受限资源,且资源所有者没有办法对其进行限制。
  4. 资源所有者无法收回权限,除非修改密码。
  5. 如果第三方应用的密码被破解,就会导致所有被该密码保护的数据被泄露。

OAuth2简介:

OAuth2是一个委托协议,它可以让那些掌控资源的人允许某个应用来访问他们掌控的资源,注意这时候是代表那些人而不是假冒或模仿那些人,这些应用从控制者得到授权(Authorization-你能干什么?)而不是身份认证(Authentication-你是谁?)和Access Token来访问这些资源。

OAuth2 授权服务器:

这里面主要包含四个角色:

  1. Client:需要授权的客户端。
  2. Resource Owner:资源所有者。
  3. Authorization Server:授权服务器。
  4. Resource Server:资源服务器,顾名思义,用来专门保存资源的服务器,接受通过访问令牌进行访问。

授权类型:

 

 

 Scope范围:代表资源所有者在被保护资源的一些权限

可由自己决定,如将读权限分配为ReadScope,写权限为WriteScope等。

如在Access Token(用来访问被保护的资源):需描述出Scope的范围和持续时间等。

Refresh Token:

用来获取Access Token的凭证,也是Authorization Server 发给客户端的凭证。

它在传递参数中是可选的,刷新获得的Access Token 权限可能会越来越小。

 OpenID Connect简介:

 

 

 为什么不使用Access Token来进行身份认证呢?

 

posted @ 2020-10-12 20:20  zhouslthere  阅读(310)  评论(0编辑  收藏  举报