OAuth身份验证系统中的资源服务器如何验证令牌?

时间:2016-05-03 04:45:13

标签: authentication oauth

我知道

有类似的问题
http://stackoverflow.com/questions/12296017/how-to-validate-an-oauth-2-0-access-token-for-a-resource-server

但它没有回答我的问题。 我想问的是,在认证服务器授予访问令牌之后,资源服务器如何验证它?通过验证,我的意思是令牌的哪些参数有助于资源服务器验证令牌的来源和真实性。 据我所知,任何黑客都可以通过分析过去的令牌来生成伪造的令牌。

2 个答案:

答案 0 :(得分:0)

我认为您将访问令牌授权授权混淆。

当用户对授权服务器(AS)进行身份验证时,服务器将生成称为授权授权的内容,其中包含所有相关信息,例如范围,发布者,到期日,等等...在大多数实现中,权限授予将持久保存到数据库或类似的持久存储。客户端接收然后发送到资源服务器(RS)的访问令牌将只是某种不透明的字符串,它唯一地标识由AS生成的有效授权授权。因此,访问令牌本身没有任何意义。

这意味着RS无法自己验证访问令牌,只有AS才能验证。 RS可以验证语法,但需要将访问令牌发送到AS进行验证。 RS和AS之间的这种交互不是OAuth 2.0标准的一部分,正如您发布的答案中所述,并且由AS实现决定如何完成此任务。

即使您说任何黑客都可以生成随机访问令牌,但只有AS可以生成并保留授权授权。这是您的RS应始终联系A​​S以验证与访问令牌链接的授权授权的有效性之前的主要原因。

我希望这能澄清你的问题。

答案 1 :(得分:0)

生成的密钥用于验证它与签名匹配。你可以用

  

https://jwt.io

通过提供密钥检查jwt令牌的签名,它将验证它,并在生成guid(客户端ID)时在oauth中生成密钥。