http 400: размер запроса заголовка слишком велик при входе пользователя с использованием многофакторной аутентификации
Я пробую Azure AD-B2C. Регистрация пользователя / вход в систему в порядке, когда MFA выключен. Но когда я включаю его, и пользователь пытается войти в систему и предоставляет номер телефона, и запрашивает текстовое сообщение, нажав "отправить код", я получаю сообщение об ошибке Http 400: размер заголовков запроса слишком длинный. У кого-нибудь еще есть эта проблема?
3 ответа
Ошибка HTTP 400: размер запроса заголовка слишком длинный, как правило, происходит из-за слишком большого количества файлов cookie.
Вход в Azure AD B2C осуществляется через login.microsoftonline.com, как и почти все службы Microsoft (O365, Azure и т. Д.). Таким образом, если у вас есть несколько учетных записей, в которые вы вошли через эти службы, вы накапливаете файлы cookie, которые могут вызвать эту проблему.
Очистка файлов cookie должна решить эту проблему. Если это происходит периодически, вы должны отредактировать свой вопрос, включив в него подробную информацию о запросе и файлах cookie, чтобы наилучшим образом выяснить, что является раздутым запросом и как его уменьшить.
Краткий ответ: файл с пользовательским интерфейсом не был найден службой входа Microsoft. После того, как он был отправлен, это привело к ошибке.
У меня была та же ошибка с AAD B2C, но проблема не в файлах cookie. В моем случае я получил ошибку при тестировании на портале Azure B2C, проверяя политики и страницы пользовательского интерфейса. Мы используем хранилище BLOB-объектов Azure для быстрой настройки входа в систему и масштабирования без нашего внимания. Проблема была обнаружена при использовании моего тестового сайта с использованием сервиса B2C. Я поместил остановку / остановку в методе "Public Task OnRemoteFailure(контекст RemoteFailureContext)" контроллера учетной записи. Сообщение отладчика дало мне полный контекст ошибки, ошибки http 404, и это дало имя файла, который он пытался найти. Хранение блобов чувствительно к регистру. Конфигурация настройки, используемая для настройки B2C, имеет имена camelCase. Группа, создавшая фактическую настройку пользовательского интерфейса, использует все строчные имена. Потребовался кто-то, имеющий доступ ко всем активам, чтобы найти простую проблему с названием дела. Ошибки в распределенных системах могут быть сложными.
Мы столкнулись с этой проблемой только сегодня, и я хотел добавить это на случай, если это будет полезно.
После входа на портал Azure перейдите в раздел — Azure Active Directory — Регистрация приложений — {Ваше приложение} — Манифест.
Прокрутите вниз, пока не найдете свойство: groupMembershipClaims.
В нашем случае для этого параметра было установлено значение «Все» в приложении, которое выдавало ошибку 400 из-за слишком большого размера заголовка запроса.
Решение
Изменен манифест, чтобы он содержал значение «DirectoryRole, ApplicationGroup» , но его можно изменить, чтобы оно содержало все, что вы считаете необходимым для вашего приложения. «Все» создавало файл cookie, который был очень большим, если пользователь принадлежал ко многим группам пользователей. Как только это изменение было сделано в Azure, мне пришлось очистить файлы cookie моего браузера и повторно пройти аутентификацию, и все работало без проблем.