Невозможно отследить аутентификацию пользователя в Azure AD - PullRequest
0 голосов
/ 10 апреля 2020

Я искал и искал и не могу найти ответ на свой вопрос.

В настоящее время у меня есть несколько asp. net приложений, использующих аутентификацию OWIN OpenIdConnect. Использование Owin является обязательным требованием для этих приложений, так как они используют более старую версию asp. net. Первоначальный вход в систему перенаправляет на Azure AD должным образом и получает токен jwt. Моя проблема в том, что когда мой пользователь переключает приложения, они совместно используют токен доступа и не требуют повторного входа в систему. Хотя мне нравится удобство единого входа, мне бы хотелось, чтобы приложение снова инициировало аутентификацию, чтобы я мог видеть пользователей, переключающих приложения, в журнале Azure.

Я попытался изменить повар ie имена для разных имен. Я также попытался проверить аудиторию, которая создает исключение, не прошедшее проверку подлинности, и не переоценивает его.

Вот мой код

app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                CookieName = $"{tenantId}{clientId}"
            })
                .UseOpenIdConnectAuthentication(GetAuthenticationOptions(clientId, tenantId, clientSecret));

 private static OpenIdConnectAuthenticationOptions GetAuthenticationOptions(string clientId, string tenantId, string clientSecret)
        {
            return new OpenIdConnectAuthenticationOptions
            {
                MetadataAddress = string.Format("https://login.microsoftonline.com/{0}/.well-known/openid-configuration", tenantId),
                ClientId = clientId,
                ClientSecret = clientSecret,
                ResponseType = "id_token token",
                Resource = "https://graph.microsoft.com",
                UseTokenLifetime = true,
                AuthenticationMode = AuthenticationMode.Active,
                Notifications = new OpenIdConnectAuthenticationNotifications
                {
                    SecurityTokenValidated = SecurityTokenValidated
                }, 
                TokenValidationParameters = new TokenValidationParameters
                {
                    NameClaimType = "mailNickName",
                }
            };
        }

Я бы хотел, чтобы каждое приложение управляло собственным сеансом аутентификации.

...