![如何配置 Windows 登录以获取 OTP 作为密码](https://linux22.com/image/692044/%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%20Windows%20%E7%99%BB%E5%BD%95%E4%BB%A5%E8%8E%B7%E5%8F%96%20OTP%20%E4%BD%9C%E4%B8%BA%E5%AF%86%E7%A0%81.png)
我搜索了一下,知道这是可能的,但我找不到任何关于如何做到这一点的线索。此外,我可以使用任何可以运行的服务器吗,或者它必须是类似 SafeNet 的 blackShield 服务器?
我所寻找的不是如何开发它。我正在寻找架构模型或文档,但我找不到它需要什么以及如何集成身份验证服务器,无论它是由我的公司开发的还是由任何其他使用 Windows 的公司开发的问题是我不知道该寻找什么。一定用 Radius 吗?
PS:我是一名从事 AAA 应用程序的开发人员。我们有一个用于身份验证的服务器。
答案1
微软有一个旧概念,即让 OTP 服务器向 Windows 客户端注册一个短期登录证书。因此,Windows 客户端上的用户实际上将使用 PKINIT 来获取其 Kerberos 票证 - 使用该证书登录。 https://technet.microsoft.com/de-de/library/gg637807(v=ws.10).aspx
您仍需要设置 CA。OTP 服务器必须能够代表登录用户请求证书...
因此,这通常以另一种方式实现。我开发的解决方案(!)工作方式不同。在客户端上安装一个额外的凭据提供程序。在这种情况下privacyIDEA 凭证提供商首先根据 privacyIDEA 服务器验证 OTP 值。如果成功,则凭据提供程序将使用 Windows 密码根据 Windows 密码执行正常域登录。此过程非常顺利,无需设置复杂的环境 - 无需 PKI。
这种方法的缺点是
- 用户没有摆脱域密码
- kerberos 票证仍然根据 domin 密码签发
- 离线功能有限。
但另一方面,如果您要按照 Microsoft 的建议设置 CA/PKI,为什么不首先注册智能卡呢?这是一个很好的解决方案!
我认为 OTP 有新的概念,我对其他答案很好奇。
答案2
无法用 OTP 替换 Windows 密码。另一个第三方替代方案是 Rohos Logon。有多种方法和策略:您可以为每个用户/每个组设置 OTP 配置,通过短信/电子邮件使用 OTP。结合 OTP + 令牌、Yubikey OTP 与 Google Auth OTP。通过 PowerShell 注册 OTP。它允许用 OTP 替换密码(作为 1FA 方法),但密码仍将由在每个工作站和 DOmain Controller + AD 架构扩展上的 OTP 身份验证服务器上工作的 Rohos 凭据提供程序在后台使用。还支持离线工作站。