【发布时间】:2018-03-29 14:13:36
【问题描述】:
我有一个 Asp.Net 核心项目,其中托管了一个 Angular 应用程序。 asp.net 核心项目中有几个 API 控制器。这些控制器是从 Angular 应用程序中调用的。
asp.net 核心应用受到 Azure AD 身份验证的保护,该身份验证使用 OpenIdConnect 和 Cookie。我正在看的是我应该如何为用户处理通宵空闲会话的令牌到期。
目前,如果用户将恢复其已过期的浏览器会话,则会在从 Angular 应用程序进行的异步 API 调用上引发异常。我应该如何让 Angular App 将用户重定向回 Azure AD 应用程序的登录页面?。
【问题讨论】:
-
您在使用 ADAL 吗?您要取回刷新令牌吗?
-
是的,我正在使用 ADAL。我确实得到了刷新令牌。
-
用户回来时刷新令牌是否过期?我只需使用您为用户拥有的刷新令牌获取一个新令牌。为此,有一个 ADAL 函数:AuthenticationContext.AcquireTokenByRefreshToken Method。如果刷新令牌也过期了,不妨重新开始认证过程。
-
我们不能只调用“AcquireTokenAsync”并且不会使用刷新令牌来生成新的访问令牌吗?另外,如果会话被重新设置,那是不是意味着我们必须在重新设置令牌时重新启动整个身份验证过程?以及如何重新启动身份验证过程?通过要求用户关闭浏览器并重新启动?。
-
我将令牌缓存管理移至 Sql Server 并完成应用程序重置后,应用程序现在能够在不丢失用户会话的情况下恢复。
标签: azure authentication asp.net-core azure-active-directory