使用nonce时输出的OAuth错误代码是什么?

时间:2016-10-28 17:30:38

标签: oauth-2.0 openid openid-connect nonce openid-provider

OAuth服务器(包括Open ID Connect提供商)必须检查客户端请求?error=...(如果已指定),以确保在过去5中未使用相同的客户端请求{{1}}分钟。

所有这一切都有道理,但我的问题很简单,服务器在{{1}}中返回的内容如果已经发现nonce已经被使用过了?

我已经在网上,RFC和一些SDK代码中进行了十几次搜索,但我无法找到错误返回的位置以及代码的位置。

1 个答案:

答案 0 :(得分:1)

nonce用于防止提供商生成的令牌对客户端的重放攻击。客户端将nonce发送给Provider,以便Provider可以将其包含在令牌中。这意味着客户需要跟踪它产生的nonce,而不是Provider。事实上,OpenID Connect规范甚至在http://openid.net/specs/openid-connect-core-1_0.html#IDToken中说:

  

[除了在令牌中包含它]授权服务器应该   对使用的随机数值不执行其他处理

因此,此处不需要任何错误代码,因为提供程序不会使用nonce“执行”任何操作,除非将其包含在令牌中。