使用连接到 LDAP 服务器的生物识别系统验证窗口用户

Posted

技术标签:

【中文标题】使用连接到 LDAP 服务器的生物识别系统验证窗口用户【英文标题】:Authenticating window user using biometric system connected to LDAP server 【发布时间】:2018-01-29 09:36:57 【问题描述】:

我正在尝试构建一个 Intranet 应用程序。我要做的是使用生物识别系统对用户进行身份验证,准确地说是指纹。就像我见过的一些笔记本电脑或笔记本电脑一样 指纹认证系统。我正在尝试构建相同的东西,但不是针对特定的人。唯一的区别是该人的生物特征信息将存储在 LDAP 服务器上。所以 任何有权使用该特定机器的人都可以在通过身份验证后使用。我正在尝试使用外部生物识别设备获取用户的生物识别信息。我在Windows Biometric Framework 上浏览了一些文档。并且使用sensor adapter和engine adapter作为插件,我可以获取用户的生物特征信息,也可以得到处理并发送到服务器。 我在这里遇到的唯一问题是:

    首先,我这样做是否违反了 Microsoft 的任何政策? 如果没有,我怎样才能获得 Windows 系统锁定和解锁后 无论用户是否有效,都从服务器获取响应?

有人试过吗? 谁能帮我搞定这个? 提前谢谢你。

【问题讨论】:

【参考方案1】:

如果您要实际通知内置 Windows 登录/身份验证系统(称为 系统凭据提供程序)用户已通过身份验证,则 不支持由官方 Windows API 支持。 如果支持此功能,任何人都可以创建恶意软件,简单地通知 API 用户已通过身份验证/授权,从而基本上使所有 Windows 安全性变得毫无意义。所以我们应该感谢这没有得到官方支持。

在没有官方 API 支持的情况下尝试实现类似的东西肯定会违反使用条款。由于它没有得到官方的支持,你将不得不求助于一些可怕的黑客来让它工作,微软的法律团队几乎肯定会考虑逆向工程内核或破解内核(或两者兼而有之)。即使您认为他们错了……您真的想与他们(以及他们的财力雄厚)抗争吗?

我们也考虑一下,如果不存在官方的解锁 API,那么您将需要使用某种后门来实现它。如果这样的事情甚至存在,那么它肯定会被 MS 更新变得无用(这会破坏你的应用程序的登录实现)。

既然火与怒已经过去,让我声明,只要您的目标是更新版本的 windows,一切都不会丢失。

您可以按照您的描述实施自己的生物识别安全系统。这现在称为第三方凭据提供程序 这将是一个单独的系统,Microsoft 建议您要求用户设置系统凭据提供程序作为备用,以防您的第三方凭据系统因任何原因出现故障.如果没有,用户帐户将无法恢复。同样,它们与第一个示例的主要区别在于您的系统与系统凭据提供程序(Windows 原生锁定屏幕)是分开的和不同的。 p>

不过,我想强调的是,实施第三方凭证系统仍然远非微不足道。您将需要广泛阅读您必须实现的正确接口。我建议从这里开始:

https://msdn.microsoft.com/en-us/library/windows/desktop/mt158211%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

在\Samples\Security\CredentialProvider 下的Windows SDK 安装目录中显然也有一个示例。此外,这里还有一个很好的凭证提供者技术参考:

https://msdn.microsoft.com/en-us/library/windows/desktop/bb648647%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

单击“凭据提供程序驱动的 Windows 登录体验”链接下载技术文档。

【讨论】:

以上是关于使用连接到 LDAP 服务器的生物识别系统验证窗口用户的主要内容,如果未能解决你的问题,请参考以下文章

连接到 LDAP 服务器会引发 NullReferenceException

183 - LDAP的属性介绍

连接到 LDAPS(Active Directory)时出现 SSLHandshakeException

连接到LDAP服务器会抛出NullReferenceException

与 LDAP 的 Keycloak 联合无法建立连接:错误!尝试连接到 LDAP 时出错。有关详细信息,请参阅 server.log

使用 ADO 连接到 Sun LDAP