能共同操作的凭证收集和访问模块度
技术领域
本发明一般涉及机器访问,尤其涉及使用凭证标识并验证实体、用户或主体,以登录到具有操作系统的本地和/远程机器。
背景技术
在图1中可看见一个示例性常规过程100,允许用户登录到用于本地机器的操作系统的验证基础结构。如这里所使用的,本地机器是具有操作系统的计算装置,如个人计算机、手持式计算机、厚(thick)客户机装置、薄(thin)客户机装置、个人数字助理、专家系统等等。验证基础结构使用凭证验证用户,以获取通过其操作系统,如由美国华盛顿州雷蒙德市的微软公司提供的WINDOWS操作系统,对计算装置的访问。这里,凭证的验证试图等效于具有对应的凭证的用户、实体或主体的验证,两者的词组和概念可交换地在此处使用。
在过程100的块102,操作系统执行登录程序。登录程序能够将控制转移到三个(3)不同的验证模块的仅其中之一。换言之,本地机器仅能够具有一个可用以执行验证的验证模块。在WINDOWS操作系统(OS)的情况下,默认的验证模块是图形标识和验证模块,这里被称为“GINA”。在WINDOWSOS中,GINA是动态链接库(*.dll)中的模块,它实现用于包括用户向其输入用户名和密码的登录对话框的屏幕显示的登录用户界面。存在GINA,借助使用由用户呈现的凭证通过计算装置的操作系统验证用户。用户的凭证由一组信息表示,它包括标识及标识的证明,用于获取对本地和网络资源的访问的标识的证明来表示。
凭证的示例是用户名和密码、智能卡、生物测定凭证、X.509数字证书和其它种类的证书。图1中所看到的GINA104是标准WINDOWSOS模块,并需要常规的交互式登录过程,如通过在用户界面103提示用户输入用户名和密码。在执行GINA104之后,将控制转到本地安全授权机构(LSA)模块106。LSA模块106访问本地安全账号管理器(SAM)数据库108a,其每一个都是用于计算装置和/或用于相关环境的登录和安全信息的本地存储。凭证数据库108b可以是本地或远程的,能储存可用于结合自定义GINA验证用户的凭证,如指纹、密码、视网膜信息、脸部识别信息和其它生物测定信息。LSA模块106也可建立连接来访问远程凭证数据库、令牌协议凭证服务、询问和响应协议凭证服务和/或活动目录(AD)和Kerberos分发中心(KDC)110。Kerberos是一种网络验证协议,它标识试图登录到网络并通过私钥密码加密其通信的用户。AD模块使用使应用能够在分布式计算环境中找到、使用并管理目录资源(如用户名和许可)的技术。从这些访问,对带有用户凭证的用户执行标识和验证,以确定该用户通过其操作系统登录到计算装置的访问特权。成功的标识和验证将登录用户并向OS登录模块102返回控制。用户然后登录并能够继续使用计算装置。
图1中见到的第一类穿通(pass-through)GINA模块112是定制的标识和验证模块,如可由不开发操作系统的独立的软件销售商书写的模块。第一类穿通GINA模块112与智能卡读卡机105接口,并也与默认的原始操作系统GINA114模块接口。第一类穿通GINA模块112接收由智能卡读卡机105从插入其中的智能卡读取的凭证。从插入到智能卡读卡机105的智能卡读取的凭证以及从用户获取的任何其它凭证可用于对照凭证数据库108b标识并验证该用户。在这一情况下,第一类穿通GINA模块112允许对用户的标识和验证过程作出有限的修改,而维持由与原始操作系统GINA114模块接口所引起的标识和验证的默认行为。
第二类穿通GINA模块116是对操作系统的标准GINA104的完整替换。第二类穿通GINA模块116与指纹读取器107接口。第二类穿通GINA模块116接收由指纹读取器107从光学扫描的指纹印读取的凭证。来自插入到指纹读取器107的手指的光学扫描的指纹印以及从用户获取的任何其它凭证可用于对照凭证数据库108b标识并验证该用户。第二类穿通GINA模块116是一定制的标识和验证模块,它不与OS的标准GINA接口,而直接与LSA106接口。与第一类穿通GINA模块112不同,第二类穿通GINA模块116允许对当登录时用户所看到的用户界面的全控制。如上所述的一个典型问题是GINA104、第一类穿通GINA模块112和第二类穿通GINA模块116的仅其中之一可以用于操作系统。换言之,没有自定义或默认GINA可与OS用以将用户登录到计算装置或计算环境的任一自定义GINA共存。
除上述之外,会出现自定义GINA的其它限制,如在实现任一新凭证收集机制或对其的改变(如,用于生物测定、智能卡、令牌等等)以访问计算装置的操作系统中。由此,自定义GINA为开发者施加了重大的写代码的负担。为实现新的或改变凭证收集机制,开发者必须书写新的验证模块,用于验证想要获取对计算装置的访问的用户。在WINDOWSOS的情况下,开发者必须对自定义GINA书写较大的修改,它包括复杂的接口和状态管理代码,使得自定义GINA能够直接与OS的系统组件接口。自定义GINA中的较差的代码会破坏OS的健壮性。
自定义或默认GINA的替换尤其敏感,因为它是OS的最至关重要的安全组件。较差替换的GINA可很大程度地减弱OS的健壮性,并会减少现有的功能。开发替换或自定义GINA的复杂性也需要开发者获得用于OS的标准GINA的基本源代码。此外,开发自定义GINA意味着替换默认的GINA,因为两种凭证收集方法(如,GINA)无法在同一计算装置上共存。这使独立软件销售商无法构建在任何地方可配置的解决方案,以使用户能够使用一个以上验证基础结构来登录。提供一种允许用户如通过可选择网络会话登录到不同的、共存的验证基础结构的登录解决方案在本领域中将是有益的,其中,该登录解决方案克服了上述问题。
发明内容
在各种实现中,使用多个不同且共存的凭证提供器模块中的对应的一个来翻译凭证。每一模块将对应的不同类型的凭证翻译成一公用凭证协议。翻译的凭证通过凭证提供器应用程序接口(API)被传递到本地机器的本机操作系统(OS)的登录用户界面(UI)模块。调用OS的登录例程来使用翻译的凭证通过对照凭证数据库验证用户。当验证成功时,由翻译的凭证标识的用户被登录来访问本地机器。
在其它实现中,使用OS的登录UI模块通过预登录访问提供器(PLAP)管理器API向登录UI作出请求。作出的请求用于来自对应的多个共存不同PLAP模块的访问服务的平面列表。访问服务的平面列表在由登录UI模块呈现的显示屏上显示。从显示屏上的平面列表中接收凭证的输入和一个访问服务的选择。当使用选择的访问服务建立到网络的连接时,该凭证被传递到访问服务上的凭证数据库,用于第一验证。当第一验证成功时,该凭证被从PLAP API传递到登录UI模块。从登录UI模块作出RPC调用,以将该凭证传递到OS登录模块。然后使用LSA登录用户调用将该凭证从OS登录模块传递到LSA。然后使用LSA对照凭证数据库执行第二验证。当第二验证成功时,由该凭证标识的用户被登录,以使用执行OS的本地机器。
附图说明
当结合附图参考以下详细描述,可以更完整地理解本发明的实现,附图中:
图1示出了描述常规过程的流程图,其中,用户通过提供用于标识和验证的凭证登录到本地机器。
图2a-2b是相应的流程图,它们描述对多个默认或自定义可选凭证提供器使用由用户提供的凭证来分别标识并验证该用户,以使用户登录到本地机器的过程的相应的实现,其中,用户可任选地选择若干凭证提供器模块之一,并且每一凭证提供器模块能与操作系统共同操作,以提供与操作系统兼容的用于验证的凭证。
图3是一流程图,它描述对子验证凭证提供器使用由用户在子验证授权机构的域中提供的凭证来标识并验证用户,以使用户登录到本地机器的过程的一个实现,其中,子验证授权机构向子验证凭证提供器返回登录凭证,并且子验证凭证提供器提供与操作系统兼容的用于验证的凭证。
图4是一流程图,它描述在其中当在本地机器上有应用的请求时,多个不同且共存的凭证提供器的每一个能够收集来自用户的凭证的过程的示例性实现,其中,凭证可以发送到域,如因特网web站点,在该域上将使用该凭证来验证用户,以使用户能够使用本地机器来访问该域。
图5a示出了用户向其输入用户名和密码凭证的屏幕,由凭证提供器对照输入内容执行标识和验证。
图5b示出了显示与同一别名或用户名前缀关联的多个用户名的屏幕,其中,在查询用户名的相关数据库时自动显示该用户名。
图5c示出了允许用户选择选项的登录屏幕,当该选项被选择时,促使屏幕显示账号类型的选择以及登录连接类型的选择。
图6a示出了允许用户从相应的下拉菜单中的列表选择账号类型和登录连接类型的登录屏幕。
图6b示出了在用户选择Novell账号类型之后显示的登录屏幕,其中,该屏幕提示将凭证输入到Novell用户界面。
图7a是示出当前登录到本地机器的两个(2)账号的登录屏幕。
图7b是示出一个用户账号的登录屏幕,向该用户账号作出提示,以便输入个人身份识别号(PIN)作为凭证,用于验证以登录本地机器。
图8a是一登录屏幕,它示出当前登录到本地机器的两个(2)账号以及对应于由呈现该登录屏幕的本地机器读取的智能卡的证书的第三账号。
图8b是示出两个(2)账号的登录屏幕,提示第一个账号输入PIN,作为凭证与由呈现该登录屏幕的本地机器读取的智能卡的证书相对应。
图9a是示出本地机器上的四个(4)账号的登录屏幕,该本地机器可以使用由生物测定读取器读取的凭证验证用户。
图9b是示出在本地机器上确认的四个(4)账号的登录屏幕,其中,为读取指纹印作为凭证目的,该登录屏幕是触敏的,,对照该凭证,本地机器将使用该凭证结合自定义凭证提供器来验证用户,其中,包括指纹的凭证由凭证提供器翻译成与本地机器的操作系统兼容用于验证的凭证。
图9c是示出一个(1)账号的登录屏幕,对于该账号,通过使用包括用户的指纹的凭证已验证了对应的用户来使用本地机器。
图10是用户从其中可以选择多个登录连接类型和对应的访问服务之一的登录屏幕,登录连接类型和访问服务将用于通过使用向登录屏幕的输入提供的凭证来建立网络连接会话。
图11是使用登录屏幕的过程的一个示例性实现的流程图,用户可以从该登录屏幕选择多个登录连接类型和对应的访问服务之一,登录连接类型和访问服务将用于通过使用向登录屏幕的输入提供的凭证来建立网络连接会话。
图12是一登录屏幕,它用于从用户接收凭证,并且用户可以从该屏幕选择多个登录连接类型和对应的访问服务之一,并且也能够选择多个凭证提供器之一,其中,用户的选择的每一个可以用于用该凭证标识和验证该用户,使得该用户可以被登录并使用呈现该登录屏幕的本地机器。
图13是使用登录屏幕的过程的一个示例性实现的流程图,该登录屏幕用于从用户接收凭证,并且用户可以从该屏幕选择多个预登录访问类型之一并可以选择多个凭证提供器之一,其中,用户选择的每一个可以用于使用该凭证来标识并验证该用户,使得该用户可以通过所选择的访问服务被登录以使用呈现该登录屏幕的本地机器。
图14示出了可在其中完全或部分实现本发明描述的软件应用、方法和系统的计算环境的一个示例。
贯穿整个说明和附图,使用相同的标号参考相同的组件和特征。系列100标号参考最初在图1中找到的特征,系列200标号参考最初在图2中找到的特征,系列300标号参考最初在图3中找到的特征,依此类推。
具体实施方式
各种实现提供了与计算装置的操作系统接口并且可与其共同操作的共存模块,其中,每一模块能够使用包括标识和标识的证明的一组信息(如凭证)来接收并验证主体、实体或用户,标识和标识的证明用于获取通过该操作系统对本地和网络资源的访问。此外,通过维护模块和操作系统之间的接口的稳定性,可以在不影响由其它模块执行的标识和验证过程的情况下对模块的任一个以及操作系统作出改变。
图2a描述了示出示例性过程200a的流程图,过程200a用于标识并验证将要登录并由此获取通过本地机器的操作系统对本地和网络资源的访问的用户。各种独立软件销售商提供了多个凭证提供器模块202,它们中的任一个可由本地机器使用来标识并验证用户。由此,凭证提供器模块202是对操作系统的共存接口,通过该模块,用户可通过其操作系统登录到本地机器。
每一凭证提供器模块202使用不同的标识和验证过程。一个凭证提供器模块202使用接收用户名和密码作为凭证的用户界面(UI)107。另一凭证提供器模块202使用令牌208。作为示例,令牌208可以是一物理器件。该物理器件储存一号码,当用户试图登录到计算装置时由阅读机读取该号码。在每一这样的登录之后,或通过基于事件的算法在周期性的间隔,储存在令牌208中的号码改变。新号码可以储存在计算装置中用于将来的验证。除令读卡机读取令牌208之外,也可向用户提示输入个人身份识别号(PIN)。再一相应的凭证提供器模块202可使用指纹读取器103和/或智能卡读卡机105,来分别读取指纹作为印在指纹读取器103上的用户手指的凭证,以及从插入到智能卡读卡机105中的智能卡读取凭证。当然,可以使用其它凭证读取器来向其它不同的凭证提供器模块202提供凭证,如视网膜扫描仪模块、脸部识别照相机模块、门或通道识别照相机模块、笔迹识别模块、语音识别模块、气味识别模块、遗传密码识别模块以及其它这类生物测定模块。
各种替换方案可用于使用共存凭证提供器模块202。例如,本地机器可需要所有或一些用户使用多个验证方法来验证。作为这一多方法验证需求的示例,可需要用户使用两个不同的智能卡验证,以登录到本地机器。在另一示例中,可向用户给予选择,选择用户将使用的多种方法的哪一种来登录到本地机器。例如,用户可选择密码类型或将手指插入到指纹传感器以登录到本地机器。
每一凭证提供器模块202可接收凭证并将其翻译成一公用凭证协议。翻译的凭证的凭证协议令其兼容,用于由本地机器的本机操作系统的验证组件进行验证。对照凭证数据库作出翻译的凭证的验证。当验证成功,由该凭证标识的用户可登录到本地操作系统以访问本地机器。
每一凭证提供器模块202与凭证提供器应用程序接口(API)204接口以处理与验证器的通信。凭证提供器API 204与可以是登录用户界面(UI)206的调用器接口。登录UI206可以是用于接收并管理来自用户的凭证的凭证管理器。登录UI206使用到操作系统(OS)登录模块102的远程过程调用(RPC)。OS登录102是到计算装置的OS的接口。OS登录102执行到本地安全授权机构(LSA)模块106的本地安全授权机构(LSA)登录用户的调用。如上文参考图1所描述的,LSA模块106访问本地安全账号管理器(SAM)数据库108a用于通常的用户名和密码的标识和验证。LSA模块106也可访问本地地储存的凭证数据库108b,以使用由诸如凭证读取装置103-107和208之一的读取装置收集的凭证标识并验证主体、实体或用户。
翻译的凭证通过凭证提供器API204传递到登录UI206用于与OS登录102的通信,以通过LSA模块106进行本地验证来将用户登录到本地机器。可选地,LSA模块106可通过建立的到域的连接执行本地机器之外的远程访问。活动目录(AD)和Kerberos分发中心(KDC)110储存在该域中并可以被访问。从这些访问,对用户使用翻译的凭证执行标识和验证,以确定用户通过OS登录到本地机器的访问特权。成功的标识和验证将登录该用户。然后,通过OS登录的用户可继续使用本地机器。
在图2b中将看到一个示例性一般登录过程200b,并参考图2a来对其进行描述。登录过程200b在块212开始,其中,本地机器的OS(OS)加载登录用户界面(UI)206。在块214,登录UI 206使用凭证提供器API204加载并初始化所有注册的凭证提供器202。
在块216,OS登录102通知登录UI206在UI上显示一欢迎屏幕,让用户能够看见并与其交互。在块218,用户输入control-alt-delete(CAD)按键序列。当用户输入CAD按键序列,或同样为安全注意序列(SAS)的另一按键序列时,生成一最好仅OS能截取的硬件事件。在块220,用户的动作促使OS登录102通知登录UI,它已准备好接收登录凭证。在块222,登录UI206显示默认凭证提供器模块202专用的用于登录的UI。登录UI206请求凭证提供器模块202提供所有凭证提供器的平面列表用于显示。在块224,登录UI206接收表示用户对多个显示的凭证提供器之一的选择的输入,每一凭证提供器对应于凭证提供器模块202之一。这一输入起动用户输入和一个或多个外部系统之间通过凭证提供器API204的交互。特定的凭证提供器模块202可依赖于用户起动来向OS提供凭证(如,通过用户使用凭证读取装置103-107和208之一)的事件的类型。在块226,登录UI206通过RPC向OS登录102返回协商的凭证。在块228,OS登录102执行到LSA106的LSA登录用户调用,以登录该用户。在块230,OS登录102执行到登录UI206的RPC,以报告登录过程200b的结果。在块232,登录UI206通过凭证提供器API204调用特定的凭证提供器模块202来报告登录过程200b的结果。控制然后返回到OS登录102。在块234,OS登录102完成用户会话设置,使用户登录到计算装置。
图3中看到并作为流程图描述的过程300示出了本地机器300a可以使用域300b上的子验证过程来使用用户的凭证验证用户的步骤。本地机器300a上的子验证凭证提供器302与域300b上的子验证授权机构304接口。例如,域300b可以是第三方服务器。子验证凭证提供器302如上文参考图2所描述的与凭证提供器API204接口。由此,对于块206、102和106,过程300类似于过程200a。在过程300中,AD/KDC110与LSA106接口。域300b上的子验证授权机构304使用子验证协议以将登录凭证返回到子验证凭证提供器302。
过程300使用预验证过程,其中,使用用户的凭证对照第三方验证方法代替本地机器的验证方法来验证用户。在验证之后,第三方方法返回与OS兼容的凭证,以通过其OS将用户登录到本地机器300a。在实践中,子验证凭证提供器302通过凭证提供器API204与图3所见的登录UI206接口。当用户输入凭证,该凭证从本地机器300a发送到域300b上的AD/KDC110,域300b可以是通过网络域本地机器300a通信的服务器。AD/KDC110连同域300b上的子验证授权机构304一起使用用户的凭证验证该用户。子验证授权机构304向子验证提供器302返回登录凭证。子验证提供器302通过凭证提供器API204向登录UI206返回凭证。登录UI206然后可以通过RPC将该凭证传递到OS登录102。因此,本地机器300a上的OS对域300b上的第三方子验证授权机构304屏蔽。
图4示出了描述示例性过程400的流程图,通过过程400,主体、实体或用尸可由补充凭证验证,以访问一个域,如在其中具有web站点凭证请求器和验证器406的web站点。由此,在主体、实体或用户登录到本地机器上之后,主体、实体或用户由web站点凭证请求器和验证器406通过处理补充凭证来远程地验证。凭证用户界面(UI)402使用在本地机器上执行的应用404请求补充凭证。本地机器具有用户所登录的OS。本地机器与用以接收补充凭证的输入设备(如,103、105、107和208)进行通信。多个不同且共存的凭证提供器模块202之一用于在输入设备(如,103、105、107和208)上从用户收集补充凭证。一旦收集了补充凭证,将它给予应用程序404用于验证。应用程序404是在本地机器上执行的本地应用程序,它可请求并接收补充凭证。每一凭证提供器模块202可从输入设备(103、105、1-7、208)之一收集相应不同类型的凭证,如补充凭证,并且每一凭证提供器模块202通过凭证提供器API204与本地机器的OS接口。凭证提供器API204接收由凭证提供器模块202的任一个收集的凭证,其中,每一凭证提供器模块202可提供它所收集的凭证给凭证提供器API204,用于验证诸如用户那样的主体,以使该主体使用OS登录来访问本地机器。
图5a到10和12中可以看到示出提供不同的用户登录过程的各种实现的示例性显示幕。一个实现使用用户名和密码作为对凭证提供器模块的输入,这可以是用户将凭证输入到登录屏幕的默认方式。另一实现使用公钥基础结构(PKI)智能卡结合智能卡凭证提供器模块获取凭证。再一实现使用具有指纹凭证的凭证提供器模块,其中,该凭证提供器使用用户的指纹通过指纹扫描标识并验证该用户。
下文讨论的实现包括由用户选择或由事件驱动的凭证提供器,取决于用户如何选择要使用的凭证提供器模块。用户选择的凭证提供器由用户从在用户界面(UI)上提供给用户的两个或多个凭证提供器中选择。图5a示出了默认屏幕显示的一个示例,对于该屏幕显示,OS可配置成显示为该UI只有一个用户选择的凭证提供器,其中,该UI仅提示用户名和密码输入。在图5a的情况中,没有另外的用户选择凭证提供器安装在执行该OS的计算装置上。
图5b所见到的,别名或用户名可对一个以上电子邮件(e-mail)地址或用户名公用。由此,对于如图所示地使用通用主体名(UPN),凭证提供器应当是灵活的。UPN是基于因特网标准RFC822用于用户的因特网风格登录名。常规地,这应当映射到用户的电子邮件名。UPN有利地结合了电子邮件和登录名字空间,使用户仅需要记住单个名字。由此,图5b中的UI支持UPN风格的名字,其中,自动完成特征提供了UPN中的许多特性,使用户不需要键入它们。为完成这一过程,可查询目录中心(DC)并向图5b中的UI返回UPN的列表用于显示。因此,登录UI将使用UPN作为凭证的用户名部分用于凭证提供器模块。另外,登录UI也可以用于当用户加入集团或工作组时显示用户的枚举列表,或在登录屏幕上显示所有本地机器账号。登录UI也可以用于当用户加入域时显示用户的枚举列表,使得该UI仅对当前登录的用户显示每一用户的图标或贴图。UI可对尚未登录到该域的一个用户显示一个(1)图标或贴图。
当在本地机器上安装了新用户的凭证提供器时,本地机器可配置成显示出现在如图5c所见的密码控制之下的选项链接504。用户可选择该选项链接504来显示用户可从中进行选择的凭证提供器的列表。可选地,管理员或其它信息专业人员可配置本地机器来设置默认地选择特定的凭证提供器的策略,使本地机器的用户不需要选择正确的凭证提供器。如图6a中所见到的,显示了账号类型的列表602,它们分别对应于屏幕600a的UI上的不同凭证提供器。列表602允许用户选择用户想要用来登录到OS的账号类型,而登录连接类型字段604允许用户选择要使用标准类型或自定义类型的远程访问服务(RAS),如自定义虚拟专用网络(VPN)连接或用于拨号连接的自定义拨号程序。通过从图5c的选项链接504构建扩充的选项区,可以在用户登录过程中加入高级的可共同操作的功能,而不会不适当地导致笨拙的或复杂的用户登录过程。
凭证提供器可将另外的功能提供到登录过程,如屏幕600a中的UI所示。为获取图6b的示出的屏幕600b,用户选择图6a的列表602中的“Novell”选项,它转换该UI来显示Advanced Novell Options(高级Novell选项)按钮606。当用户点击该Advanced Novel Options按钮606时,可如图6b所示显示Novell Client(Novell客户)登录UI608。这一功能允许用户在登录到网络之前浏览网络上与用户的本地机器进行通信的Novell服务器的列表。在这一情况下,Novell凭证提供器也可以提供支持来添加登录脚本。
可以定制图4中所见到的子验证凭证提供器模块402,使用户界面仅反映第三方的,而不是另外方的品牌、徽标、商标或服务标记。在一个实现中,用户可以从列表602中选择一个账号类型,它激活子验证凭证提供器模块402。子验证凭证提供器模块402然后可以控制UI来向用户提供品牌特定的用户登录过程,它仍与OS的登录过程完全兼容。此外,本地机器可以具有多个子验证凭证提供器模块402,每一个都能够向用户提供不同且相异的品牌特定用户登录体验,而完全与本地机器的OS的登录过程兼容。作为示例,个人计算机可以用作在线购物商城的购物站。该购物站可以与因特网进行通信,并也可显示多个图标,每一图标可对应于不同的子验证凭证提供器模块402。当用户选择代表一个品牌的所显示的图标之一时,相应的子验证凭证提供器模块402提供对该品牌各不相同的用户登录过程,同时用户通过OS登录到本地机器并登录到对应于该品牌的因特网web站点。
图6a到6b中分别见到的屏幕600a-600b中的UI提供了与用户驱动凭证提供器相关的示例。分别在图7a到9c中见到的屏幕中的UI提供了与事件驱动凭证提供器相关的示例。基于某一用户行动选择事件驱动凭证提供器。一个这样的用户行动在用户将智能卡插入到读卡机中时出现。对于生物测定,当用户将某一身体部位接触到生物测定传感器或受其测量(如,由指纹传感器读取指纹印,由照相机读取脸部用于在脸识别软件算法中分析等等)时出现用户行动。
当用户输入CAD按键序列(Ctrl+Alt+Del)时显示图7a的屏幕700a中的UI。登录屏幕700a示出两个(2)用户已登录到本地机器。图7a中的图标702示出可使用智能卡来登录到本地机器的用户。用户然后将智能卡插入到读卡机,如与本地机器进行通信的装置105。
当读取了来自智能卡的用户凭证时,图7a的已登录用户的列表消失,图7b的登录屏幕700b仅显示在用户的智能卡上的凭证枚举。这一显示由使用智能卡读卡机105及其对应的凭证提供器模块202、凭证提供器204和登录UI206的合作处理作出。由于在该智能卡上只有一个证书,OS自动选择这一个证书,并显示PIN字段704作为对用户的数据输入的提示。现在参考图2,当用户在PIN字段704中键入PIN时,登录UI206将该PIN连同从该智能卡读取的证书一起传递到OS登录102。然后,由智能卡读卡机105读取的证书以及用户输入的PIN可用于结合事件驱动提供器模块202标识并验证带有LSA106的用户,事件驱动凭证提供器模块202在凭证提供器API204上与本地机器的OS接口。如果插入智能卡的用户将智能卡留在读卡机105上并敲击图7b的屏幕700b上的cancel(取消)按钮706,则登录屏幕返回到其前一状态,并枚举所有的三个用户,如图8a中的屏幕800a所示。然而,如果智能卡包括一个以上证书,则OS将呈现枚举所有的证书的显示。如图8b中的屏幕800b所示,在标号804,一旦用户将焦点定在证书之一802,OS呈现包括PIN字段806的显示。用户然后可以在PIN字段806中输入PIN。
对应于智能卡读卡机105的事件驱动凭证提供器模块202类似于用于指纹读卡机103的生物测定事件驱动凭证提供器模块202。在指纹凭证的情况下的示例性用户登录过程在图9a-9c中可以见到。如图9a中所见到的,独立的本地机器呈现显示四个(4)账号(如,具有特权来访问本地机器的四个用户)的屏幕。图9a的屏幕上的图标900a指示在本地机器上安装了指纹传感器。用户将其手指放置在指纹传感器/扫描仪上,如图2中所见到的外围指纹传感器/扫描仪103。可选地,如图9b所示的触敏屏幕可具有指纹传感器图标900b,它是光学扫描反馈机制。在任一情况下,指纹传感器/扫描仪传感器激活并然后读取用户手指的指纹。用户获取反馈,指示读取过程已成功地通过该用户的指纹使用图2中的事件驱动凭证提供器模块202标识,并验证了带着指纹作为凭证来登录到本地机器的用户。凭证提供器模块202将用户指纹的读入与其凭证数据库108b中的储存的指纹的高速缓存相比较,并找出与该用户的指纹的匹配,其中,该用户是图9c所示的“Richard”。凭证提供器模块202将Richard的凭证通过凭证提供器API204传递到登录UI206。登录UI206然后将Richard的凭证转递到将Richard登录到本地机器的OS登录102,其结果可由图9c的显示中标号900c处的Richard的用户贴图看出。
描述了以上图2-9c用于凭证提供者模块的登录过程的体系结构中的安全插件模型。参考图10-11,登录过程可包括可与本地机器的OS共同操作的一个或多个自定义预登录访问提供器(PLAP)模块1102。每一PLAP模块1102使用户能够选择一个登录连接类型,如通过使用拨号调制解调器到最喜欢的因特网服务供应商(ISP)、通过使用有线调制解调器来建立网络连接、通过使用VPN用于网络连接、通过局域网连接等等。
在一些情况下,本地机器可配置成当启动远程访问服务(RAS)会话时登录来建立网络连接用于登录,以对照该网络验证本地机器的用户。例如,网络管理员可要求用户登录到本地机器来进行RAS会话,因为这一需求允许网络管理员在本地机器有机会建立与该网络管理员管理的企业网络的连接之前具有对安装在本地机器上的内容的严密控制。这一本地机器的严密控制可包括使用防病毒或其它要安装的应用程序来更新本地机器,并可包括强迫周期性地改变密码等等。在一些情况下,可要求企业网络中的所有本地机器在登录到企业网络之前建立与特定RAS会话的登录连接。
如图10所示,在激活下拉菜单图标1006时,向用户提供登录连接类型的列表。列表中的每一项表示单独的登录提供器或连接类型,可通过该连接类型使用对应的访问服务建立到网络的连接。如图10中所见到的,用户需要从列表中选择连接类型和对应的访问服务,并在字段1002中输入用户名和密码,在字段1004中输入账号类型。由图标1006的激活唤起登录连接类型和对应的访问服务的列表,以显示所有的机器范围的连接,并允许用户从列表中选择一个。每一连接表示不必由OS的提供商提供而仍与该OS兼容的远程访问服务(RAS)。例如,RAS可以是由与OS的提供商无关的独立的软件销售商提供的自定义拨号程序模块。由此,自定义RAS消除了使用与OS一起提供的默认RAS拨号程序的需要。RAS会话在试图建立到由用户从标号1006处的列表指定的到网络的连接时,将使用的已输入到字段1002-1004的凭证。如果用户输入的凭证无法建立用户所选择的连接,将显示提示,要求用户提供另外的凭证。使用这些另外的凭证将作出再一次的尝试,通过来自标号1006处的列表的用户指定登录连接类型作出连接。如果下一尝试成功地建立了到网络的连接,则返回新凭证,以在上文参考图2-9c描述的登录过程中使用。
图10的屏幕1000中见到的用户界面可进一步参考图11来解释,图11示出了用于建立到用户指定的访问服务的一种类型的连接的示例性过程1100。登录UI206通过预登录访问提供器(PLAP)管理器API1112请求PLAP模块1102提供连接类型和访问服务的对应组的平面列表。例如,平面列表中的访问服务对应于自定义拨号访问服务1106、自定义VPN访问服务1108以及任一其它类型的自定义或默认访问服务1104。每一访问服务1104-1108的表示由登录UI206向用户显示。用户作出到字段1002-1006的输入,包括用户名、密码、账号类型和来自标号1006处的平面列表的用户指定的连接类型和对应的访问服务。PLAP管理器API1112试图使用用户选择的访问服务建立到域的连接。如果未成功地作出连接,则PLAP管理器API1112可促使登录UI206在再次尝试建立到用户选择的访问服务的连接之前提示用户输入进一步的信息,如另外的证书。
一旦由PLAP管理器API1112通过使用用户选择的访问服务建立了到域的连接,用户输入的用户名和密码作为凭证传递,用于验证该域中对应的用户、实体或主体。使用该凭证对用户、实体或主体的成功标识和验证被从PLAP管理器API1112传递到登录UI206。登录UI206将执行到OS登录102的RPC,其中,RPC也传递证书。OS登录102将该凭证作为LSA登录用户调用传递到LSA106用于对照SAM108a或本地或远程凭证数据库108b上的凭证的数据库进行本地标识和验证。可选地,LSA106可通过域连接将凭证传递到AD/KDC110,用于在该域上进行标识和验证。一旦使用了该凭证来使用SAM108a、凭证数据库108b或AD/KDC110标识并验证用户,成功的结果被传递到OS登录102来完成将用户登录到本地机器的过程。在一些实现中,SAM108a、凭证数据库108b和AD/KDC110可以在同一个域中,并也可以是同一个数据库。在其它实现中,可以使用对应的凭证对照令牌协议凭证服务和/或询问和响应协议凭证服务来验证主体、实体或用户。
在各种实现中,上文讨论的用于凭证提供器的登录插件模型可以与预登录访问提供器相组合,其示例将参考图12-13来说明。图12示出了屏幕1200的一个示例,它允许用户输入用户名和密码并选择登录选项(Options)按钮1202。用户对登录选项按钮1202的选择显示账号的平面列表,用户可从其中选择账号类型1208a。账号类型1208a的选择表示用户对具体的凭证提供器选择登录插件模型。如屏幕1200中所见的,用户已选择了账号类型“Novell”。选择“Novell”账号类型允许用户进一步选择“Advanced Novell Options(高级Novell选项)”按钮1208b。选择“Advanced Novell Options”按钮1208将呈现Novell UI1208c,提示用户输入进一步的凭证。这些进一步的凭证将用于对照Novell服务器上的访问数据库标识并验证该用户。通过在下拉菜单图标1210上点击,用户也可以看见访问服务的平面列表,并从中作出PLAP的选择。
过程1300示出了包括PLAP模块和凭证提供器模块的多个模块1302,每一个都具有到登录UI206的各自的API1312。每一PLAP模块1302可对应于若干默认或自定义预登录访问提供器的任一个。每一PLAP模块1302可由用户从访问服务的平面列表中选择,该列表在用户激活下拉菜单图标1210之后由登录UI206显示。每一PLAP模块1302可通过不同类型的连接和对应的访问服务建立到相应网络的连接,以使用凭证对照本地和/或远程凭证数据库验证用户。访问服务的平面列表由登录UI206向PLAP模块1302请求。
登录UI206提示用户在图12中见到的诸如用户名和密码字段等字段中输入凭证,该凭证由用户选择的默认或自定义凭证提供者模块1302支配。如上所述,每一凭证提供者模块1302可对应于阅读机103-107和208。输入凭证由对应的凭证提供器模块1302在本地机器上本地处理。凭证提供器模块1302可配置成在输入凭证上完成翻译,如通过翻译由指纹读取器103接收的生物测定凭证或由智能卡读卡机105读取的证书凭证。来自凭证提供器模块1302的翻译的凭证是按凭证协议的,它兼容于由本地机器的OS进行进一步的标识和验证。由此,将原始凭证翻译成经翻译的凭证可以在本地机器上本地完成。一旦完成了原始凭证到经翻译凭证的翻译,则由凭证提供器模块1302通过API1312将经翻译的凭证提供给登录UI206。到登录UI206的API1312使用用户选择的PLAP模块1302以使用对应的连接类型建立到访问服务的连接。换言之,PLAP模块1302标识由用户从在屏幕1200上的图标1210的下拉菜单中显示的访问服务平面列表中选择的访问服务。
PLAP模块1302接收与OS兼容的凭证,它可以如从凭证提供器模块1302获取的凭证。登录UI206然后调用PLAP模块1302来使用来自凭证提供器模块1302的经翻译凭证,以使用对应的用户选择的访问服务建立安全的网络连接会话。PLAP模块1302然后试图使用用户选择的访问服务建立到凭证数据库所在的域的网络会话。如果PLAP模块1302无法使用用户选择的访问服务建立网络会话,则PLAP模块1302可请求登录UI206显示自定义UI,提示用户输入对自定义UI特定的更多凭证。例如,PLAP模块1302可请求对Novell服务器上的验证特定的凭证。这些另外的凭证可需要访问因特网上的具体web站点(如,Novell.com、AOL.com、MSN.com等等)所需的具体用户名和具体密码的进一步输入,以使用用户选择的访问服务建立网络会话的连接。在这一情况下,PLAP模块1302的自定义UI以对话框显示,提示用户需要更多的凭证(如,Novell UI1208c)。
一旦输入,PLAP模块1302交换或切换出从Novell UI1208c新输入的凭证来代替先前所获取的第一凭证(用户名和密码)。移除这些先前的凭证并使用新输入的凭证。新输入的凭证被返回到登录UI206。然后登录UI206通过RPC调用将新输入的凭证给予OS登录102。OS登录102随后将新输入的凭证传递到LSA106。在LSA106中测试新输入的凭证用于标识和验证。LSA106对照使用SAM108a和/或本地或远程凭证数据库108b的本地数据库进行确认。在活动目录域的情况下,通过将新输入的凭证经网络会话传递到AD/KDC110上的域来作出对新输入的凭证的确认,其中,网络会话连接由PLAP模块1302建立。因此,使用凭证提供器和PLAP模块1302的标识和验证过程可以是一回环例程。
作为进一步的示例,用户最初可输入用户名“Bill”和密码“101”作为在本地机器上本地处理的第一组凭证。对应于用户选择的访问服务的PLAP模块1302然后通过API1312调用登录UI206,来提示用户输入另一密码。用户然后输入密码“102”。使用网络会话连接中用户选择的访问服务通过到凭证数据库(如,SAM108a、凭证数据库108b、AD/KDC110等)的连接来发送新密码“102”。在对照凭证数据库成功地验证之后,然后通过OS登录102将密码“102”从登录UI206传递到LSA106。LSA106将密码“102”传递到域,以对照AD/KDC110或另一凭证数据库进行标识和验证。因此,第一次执行是PLAP模块1302的执行,第二次执行是凭证提供器模块1302的执行。
每一PLAP模块1302在安全标识和验证例程中以及到域的网络连接会话的建立中涉及其本身。除此之外,由相应的默认或自定义PLAP模块1302建立的用户选择的访问服务也可以是由凭证提供器模块1302用于进一步标识并验证凭证的网络连接会话。
凭证的本地验证可以与域上的凭证验证风格不同。该风格可由保存在AD/KDC110的域上的活动目录中的用户账号中的数据来限定。用户账号的活动目录可以具有不同的属性,如一个属性指定如果用户账号能建立RAS会话,另一属性指定用户账号是否被准许交互地登录。作为示例,这些属性可被储存为域上活动目录的用户账号中两个(2)不同的位,并可如此查询。
其它实现可组合凭证提供器和PLAP的使用,如只要用户登录本地机器就访问因特网。在这一情况下,在本地机器启动时,设置成启动例程自动执行。这一启动例程自动使用用户的登录凭证来登录到本地机器,并登录到因特网服务供应商(ISP),以自动访问默认web站点并从其检索信息。可选地,可提示用户输入两组(2)凭证—一组用户本地机器,另一组用于将通过用户指定的PLAP访问的ISP。
在再一实现中,本地机器可配置成需要特定域上的Novell(或其它类型)服务器上的所有用户的标识和验证。在这一情况下,提示本地机器的用户输入对服务器特定的凭证(如,Novell服务器类型凭证)。用户然后选择图12中见到的高级Novell选项1208b。图13中见到的登录UI206收集用户输入的凭证来满足模块1302,用于访问服务并用于对应于Novell服务器的凭证提供器。在这一收集凭证的过程中,尚未作出经网络到Novell服务器的域的连接。用户也可从与图标1210关联的访问服务列表中选择自定义PLAP拨号程序。用户然后可以指示所有的输入都已作出(如,用户按下“enter(回车)”键)。在这一点上,例如,可以开始从本地机器到域上的远程凭证数据库以及到AD/KDC110的域上的网络话务。网络话务使用由PLAP模块1302建立到对应访问服务的网络连接会话。网络话务可包括以元数据形式的凭证,它们可同时收集然后顺序地传递—首先用于使用采用PLAP模块1302建立的访问服务对主体进行验证,其次用于使用凭证提供器模块1302的凭证提供器验证。由此,访问服务允许本地机器安全地与可以为第三方因特网服务器的其域上的活动目录进行通信。
示例性计算系统和环境
图14示出了可用于实现本发明描述的过程的示例性计算机系统和环境。计算机1442可以是参考图2a-13所描述的本地机器,包括一个或多个处理器或处理单元1444、系统存储器1446以及将包括系统存储器1466的各类系统组件耦合至处理器1444的系统总线1448。系统总线1448可表示一个或多个若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线、加速图形端口以及使用各类总线结构的处理器或本地总线。系统存储器1446包括只读存储器(ROM)1450和随机存取存储器(RAM)1452。基本输入/输出系统(BIOS)1454,包含如在启动时协助在计算机1442内的元件之间传输信息的基本例程,可储存在ROM1450中。
计算机1442也包括用于对硬盘(未示出)进行读写的硬盘驱动器1456、用于对可移动磁盘1460进行读写的磁盘驱动器1458以及用于对可移动光盘1464如CD-ROM或其它光媒质进行读写的光盘驱动器1462。硬盘驱动器1456、磁盘驱动器1458以及光盘驱动器1462通过SCSI接口1466或某一其它合适的接口连接至系统总线1448。驱动器及其相关的计算机可读媒质为计算机1442提供了计算机可读指令、数据结构、程序模块和其它数据的非易失存储。尽管这里描述的示例环境采用了硬盘、可移动磁盘1460以及可移动光盘1464,本领域的技术人员可以理解,示例性操作环境中也可以使用能够储存可由计算机访问的数据的其它类型的计算机可读媒质,如盒式磁带、闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等等。
若干程序模块可储存在硬盘1456、磁盘1460、光盘1464、ROM1450或RAM1452中,包括操作系统1470、一个或多个模块或应用程序1472。作为示例而非局限,一个或多个模块或应用程序1472可以是凭证提供器模块202、子验证凭证提供器302、PLAP模块1102和其它模块1302。其它项目可储存在硬盘1456、磁盘1460、光盘1464、ROM1450或RAM1452中,包括其它程序模块1474和程序数据1476。用户可以通过键盘1478和指向设备1480等输入设备向计算机1442输入命令和信息。其它输入设备(未在图14中示出)可包括指纹读取器103、令牌读取器208、智能卡读卡机105、麦克风、操纵杆、游戏垫、圆盘式卫星天线、照相机或光扫描仪、气味检测和分析设备等等。这些和其它输入设备通过耦合至系统总线1448的接口1482连接到处理单元1444。监视器1484或其它类型的显示设备也通过接口,如视频适配器1486连接到总线1448。除监视器之外,个人计算机通常包括其它外围输出设备(未示出),如扬声器和打印机。
计算机1442通常在使用到一个或多个远程计算机,如远程计算机1488的逻辑连接的网络化环境中操作。远程计算机1488可以是另一个人计算机、服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括许多或所有上述与计算机1442相关的元件,图14描述的逻辑连接包括局域网(LAN)1490和广域网(WAN)1492。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机1442通过网络接口或适配器1494连接至局域网。当在WAN网络环境中使用时,计算机1442通常包括调制解调器1496或其它装置,用于通过广域网1492,如因特网建立通信。调制解调器1496可以是内置或外置的,通过串行端口接口1468连接至总线1448。在网络化环境中,描述的与计算机1442相关的程序模块或其部分可储存在远程存储器存储设备中。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它装置。
一般而言,计算机1442的数据处理器通过在不同时刻储存在计算机的各种计算机存储媒质中的指令来编程。例如,程序和操作系统通常分布在软盘或CD-ROM上。它们从那里被安装或加载到计算机的次级存储器中。在执行时,它们被至少部分地加载到计算机的初级电子存储器中。这里描述的本发明包括这些和其它不同类型的计算机可读存储媒质,这类媒质包含用于实现下文结合微处理器或其它数据处理器描述的块的指令或程序。当依照这里所描述的方法和技术来编程时,本发明也包括计算机本身。
为说明目的,这里示出诸如OS的程序和其它可执行程序组件为离散的块,尽管可以认识到,这类程序和组件在不同时刻驻留在计算机的不同存储组件中,并且由计算机的数据处理器执行。
总结
实现方法允许使用完全与本地机器的OS兼容的多个共存且能共同操作的模块。这些共存且能共同操作的模块可以是登录插件模型,使凭证提供器能够通过其OS登录到本地机器,其中,该模型包括但不限于,数字证书、生物测定、用户名和密码凭证等等。这些共存且能共同操作的模块也可以是预登录访问提供器,包括但不限于,因特网隧道应用、无线通信应用、以太网VPN应用、使用拨号56K调制解调器硬件的双绞线电路交换网络应用等等。
本发明可以在不脱离其精神或本质特征的情况下以其它的具体形式来实施。描述的实施例在各方面被认为是说明性的而非限制性的。因此,本发明的范围由所附权利要求书而非上述描述来指示。处于权利要求书的等效技术方案的意义和范围之内的所有变化都包含在其范围之内。