(编辑以匹配答案作者的理解 - 此处发布的新的、新鲜的、干净的问题:Active Directory + Google Authenticator - Windows Server 中的本机支持?)
迄今为止完成的研究
有一篇关于如何将 google 身份验证器与 Active Directory 联合服务 (AD FS) 一起使用的 technet 文章:https ://blogs.technet.microsoft.com/cloudpfe/2014/10/26/using-time-based-one-time -passwords-for-multi-factor-authentication-in-ad-fs-3-0/
奇怪的是,它似乎是一个开发项目,需要一些代码和它自己的 SQL DB。
我们在这里并不是专门谈论 AD FS。我们正在寻找 2FA,支持 Google Authenticator RFC,内置于 AD。
我们需要看看这里发生了什么。
AD FS 是关于SAML的。它将连接到 Active Directory 以将其用作 SAML 身份提供程序。Google 已经有能力充当 SAML 服务提供商。将两者放在一起,以便 Google 信任您服务器的 SAML 令牌,并且您通过 Active Directory 凭据登录 Google 帐户。1
另一方面,Google Authenticator 充当身份提供者的一个因素……通常用于 Google 自己的服务。也许您现在可以看到它与 AD FS 的不匹配之处。将 AD FS 与 Google 一起使用时,您实际上不再使用 Google 的身份提供程序,并且当 AD FS 完成向 Google 的移交时,身份方面已经完成。如果您做了任何事情,它会将 Google 配置为要求 Authenticator 作为AD FS 或其他 SAML 身份提供者之上(但独立于)的补充身份确认。(注意:我不认为谷歌支持这一点,但他们应该)。
现在,这并不意味着你想做的事情是不可能的……只是它可能不是最合适的。虽然它主要与 Active Directory 一起使用,但 AD FS 也被设计用作更通用的 SAML 服务;您可以将它连接到除 Active Directory 之外的其他身份提供者,它支持许多不同的选项和扩展。其中之一是能够创建自己的多因素身份验证提供程序。此外,Google Authenticator 支持多因素身份验证的TOTP 标准。
将两者放在一起,应该可以(尽管肯定不是微不足道的)将 Google Authenticator 用作带有 AD FS 的 MuliFactor 提供程序。您链接到的文章是一种此类尝试的概念证明。但是,这并不是 AD FS 开箱即用的功能。由每个 Multi-Factor 服务来创建该插件。
也许 MS 可以为一些大型多因素提供商提供第一方支持(如果有这样的话),但 Google Authenticator 足够新,而 AD FS 3.0 已经足够老,不可能做到这在发布时。此外,当 MS 对这些其他提供商可能推送的更新时间或内容没有影响时,维护这些对 MS 来说将是一项挑战。
也许当 Windows Server 2016 发布时,更新的 AD FS 会让这更容易。他们似乎为更好的多因素支持做了一些工作,但我没有看到任何关于在框中包含竞争对手的验证器的说明。相反,他们似乎希望您设置 Azure 来执行此操作,并可能为他们自己的 Authenticator 竞争对手提供 iOS/Android/Windows 应用程序。
我最终希望看到 MS 提供的是一个通用的TOTP 提供程序,我在其中配置了一些东西来告诉它我正在与 Google Authenticator 交谈,其余的由它完成。也许有一天。也许对系统进行更详细的了解,一旦我们真正得到它,就会发现它就在那里。
1作为记录,我已经这样做了。请注意,当您进行跳转时,此信息将不适用于 imap或使用该帐户的其他应用程序。换句话说,您破坏了Google 帐户的很大一部分。为了避免这种情况,您还需要安装和配置Google 的密码同步工具。使用该工具,每次有人在 Active Directory 中更改密码时,您的域控制器都会将密码的哈希值发送给 Google,以用于这些其他身份验证。
此外,这对您的用户来说是全部或全部。您可以通过端点 IP 地址进行限制,但不能基于用户。因此,如果您有不知道任何 Active Directory 凭据的旧用户(例如:大学的校友用户),那么让他们全部迁移可能是一个挑战。出于这个原因,
我目前没有在 Google 中使用 AD FS,尽管我仍然希望最终实现飞跃。我们现在已经实现了这一飞跃。我认为您的问题是错误的假设,即为特定供应商的 2FA/MFA 解决方案添加支持是 Microsoft 的工作。但是有很多 2FA/MFA 产品已经支持 Windows 和 AD,因为供应商已经选择添加这种支持。如果谷歌认为增加支持不够重要,那并不是微软的错。与身份验证和授权相关的 API 有很好的文档记录并且可以免费使用。
您链接到的博客文章链接到任何人都可以编写的示例代码,以将RFC6238 TOTP 支持添加到他们自己的 AD FS 环境。它恰好与 Google Authenticator 一起工作只是支持该 RFC 的身份验证器的副作用。我还要注意底部的一连串免责声明,即代码是“概念证明”、“没有适当的错误处理”和“没有在考虑安全的情况下创建”。
无论如何,没有。我不相信 Windows Server 2016 会明确支持 Google Authenticator 支持。但我认为没有任何东西可以阻止 Google 在 Server 2016 或更早版本上添加自己的支持。
答案,截至 2017 年 10 月:
使用Duo到 MFA 启用执行 LDAP 回 AD 的系统
我们已经研究或尝试了一切。
虽然我们不喜欢 DUO 的运营成本,但对于多达 50 个用户,成本对我们来说值得设置和使用的简单性。
到目前为止,我们已经使用了它:
用于 VPN 访问的 Cisco ASA 设备
用于 VPN 访问的 Sonicwall 远程访问设备(设备也对 AD 执行 LDAP)
我们不知道可以在 2-4 小时内设置的任何其他方法,并且 MFA 启用挂起 AD 的 LDAP 服务。
我们仍然认为 AD 本身应该支持 TOTP/HOTP RFC 背后的 google 身份验证器,并对 MS 在 Windows Server 2016 中没有正确解决这个问题深感失望。
使用 ADFS 进行一次性密码身份验证的免费插件已经存在。它适用于 google 或 microsoft 身份验证器应用程序。有关详细信息,请参阅 www.securemfa.com。我正在使用它,在生产中没有任何问题。