OpenIdConnectProtocolValidationContext.Nonce был нулевым

HI может кто-то, пожалуйста, помогите imgetting ниже ошибка при вызове Outlook Rest API

IDX21323: RequireNonce равен '[PII по умолчанию скрыт. Установите флаг 'ShowPII' в IdentityModelEventSource.cs на true, чтобы раскрыть его.]'. OpenIdConnectProtocolValidationContext.Nonce был нулевым, OpenIdConnectProtocol.ValidatedIdToken.Payload.Nonce не был нулевым. Одноразовый номер не может быть подтвержден. Если вам не нужно проверять одноразовый номер, установите OpenIdConnectProtocolValidator.RequireNonce в значение "false". Обратите внимание, что если найдено "nonce", оно будет оценено.

4 ответа

Aka IDX21323 указывает на потерю одноразового cookie (устанавливается первоначальным вызовом Challenge). Проверьте исходный вызов входа в систему (или вход в систему после обратной передачи в WebForms) и убедитесь, что у вас действительно установлен файл cookie OpenIdConnect.nonce (вкладка сети Chrome).

Если нет, то я подозреваю, что у вас та же проблема, что и у нас, а именно то, что промежуточное программное обеспечение OWIN устанавливает cookie, но его содержимое случайно перезаписывается некоторыми другими модификациями cookie вашего унаследованного приложения. Скорее всего, это ошибка промежуточного программного обеспечения OWIN (см. ASP.NET_SessionId + файлы cookie OWIN не отправляются в браузер), поскольку он обрабатывает файлы cookie через собственную реализацию представления OwinContext и Cookie, которая не синхронизирована со стандартным HttpContext.

Как исправить ошибку, если у вас отсутствует исходный cookie-файл nonce: Мы избегали любых изменений cookie-файлов во время запроса входа в систему -> поэтому промежуточное программное обеспечение OWIN может читать / записывать свои cookie-файлы без помех.

При настройке nonce cookie, запущенного на локальном хосте (небезопасном) в браузере на основе Chromium, он блокируется из-за того, что SameSite= none и небезопасен. Исправление для этого случая - изменить localhost для использования SSL (использовать https в приложении asp.net, запущенном на localhost) и обновить URL-адрес перенаправления Azure AD для соответствия.

В приложении WebForms я получил ту же ошибку, когда использовал имя своего компьютера в URL проекта, но использовал "localhost" в качестве URL перенаправления входа в систему. Когда я установил их обоих на localhost, проблема ушла.

Если ваш клиент был создан 22 октября 2019 г. или позже, возможно, вы столкнулись с новым поведением по умолчанию, и в вашем клиенте уже включены параметры безопасности по умолчанию.

Как исправить:- перейдите в свою учетную запись Azure AD => свойства => на вкладке Управление доступом для ресурсов Azure => установите для этой вкладки значение Да.

Другие вопросы по тегам