封装其它凭据提供者的凭据提供者的制作方法

文档序号:6496346阅读:116来源:国知局
封装其它凭据提供者的凭据提供者的制作方法
【专利摘要】本文中描述了用于在单个包封CP内封装多个基于Windows?的凭据提供者(CP)的系统、方法和计算机可读媒体。通常,来自两个或更多个被封装或包封CP的CP凭据和字段可以这样的方式枚举和聚集使得保持来自每个CP的字段的顺序,识别并只呈现一次只可使用一次的字段,以及赋予字段新的唯一字段标识符。所有此类字段的联合(减去任何仅一次使用字段的复本)可用于生成映射,以便包封CP和CP凭据可将来自操作系统的登录接口的调用“传递”到正确的被包封CP和CP凭据。公开的技术提供例如可用于其中可使用多个登记凭据(例如,用户名/密码和智能卡PIN)的单点登记功能性。
【专利说明】封装其它凭据提供者的凭据提供者
【技术领域】
[0001]本公开内容一般涉及自动化登录过程领域。更具体但非限制性地说,它涉及用于在共同凭据提供者对象内包封多个凭据提供者的技术。
【背景技术】
[0002]在使用MicrosoftWindows XP?或Windows Server? 2003操作系统的计算机系统启动期间,Winlogon可执行文件加载并且执行图形标识和鉴权(GINA)动态链接库(DLL)。(WINDOWS XP和WINDOWS SERVER是Microsoft股份有限公司的注册商标。)一旦加载后,GNINA便提供可自定义用户标识和鉴权过程,并且负责渲染(rendering)登录操作/过程的图形方面。
[0003]通过使用GINA,软件开发人员能够通过确保在其它GINA的加载和执行之前加载和执行其定制的GINA,定制登录过程用户体验。软件开发人员也能够通过利用称为“GINA链”的技术,“再使用”以前开发的登录功能性的功能性。由于存在必须调用的第一或“排头”GINA,并且通过其可提供所有其它GINA,因此,GINA链是可能的;链式的GINA形成分层结构。
[0004]从Windows Vista?中开始,LogonUI过程变得负责渲染登录窗口的图形方面,而全部登录过程通过凭据提供者(CP)的使用进行调和。(WINDOWS VISTA是Microsoft股份有限公司的注册商标。)要在此新环境中输送GINA链提供的功能性,需要有“排头” CP。然而,Windows Vista和Windows 7的登录体系结构使得所有注册CP是彼此的对等体;不存在必须调用并且通过其可传递通信到其它CP的“排头”CP。Microsoft提供有关在称为“包封”的过程中一个CP能够如何调用和再使用/扩展正好一个其他CP的功能性的指导。也就是说,Microsoft允许仅一个CP的封装或包封。因此,即使只允许一个CP在登录时在活动状态(因此必须使用它)-它只能够是一个其他CP的排头CP。在此类设置中,GINA链的全部功能性不可能实现。有鉴于此,提供允许一个CP同时封装或包封两个或更多个其它CP的机制将是有益的。

【发明内容】

[0005]在一个实施例中,提供了一种在计算机登录操作期间控制用户体验的方法。方法包括创建(例如,实例化)包封凭据提供者,该凭据提供者又创建多个凭据提供者,其中,每个凭据提供者具有指定数量的凭据和字段的有序列表。另外,每个字段具有凭据提供者特定标识符和描述符。一旦创建凭据提供者,或者在凭据提供者创建期间,每个凭据提供者可指派有或获得唯一提供者索引。随后,可基于来自每个凭据提供者的字段的有序列表,生成映射列表,其中,在映射列表中保持来自单个凭据提供者的字段的顺序。识别映射列表中的仅一次使用字段,并且指派唯一标识符到每个仅一次使用字段的第一实例,为仅一次使用字段的每个随后实例指派赋予相同仅一次使用字段的第一实例的标识符。所述方法也可为登录接口过程(例如,Windows LongonUI过程)提供足够的信息,使得登录接口过程能够在显示装置上的单个窗口中显示多个块片(tile),其中,多个被包封凭据提供者的每个凭据提供者支持显示的块片至少之一。在另一实施例中,实现所述方法的计算机可执行程序可存储在可由计算机处理器读取和执行的任何非暂时性媒体中。此外,此类计算机处理器和计算机可执行程序可在计算机系统中体现。此类计算机系统可以是独立系统,或者它可以耦合到通信网络。
【专利附图】

