Okta MVC Cookie身份验证-它何时过期?

时间:2019-10-31 14:08:53

标签: okta okta-api

我已经在MVC应用程序(.Net框架)中使用Cookie来跟踪Okta文档以获取Owin OpenId身份验证。

为帮助我测试“用户会话过期时会发生什么”问题的一些逻辑,我将cookie过期设置为30秒,并设置SlidingExpiration = false-像这样:

                app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                LoginPath = new PathString("/v2/account/Login"),
                ExpireTimeSpan = TimeSpan.FromSeconds(30), 
                SlidingExpiration = false
            });

            app.UseOktaMvc(new OktaMvcOptions()
            {
                OktaDomain = ConfigurationManager.AppSettings["okta:OktaDomain"],
                ClientId = ConfigurationManager.AppSettings["okta:ClientId"],
                ClientSecret = ConfigurationManager.AppSettings["okta:ClientSecret"],
                RedirectUri = ConfigurationManager.AppSettings["okta:RedirectUri"],
                PostLogoutRedirectUri = ConfigurationManager.AppSettings["okta:PostLogoutRedirectUri"],

                Scope = new List<string> { "openid", "profile", "email" },
            });

...代码对于登录和身份验证以及对okta的登录非常有效,一切都很轻松!不幸的是,用户在30秒后仍未注销。

如果我在登录后查看请求并检查Identity.Claims,则会看到过期(声明类型为“ exp” ),声明的确设置为日期/时间30秒从登录时间开始。

问题是用户保持身份验证。我可以继续发出请求,直到该exp时间过了很长时间。我看不到索赔更改的到期时间,并且在身份中看到经过身份验证的用户。在将要求该用户再次登录之前,我不确定有多少闲置状态。 (请记住,sliding设置为false,并且没有后台ajax调用)。

我也很想知道Okta中间件可能会看到该声明已过期,然后使用原始令牌进行刷新,如果用户仍然登录到okta,则保持该用户登录我的应用程序(这实际上真的很酷!)-但是当我用提琴手观看我的开发机器的活动时,我看不到有任何对okta的调用。

任何人都可以解释为什么会这样,索赔何时到期?

0 个答案:

没有答案