【问题标题】:Asp.net session timeout vs id token expirationAsp.net 会话超时与 id 令牌到期
【发布时间】:2017-10-16 22:49:48
【问题描述】:

如果 ASP.NET 会话超时为 20 分钟(滑动),ID 令牌生命周期和 Web 应用会话生命周期有何影响?

ID 令牌的生命周期似乎是绝对的(默认为 60 分钟)。过期时会发生什么情况,是在下一次请求时触发新的身份验证,还是仅在 ID 令牌和 ASP.NET 会话都过期时才发生?

Web 应用会话生命周期可以是绝对的或滚动的(默认为 1440 分钟)。它是针对 B2C 还是针对 ASP.NET 应用程序? ID 令牌生命周期和 Web 应用会话生命周期之间有什么关系?我的理解是当 ID 令牌过期时,如果 Web 应用会话没有过期,用户不必再次输入他的凭据,我是正确的?

【问题讨论】:

    标签: azure-ad-b2c


    【解决方案1】:

    我将首先解释您在下面提到的几个概念之间的一些关键场景差异。

    ID 令牌:正如您所提到的,ID 令牌的生命周期是“绝对的”——虽然您可以在管理门户中配置新创建的 ID 令牌的生命周期,但一旦创建了 ID 令牌,没有办法延长现有令牌的生命周期。如果您将 ID 令牌发送到服务上的某个端点,并且服务确定令牌已过期,则客户端必须从 B2C 获取新的 ID 令牌。

    B2C Web 应用会话生命周期:根据为您的策略配置的方式,B2C 的 Web 应用会话生命周期决定是否可以在用户不需要的情况下处理发送到 /authorize 端点的新授权与 UI 交互。但是请注意,仍然会发生重定向。通常,这里的结果是客户的 Web 应用程序重定向到 B2C 的 /authorize 端点,然后立即重定向回客户的 Web 应用程序并使用 新铸造的 ID 令牌(这将有一个新的 /完整的 ID 令牌生命周期)。从视觉上看,这可能看起来像“屏幕闪烁”,因为浏览器被快速引导,然后又返回。发生这种情况时,如果 Web 应用会话生命周期选择了“滚动”类型,则此非交互式 Web 应用会话可用于新的(默认为 1440 分钟)窗口,而如果选择“绝对”,则时间限制仍将基于上次执行完全交互式网络会话的时间。

    正如我所提到的,我自己对 ASP.NET 会话在这里的工作方式不是很熟悉,但是管理门户所指的“滚动”网络应用程序是针对 B2C,而不是 ASP.NET(我们没有特殊的交互与 ASP.NET)。我的猜测是 ASP.NET 层是我在此处描述的内容之上的附加层。据推测,ASP.NET 会话控制着服务请求和验证 ID 令牌的频率,但您可能需要专门与 ASP.NET 团队跟进。

    下面没有提到的关于静默 reauth 的另一个场景是“刷新令牌”。刷新令牌兑换是真正无声的(即没有屏幕闪烁),并且可能是基于您的设置的首选解决方案。如果您使用的是单页应用程序(又称“SPA”),还有其他可用选项。

    您可以在这里找到更多信息:https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-apps

    【讨论】:

      猜你喜欢
      • 2013-07-18
      • 2010-12-05
      • 1970-01-01
      • 1970-01-01
      • 2019-03-02
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多