【附图说明】
[0006]图1A和IB以流程图形式示出根据一个实施例的单点登记(single sign_on)操作。
[0007]图2以流程图形式示出根据一个实施例的凭据提供者包封操作。
[0008]图3以流程图形式示出根据一个实施例的字段映射操作。
[0009]图4以框图形式示出根据一个实施例的计算机网络。
[0010]图5以框图形式示出可用于实现根据本公开的一个或多个操作的说明性计算机系统。
【具体实施方式】
[0011]本公开涉及用于在单个“包封”凭据提供者(CP)对象内包封或在功能上封装多个基于Windows?的凭据提供者(CP)的系统、方法和计算机可读媒体。(WINDOWS是Microsoft股份有限公司的注册商标。)概括而言,公开了其中单个CP对象实例识别、枚举和分类来自两个或更多个其它CP的字段的技术,以便这些“被包封”CP凭据的每个凭据“属于”包封CP并且能够由包封CP控制,并且可在共同显示窗口中显示和由用户以与其“解封”操作一致的方式选择。更具体地说,可枚举来自两个或更多个CP的字段,并且识别仅可使用一次的那些字段。所有此类字段的联合(减去仅可使用一次的那些字段的复本)可用于生成映射,以便包封CP可将调用从例如操作系统的登录接口“传递”到正确的被包封CP (例如,Windows Vista和Windows 7中的LongonUI )。在本文中使用时,短语“包封CP”或“被包封CP”指包含两个或更多个其它凭据提供者的功能性的凭据提供者。类似地,短语“被包封CP”指其功能性已包含在包封CP内的CP。
[0012]在单个CP内提供多个CP功能性的另一方案是单点登记(SSO)能力的一些提供者采用的方案,是创建将逝査目标CP的功能性编码的单个CP (最重要CP (Uber alles CP))。使用此方案的实现通常必须将其能力要包含在最重要CP (例如,Microsoft智能卡CP)内的每个CP的行为“反向工程”。这不但是个困难的任务,而且从软件管理的角度而言是一个难以维护的任务。将现有CP反向工程的任务可特别困难,这是因为单个CP能够供应多个异类凭据,并且控制何时显示它们。本文中描述的方案避免了这些困难。
[0013]在下面的描述中,为便于解释,陈述了许多特定细节以便提供本发明概念的详尽理解。作为此描述的一部分,本公开的一些附图以框图形式表示结构和装置以便避免混淆本发明。因此,应理解的是,对无相关联标识符的编号附图元素的引用(例如,900)指带有标识符的附图元素的所有实例(例如,900a和900b)。另外,在本公开中使用的语言主要选择用于实现可读性和指导目的,并且可未选择以描述或限定发明性主题,借助于确定此类发明性主题需要的权利要求。说明书对“一个实施例”或“实施例”的引用指结合该实施例描述的特定特性、结构或特征包括在本发明的至少一个实施例中,并且对“一个实施例”或“一实施例”的多次引用不应理解为必需全部引用相同实施例。
[0014]将领会的是,在任何实际实现的开发中(如在任何开发项目中一样),必须做出许多决定以实现开发人员的特定目标(例如,符合系统和业务有关约束),并且这些目的将从一个实现到另一实现不同。也将领会的是,此类开发工作可能复杂并耗时,但仍然会是从本公开受益的计算机数据保护领域技术人员进行的日常工作。
[0015]本文中将描述公开系统、方法和计算机可读媒体的实施例,这是因为它们可用于为Windows Vista和Windows 7操作系统(OS)提供SSO能力。例如,为实现SSO功能性,可包封密码和智能卡CP。在另一实施例中,SSO功能性也可包括指纹CP的使用。在一些实施例中,可静态(例如,通过用户设置或系统文件,例如Windows注册表文件)确定要包封的CP。在其它实施例中,可动态确定(即,在运行时)被包封CP的标识。在还有的其它实施例中,可静态确定一些被包封CP,并且可动态确定其它被包封CP。
[0016]例如,以下描述教导将CP包封技术包含到来自McAfee有限公司的端点加密产品(通常,McAfee端点加密产品使用预引导鉴权过程提供完全磁盘加密和数据保护)。另一说明性使用能够是通过在现有例如用于特定凭据提供者的凭据上放置图像,将公开的技术用于产品“品牌标示”。在仍有的另一实施例中,基于例如时间、系统策略或谁已使用“第一”凭据登录到系统,可限制可用于登录的Windows凭据。
[0017]参照图1A,在加载计算机系统的预引导OS时可开始根据一个实施例的SSO系统设置操作100(方框105)。也如本领域技术人员认识到的一样,可通过计算机系统的BIOS或引导固件提供预引导环境以提供在计算机系统的操作系统外部的安全环境。在预引导期间,用户可登录到目标系统上利用本文中所述包封技术的应用(例如,端点加密)(方框110)。预引导完成时,可启动Windows OS(方框115)。在Windows启动期间,LogonUI过程加载多个CP过滤器-一般情况下每个注册的CP—个(方框120)。在Windows Vista和Windows 7中,Logonn过程实现在要求用户登录到本地机器时示出的图形用户接口。与包封CP相关联的过滤器可配置成使得它阻止加载除包封CP外的所有CP (方框125)。一旦加载后,包封CP便加载两个或更多个其它CP (方框130)。在一个实现中,要包封的CP的列表可与字段的标识符一起提供以用于SSO “秘密”(例如,分别在密码和智能卡CP中的密码和PIN字段标识符)。另一实现能够动态发现要包封的CP (例如,在运行时通过“.1ni”或系统注册表文件)。如果用户的登录凭据(例如,密码或智能卡PIN)已知(方框135的“是”分叉),则操作100在图1B中的方框140继续。如果用户的凭据不可用(方框135的“否”分叉),则操作100在图1B的方框150继续。
[0018]现在参照凭据可用情况下的图1B,包封CP将那些凭据传递到被包封CP,并且请求它使用那些凭据使用户登录(方框140)。接收/被包封CP正常执行以完成请求的任务。如果登录成功(方框145的“是”分叉),则操作100在方框165继续(在下面讨论)。如果登录不成功(方框145的“否”分叉),则Logonn过程显示被包封CP的块片(方框150)。术语“块片”以其习惯性意义使用,并且指凭据的视觉表示,通常呈现为Logonn窗口内的图标或小图像。在Windows环境中,每个块片/凭据后面是CP凭据对象,由CP创建,并且实现ICredentialProviderCredential接口。要注意的是,一个CP可创建多个块片。
[0019]用户可选择块片,这随后造成调用块片的相关联CP。如果在选择显示的块片之一后,用户未能成功登录(方框155的“否”分叉),则操作100返回到方框150。如果用户成功登录到目标系统(方框155的“是”分叉),则用户的“秘密”被以安全的方式捕捉和存储(方框160)。在一个实施例中,用户的秘密能够是其用户名和密码。在另一实施例中,用户的秘密能够是智能卡的PIN标识符。例如,用户的名称和/或密码可在McAfee端点加密应用内以加密形式存储。在成功登录后,在主机的操作系统中启动用户的会话(方框165)。
[0020]将认识到的是,SSO操作100提供到Windows的自动化登录,但未去除如方框110中所述用户最初登录到包封应用的要求。在操作100的上下文中,用户体验是一旦它们成功登录到在预引导期间加载的应用(例如,端点加密),则该应用在启动期间将其登录凭据传递到Windows OS -结果是用户自动登录到Windows中。
[0021]参照图2,通过加载为包封识别的那些CP,开始根据方框130的包封操作(方框200)。例如,在Windows环境中,根据方框200的动作创建被包封CP COM对象的集合。一旦加载后,用于被包封CP的使用情形便可设成例如登录或解锁(方框205)。包封CP随后可查询每个被包封CP以获得凭据的数量和与其各自相关联的字段(方框210)。如下面更详细所述,包封CP使用此信息生成一个或多个映射表(方框215)。在被要求时,包封CP将总凭据计数传递到Logonn过程(方框220)。实际上,每个被包封CP生成其自己的凭据(一个或多个),将它们传递回包封CP。包封CP随后将每个凭据返回到Logonn过程。此信息允许LogonUI显示被包封CP的凭据,好象被包封CP实际上在活动状态(即,未被包封)。
[0022]包封CP使用根据方框215生成的映射信息以充当在Logonn过程与每个被包封CP之间的中间人(方框225)。也就是说,用户选择在显示的登录窗口中显示的块片时,包封CP使用一个或多个映射表(或列表),以便用户的动作可转发到适当的被包封CP。
[0023]参照图3,映射操作215识别要包封的第一 CP,并且确定其凭据中的每个包含的字段数量,随后枚举通过每个字段以获得其相关联的字段描述符(方框300)。在Windows环境中,字段描述符可包含字段的字段标识符和字段类型。说明性字段包括标签(例如,在编辑框旁的提示符)、编辑框(例如,通过其可输入用户数据的字段,如用户名或密码)、复选框和单选按钮。已确定的是,一些CP字段只能够在实现ICredentialProvider接口的CP中出现一次;即,与LogonUI过程交互(例如,包封CP)。在Windows Vista和Windows 7环境内,这类仅一次使用字段包括类型CPFT_SUBMIT_BUTT0N和CPFT_TILE_IMAGE的字段。相应地,可识别仅一次使用字段(方框305)。
[0024]第一 CP的字段列表可放置到包封CP的聚集字段列表中,该列表到现在已为空(方框310)。也已发现的是,在Windows环境中,在包封CP的聚集字段列表内保持单独被包封CP的字段的顺序是重要的(除对于仅一次使用字段外,参阅下述讨论)。如果当前CP不是要包封的最后CP (方框315的“否”分叉),则识别要包封的下一 CP,并且如上相对于方框300所述获得其字段信息(方框320)。之后,操作215继续到方框305,其中,如果当前CP有任何仅一次使用字段,则识别当前CP的仅一次使用字段(方框305)。象以前一样,识别所有仅一次使用字段,并且从当前CP的字段列表删除以前识别的那些仅一次使用字段的复本。一旦已询问要包封的所有CP,并且在包封CP的聚集字段列表中已包括其字段(方框315的“是”分叉),则可为其聚集字段列表中的每个字段生成对包封CP唯一的新字段标识符(方框325)。此映射以此类方式进行,使得包封CP能够将其聚集字段列表(其中带有仅一次使用字段的单次出现)中的字段反向与来自来源被包封CP的字段相关;从包封CP的字段标识符(其用于与Logonn过程进行有关字段的通信)转换回(被包封CP理解的)被包封CP的字段标识符。根据本公开,包封CP的聚集字段列表在逻辑上由来自每个被封装CP的所有字段的联合减去仅一次使用字段的复本形成。
[0025]在上述实施例中,包封CP实现ICredentialProvider接口并且包含被包封CP的实例。从包封CP可用的凭据的数量是从被包封CP可用的凭据的数量之和。包封CP赋予每个凭据唯一索引号,并且将此索引映射到被包封CP实例和凭据索引,从而使它能够将调用从Logonn过程“传递”到在被包封CP的自己唯一凭据索引号的上下文中的特定被包封CP。包封CP中凭据(在特定索引号)的每个实例实现ICredentialProviderCredential接口,并且将来自被包封CP的对应凭据的实例“包封”。具体而言,包封CP的广告方法将其到ICredentialProviderCredentialEvents接口的指针包封(在其事件对象中),并且将此对象赋予被包封CP的广告方法。(在Windows Vista和Windows 7中,CP对象的广告方法的目的是赋予CP用于异步通知Logonn关于CP的可见UI元素的任何所需更改的机制。)在被包封CP调用Logonn时,包封CP的事件对象使用字段映射信息(参阅上面有关图2在元素225的讨论)将字段索引号从被包封CP的上下文映射回包封CP的上下文。
[0026]为说明一些上述操作,考虑将其凭据和字段信息在表1中示出的两个CP包封。作为初步事项,应注意的是,两个CP均利用仅一次使用字段(例如,提交按钮和图像块片)。
表1要包封的说明性St据提供者
【权利要求】
1.一种非暂时性程序存储装置,包括上面存储的用于促使可编程控制装置执行以下操作的指令: 创建多个凭据提供者,其中每个凭据提供者具有特定数量的凭据、字段的有序列表,其中每个字段具有凭据提供者特定标识符,并且每个字段具有描述符; 指派唯一提供者索引到所述多个凭据提供者的每个凭据提供者; 从来自每个凭据提供者的字段的有序列表生成映射列表,其中在所述映射列表中保持来自单个凭据提供者的字段的顺序; 识别所述映射列表中的仅一次使用字段; 指派唯一标识符到所述映射列表中每个仅一次使用字段的第一实例; 为所述映射列表中一次使用字段的每个随后实例指派与指派到所述映射列表中所述一次使用字段的第一实例相同的唯一标识符;以及 指派唯一标识符到所述映射列表中每个非仅一次使用字段。
2.如权利要求1所述的非暂时性程序存储装置,其中用于促使所述可编程控制装置创建多个凭据提供者的指令包括用于促使所述可编程控制装置基于凭据提供者的静态列表创建所述多个凭据提供者的指令。
3.如权利要求1所述的非暂时性程序存储装置,其中用于促使所述可编程控制装置创建多个凭据提供者的指令包括用于促使所述可编程控制装置基于凭据提供者的运行时标识创建所述多个凭据提供者的指令。
4.如权利要求1所述的非暂时性程序存储装置,还包括用于促使所述可编程控制装置执行以下操作的指令:` 从所述多个凭据提供者的每个凭据提供者获得指示每个凭据提供者的指定数量的凭据的数目;以及 将来自所述多个凭据提供者的每个凭据提供者的所述数目相加以确定凭据的总数。
5.如权利要求4所述的非暂时性程序存储装置,还包括用于促使所述可编程控制装置执行以下操作的指令: 为登录接口过程提供指派到所述映射列表中字段的唯一标识符的数量;以及 为所述登录接口过程提供凭据的总数。
6.如权利要求1所述的非暂时性程序存储装置,还包括用于促使所述可编程控制装置为登录接口过程提供足以使所述登录接口过程在显示装置上的单个窗口中显示多个块片的信息的指令。
7.如权利要求6所述的非暂时性程序存储装置,还包括用于促使所述可编程控制装置执行以下操作的指令: 接收来自所述登录接口过程的对用于具有指定索引值的字段的字段描述符的请求; 识别所述映射列表中具有等于所述指定索引值的唯一标识符的条目; 基于所述映射列表中的所述条目,获得所述字段描述符;以及 为所述登录接口过程提供所述字段描述符。
8.如权利要求6所述的非暂时性程序存储装置,还包括用于促使所述可编程控制装置执行以下操作的指令: 接收来自所述登录接口过程的更新具有字段标识符的字段的请求;基于所述请求识别所述多个凭据提供者之一; 基于所述映射列表中的条目,识别用于所述一个凭据提供者的字段描述符的凭据提供者特定标识符;以及 向所述一个凭据提供者发送在所述凭据提供者特定标识符识别的所述一个凭据提供者中更新字段的请求。
9.如权利要求1所述的非暂时性程序存储装置,其中生成映射列表的指令包括用于促使所述可编程控制装置在存储器中生成多个列表的指令。
10.如权利要求1所述的非暂时性程序存储装置,其中所述处理器包括多个可编程处理单元。
11.一种用于控制计算机登录环境的方法,包括: 使用处理器创建多个凭据提供者,其中每个凭据提供者具有特定数量的凭据、字段的有序列表,其中每个字段具有凭据提供者特定标识符,并且每个字段具有描述符; 使用所述处理器指派唯一提供者索引到所述多个凭据提供者的每个凭据提供者; 使用所述处理器从来自每个凭据提供者的字段的有序列表生成映射列表,其中在所述映射列表中保持来自单个凭据提供者的字段的顺序; 使用所述处理器识别所述映射列表中的仅一次使用字段; 使用所述处理器指派唯一标识符到所述映射列表中每个仅一次使用字段的第一实例;· 使用所述处理器为所述映射列表中一次使用字段的每个随后实例指派与指派到所述映射列表中所述一次使用字段的第一实例相同的唯一标识符;以及 使用所述处理器指派唯一标识符到所述映射列表中每个非仅一次使用字段。
12.如权利要求11所述的方法,其中创建多个凭据提供者的动作包括基于凭据提供者的静态列表创建所述多个凭据提供者。
13.如权利要求11所述的方法,其中创建多个凭据提供者的动作包括基于凭据提供者的运行时标识创建所述多个凭据提供者。
14.如权利要求11所述的方法,还包括: 使用所述处理器从所述多个凭据提供者的每个凭据提供者获得指示每个凭据提供者的指定数量的凭据的数目;以及 使用所述处理器将来自所述多个凭据提供者的每个凭据提供者的所述数目相加以确定凭据的总数。
15.如权利要求14所述的方法,还包括: 使用所述处理器为登录接口过程提供指派到所述映射列表中字段的唯一标识符的数量;以及 使用所述处理器为所述登录接口过程提供凭据的总数。
16.如权利要求11所述的方法,还包括使用所述处理器为登录接口过程提供足以使所述登录接口过程在显示装置上的单个窗口中显示多个块片的信息的指令。
17.如权利要求16所述的方法,还包括: 使用所述处理器接收来自所述登录接口过程的对用于具有指定索引值的字段的字段描述符的请求;使用所述处理器识别所述映射列表中具有等于所述指定索引值的唯一标识符的条目; 使用所述处理器,基于所述映射列表中的条目,获得所述字段描述符;以及 使用所述处理器为所述登录接口过程提供所述字段描述符。
18.如权利要求16所述的方法,还包括: 使用所述处理器接收来自所述登录接口过程的更新具有字段标识符的字段的请求; 使用所述处理器,基于所述请求识别所述多个凭据提供者之一; 使用所述处理器,基于所述映射列表中的条目,识别用于所述一个凭据提供者的字段描述符的凭据提供者特定标识符;以及 使用所述处理器,向所述一个凭据提供者发送在所述凭据提供者特定标识符识别的所述一个凭据提供者中更新字段的请求。
19.如权利要求11所述的方法,其中生成映射列表的动作包括在存储器中生成多个列表。
20.如权利要求11所述的方法,其中所述处理器包括多个可编程处理单元。
21.一种计算机系统,包括: 显示器; 存储器,以通信方式耦合到所述显示器;以及 可编程处理单元,以通信方式耦`合到所述存储器并且配置成执行其中存储的计算机程序指令以便执行如权利要求11所述的方法。
22.如权利要求21所述的计算机系统,其中所述计算机系统包括便携式计算机系统。
23.如权利要求21所述的计算机系统,其中所述计算机系统还包括以通信方式耦合到所述存储器和所述可编程处理单元的网络接口。
【文档编号】G06F17/00GK103858097SQ201280042344
【公开日】2014年6月11日 申请日期:2012年8月28日 优先权日:2011年8月31日
【发明者】P.M.斯图格斯 申请人:迈可菲公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1