ADAL Azure Active Directory SignOut перенаправление URL-адрес больше не работает

Реализованная проверка подлинности для моего веб-приложения с помощью azure AD 5 недель назад, имела несколько первоначальных проблем, из-за которых, если пользователь кэшировал учетные данные из другого каталога (в данном случае моего университета), вход не будет работать должным образом. Решение состояло в реализации следующего кода:

public void SignIn(bool? signedOut)
    {
        // Send an OpenID Connect sign-in request.
        if (!Request.IsAuthenticated)
        {
            // If the user is currently logged into another directory, log them out then attempt to
            // reauthenticate under this directory
            if (signedOut == null || signedOut == false)
            {
                HttpContext.GetOwinContext().Authentication.SignOut(
                    new AuthenticationProperties { RedirectUri = Url.Action("SignIn", "Account", routeValues: new { signedOut = true }, protocol: Request.Url.Scheme) },
                    OpenIdConnectAuthenticationDefaults.AuthenticationType, CookieAuthenticationDefaults.AuthenticationType);
            }
            else
            {
                HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = Url.Action("Dashboard", "User", routeValues: null, protocol: Request.Url.Scheme) },
                    OpenIdConnectAuthenticationDefaults.AuthenticationType);
            }
        }
    }

То, что это по существу делает, это заставить пользователя выйти, а затем немедленно войти обратно, процесс действительно занимает около 1,5 секунд, поэтому казалось, что аккуратное решение, чтобы стереть любые кэшированные учетные данные. Это работает в течение последних 5 недель, но внезапно перестал работать на обоих моих тестовых и живых систем. Выход будет работать без сбоев, но перенаправление обратно на url-адрес signin не срабатывает, поэтому пользователь попадает на экран в прикрепленном скриншоте . Вы можете просмотреть указанный сайт здесь, проблема появляется при нажатии кнопки входа в систему.

После двойной проверки системы управления версиями я могу подтвердить, что любые изменения, которые я недавно внес в код, не могли вызвать эту проблему, это почти выглядит так, как будто произошло изменение в том, как microsoft обрабатывает вещи на их стороне.

Архитектура: веб-приложение Azure, работающее на .NET 4.5

Заранее спасибо и не стесняйтесь, дайте мне знать, если я могу предоставить больше полезной информации,

Спасибо,
Крейг

1 ответ

  1. Я не уверен, с чем может быть проблема, с которой вы столкнулись локально, но у меня были проблемы, когда я опубликовал в Azure, потому что он перезаписывал мой параметр ida:Audience. Взгляните на свою паутину.config с помощью Kudu и посмотреть, если это все еще, как вы хотите.

    Azure AD + ADAL.JS + App Service-только одна претензия на ClaimsPrincipal.Текущий.Претензии