我使用IdentityServer4和AspNetCore 2 Identity,并使用身份验证器应用程序为用户设置了双因素身份验证。验证一切正常,我可以看到 amr 声明值 pwd ,但我也希望(或希望)看到另一个 amr 声明值 mfa 表示用户使用双因素机制登录。
我创建了自己的SignInManager并提供了对SignInAsync的覆盖,我可以看到主体没有任何amr声明,所以我认为现有的amr声明是由cookie /身份验证中间件(或IS4或许?)添加的。 / p>
有些问题:
答案 0 :(得分:0)
您需要在用户登录时添加用户声明,我还希望他们提供一种方法,该方法可以告诉是否有任何用户使用MFA登录。
.NET Core 3.0预览版最近包括一种用于查找相同内容的方法。
List<Claim> claims = new List<Claim>
{
new Claim("amr", "mfa"),
};
identityResult = await _userManager.AddClaimsAsync(user, claims);
您可能可以在登录时添加此代码,然后在注销时清除此声明,但是除非有其他方法,否则解决此问题将有很多问题。