OAuth 2.0授权服务器和访问令牌

时间:2015-12-19 14:22:22

标签: security authentication oauth-2.0 openid-connect

我目前正在学习OAuth 2.0和OpenID Connect,我对授权服务器和访问令牌有疑问。规范将授权服务器定义为:

  

服务器在成功验证资源所有者并获得授权后向客户端发出访问令牌。

据我了解,客户端将用户重定向到授权服务器,用户在授权服务器上验证自身,授权服务器向客户端发出访问令牌。

现在有一件我直到现在都无法理解的事情。有两种方法可以理解这一点,我试图找到正确的方法:

  1. 授权服务器发出包含用户声明的访问令牌。具有用户声明的访问令牌随每个请求一起发送到资源服务器,资源服务器能够读取这些声明,然后允许或拒绝访问资源。

  2. Authorization Server发出的访问令牌已经包含允许或拒绝访问资源服务器上资源的显式指令。因此,资源服务器只读取此信息以查看用户是否可以执行某些操作。

  3. 第一种选择似乎是了解事情的正确方法。在这种情况下,授权服务器将管理用户的声明并发布仅包含声明的标记(生日,年龄,角色等内容)。这反过来又给资源服务器带来了另一个责任:根据资源是否可用来决定。

    第二种选择更为有限。授权服务器不需要发出声明,而是需要为每个资源发出授权,而令牌可能会变得非常繁重,并且管理这种复杂性似乎很难。

    那么我的理解是否正确?因此,授权负责管理用户声明并发布仅包含声明的令牌?另一方面,资源服务器负责根据声明允许或不允许访问资源?

1 个答案:

答案 0 :(得分:4)

访问令牌不包含用户的声明,但ID token表示。

授权服务器负责管理访问令牌,但不一定要管理用户的声明。应该有一个单独的服务器来管理用户的声明。

没有。 2听起来很奇怪,因为存在访问令牌意味着“授权已被授予。”

OAuth 2.0(RFC 6749)是授权的规范。 OpenID Connect身份验证的规范。不要混淆。