Azure B2C Web应用程序-如何在Web应用程序会话生存期之外使用刷新令牌进行身份验证

问题描述 投票:0回答:1

我有一个Web应用程序,要求用户输入凭据才能访问graph.com。我正在使用用户流策略。我可以获取id_token,并使用此id_token请求access_token和refresh_token。为了进行测试,我设置了以下生命周期设置:

enter image description here

从用户登录后的15分钟后,我再次导航到Web应用程序uri,并要求用户重新输入凭据,但我希望避免在受控时间内重新输入凭据。

[Azure文档说Cookie会在end of Web browser session到期,并且Web应用程序会话的生存期将在24小时内达到最大值,我想知道是否可以使用refresh_token覆盖此24小时限制以进行重新认证。

当浏览器再次指向Web应用程序uri时,我是否可以请求新的刷新令牌,因此用户无需再次登录?如果是这样,我看不到对此请求进行干预的常规方式(Web应用程序代码?控制器?),然后是否需要向Azure AD发送通知以使其知道用户已通过身份验证?我可以在Fiddler中看到重新输入凭据的请求(oauth2 / v2.0 / authorize),因此不确定何时要采取什么步骤。

谢谢

azure authentication access-token azure-ad-b2c refresh-token
1个回答
0
投票

当用户与网站进行交互但访问令牌已过期时,Web应用程序中会使用刷新令牌。 Web服务器将呼叫B2C以刷新访问令牌。

Cookies用于通过Web App将用户显式发送到/ authorize端点。这使B2C可以向用户发起SSO或提示进行任何交互。这用于在旅途中提供跨应用程序SSO或SSO,例如,登录->配置文件编辑(禁止输入提示)。

基于此:

当浏览器再次指向Web应用程序uri时,我是否可以请求新的刷新令牌,因此用户无需再次登录?

不,你不能。

您需要延长B2C Web App的SSO生存期,这样,如果用户在关闭选项卡(而不是浏览器)后浏览到您的Web应用程序,则他们将获得SSO。由于它们将到达/ authorize端点,因此设置为Web App SSO生存期,即B2C Cookies。

© www.soinside.com 2019 - 2024. All rights reserved.