我有一个凭据提供程序,但它不能按照我想要的方式运行。它提供辅助身份验证,但其范围是主机范围内的所有交互式 Windows 登录,而不是特定用户。
除了凭据提供程序之外,还安装了凭据提供程序过滤器。凭据提供程序过滤器将登录屏幕上的凭据提供程序的使用限制为仅此凭据提供程序。但是,如果删除凭据提供程序过滤器(通过删除下面的键HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Credential Provider Filters
),则用户可以将凭据提供程序更改为任何其他可用的凭据提供程序(包括我们的老朋友PasswordProvider
)。
我的目的是强制某些用户使用凭证提供程序。例如,如果此用户尝试使用另一个凭证提供程序登录,则没有问题,但我希望 AD 拒绝此请求...仅允许从正确的凭证提供程序调用的请求。
这可能吗?我希望有一种方法可以在 AD 中配置用户对象来限制可接受的凭据提供程序。
谢谢
答案1
好问题。正如此处注明在没有更好的来源的情况下出现不是。
引用:
值得注意的是,凭证提供者不是强制机制。
因为:
凭证提供商在 Windows 机器上注册,并负责以下内容。
- 描述身份验证所需的凭证信息。
- 处理与任何外部认证机构的通信和逻辑。
- 打包交互式和网络登录的凭证。
也就是说,它们是客户端机制。
还描述了最佳做法,即不要完全禁止访问至少一个主机范围的提供程序,以免导致完全锁定:
虽然第三方凭证提供程序可能会满足特定用户组的额外身份验证要求,但确保用户在发生重大更改时始终能够重新获得对其计算机的访问权限非常重要。系统凭证提供程序提供了此保证。
因此...建议似乎不要排除对主机范围提供商的访问。如果您无论如何都想限制,则有一个简单的解决方案:不授予用户删除注册表项的权限。
受保护的用户安全组不会按照您的要求执行,但却是强化服务器端身份验证过程的一种方法。