Аутентификация Azure AD с использованием OpenIdConnect не создает файл cookie авторизации - PullRequest
0 голосов
/ 29 ноября 2018

У нас есть приложение MVC.Net (c #).Мы интегрировали его с Active Directory Azure с помощью OpenIdConnect.

Аутентификация через активный каталог работает нормально во всех средах.Мы протестировали и развернули это приложение в

  1. Система разработчика
  2. Промежуточный сервер
  3. Производственный сервер
  4. Производственный сервер (Вторичный резервный сервер, только когда основнойне работает)

Рабочий процесс проверки подлинности работает правильно, как рекомендуется и ожидается во всех средах.Рабочий процесс выглядит следующим образом:

  1. Пользователь попадет на страницу нашего приложения.
  2. Пользователь выберет «Вход в Azure AD» для аутентификации через Azure AD.
  3. Пользователь будет перенаправлен в рабочий процесс аутентификации Azure AD.Пользователь войдет в Azure и запросит экран согласия.
  4. После получения согласия пользователь будет перенаправлен обратно в нашу систему, где будет создан файл cookie для проверки подлинности.

Ниже приводится проверка подлинности.конфигурация в классе запуска.

    app.SetDefaultSignInAsAuthenticationType(DefaultAuthenticationTypes.ApplicationCookie);
    app.UseOpenIdConnectAuthentication(
            new OpenIdConnectAuthenticationOptions
            {
                AuthenticationMode = AuthenticationMode.Passive,
                AuthenticationType = OpenIdConnectAuthenticationDefaults.AuthenticationType,
                Authority = AADAuthority,
                TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuer = false
                },
                Notifications = new OpenIdConnectAuthenticationNotifications()
                {
                    RedirectToIdentityProvider = AppOpenIdConnectAuthenticationNotifications.RedirectToIdentityProvider,
                    MessageReceived = AppOpenIdConnectAuthenticationNotifications.MessageReceived,
                    SecurityTokenReceived = AppOpenIdConnectAuthenticationNotifications.SecurityTokenReceived,
                    SecurityTokenValidated = AppOpenIdConnectAuthenticationNotifications.SecurityTokenValidated,
                    AuthorizationCodeReceived = AppOpenIdConnectAuthenticationNotifications.AuthorizationCodeReceived,
                    AuthenticationFailed = AppOpenIdConnectAuthenticationNotifications.AuthenticationFailed
                }

AADAuthority - это переменная со значением https://login.microsoftonline.com/common/.

Другие обязательные параметры устанавливаются перед началом перенаправления аутентификации, например ClientId, RedirectUri и Prompt.

Проблема заключается в том, что при развертывании на сервере продукта

  1. Он работает правильно в течение дня или двух, и пользователь может успешно войти в систему.
  2. Однако после определенного периода он перестает работать (обычно на деньили два) и больше не создает и не авторизует cookie при перенаправлении обратно в нашу систему.
  3. Если приложение перезагружено, оно начинает работать и снова останавливается через определенное время.

Я сделалнекоторые поиски, чтобы увидеть, сталкивался ли кто-то с подобной проблемой раньше.

Связанная статья, которую я нашел до сих пор: https://github.com/IdentityServer/IdentityServer3/issues/2091.

Любая помощь, предложение или комментарий будут полезны.

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