Identity Server 4扩展身份验证会话

时间:2018-08-30 16:28:02

标签: c# .net-core identityserver4 okta

现在,我已经为此苦苦挣扎了好几个星期,而我根本找不到答案。

我已经将Identity Server 4设置为Okta的中介,以作为几个Angular应用程序的ID提供程序。为此目的,它工作得很好。除此之外,无论我尝试更改什么,在30分钟后,无提示刷新都会报告“需要登录”。并尽可能搜索Google,我似乎根本无法弄清楚如何使该会话保持有效。或者我可能是盲人,想念它。看起来很简单-延长会话时间-但是我遇到障碍,却无法做到这一点。

我的设置:

services.AddAuthentication(options =>
{
    options.DefaultSignInScheme = "oidc";
})
.AddOpenIdConnect("oidc", "OpenID Connect", options =>
{
    options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
    options.SignOutScheme = IdentityServerConstants.SignoutScheme;
    options.GetClaimsFromUserInfoEndpoint = true;
    options.UseTokenLifetime = true;

    options.Authority = Configuration["Authority"];
    options.ClientId = Configuration["OktaAppId"];
    options.SaveTokens = true;

    options.TokenValidationParameters = new TokenValidationParameters
    {
        NameClaimType = "name",
        RoleClaimType = "role", SaveSigninToken = true
    };
});

这个SO问题似乎相关,但它来自2017年,没有明显的解决方案,或者是:Session Timeout when using IdentityServer4 and Oidc client causing Silent Renew to stop working

我的无提示刷新代码正在运行-每次调用我都获得新令牌。但是,在30分钟之后,对授权端点的调用结束,这将终止似乎是授权会话cookie的idsrv.session cookie。我发现用于扩展会话的解决方案似乎与不使用OIDC的登录有关,因此,会话扩展似乎不适用于我的情况(至少,需要更改的属性不存在) OIDC选项对象)。

另一个有趣的,也许是相关的细节...看来,当击中了授权端点时,使用提示=无进行静默刷新时,没有重定向到Okta。我不确定这是否很重要,还是不确定ID4是否应该直接与OKta通信以验证其会话。

无论如何,我已经不知所措了。我通常不向SO提出问题,因为我似乎在写质量问题时非常糟糕。希望我能满足这个社区的需求。

0 个答案:

没有答案