Oauth 2.0 在OpenID Connect中,什么';“的目的是什么?”;代码id“U令牌”;“混合工作流”时;代码“;flow能更安全地完成同样的事情吗?
在使用OpenID Connect/OAuth2学习ASP.NET身份安全课程时,我了解了不同工作流的区别和优缺点 具体来说,我对Oauth 2.0 在OpenID Connect中,什么';“的目的是什么?”;代码id“U令牌”;“混合工作流”时;代码“;flow能更安全地完成同样的事情吗?,oauth-2.0,asp.net-identity,identityserver4,openid-connect,Oauth 2.0,Asp.net Identity,Identityserver4,Openid Connect,在使用OpenID Connect/OAuth2学习ASP.NET身份安全课程时,我了解了不同工作流的区别和优缺点 具体来说,我对code-id\u-token混合工作流的用途感到困惑,它与授权码工作流类似,只是它还从前端通道返回(简化的)id\u-token 因此,我的第一个问题是,如果稍后仍要通过后台通道再次检索完整的id令牌和访问令牌,那么首先由第一个(不太安全的)请求返回淡化的id\u令牌的目的是什么 另一件事是关于安全性的:课程讲师提到,即使没有PKCE保护,使用代码id\u令牌的混合
code-id\u-token
混合工作流的用途感到困惑,它与授权码工作流类似,只是它还从前端通道返回(简化的)id\u-token
因此,我的第一个问题是,如果稍后仍要通过后台通道再次检索完整的id令牌和访问令牌,那么首先由第一个(不太安全的)请求返回淡化的id\u令牌
的目的是什么
另一件事是关于安全性的:课程讲师提到,即使没有PKCE保护,使用代码id\u令牌
的混合工作流也被认为是安全的,原因有两个:
id\u令牌
包含一个c\u散列
值,该值将其与授权代码绑定,以防止授权代码泄漏/重放攻击id\u令牌
以完全相同的方式随授权码一起返回,如果授权码受损,我们是否应该假设id\u令牌
也受损,使此保护无效
nonce
字符串确保一次性使用授权代码nonce
在URL中以纯文本形式包含,如果攻击者能够在合法用户之前将重定向响应与授权代码一起发布到客户端,攻击将成功,对吗
鉴于这些,说具有PKCE保护的授权代码工作流(加上nonce)比没有PKCE的code id\u令牌
混合工作流更安全是正确的吗
谢谢。混合流的用例适用于前端和后端需要不同令牌的web客户端:
- Web前端接收id令牌并可以读取其声明
- 只有web后端接收access+刷新令牌,然后向web前端发出身份验证cookie
如果需要上述行为,则仅使用混合流。它不是最常用的流,因为在使用auth Cookie的web应用程序中,前端可以很容易地通过其后端获取用户信息,而后端又可以调用用户信息端点。混合流的用例适用于需要不同令牌作为前端和后端的web客户端:
- Web前端接收id令牌并可以读取其声明
- 只有web后端接收access+刷新令牌,然后向web前端发出身份验证cookie