- ABP Framework version: v6.0
- UI type: Blazor Server
- Project Template type: Microservice Solution
- DB provider: EF Core / MongoDB
- Tiered (MVC) or Identity Server Separated (Angular): yes
Hi,
Any help how can I achieve adding another 2FA verification provider in abp framework? I'm about to add DUO universal prompt from their web sdk like the sample here in github: https://github.com/duosecurity/duo_universal_csharp/tree/main/DuoUniversal.Example Add it as an added layer for authentication, I want to add logic like show only duo 2fa if user login for the first time or the 2fa token expires.
2 Answer(s)
-
0
Hi,
It's been 5 days no response. Just wanted to know if this task was possible if not can I ask refund for this ticket? I'll just do research on my own.
-
0
Hi,
Sorry, we are late,
I think it's possible,but I don't know much about DUO Universal Prompt, It looks like a 3rd party 2FA verification server.
You can customise the login model of the account pro module, and redirect to DUO Universal Prompt if the user needed.
For example:
public class MoLoginModel : LoginModel { public MoLoginModel(IAuthenticationSchemeProvider schemeProvider, IOptions<AbpAccountOptions> accountOptions, IAbpRecaptchaValidatorFactory recaptchaValidatorFactory, IAccountExternalProviderAppService accountExternalProviderAppService, ICurrentPrincipalAccessor currentPrincipalAccessor, IOptions<IdentityOptions> identityOptions, IOptionsSnapshot<reCAPTCHAOptions> reCaptchaOptions) : base(schemeProvider, accountOptions, recaptchaValidatorFactory, accountExternalProviderAppService, currentPrincipalAccessor, identityOptions, reCaptchaOptions) { } protected override async Task<IActionResult> CheckLocalLoginAsync() { var result = await base.CheckLocalLoginAsync(); if (result != null) { return result; } //get the user to check if need to redirect var user = await UserManager.FindByNameAsync(LoginInput.UserNameOrEmailAddress); return await RedirectToDuoUniversal(); } protected async Task<IActionResult> RedirectToDuoUniversal() { ..... } }
Anyway, your ticket refunded.