c# - 如何检测第三方登录是否已启用 2fa
问题描述
我有一个身份服务器 4 应用程序。这允许我们的客户使用我们的登录名以及 Google 和 Facebook 第三方登录名(facebook 和 google)登录。我们还有 2fa(两因素)登录能力。
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = IdentityConstants.ApplicationScheme;
options.DefaultChallengeScheme = IdentityConstants.ApplicationScheme;
}).AddGoogle("Google", options =>
{
options.AccessType = "offline";
options.SignInScheme = IdentityConstants.ExternalScheme;
options.ClientId = Configuration.GetSection("Settings:GoogleClientId").Value;
options.ClientSecret = Configuration.GetSection("Settings:GoogleClientSecret").Value;
})
.AddFacebook("Facebook", facebookOptions =>
{
facebookOptions.SignInScheme = IdentityConstants.ExternalScheme;
facebookOptions.AppId = Configuration.GetSection("Settings:FacebookAppId").Value;
facebookOptions.AppSecret = Configuration.GetSection("Settings:FacebookAppSecret").Value;
});
所有这些都有效。但是我有高层管理人员的要求。
作为支持者的用户(系统中有一个标志)必须启用两个因素。这很简单,我只是要求他们不能在我们的系统中禁用这两个因素。
然而,我们很快就发现了这个问题。如果用户在他们的谷歌帐户上启用了两个因素。然后他们使用谷歌登录必须提供两个因素代码,然后他们回到我们的系统,在那里他们再次必须为我们的系统提供两个因素代码。
有没有办法检测用户在他们的谷歌帐户上启用了两个因素?一旦我知道它在那里启用,我就可以停止向他们询问我们系统上的两个因素代码。我到处寻找,但似乎没有将这些信息返回给我。似乎也没有任何 google api 可以让我知道是否在他们的帐户上启用了它。
解决方案
推荐阅读
- excel - 如何将所有未读邮件从默认收件箱复制到共享文件夹?
- excel - VBA Adodb:值的串联
- docker - 使用 pm2 在 docker 上部署 Nuxt SSR 有错误,
- javascript - Why am I unable to return an HTML element after awaiting a promise in React
- prolog - 如果获得不同的值,如何创建为真的谓词
- java - SpringBoot 公共匹配器
- html - 在 Laravel 上包含 webfont
- reactjs - Virtual DOM 是如何更新的?
- python - 带有 Docker 的 Python Virtualenv HTTP 服务器
- csv - 谷歌脚本从 ftp 或谷歌驱动器导入 csv