Oauth 2.0 OpenID连接和服务器端授权代码流

Oauth 2.0 OpenID连接和服务器端授权代码流,oauth-2.0,openid-connect,Oauth 2.0,Openid Connect,我有几个问题 授权代码流和nonce 使用授权代码流时,是否需要在客户端验证nonce?在一般的OAuth提供者实现中,从授权代码获取访问令牌的过程只工作一次。由此看来,授权代码流似乎已经在不使用nonce的情况下支持重放攻击 授权代码流和ID令牌 在web应用程序中使用授权代码流有什么好处? ID令牌是一种身份验证机制,而不是授权机制,据我所知,它用于验证哪个OpenID提供者正在为哪个中继方验证哪个用户 但在授权代码流中 OAuth 2.0要求使用HTTPS。因此,如果SSL证书验证得到正

我有几个问题

授权代码流和nonce 使用授权代码流时,是否需要在客户端验证nonce?在一般的OAuth提供者实现中,从授权代码获取访问令牌的过程只工作一次。由此看来,授权代码流似乎已经在不使用nonce的情况下支持重放攻击

授权代码流和ID令牌 在web应用程序中使用授权代码流有什么好处? ID令牌是一种身份验证机制,而不是授权机制,据我所知,它用于验证哪个OpenID提供者正在为哪个中继方验证哪个用户

但在授权代码流中

  • OAuth 2.0要求使用HTTPS。因此,如果SSL证书验证得到正确实现,它将成为有效的OpenID提供者的证明
  • 在一般的OAuth提供者实现中,当从授权码获取访问令牌时,下面将验证授权码、客户端ID和密码的组合。由此,它将证明正在从正确的OAuth客户端执行访问令牌获取过程
  • 通过指定状态参数来创建授权请求,并在获取访问令牌时对其进行验证,它将证明正在从正确的用户获取访问令牌

    • 我不是OpenID Connect的权威,但这是我的两分钱

      授权代码流和nonce

      使用授权代码流时,是否需要在客户端验证nonce

      该规范规定,如果在授权请求中发送nonce,则必须对其进行验证(请参阅中的“nonce”)。但是,授权代码流不需要发送nonce,因此您可以完全忽略它。在授权代码流的情况下,我认为您的观点是正确的,代码减轻了重播攻击——使nonce变得不必要。然而,由于可以在需要nonce的情况下使用隐式/混合流,因此id_令牌验证逻辑也可以相同,即“如果在身份验证请求中发送了nonce值,则必须存在nonce声明并检查其值”

      授权代码流和ID令牌

      在web应用程序中使用授权代码流有什么好处

      我认为授权代码流的好处在于,您可以将令牌放在浏览器之外,并且可能只将令牌放在服务器端

      这是