Oauth 2.0 在OpenID Connect中,什么';“的目的是什么?”;代码id“U令牌”;“混合工作流”时;代码“;flow能更安全地完成同样的事情吗?

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令牌的混合

在使用OpenID Connect/OAuth2学习ASP.NET身份安全课程时,我了解了不同工作流的区别和优缺点

具体来说,我对
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
    混合流特性

    使用响应类型code id_token重定向,并在查询字符串中接收回id token以及授权代码。要防止替换攻击,请在重定向期间提供一个nonce值,然后验证响应中是否存在与id令牌声明相同的值

    安全性

    就安全性而言,我想说它并不比PKCE差,因为它的安全性是经过适当考虑的,并包含在安全性中

    混合使用


    如果需要上述行为,则仅使用混合流。它不是最常用的流,因为在使用auth Cookie的web应用程序中,前端可以很容易地通过其后端获取用户信息,而后端又可以调用用户信息端点。

    混合流的用例适用于需要不同令牌作为前端和后端的web客户端:

    • Web前端接收id令牌并可以读取其声明
    • 只有web后端接收access+刷新令牌,然后向web前端发出身份验证cookie
    混合流特性

    使用响应类型code id_token重定向,并在查询字符串中接收回id token以及授权代码。要防止替换攻击,请在重定向期间提供一个nonce值,然后验证响应中是否存在与id令牌声明相同的值

    安全性

    就安全性而言,我想说它并不比PKCE差,因为它的安全性是经过适当考虑的,并包含在安全性中

    混合使用

    如果需要上述行为,则仅使用混合流。它不是最常用的流,因为在使用auth Cookie的web应用程序中,前端可以很容易地通过后端获取用户信息,而后端又可以调用用户信息端点