Я искал и искал и не могу найти ответ на свой вопрос.
В настоящее время у меня есть несколько 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",
}
};
}
Я бы хотел, чтобы каждое приложение управляло собственным сеансом аутентификации.