OpenID Connect 和服务器端授权代码流
OpenID Connect and Server Side Authorization Code Flow
我有几个问题。
授权码流和随机数
使用Authorization Code Flow时是否需要在客户端验证nonce?在一般的 OAuth Provider 实现中,从授权代码中获取访问令牌的过程只进行一次。由此看来,Authorization Code Flow似乎已经支持不使用nonce的重放攻击了?
授权代码流和 ID 令牌
在 Web 应用程序中使用授权代码流有什么好处?
ID Token 是一种身份验证机制,而不是授权机制,据我所知,它用于验证哪个 OpenID 提供商正在为哪个中继方验证哪个用户。
但是在授权代码流程中,
- OAuth 2.0 要求使用 HTTPS。由此看来,如果SSL证书验证被正确执行,这将是一个有效的OpenID Provider的证明。
- 在一般的OAuth Provider 实现中,当从授权码获取访问令牌时,授权码、客户端ID 和秘密的组合在下面进行验证。由此,将证明正在从正确的 OAuth 客户端执行访问令牌获取过程。
- 通过指定状态参数来创建授权请求并在获取访问令牌时对其进行验证,将证明正在从正确的用户那里获取访问令牌。
我不是 OpenID Connect 的权威,但这是我的两分钱...
Authorization Code Flow and nonce
Do I need to verify the nonce on the client side when using Authorization Code Flow?
规范说,如果您在授权请求中发送随机数,则您必须对其进行验证(参见 http://openid.net/specs/openid-connect-core-1_0.html#IDToken 中的“随机数”)。但是,授权代码流不需要发送随机数,因此您可以完全忽略它。在授权代码流的情况下,我认为你是对的,因为代码减轻了重放攻击——使随机数变得不必要。但是,由于可以在需要 nonce 的地方使用 implicit/hybrid 流,因此 id_token 验证逻辑可能与“如果在身份验证请求中发送了 nonce 值,则 nonce声明必须存在并检查其值
Authorization Code Flow and ID Token
What are the benefits of using Authorization Code Flow in web applications?
我认为授权代码流的好处是您可以将令牌保留在浏览器之外,并且很可能只将令牌保留在服务器端。
这里是a helpful link about choosing the right flow for the right scenario
我有几个问题。
授权码流和随机数
使用Authorization Code Flow时是否需要在客户端验证nonce?在一般的 OAuth Provider 实现中,从授权代码中获取访问令牌的过程只进行一次。由此看来,Authorization Code Flow似乎已经支持不使用nonce的重放攻击了?
授权代码流和 ID 令牌
在 Web 应用程序中使用授权代码流有什么好处? ID Token 是一种身份验证机制,而不是授权机制,据我所知,它用于验证哪个 OpenID 提供商正在为哪个中继方验证哪个用户。
但是在授权代码流程中,
- OAuth 2.0 要求使用 HTTPS。由此看来,如果SSL证书验证被正确执行,这将是一个有效的OpenID Provider的证明。
- 在一般的OAuth Provider 实现中,当从授权码获取访问令牌时,授权码、客户端ID 和秘密的组合在下面进行验证。由此,将证明正在从正确的 OAuth 客户端执行访问令牌获取过程。
- 通过指定状态参数来创建授权请求并在获取访问令牌时对其进行验证,将证明正在从正确的用户那里获取访问令牌。
我不是 OpenID Connect 的权威,但这是我的两分钱...
Authorization Code Flow and nonce
Do I need to verify the nonce on the client side when using Authorization Code Flow?
规范说,如果您在授权请求中发送随机数,则您必须对其进行验证(参见 http://openid.net/specs/openid-connect-core-1_0.html#IDToken 中的“随机数”)。但是,授权代码流不需要发送随机数,因此您可以完全忽略它。在授权代码流的情况下,我认为你是对的,因为代码减轻了重放攻击——使随机数变得不必要。但是,由于可以在需要 nonce 的地方使用 implicit/hybrid 流,因此 id_token 验证逻辑可能与“如果在身份验证请求中发送了 nonce 值,则 nonce声明必须存在并检查其值
Authorization Code Flow and ID Token
What are the benefits of using Authorization Code Flow in web applications?
我认为授权代码流的好处是您可以将令牌保留在浏览器之外,并且很可能只将令牌保留在服务器端。
这里是a helpful link about choosing the right flow for the right scenario