Azure门户:错误请求 - 请求太长

时间:2017-09-07 15:34:32

标签: azure-active-directory azure-ad-b2c azureportal

当我尝试从built-in b2c运行portal.azure.com修改政策时,我收到了以下错误消息。我打开了2个门户选项卡。为什么我收到此错误?

  

错误请求 - 请求太长   HTTP错误400.请求标头的大小太长。

注意:我在测试this same error message时遇到了active-directory-b2c-dotnet-webapp-and-webapi sample project。提供的原因是我发送了太多cookie。是同样的问题吗?

如果是同一个问题,在创建新问题之前不应该过时cookies be deleted吗?

我确实看到很多https://login.microsoftonline.com

的Cookie

chrome cookies node

screen shot 1 of cookies screen shot 2 of cookies

6 个答案:

答案 0 :(得分:24)

错误 HTTP 400:标头请求的大小太长通常会发生,因为太多的Cookie或Cookie太大

Azure AD B2C的登录通过login.microsoftonline.com进行,几乎所有Microsoft服务(O365,Azure等)都是如此。因此,如果您已经拥有多个已登录这些服务的帐户,那么您正在累积会导致此问题的Cookie。

开发人员使用公司帐户登录Azure门户,也可能使用B2C管理员帐户,然后使用多次登录测试他们的B2C驱动的应用程序,这对开发人员来说必将比最终用户更频繁地发生。

从长远来看,的答案是允许Azure AD B2C客户指定自己的自定义域。这使应用程序的B2C cookie与login.microsoftonline.com中的所有其他cookie隔离。截至2017-09-16,此功能仍在开发中。您可以通过在Azure AD B2C反馈论坛中投票来支持此功能并跟踪其进度:Customer-owned domains

但是,在此期间,您可以探索两件事

  1. 清除Cookie 。这肯定会每次都有效,这很麻烦,特别是如果呈现给你的最终用户。

  2. 限制您在令牌中包含的声明数量。您include in your policy的属性越多,您将获得更长的http请求,这样可以减少来自其他Microsoft属性的Cookie的保证金

  3. 注意:这与以下问题相同:http 400: size of header request is too long when signing in user using Multifactor authentication

答案 1 :(得分:1)

如果您的azure帐户遇到“HTTP错误400错误请求 - 请求太长”,您可能还需要检查该网址是否已由微软更新。

就我而言,我想查看我的Azure订阅。我曾经去过这个网址: https://account.azure.com/Subscriptions

但是最近它开始给我“Bad Request Headers Too long”问题。 我检查了网址,发现它现在是访问我的订阅的正确位置: https://account.windowsazure.com/Subscriptions

答案 2 :(得分:0)

问题是因为在多个租户和创建cookie的人之间切换。我们经常面对这个问题。据我所知,唯一的解决方案是删除cookie。

如果您是Chrome爱好者,则会有一个编辑Cookie扩展程序,使用它并尝试删除login.microsoftonline.com&的cookie。 portal.azure.com

答案 3 :(得分:0)

我认为问题在于样本MVC应用程序中使用的默认OWIN实现,您唯一能做的就是关闭浏览器(以及所有其他实例)并重新启动。

你可以看到cookie变得越来越大,然后最终浏览器放弃了。

我还没有尝试过上面关于插件的方法,但是会让它变得比杀死所有浏览器窗口更顺畅

答案 4 :(得分:0)

您可能还想查看描述为here的b2clogin.com。根据Microsoft:

  
      
  • 不再与其他Microsoft服务共享Cookie。
  •   

答案 5 :(得分:-2)

我收到多个答案,这是因为我是太多活动目录的一部分。遇到此问题时,我是ZERO活动目录的一部分。我清除了我的Cookie并完成了大约两个步骤,然后再次发生这种情况。该请求似乎在请求中发送了许多Microsoft Cookie,Azure cookie,facebook cookie,google cookie,adsense cookie和linkedin cookie,但是删除它们都无济于事。我终于使用了隐身标签。

tl; dr尝试使用隐身标签