【问题标题】:Nonce cookie not being returned in Code flow, .AspNetCore.Identity.Application cookie returned instead代码流中未返回 Nonce cookie,而是返回了 .AspNetCore.Identity.Application cookie
【发布时间】:2022-01-08 12:46:19
【问题描述】:

我们已将运行 openiddict 的应用程序和有问题的客户端应用程序分别升级到 .net core 3.1 和 .net framework 4.8。 Openiddict 也更新到 3.1.0

自从这次更新,以及由此产生的两个项目的变化,我们的 .net 框架 asp.net mvc 5 应用程序开始出现异常 IDX21323:RequireNonce 是“System.Boolean”。 OpenIdConnectProtocolValidationContext.Nonce 为空,OpenIdConnectProtocol.ValidatedIdToken.Payload.Nonce 不为空。无法验证随机数。如果您不需要检查 nonce,请将 OpenIdConnectProtocolValidator.RequireNonce 设置为“false”。请注意,如果找到“nonce”,则会对其进行评估。

在检查从我们的连接/授权端点返回到客户端应用程序的登录回调(称为 signin-sevanidentity)的重定向请求后,我们看到它并没有像我们在生产实例中看到的那样接收到 OpenIdConnect.nonce 的 cookie。客户端无法识别的 AspNetCore.Identity.Application

更新版本中的回调: OpenIdConnect.nonce Header Info

工作生产实例中的回调: ProductionHeaderInfo

不确定我是否弄乱了 openiddict、客户端或两者中的配置。

【问题讨论】:

    标签: openiddict


    【解决方案1】:

    我找到了解决这个特定问题的方法。根本原因是因为我在客户端的 OpenIdConnect 配置中使用了不正确的响应类型。我使用的是“code id_token”而不是“code”

    当我去修改 OpenIdConnectResponseType 枚举值时,我发现代码不是其中之一,只有 2 个选项。

    原来我错误地安装了一个不需要的包,它覆盖了扩展。 Microsoft.IdentityModel.Protocol.Extensions 由“Microsoft Corporation”而非“Microsoft”发布

    Nuget Package name and version

    卸载此包后,我能够按预期添加代码响应类型。

    【讨论】:

      猜你喜欢
      • 2020-11-08
      • 2021-10-09
      • 2017-03-12
      • 2012-08-25
      • 2017-05-30
      • 2018-11-10
      • 1970-01-01
      • 2013-05-30
      • 1970-01-01
      相关资源
      最近更新 更多