微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Microsoft.Identity 清除令牌缓存时将用户带到登录屏幕

如何解决使用 Microsoft.Identity 清除令牌缓存时将用户带到登录屏幕

使用 Microsoft.Identity 对我们的 ASP.Net Core Web 应用程序中的用户进行身份验证。

在内部,身份平台连接到 Azure AD 以对用户进行身份验证,我们还使用 Microsoft.Graph 从 AD 获取用户数据。

目前我们正在使用 AddInMemoryTokenCaches 作为令牌缓存,正如预期的那样,它会在服务器重新启动时被清除。

使用 Graph 连接到 AD 需要一个令牌,当服务器重新启动时会丢失令牌,因为缓存已清除。 使用 ITokenAcquisitionGetAccesstokenForUserAsync 抛出错误 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 举报,一经查实,本站将立刻删除。