使用自定义凭据提供程序执行SSO时,不强制执行智能卡删除策略

时间:2018-10-30 23:15:55

标签: authentication smartcard interactive winlogon credential-providers

我已经创建了一个EFI预启动应用程序,当时我输入的用户凭据将通过凭据提供程序传递到Windows进行登录(单点登录)。

我有一个组策略“交互式登录:智能卡删除行为”设置为“锁定工作站:智能卡被删除时工作站被锁定,允许用户离开该区域,随身携带智能卡,并且仍然保持受保护的会话。”

因此,如果我重新启动计算机并使用我的凭据提供程序使用登录名,则删除智能卡时不会强制执行组策略。但是,如果我锁定并解锁计算机,然后取出智能卡,则组策略将起作用,并且计算机将被锁定。

根据本文https://blogs.technet.microsoft.com/instan/2010/03/08/deconstructing-the-smartcard-removal-policy-service/,当我使用智能卡SSO(我的自定义凭据提供程序)登录时,可以看到未在\ HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Removal Policy下创建注册表项。 / p>

所以我的问题是,我的凭证提供者中缺少什么吗?我是否必须从凭证提供者中调用任何API才能使GPO正常工作,还是必须在凭证提供者中实现相应的逻辑,以便由智能卡删除服务强制执行GPO?

1 个答案:

答案 0 :(得分:0)

开始服务之前,您必须为此准备注册表值。

  1. 注册表路径SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Removal Policy中的参数
  2. 它的名称必须是登录会话ID(文本'0','1'等)
  3. 值是SmartCard读取器名称及其状态的二进制组合(如文章中所述)。

就我而言,它看起来像这样:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Removal Policy] "1"=hex:41,00,4b,00,53,00,20,00,69,00,66,00,64,00,68,00,20,00,30,00,00,00,00,00,1f,00

它被解码为带有NULL终止符和DWORD0x00190000的Unicode字符串“ AKS ifdh 0”,其中0x0019是智能卡插入和移除计数自启动以来的阅读器。