У нас есть приложение ASP.NET-MVC, которое будет интегрировано с решением Red Hat Single Sign-on.
Основные операции входа и выхода уже работают. Чего мы не можем реализовать, так это функциональности выхода из системы в любом месте, то есть пользователь выходит из другого приложения, интегрированного с SSO, и мое приложение автоматически обнаруживает, что пользователь больше не вошел в систему.
Мы думаем, что решение заключается в обновлении токена для каждого запроса, но мы не знаем, как реализовать эту функцию.
Мы попытались настроить механизм аутентификации для проверки токена для каждого запроса, но, очевидно, он не работает.
public partial class Startup
{
public void ConfigureAuth(IAppBuilder app)
{
const string persistentAuthType = "keycloak_cookies"; // Or name it whatever you want
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = persistentAuthType
});
app.SetDefaultSignInAsAuthenticationType(persistentAuthType);
app.UseKeycloakAuthentication(new KeycloakAuthenticationOptions
{
Realm = "anp",
ClientId = "DPP",
KeycloakUrl = "http://xareu.anp.net:8280/auth", //senha admin/teste
CallbackPath = "/anp-dpp-web/sso/callback",
PostLogoutRedirectUrl = "/anp-dpp-web/Modulos/Index",
AllowUnsignedTokens = false,
AuthenticationType = persistentAuthType,
SignInAsAuthenticationType = persistentAuthType,
UseRemoteTokenValidation = true,
MetadataRefreshInterval = TimeSpan.Zero
});
}
}