【发布时间】:2015-12-19 22:45:52
【问题描述】:
我目前正在研究 OAuth 2.0 和 OpenID Connect,但我对授权服务器和访问令牌有疑问。该规范将授权服务器定义为:
服务器在成功验证资源所有者并获得授权后向客户端颁发访问令牌。
据我了解,客户端将用户重定向到授权服务器,用户在授权服务器上进行身份验证,授权服务器向客户端发出访问令牌。
现在出现了一件我直到现在都无法理解的事情。有两种可能的方法可以理解这一点,我正在尝试找到正确的方法:
授权服务器颁发包含用户声明的访问令牌。带有用户声明的访问令牌随每个请求一起发送到资源服务器,资源服务器能够读取这些声明,然后允许或拒绝对资源的访问。
授权服务器发出已包含明确指令的访问令牌,以允许或拒绝访问资源服务器上的资源。资源服务器因此只是读取这些信息来查看用户是否可以做某事。
第一个选项似乎是理解事物的正确方法。在这种情况下,授权服务器将管理用户的声明并发布仅包含声明(如生日、年龄、角色等)的令牌。这反过来又赋予了资源服务器另一个责任:根据声明决定资源是否可用。
第二个选项更有限。授权服务器不仅需要发布声明,还需要为每个资源发布授权,并且令牌可能会变得非常繁重,并且管理这种复杂性似乎很困难。
所以我的理解正确吗?因此,授权负责管理用户声明并发布仅包含声明的令牌?另一方面,资源服务器负责根据声明是否允许访问资源?
【问题讨论】:
标签: security authentication oauth-2.0 openid-connect