2017-09-07 119 views
5

我刚刚收到以下错误,当我试图从portal.azure.com运行built-in b2c编辑策略时。我有2个打开的门户选项卡。为什么我收到此错误?Azure Portal:错误请求 - 请求太长

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

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

如果是同一个问题,在创建新问题之前不应该陈旧cookies be deleted


我看到了很多的饼干为https://login.microsoftonline.com

chrome cookies node

screen shot 1 of cookies screen shot 2 of cookies

回答

15

错误HTTP平滑400:头要求的尺寸过长一般都是因为太多的饼干或饼干太大而发生

Azure AD B2C的登录经历了login.microsoftonline.com,几乎每个Microsoft服务(O365,Azure等)都是如此。因此,如果您有多个帐户通过这些服务登录过,那么您就会累积可能导致此问题的Cookie。

由于开发人员使用他们的公司帐户登录到Azure门户,也可能使用B2C管理员帐户,然后使用多个登录名测试他们的B2C驱动的应用程序,这对开发人员而言会比终端用户频繁得多。

从长远来看,答案将允许Azure AD B2C客户指定他们自己的自定义域。这使得应用程序的B2C Cookie与login.microsoftonline.com中的所有其他内容隔离。截至2017年9月16日,该功能仍在开发中。你可以支持此功能,并通过在Azure的AD B2C反馈论坛表决跟踪其进展情况:Customer-owned domains

然而,在此期间,有两两件事你可以探索

  1. 清除您的cookies。这肯定会每次都有效,这很麻烦,特别是如果提供给最终用户。

  2. 限制您在令牌中包含的索赔金额。的属性越你include in your policy,你会用哪个让你少保证金饼干从其他Microsoft性质

注较长的HTTP请求结束:这是同样的问题:http 400: size of header request is too long when signing in user using Multifactor authentication

0

的问题是,因为多个租户和那些创造饼干之间的切换。我们经常遇到这个问题。据我所知,唯一的解决方案是删除cookie。

如果你是一个情人铬有一个编辑cookie的扩展,使用并尝试删除的饼干login.microsoftonline.com & portal.azure.com

+2

虽然通常删除的cookie对我而言,我认为这不是对客户的合理期望,尤其是那些对cookies不熟悉的用户,以及如何删除它们。如果有人可以同时登录到许多Google应用程序/服务(使用SSO),为什么它应该与微软有所不同呢? –

+0

客户从未遇到过这种问题。只有我们的开发人员碰到这种情况,因为我们正在切换多个租户和多个租户策略。 – Ramakrishna

+1

其实我们有几位客户本周就会遇到这个问题。他们通过我们的客户应用程序使用Office 365 + Azure AD B2C。 –

0

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

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

我没有尝试过的方法上面关于插件,但会给它一个去为它有点不是杀死所有浏览器窗口