Credential provider 架构

下表是Windows7中的交互式登陆架构的关键组件:

组件名称描述
Winlogon提供交互式登陆的下层基础
Logon UI提供交互式UI(的渲染)
Credential providers(密码和智能卡)描述凭据信息和序列化凭据
LSA处理登陆凭据
授权包(Authentication packages)包括NTLM和Kerberos,与认证服务器通信

流程如图所示:



Windows交互登陆从用户按下Ctrl+ALT+DEL开始,这3个键的组合叫做SAS,防止其他进程或程序使用。Winlogon在Boot的时候注册此SAS,然后Logon UI 生成界面。

一般来说,用户登陆计算机使用的要么是本地账户,要么是域账户的用户名和密码,这些凭据用来验证用户身份。如果是智能卡,那么用户的凭证则存储在卡上,读卡器让计算机与卡的安全芯片交互。在登陆的过程中,用户输入一个PIN码,而不是用户名和密码。

Credential providers是一个用于收集凭据的COM对象,运行在本地系统上下文中。总的来说,Logon UI提供界面,Winlogon提供登陆下层基础,Credential providers与这二者交互,以帮助收集和处理凭据。

用户按下SAS的3个键后,Winlogon命令logon UI 显示各个credential provider的选项,Logon UI查询各个 credential provider。 credential provider 可以选择某个某个登陆界面作为默认。枚举完所有的登陆界面后,logon UI显示给用户, 用户选择一个进行登陆,然后logon UI提交凭据信息。

credential provider 可以扩展,允许用户通过生物(指纹,声音,视网膜),密码,PIN,智能卡或任何自定义的认证包。企业和IT部门可能为域用户开发和部署自定义的认证机制。

credential provider 不是强制的机制,它是用于采集和序列化凭据的,而LSA和authentication packages才强制安全。

credential provider 可能设计成用于SSO,认证用户到一个安全的网络访问点。

credential provider 也可以设计成用于某个特定程序的凭据采集,或者用于网络资源或加域的认证,以及提供UAC的管理员权限提示。

credential provider必须要被写进注册表,负责:

描述认证所需要的凭据信息。

处理与外部认证方式的通信和逻辑。

打包凭据,用于交互式登陆和网络登陆。

credential provider API 不渲染UI,不描述什么需要渲染。只在安全模式可以用密码credential provider,智能卡只在带有网络的安全模式中可用。


  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值