【问题标题】:Active Directory with multi factor authentication for an existing web application为现有 Web 应用程序提供多因素身份验证的 Active Directory
【发布时间】:2019-08-12 09:32:13
【问题描述】:

客户要求对使用 (asp.net MVC2) 编写的旧现有 Web 应用程序进行 LDAP/Active Directory 身份验证以及 OTP(一次性密码)/多因素身份验证。这可能吗?

目前,我们在 System.DirectoryServices.AccountManagement 中使用 PrincipalContext 进行用户名、密码验证。

提前致谢

【问题讨论】:

  • 如果他们希望将其与 AD 身份验证分开(即 AD 身份验证 + 其他一些身份验证),那么您必须构建自己的第二个身份验证机制。如果他们希望在 AD 身份验证中构建多因素身份验证(即 AD 身份验证在您完成第二种方法之前不会对您进行身份验证),那么这取决于您的 AD 设置。如果您使用的是 Azure AD,那么我认为这是可能的。如果都是本地部署,那么我不确定。
  • @GabrielLuci 感谢您的评论。这是他们要求的本地解决方案..

标签: c# active-directory asp.net-mvc-2 two-factor-authentication principalcontext


【解决方案1】:

你必须自己写。通过 Active Directory 对用户进行身份验证后,您必须触发第二步以生成代码并将其发送给他们,并拥有一个页面,他们可以在其中键入代码以完成身份验证。您必须决定如何将其发送给他们(电子邮件、短信或电话)。

对于短信或电话,您可以使用Twilio 等服务。他们实际上有一篇关于使用 two-factor authentication with ASP.NET 的文章,但您可能无法将该代码按原样插入到像您这样的旧应用程序中。

Microsoft 也 has an article 关于它,但它假定您使用的是 ASP.NET Identity,而您可能不是。

【讨论】:

  • 感谢您提供详细信息。它是一个传奇的网络应用程序。 MVC2 与成员提供者不是身份。它已经与会员提供商建立了 2FA。仅 AD 身份验证有效。从概念层面来看,我遇到的问题是如何在 AD 身份验证完成后阻止请求。据我了解,一旦完成 AD 身份验证,就会创建会话。即使我向他们展示了 2FA 页面以输入 OTP,如果最终用户输入特定 URL 以访问其他内容会怎样。我是否在请求级别编写代码来验证第二个因素是否也成功?再次感谢
  • 听起来您正在使用表单身份验证,对吧?而您只是使用 AD 验证密码...所以在创建表单票证之前,您可以添加第二步。
  • 不,我们正在使用 Windows 身份验证。我们还为他们提供了带有 2FA 的表单身份验证的选项。现在他们不想要带有 2FA 的表单,他们更想要带有 2FA 的 Windows。
  • 哦,我明白了。您说您正在使用PrincipalContext 进行身份验证,因此听起来您正在自己处理身份验证。然后您必须使用表单身份验证,但您仍然可以合并 Windows 身份验证,这样就不会提示人们输入他们的 AD 用户名/密码。我最近刚刚描述了如何做到这一点in another question
猜你喜欢
  • 1970-01-01
  • 2020-07-30
  • 1970-01-01
  • 1970-01-01
  • 2011-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多