【发布时间】:2020-08-10 11:32:30
【问题描述】:
我在我的 .NET 核心应用程序框架 2.2 上使用 Google Authenticator for 2FA。
它工作得很好。现在,我想用 Duo 替换它。我在应用程序中集成了 DUO,但在身份框架中与 DUO 的集成不起作用。需要帮助,因为我不知道如何使它工作。
所以,我的登录帐户启用了两个因素,它首先在我提供凭据时让我登录,然后它要求输入 2FA 代码(就像以前使用 Google Authenticator 一样),我已经用 DUO 页面替换了该代码页它现在要求我发送 PUSH,我按下它,它就会向我发送推送,并且那个位工作正常。
这是发送推送的代码,这部分工作正常。
if (result.RequiresTwoFactor)
{
var sign = Duo.Web.SignRequest(ikey, skey, akey, username);
ViewBag.sig_request = sign;
return View("DuoLogin");
}
尝试了以下两因素身份验证,结果失败。
string authenticated_username = Duo.Web.VerifyResponse(ikey, skey, akey, sig_response);
if (authenticated_username == username)
{
ViewBag.Message = "authenticated Successfully";
var result = await _signInManager.TwoFactorAuthenticatorSignInAsync(authenticated_username., rememberMe, Input.RememberMachine);
//OR
var result = _signInManager.TwoFactorAuthenticatorSignInAsync(authenticated_username, true, false);
//OR
var result = _signInManager.TwoFactorSignInAsync("Duo", sig_response, true, false);
}
authenticate_username 只带回 DUO 的用户名,没有代码可以传递给“TwoFactorSignInAsync”方法。
更新:
因此,如果您使用 DUO 扫描 QR 码,您可以使用 DUO 代替 Google 身份验证器,它可以正常工作。但我仍然希望在启用 DUO 的情况下进行推送身份验证。
【问题讨论】:
标签: c# asp.net-core .net-core asp.net-core-2.1 two-factor-authentication