【问题标题】:Custom Windows Authentication Package自定义 Windows 身份验证包
【发布时间】:2023-03-04 15:06:01
【问题描述】:

所以,这就是场景。我正在 Windows 7 中开发登录系统。我创建了一个凭据提供程序,其中包含一个凭据。 Credential 包含三个输入字段,用户名、密码和 PIN。

从我了解到的文档(CMIIW)中,当我们填写字段并单击登录时,WINLOGON 将检索用户名和密码,并通过调用 LSALogonUser() 将其发送给 LSA 进行身份验证。然后 LSA 将尝试与身份验证包 KERBEROS(用于远程登录)或 MSV1_0(用于本地登录)协商。

假设现在只有本地场景,用户名和密码将传递给MSV1_0,并与SAM数据库中的用户名和密码进行核对。现在的问题是,我不希望使用 SAM 数据库对其进行检查。假设我有一个文件 C:\users.txt ,其中包含三元组条目: {username ;密码 ;别针}。这里所有的用户名都是windows中的现有用户。如何使身份验证按照我的方式进行(检查文件 C:\users.txt。

如果我没记错的话,我们可以创建自己的“包装”MSV1_0 的身份验证包。你们有一个示例代码吗?还是有其他更合适的方式?

谢谢你,非常感谢你的帮助。

【问题讨论】:

  • 你解决过这个问题吗?我正在尝试做类似的事情,其中​​身份验证应该基于用户名和来自 OTP 令牌的数字
  • 你还在纠结这个吗?几年前我写了一个 Windows GINA 扩展,如果它对你有任何帮助,我可以挖掘代码。干杯,骗局
  • Windows 根据其本地安全机构检查您的凭据,因为它想知道 IT 是否应该信任您。在文本文件中使用您自己的不安全凭据绕过它的检查会危及 Windows 的安全性,所以我怀疑它会让您这样做。你到底想达到什么目的?
  • @jeff 有一篇关于在远程 Windows 登录中使用 OTP 令牌的技术网文章。这有点令人费解(仅适用于 Windows 7 及更高版本)但可能会有所帮助。 technet.microsoft.com/en-us/library/gg637807(v=ws.10).aspx
  • @dajames 我对家用计算机的最终要求:当我在家时,用户名+密码应该足够了当我在外面使用远程桌面时我想通过用户名+OTP-进行验证令牌。我想我将不得不接受用户名+密码+OTP-token。这篇文章读起来很有趣,但我还在 Vista

标签: c++ windows-authentication winlogon lsa credential-providers


【解决方案1】:

自从 GINA 过去离开后,我没有对 Windows 登录做过任何工作,因为 PKI 已成为凭据存储的事实标准。但是……

您的问题要求提供一些示例代码,这是完整的描述

http://msdn.microsoft.com/en-gb/magazine/cc163489.aspx#S4

这个有点老了,所以它指的是智能卡,也许当你说令牌时你还在谈论智能卡,但我怀疑你是指USB驱动器。但是,如果您尝试这种级别的开发,则交换智能卡读/写和 USB 读/写的代码应该相当简单。

【讨论】:

    【解决方案2】:

    您可以尝试来自 windows sdk 的示例。有子认证包比完整 AP 更容易实现。

    【讨论】:

      【解决方案3】:

      您始终可以编写自己的代码来检查数据库中的数据的输入,有很多方法可以做到这一点。 This is a video about smart and dull ways to do that.

      这是关于 Custom Windows Authentication Package 的页面,但我还没有真正检查过

      【讨论】:

        猜你喜欢
        • 2011-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-27
        • 2016-01-26
        • 2020-04-01
        • 2022-12-10
        • 2021-05-20
        相关资源
        最近更新 更多