【问题标题】:ADAL in a loop on the webserverADAL 在网络服务器上循环
【发布时间】:2014-10-31 15:06:55
【问题描述】:

我正在创建一个使用 Azure Active Directory 身份验证库作为身份验证提供程序的网站。我按照本教程在我的开发环境中建立了一个工作环境。

https://github.com/AzureADSamples/WebApp-OpenIDConnect-DotNet

到目前为止,一切都运行良好。我能够使用租户用户进行身份验证。因为您必须对所有页面进行身份验证,所以我对所有控制器使用 [Authorize] 属性。我使用 web.config 文件中的不同设置将相同的应用程序发布到网络服务器。我创建了 2 个应用程序:“Apps Test”和“Apps”。

当站点现在正在运行时,多个用户可以使用他们自己的 Azure 租户凭据登录。一段时间后,一些用户在尝试登录该站点时陷入了循环。网络服务器在事件日志中给出以下错误:

异常类型:OpenIdConnectProtocolInvalidNonceException

异常消息:IDX10301:在 jwt 令牌中找到的“nonce”确实 与预期的随机数不匹配。

当我重新启动应用程序池并重新启动站点时,用户能够再次登录。一会儿……

我不知道去哪里找。你知道可能是什么原因吗?

【问题讨论】:

  • 你有没有为这个问题找到合适的解决方案?我们期待同样的结果,即使是 OpenId Connect 3.0.1,它应该可以解决这个问题。
  • 我知道这有点旧,但增加了 2 美分。以下答案中提到的解决方案应该解决随机数问题。但是,如果您遇到

标签: c# asp.net-mvc iis azure adal


【解决方案1】:

我们已经看到了这个问题

  1. 在一个标签上开始登录
  2. 当提示输入 U / P 时,打开一个新选项卡并浏览到该站点
  3. 从新标签开始登录
  4. 当提示输入 U / P 时,切换回上一个选项卡
  5. 在上一个选项卡上完成登录
  6. 您应该会看到一个错误。

这里有一个建议的修复方法:

https://github.com/AzureADSamples/WebApp-OpenIDConnect-DotNet/wiki/The-'nonce'-found-in-the-jwt-token-did-not-match-the-expected-nonce

【讨论】:

    【解决方案2】:

    我知道这有点旧,但增加了 2 美分。Brent Schmaltz 提出的解决方案应该解决随机数问题。但是,这也可能与bug in the OWIN Middleware 有关。简而言之...由 OWIN 中间件设置的 cookie 有时会消失。我们已经使用Kentor.OwinCookieSaver 解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      • 1970-01-01
      • 2011-08-03
      • 2011-04-18
      • 1970-01-01
      • 2018-04-29
      • 1970-01-01
      相关资源
      最近更新 更多