问题描述
使用 Microsoft.Identity 对我们的 ASP.Net Core Web 应用程序中的用户进行身份验证。
在内部,身份平台连接到 Azure AD 以对用户进行身份验证,我们还使用 Microsoft.Graph 从 AD 获取用户数据。
目前我们正在使用 AddInMemoryTokenCaches 作为令牌缓存,正如预期的那样,它会在服务器重新启动时被清除。
使用 Graph 连接到 AD 需要一个令牌,当服务器重新启动时会丢失令牌,因为缓存已清除。 使用 ITokenAcquisition 的 GetAccesstokenForUserAsync 抛出错误 MsalUirequiredException:没有帐户或登录提示被传递给 AcquiretokenSilent 调用。
这就是我配置身份和 MSGraph 的方式。
services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(
options =>
{
Configuration.Bind("AzureAd",options);
options.Events = new OpenIdConnectEvents
{
OnTokenValidated = context => { return System.Threading.Tasks.Task.CompletedTask; }
};
},options => { Configuration.Bind("AzureAd",options); })
.EnabletokenAcquisitionToCallDownstreamApi(options => Configuration.Bind("AzureAd",options),initialScopes)
.AddMicrosoftGraph(Configuration.GetSection("GraphAPI"))
.AddInMemoryTokenCaches();
当令牌缓存被清除时,我们有什么方法可以将用户重定向到登录页面?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)