B2C Web应用程序会话生命周期

Bil*_*oel 4 azure azure-ad-b2c asp.net-core

我正在使用B2C门户分配以下值.我假设该web app session lifetime设置将有效地设置cookie到期.但无论我做什么,它都会在两周内不断回归.(今天是14日).

在此输入图像描述在此输入图像描述

如果我使用该TicketReceived事件进行设置,context.Properties.ExpiresUtc那么我设置的值将显示在cookie中.

如果web app session lifetime不应该设置cookie,那么它有什么用?无论如何,我无法弄清楚两周来自哪里.

据我所知,Token Lifetimes中的以下值在exp它返回时设置了声明.这似乎只适用于JWT.

在此输入图像描述

有人可以对此有所了解吗?

TIA

Eri*_*ijk 7

很久以前我也在努力解决这个问题,这是我的看法:

Web app session timeout用于B2C的cookie,因此如果您登录第二个B2C安全应用程序,则无需在B2C重新登录.这不是您要寻找的价值.

应将令牌生存期复制到您自己的环境中.查看一些文档UseTokenLifetime

另请阅读此处:

https://github.com/aspnet/Security/issues/147

我们认为默认值为true总体上是最安全的:当使用ASP.NET Identity时,它将用自己的cookie替换cookie,该cookie具有自己的过期规则当使用OIDC是主要身份验证时,true的值可能是人们想要的.

以及更多信息: Microsoft.Owin.Security.OpenIdConnect与Azure Active Directory身份验证票证生命周期

代码片段:

 app.UseOpenIdConnectAuthentication(
   new OpenIdConnectAuthenticationOptions
   {
       ....
       UseTokenLifetime = true,
       ....
Run Code Online (Sandbox Code Playgroud)

  • 哇!做到了。而且永远不会独自找到它。非常感谢!!并感谢您的快速回复。对于其他查看此内容的人:在ASP.NET CORE和B2C中,您只需在您的OpenIdConnectOptions中将UseTokenLifetime设置为true即可。 (2认同)