Невозможно сравнить одноразовый номер в обратном вызове OpenIdConnectAuthenticationNotifications.SecurityTokenValidateEvent, поскольку одноразовое значение в запросе всегда пусто - PullRequest
0 голосов
/ 29 ноября 2018

Иметь приложение MVC, которое использует Azure Active Directory в качестве поставщика удостоверений.Чтобы защититься от повторных атак, я хотел выполнить одноразовую проверку в функции обратного вызова SecurityTokenValidateEvent в OpenIdConnectAuthenticationNotifications.

В обратном вызове приведен код, который у меня есть.

 private async Task SecurityTokenValidateEvent(SecurityTokenValidatedNotification<OpenIdConnectMessage, OpenIdConnectAuthenticationOptions> arg){

  var nonceInClaims = arg.AuthenticationTicket.Identity.FindFirst("nonce").Value; //I get the value of nonce
  var reqQueryString = arg.Request.QueryString.Value; //Want to fetch nonce from query string. Unfortunately this is always empty.  
 }

Есть ли способ, которым я могуполучить одноразовый номер, который был отправлен в начальном запросе авторизации.

Я ознакомился с выдержками из «Современной аутентификации с помощью Azure Active Directory для веб-приложений» и многими другими веб-ссылками (https://openid.net/specs/openid-connect-core-1_0.html). Везде, где говоритсячто проверка nonce в запросе и утверждениях является единственным способом защиты от атак повторного воспроизведения. К сожалению, нет, где я вижу пример, делающий это.

Эксперты, пожалуйста, пролите немного света на это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...