专利名称:凭证漫游的制作方法
技术领域:
所描述的主题涉及电子计算,尤其涉及在电子计算系统中的凭证漫游系统和方法。
背景技术:
各种类型的加密方案被广泛地用于保护通过网络通信的数据(如电子邮件消息或文件)。例如在对称加密中,加密数据的用户和解密数据的用户均需要同一加密密钥的副本。非对称加密(也称为公用密钥加密)使用密钥对(如公钥和私钥)。在非对称加密中,公钥可共享,但私钥则不共享。
加密密钥能储存在计算机系统中,比如作为用户概况、或用于用户设置、凭证等的其它存储库的一部分。加密密钥能随时修改或替代,以减少非授权用户能破解加密方案的可能性。在任何情况下,在用户被认证(如在登录期间)和用户概况被加载到计算机系统后,向用户提供对加密密钥的访问。
然而,用户可能需要在一台以上计算机系统(如个人计算机或一个或多个移动设备)处访问加密密钥。虽然用户能将加密密钥从一个计算机系统传输到另一个(如使用软盘或其它可移动存储介质),但这是麻烦且耗时的。虽然可使用智能卡,这些是昂贵的。或者,用户概况能存储在网络服务器上,并每当用户连接到网络时能从各种不同的计算机系统访问。然而,用户概况可能很大(若干兆字节),而从网络服务器下载用户概况会减慢登录过程。此外,没有本地存储的用户概况(在网络不可用时),用户可能不能登录和使用计算机。
发明内容
此处描述并要求保护诸实现,以启用如在多个不同的计算设备中的凭证漫游。一个示例性系统包括一事件处理器,它接收事件通知,例如来自操作系统的交互动作或网络登录。事件处理器能响应于接收事件通知调用一管理服务。管理服务能包括一同步模块,将用户的凭证(如加密凭证)与远程高速缓冲或目录服务同步。因而,用户凭证能从若干不同计算设备的任一个得到。
在某些实现中,制造的物件作为计算机程序产品提供。计算机程序产品的一个实现提供计算机系统可读的计算机程序存储介质,并编码计算机程序用于凭证漫游。计算机程序产品的另一实现能在由计算系统包含在载波中的计算机数据信号中提供,并编码计算机程序用于凭证漫游。
计算机程序产品响应于接收一事件通知,编码计算机程序,用于在计算机系统上执行一计算机过程,以枚举本地凭证和远程凭证,并将本地凭证与远程凭证同步。
在另一实现中提供一方法。一示例性方法包括响应于接收一事件通知,枚举本地凭证和远程凭证,并将本地凭证和远程凭证同步。
在另一实现中提供一系统。示例性系统包括接收事件通知的事件处理器。同步模块在操作上与事件处理器相关联。若本地和远程凭证彼此不同,当事件处理器接收一事件通知时,同步模块同步本地凭证和远程凭证。
图1是能实现凭证漫游的示例性计算机网络的原理性图示;图2是实现凭证漫游的示例性模块的功能框图;图3是实现凭证漫游的示例性模块的另一功能框图;图4a示出示例性状态文件;图4b示出在状态文件中的示例性状态条目;图5示出示例性获性者仲裁矩阵,其中(a)是宽容矩阵(lenient matrix)而(b)是严格矩阵(strict matrix);图6是示出为实现凭证漫游的示例性操作的流程图;图7是能利用来实现凭证漫游的示例性计算设备的原理性图示。
具体实施例方式
简言之,能实现凭证漫游,以在任何数目(n)的计算设备处同步本地的凭证(加密密钥、凭证、令牌等)。为说明起见,用户能在他(或她)的膝上或台式计算机处改变,修改,添加和/或删除凭证。当用户退出膝上或台式计算机,管理服务将本地凭证与远程高速缓存同步。远程高速缓存能作为远程目录服务实现,如微软WINDOWS操作环境中可得到的活动目录(Active Directory)。或者,响应于其它事件,管理服务能同步。例如,响应于一个或多个凭证被添加、删除、和/或修改,能发生实时同步。
稍后,用户能使用他(或她)的个人数字助理(PDA)或移动电话检索电子邮件消息。当用户登录移动设备时,用户的凭证与远程目录服务同步,使用户可得到当前的且完整的凭证组,如用于发送/接收电子邮件消息的加密凭证。
在示例性实现中,管理服务能被自动地调用(如响应于系统事件),且甚至不需要用户的确认动作。此外,用户概况能本地存储,如存在台式或膝上计算机上,而仍然允许用户在若干不同计算设备的任一个处具有对当前且完整的凭证组的访问。示例性实现还能确保在旧的或不使用的凭证不再需要时,(如通过检测和传播一删除,或检查这些凭证的时间标记),从用户的系统中删除这些凭证。
示例性系统图1是其中能实现凭证漫游的示例性网络化计算系统100的原理性图示。网络化计算系统100能包括一个或多个通信网络110,如局域网(LAN)和/或广域网(WAN)。一个或多个主机120以及一个或多个客户机130a-c在通信上能通过通信网络110耦合。
主机120和客户机130a-c(以后统称为客户机130)能通过如以太网连接那样的通信连接来连接到网络。虽然能包括在如连网计算系统100那样的网络中的设备的数量没有理论上的限制,然而设备的数量主要受在通信网络中实现的连接的限制。
术语“主机”和“客户机”均指用于执行各种计算服务的硬件和软件(整个计算机系统)。例如,主机能被实现为专用于服务器应用程序或也运行其它应用程序的服务器计算机。客户机能被实现为独立的台式或膝上个人计算机(PC)、工作站、个人数字助理(PDA)、或各种电子装置的任一种,这里仅举出少数例子。
能在一个或多个客户机130上提供凭证140a-c(以后统称为凭证140)。例如,为保护在网络110上的通信,对于数据的对称和/或非对称加密/解密,能提供凭证,来应用向内容应用数字签名,或向系统认证,这里仅举出少数例子。任何数目的凭证140能存储在本地高速缓存135a-c中(以后统称本地高速缓存135)。本地高速缓存135能包括用户概况或其它存储库(如用户设置和凭证),尽管也能考虑其它实现。
注意,凭证140能包括多种不同类型凭证的任一种,如对称加密密钥、非对称加密密钥对、X.509凭证、XrML许可证、令牌、和认证/授权凭证,这里仅举出少数示例凭证。当然,凭证140不限于这些例子,并能包括现在已知的或以后开发的其它类型的凭证。
例如,凭证140能被添加到本地高速缓存135,来加密/解密不同类型的数据。此外,凭证140能被修改或替代,如用来降低非授权用户能破解加密方案的可能性。不再使用的凭证能被删除。若在任一客户机(如130a)上添加、修改、替换、或删除一个或多个凭证140,此改变能被传播到一个或多个其它客户机(如130b、130c),使得用户能在任何数目(n)的不同客户机处得到当前的和完整的加密凭证组,这在下面详细描述。
在一个示例性实现中,本地凭证140能与在如一个或多个主机120处的远程高速缓存125处,或在工作组环境中另说客户机130的共享高速缓存处提供的远程凭证150同步。因而,当用户登录到其它客户机130时,用户可得到当前的和完整的凭证组。
远程高速缓存125能被实现为目录服务,诸如分布式轻型(lightweight)目录访问协议(LDAP)、或X.500目录服务。目录服务可以是整体的(monolithic),或它能作为多主体实现或主一从实现分布。远程高速缓存125能以受保护的或加密的状态存储,使得远程凭证150免遭泄密或盗窃,或被非授权用户恶意利用。
示例性目录服务是用微软的WINDOWS操作环境可得到的活动目录。活动目录是能布置在分布式计算环境中的目录服务,来提供广泛的目录服务。活动目录是用作隔离、移植、中央管理、和减少企业需要的目录数量的巩固点(consolicationpoint)。活动目录也用作网络安全的中央授权机构。
然而应注意,远程高速缓存125能以任一合适的方式实现,且不限于这里给出的例子。
图2是如使用通知服务实现凭证漫游的示例性模块的功能框图。通知服务200能以存储在计算机可读存储或存储器并可由一个或多个客户机(如图1中客户机130a-c)上的处理器(或处理单元)执行的计算机可读程序码(如软件和/或固件)方式实现。通知服务200接收各种系统事件的通知,并调用管理服务250,为用户同步本地和远程凭证。因而同步能是自动的,并对用户是透明的。
参考图2,通知服务200能包括事件处理器210。事件处理器210接收事件220a-c(以后统称为事件220)的通知。例如,事件220能包括例如启动、关闭、登录、注销、锁定、开锁,这里只举出少数事件。其它事件也包括,但不限于,会话事件(如政策更新、运行进程、网络连接),和定时器事件(如每8小时,每月一次)。事件还可任选地能用手动触发,如由请求凭证同步的用户触发。
事件处理器2 10能至少部分地基于事件220生成一个或多个作业230。作业230能包括对其它服务的调用。例如,作业230能调用自动登记服务240。自动登记是可用于用凭证填充用户概况的服务,它在用户对系统是新的时(如访客)被调用,以提供有限的功能,和在不损害网络安全的情况下对基本资源的访问。自动登记如基于计算环境的系统政策,通过对用户请求/恢复凭证来自动地“登记”一用户。作业230也能调用管理服务250,用远程高速缓存(如图1中的远程高速缓存125)来同步加密凭证,这在下面详细讨论。
作业230能被传送到调度程序260。作业调度程序260能从队列中删除作业230,并以串行化的方式处理作业230。作业调度程度260判断,为处理该作业加载哪个程序代码(或模块),以及何时加载程序模块。作业调度程序260还能卸载不再使用的程序代码。
通知服务200还能包括用于智能地管理作业230以减少不必要的资源消耗的逻辑。在示例性实现中,作业调度程度260判断,是否已加载了用于处理作业230的程序代码(或模块)。此外,若作业队列270已空(如不存在待决的作业230),作业调度程序230释放加载的程序代码(或模块)。
在另一示例性实现中,事件处理器210能排序作业230,它们调用在队列270中在调用自动登录服务240的作业230之前的管理服务250。当事件220触发作业230调用自动登录服务240和管理服务250时,若管理服务在同步期间能为用户提供凭证,则调用自动登录服务240的作业230能从队到270中删除。
在另一示例性实现中,能实现抑制(dampening)逻辑,以减少对管理服务250的重复调用(如当事件220触发其它事件时)。例如,调度程序260能检查作业队列270,并舍弃重复的或不需要的任何作业230。
在继续之前,应注意,通知服务200不限于图2示出的示例性模块。例如,诸功能不必要包括在单独的模块中。在又一个实现中,还能包括另外的功能组件。无论哪个实现,通知服务能调用管理服务250来同步本地和远程的凭证。
图3是如使用管理服务实现凭证漫游的示例性模块的功能框图。管理服务300在操作上能与通知服务310(如上面参考图2详述的通知服务)相关联。通知服务310能响应于接收一事件的通知调用管理服务300。管理服务300评估并比较本地凭证和远程凭证,并且若它们不同,则同步本地和远程凭证,使得用户在使用任何数目(n)的不同客户机时具有可得到的当前和完整的凭证组。
管理服务300能以储存在计算机可读存储或存储器中并能由在一个或多个客户机(如图1中客户机130a-c)处的处理器(或处理单元)执行的计算机可读程序代码方式实现。管理服务300能包括同步模块320,来评估凭证,解决冲突,并更新在本地和远程高速缓冲中的凭证。
同步模块320在操作上能与本地存储管理器330以及远程存储管理器340相关联。本地存储管理器330在操作上能与用于本地凭证355的一个或多个本地高速缓存350相关联。此外,本地存储管理器330能抽象本地加载/保存本地加密凭证355的过程。远程存储管理器340在操作上能与通过一个或多个服务器计算机或主机370提供的远程高速缓存360(如目录服务)相关联。远程存储管理器340也能如在同步期间安全地邦定到主机370,以通过远程目录服务360访问一个或多个远程凭证365。
在继续前,应注意,凭证不限于如通过远程目录服务在一主机处提供。在另一示例性实现中,远程高速缓存能是在如工作组环境中另一客户机处的共享高速缓存。因而在一个或多个工作组中的客户机能同步在工作组中的客户机之间的共享的凭证。
存储管理器330、340能枚举凭证355,365(如漫游凭证的列表),让同步模块320评估。存储管理器330、340也能向同步模块320提供诸如凭证355、365的集合改变的最近时间等信息,使得同步模块320能解决任何冲突。
同步模块320能结合本地存储管理器330和远程存储管理器340操作,来同步本地加密凭证355和远程加密凭证365。对许多调用,对本地或远程加密凭证可以没有改变。在其它调用期间,只需对本地凭证355或只对远程凭证365作出改变。然而,也可能存在需要对本地凭证355和远程凭证365均作出改变的情况。因而可以实现同步模块来处理这些情况的每一种。
估算本地和远程加密凭证可能是耗时的过程,尤其是存在数百或甚至数千加密凭证时。因此,同步模块320能首先将加密凭证分类成数组,并随后作出已分类数组的线性比较。当然,也能考虑其它实现方法,例如但不限于,使用散列和时间标记来确定是否存在改变。
在比较期间,同步模块320能遭遇为了同步本地和过程凭证355、365而需要解决的冲突。例如,本地凭证(为说明起见称为“旧凭证”)能被修改或从本地高速缓存中移除/删除,因为它不再需要。然而,当同步模块320将本地和远程凭证355、365进行比较时,远程凭证能仍包括旧凭证。同步模块320解决那样的冲突,使得旧凭证被修改或从远程高速缓存360中删除,并不再重写到本地高速缓存350中。
在一示例性实现中,已被修改或移除/删除的凭证在远程高速缓存中被“加标记”或用其它方法标识。因而,修改或删除操作能在多个客户机上持续。作为一例子,若旧凭证从第一客户机中删除,同步模块320将远程高速缓存中的旧凭证标识成已移除或删除。当也具有旧凭证的副本的第二客户机与远程高速缓存同步时,旧凭证从第二客户机中删除,并不重写到远程高速缓存。作为另一例子,若旧凭证在第一客户机处被修改,则同步模块320将远程高速缓存中的旧凭证标识成已修改。当也具有旧凭证的副本的第二客户机与远程高速缓存同步时,旧凭证在第二客户机处被修改,且在远程高速缓存处不返回到其原始状态。
在一个示例性实现中,同步模块320维护用于冲突解决的一个或多个状态文件395。状态文件是每个用户保持的数据结构(如计算机文件、数据库、存储器表、日志等),并能用于存储本地凭证的状态350。状态文件能本地存储,如存储在操作上与管理服务300相关联的高速缓存390中。在一示例性实现中,所有字段按二进制、单纯的字节次序存储,虽然也可考虑其它实现方法。
图4a示出示例性状态文件400(如一数据结构)。状态文件400能包括文件版本410和标志420。例如,能用标志420表明,凭证是否是用户保护的,或能在网络上交换。或者,标志420(或另一标志)能用于表明,是否能使用严格或宽容矩阵来解决冲突。
状态文件400也能包括一个或多个凭证状态430-432。例如,状态文件400能包括下列状态同步模块调用的最近时间(TS);本地存储改变的最近时间(TL)、远程高速缓存改变的最近时间(TR)。状态文件也可包括凭证状态条目440。
图4b示出示例性状态条目450(如一数据结构)。状态条目450可包括每个凭证的本地状态的列表。本地状态可包括凭证ID 460、标志470、时间标记480和散列490。
在继续之前,注意,时间标记不限于基于时钟的(如物理的或系统的)时间。例如,时间标记能包括诸如对每次作出的更新改变的更新序列号的计数器。确实,对本地高速缓存能使用基于时钟的时间标记,而对远程高速缓存能使用基于更新序列号的时间标记。
在图4示出的实现方法中,凭证ID 460是加密凭证文件的“压缩”的路径。凭证ID 460能被表示成单字节ASCII字符串,虽然也能考虑其它实现方法。此外,任何合适的标志470能被定义,能被置位(如1)或清零(如0)。例如,标志能表明,加密凭证是漫游的(能被同步)还是固定的(不应被同步)。
下面更详细描述为使用如图4所示的状态文件400那样的状态文件解决冲突所实现的操作。冲突解决能由仲裁矩阵示出。
图5a和5b示出示例性仲裁矩阵,其中矩阵500是宽容的而矩阵550是严格的。在矩阵500、550中,可输出的凭证用字母“E”标记而受保护的(或不可输出)凭证用字母“P″标记,其中“/E”和“/P”标记相反双方。两个凭证的时间标记用于确定,哪个凭证是最近的。最近的凭证用于改写本地和远程的高速缓存。其它凭证被删除。
应注意,上面讨论的示例性实现为说明目的而提供,也可考虑其它实现。
示例性操作这里叙述的是用于实现加密凭证漫游的示例性方法。这里叙述的方法能被实施成在一个或多个计算机可读介质上的逻辑指令。这些逻辑指令在处理器上执行时使得通用计算设备被编程为实现所描述的方法的专用机器。在下列示例性操作中,图中画出的组件和连接能用于实现加密凭证漫游。
图6是示出实现加密凭证漫游的示例性操作的流程图。在操作610,客户机接收一事件通知。例如,事件通知可包括会话事件、登录事件、注销事件、锁定事件、解锁事件、定时器事件、政策应用事件、和/或凭证更新事件。在操作620,可枚举本地凭证,而在操作630可枚举远程凭证。
在操作640,可比较本地凭证和远程凭证以判断是否存在冲突。若没有冲突,如由箭头650所示操作返回到操作610。或者,若任何一个或多个枚举的本地凭证不同于枚举的远程凭证,则存在一冲突。为说明起见,若一凭证被添加、修改、或从本地凭证高速缓存和/或远程凭证高速缓存删除,则枚举的本地凭证可不同于枚举的远程凭证。
若存在冲突,在操作660中通过判断哪个凭证需要在本地和远程凭证高速缓存中添加/删除来解决冲突。在示例性实现中,冲突能基于与本地和远程凭证相关联的时间标记来解决。在操作670中,同步本地和/或远程凭证,使得本地和远程凭证高速缓存均包括加密凭证的完整的更新的组。
为说明的目的,可如下实现操作660(冲突解决)和操作670(同步)当凭证漫游首先对一客户机启用时,客户机可能已具有与远程高速缓存中相同的凭证(如通过手工键入或PKCS#12大数据块(blob)输入)。然而,根据凭证如何输入,凭证存储和链接程序的细节能是不同的。此初始冲突能如下解决。
若远程凭证已被下载,主密钥(如用于访问私钥)可以在这些操作完成之前被同步,使得需要主密钥的私钥可以得到。
然后管理服务如通过属性的元数据检索远程高速缓存的创建时间,并将其赋值到TC。若冲突的凭证双方的时间标记的任一个或两者比TC新,则在使用凭证漫游和最近调整缓存的展开之后至少一个凭证被修改了。
另外,在凭证漫游的展开之前,可能已创建了本地和远程的高速缓存。检索两个凭证的信息标志,以判断该凭证是用户保护的还是可输出的。也可检索政策标志并确定,是应用宽容矩阵(如图5中的矩阵500)还是严格矩阵(如图5中的矩阵550)来解决冲突。
下面描述用于凭证漫游的算法的示例性实现。按此实现,TL代表整个本地高速缓存改变的最近时间。TL是基于本地机器系统时间,并能与本地高速缓存的更新时间比较,所以不存在定时器的时滞。TR代表在最近的同步时对整个远程高速缓存的更新序列号(USN)作出改变的最近时间。TR能使用来自远程高速缓存的USN,并能与该远程USN比较,所以不存在定时器的时滞。
首先,从本地高速缓存读出当前最近改变,并从远程高速缓存读出USN。然后从状态文件头部读出TL和TR。TL与刚从本地高速缓存读出的最近改变时间比较,而TR与从远程高速缓存读出的USN比较。若它们均相等,则无事可做。否则,算法能创建本地改变列表CL和远程改变列表CR,两者开始均为空。
若本地高速缓存改变的最近时间比TL晚,则读出所有本地高速缓存凭证,并与状态文件中对应的条目比较。若任何凭证不同,在TL中创建一条目,记录该凭证或状态文件条目、凭证更新的最近时间、和建议的动作(如添加到远程/本地高速缓存、修改对应的远程/本地高速缓存凭证、删除对应的远程/本地高速缓存凭证、更新状态文件条目等)。若散列值已改变、若标志值已改变(如改为DELETED(删除)、UNWRITEABLE(不可写)、UNREADABLE(不可读)),或若本地高速缓存具有一凭证而状态文件没有其记录、或若状态文件具有一条目而本高速缓存不具有其记录,则凭证能被认为是不同的。
若远程高速缓存的最近USN不同于TR,则读出所有远程高速缓存凭证,并执行与刚描述相同的操作。改变列表TR也能被更新。
然后评估CL和CR以确定,是否在两个列表中的同一凭证上执行动作。若在两个列表中的同一凭证上已执行了动作,评估这些动以判断是否存在任何冲突。例如,若CL包括凭证A“修改远程”的条目,而CR包括同一凭证“修改本地”的条目,则存在冲突。该冲突能基于本地和远程凭证两者的最近改变时间而解决。即,带有较早改变时间的条目从列表中被删除。
解决冲突(如果有的话)之后,本地和远程高速缓存基于CL和CR的并集更新。对于即使在几次重试后仍不能更新的每个条目设置一标志。
然后更新状态文件。例如,对超长时间设置的DELETE(删除)标志能被识别并去除。状态文件的头部和条目也能基于最终的CL和CR条目更新。若状态文件即使在数次重试后仍不能更新,由于被破坏的状态文件能产生不可预测的结果,可禁止凭证漫游。
应注意,上述条目能作为散列值评估。散列值提供了安全性,如使得凭证不能在不必要的高速缓存中重复,且散列有较好的性能(散列比较通常较快)。然而应注意,使用散列仅是示例的。例如,若状态文件存储整个凭证,它可作于二进制或确切的比较来代替散列。
可使用保持在状态文件中的最近同步时间TS来确定,如何处理存在于状态文件中但不在远程高速缓冲中的本地高速缓存条目。若时间从TS推移,直到当前时间小于阈值时间,则远程高速缓存添加此条目。否则该条目可从本地高速缓存中删除。
在同步凭证时的错误状态也能导致部分地更新的或破坏的凭证。因此能提供错误处理,使得故障不会传播到如远程高速缓存。
在任何示例实现中,返回“Write State(写状态)”以表明写操作的完成状态。其值可以是NONE(无)、PARTIAL(部分)和DONE(完成),以分别表明该凭证是(1)未更改,(2)部分改变或(3)成功地改变。若保存操作导致PARTIAL写状态,状态文件条目被标记为UNWRITEABLE(不可写)。若删除操作导致NONE或PARTIAL写状态,状态文件条目被标记为UNWRITEABLE。对任何分散的写或删除失败,写或删除操作能退出,且当对一凭证的所有尝试失败时标记状态文件条目。
若本地改变被标记为UNWRITEABLE,同步操作忽略它,且若本地凭证标记为UNWRITEABLE,可以重试删除它。若凭证在被标记为UNWRITEABL时被成功地改写,或若当状态文件将它标记成UNWRITEABL时它消失了,则能从状态文件条目中清除UNWRITEABLE标志。
若状态文件更新失败(如表明可能被破坏的状态文件),对失败的客户机或对特定的用户可禁止凭证漫游。若以后问题被排除,能够人工地重新启用凭证漫游。系统也能在下一次调用期间,通过从远程存储下载已知的好的数据覆盖任何坏的数据,来执行自动的恢复步骤。
还能处理本地高速缓存读失败。读失败能比更新失败更宽容地处理,使得漫游凭证的读失败不影响其它凭证的漫游。
在示例性实现中,具有读失败的凭证出现在由GET ALL(获取所有)操作返回的漫游凭证组中,使得同步操作不将其处理成删除。当发生任何故障时,能带着延迟重试本地高速缓存读。若在数次重试后故障仍然存在,不再生成其UNREADABLE标志被置位的漫游凭证。可以跟踪或登录通知、警告、和/或错误事件,以便于排除故障/维修。
这里示出和描述的操作仅是凭证漫游的示例性实现方法的说明。应注意,操作不限于任何特定次序。例如在图6中,操作620能发生在操作630之前、之后、或同时。在另一例子中,操作620-670能对分别的加密凭证、不同类型的加密凭证、或加密凭证的其它组(或集)迭代。还能实现其它操作以启用凭证漫游。
示例性计算设备图7是能利用来实现凭证漫游的示例性计算设备的原理性图示。计算设备700包括一个或多个处理器或处理单元732、系统存储器734、以及将包括系统存储器734的各种系统组件耦合到处理器732的总线736。总线736代表若干类型总线结构的任一种的一个或多个,包括存储器总线或存储控制器、外围总线、加速图形端口、以及使用各种总线体系结构的任一种的处理器或局部总线。系统存储器734包括只读存储器(ROM)738和随机存取存储器(RAM)740。基本输入/输出系统(BIOS)742包括如在启动时帮助在计算设备700中诸元件之间传输信息的基本例程,它存储在ROM 738中。
计算设备700还包括用于读写硬盘(未示出)的硬盘驱动器744,并能包括用于读写可移动磁盘748的磁盘驱动器746,和用于读写如CD ROM或其它光介质的可移动光盘752的光盘驱动器750。硬盘驱动器744、磁盘驱动器746、和光盘驱动器750通过合适的接口754a、754b和754c连接到总线736。各驱动器和它们相关的计算机可读介质为计算设备700提供计算机可读指令、数据结构、程序模块、和其它数据的非易失存储。虽然这里描述的示例性环境中采用了硬盘、可移动磁盘748,和可移动光盘752,在示例性操作环境中也能使用其它类型的计算机可读介质,如磁带盒、闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等。
若干程序模块能存储在硬盘744、磁盘748、光盘752、ROM 738、或RAM 740中,包括操作系统758、一个或多个应用程序760、其它程序模块762、和程序数据764。用户能通过诸如键盘766和定位设备768的输出设备将命令和信息输入到计算设备700。其它输入设备(未示出)能包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备通过耦合至总线736的接口756连接到处理单元732。监视器772或其它类型显示设备也通过如视频适配器774那样的接口连接到总线736。
一般而言,计算设备700的数据处理器借助在不同时间存储在计算机的各种计算机可读存储介质中的指令来编程。程序和操作系统可在如软盘、CD-ROM上分发,或电子地分发,并安装或加载到计算机的次级存储器中。在执行时,程序至少部分地被加载到计算机的主电子存储器。
计算设备700能使用到如远程计算机776那样的一台或多台远程计算机的逻辑连接在网络环境中操作。远程计算机776可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并通常包括上面关于计算设备700描述的许多或所有元件。图7画出的逻辑连接包括LAN 780和WAN 782。
在LAN网络环境中使用时,计算设备700能通过网络接口或适配器784连接到本地网络780。在WAN网络环境中使用时,计算设备700通常包括调制解调器786,或用于经过如因特网那样的广域网786建立通信的其它装置。内置或外接的调制解调器786经过串行端口接口758连接到总线736。在网络环境中,相对于计算设备700画出的程序模块或其部分可存储在远程存储器设备中。可以理解,示出的网络连接是示例的,可以使用在各计算之间建立通信链路的其它装置。
主机能包括可启用到通信网络的连接的主机适配器硬件和软件。根据带宽的需求,到通信网络的连接能通过光耦合或更传统的导线电缆。主机适配器能作为在计算设各700上的插入卡实现。主机能实现任何数目的主机适配器,以提供与硬件和软件支持一样多的到通信网络的连接。
除了这里列出的专门的实现外,本专业技术人员从这里揭示的说明可明白其它方面与实现。说明的与图示的实现只认为是示例,所附权利要求书是本发明的真正的范围和精神。
权利要求
1.一种方法,其特征在于,包括响应于接收一事件通知,枚举本地凭证和远程凭证;以及同步本地凭证和远程凭证。
2.如权利要求1所述的方法,其特征在于,同步所述本地凭证和所述远程凭证是基于与所述本地凭证相关联的至少一个时间标记和与所述远程凭证相关联的至少一个时间标记。
3.如权利要求1所述的方法,其特征在于,同步所述本地凭证和所述远程凭证是基于散列值的比较。
4.如权利要求1所述的方法,其特征在于,同步包括错误处理。
5.如权利要求1所述的方法,其特征在于,同步包括将至少一个所述本地凭证写到远程凭证高速缓存中。
6.如权利要求1所述的方法,其特征在于,同步包括将至少一个所述远程凭证写到本地凭证高速缓存中。
7.如权利要求1所述的方法,其特征在于,同步包括从本地凭证高速缓存中删除至少一个所述本地凭证。
8.如权利要求1所述的方法,其特征在于,同步包括从远程凭证高速缓存中删除至少一个所述远程凭证。
9.如权利要求1所述的方法,其特征在于,同步包括基于至少一个所述远程凭证修改在本地凭证高速缓存处的至少一个所述本地凭证。
10.如权利要求1所述的方法,其特征在于,同步包括基于至少一个所述本地凭证修改在远程凭证高速缓存处的至少一个所述远程凭证。
11.如权利要求1所述的方法,其特征在于,它还包括更新一本地凭证的列表。
12.如权利要求1所述的方法,其特征在于,它还包括更新一远程凭证的列表。
13.如权利要求1所述的方法,其特征在于,它还包括动态地确定所述远程凭证的状态。
14.如权利要求1所述的方法,其特征在于,它还包括对所述远程凭证维护一状态文件。
15.如权利要求1所述的方法,其特征在于,它还包括对所述本地凭证维护一状态文件。
16.如权利要求1所述的方法,其特征在于,它还包括解决在所述本地凭证和所述远程凭证之间的状态冲突。
17.一种编码计算机程序,用于在计算机系统上执行一计算机过程的计算机程序产品,其特征在于,所述计算机过程包括响应于接收一事件通知,枚举本地凭证和远程凭证;以及同步所述本地凭证和所述远程凭证。
18.如权利要求17所述的计算机程序产品,其特征在于,所述计算机过程还包括基于与所述本地凭证相关联的至少一个时间标记和与所述远程凭证相关联的至少一个时间标记,同步所述本地凭证和所述远程凭证。
19.如权利要求17所述的计算机程序产品,其特征在于,所述计算机过程还包括基于散列值的比较,同步所述本地凭证和所述远程凭证。
20.如权利要求17所述的计算机程序产品,其特征在于,所述计算机过程还包括将至少一个所述本地凭证写到远程凭证高速缓存中。
21.如权利要求17所述的计算机程序产品,其特征在于,所述计算机过程还包括将至少一个所述远程凭证谢到本地凭证高速缓存中。
22.如权利要求17所述的计算机程序产品,其特征在于,所述计算机过程还包括从本地凭证高速缓存中删除至少一个所述本地凭证。
23.如权利要求17所述的计算机程序产品,其特征在于,所述计算机过程还包括从远程凭证高速缓存中删除至少一个所述远程凭证。
24.如权利要求17所述的计算机程序产品,其特征在于,所述计算机过程还包括修改在本地凭证高速缓存处的至少一个所述本地凭证。
25.如权利要求17所述的计算机程序产品,其特征在于,所述计算机过程还包括修改在远程凭证高速缓存处的至少一个所述远程凭证。
26.如权利要求17所述的计算机程序产品,其特征在于,所述计算机过程还包括更新一本地凭证的列表。
27.如权利要求17所述的计算机程序产品,其特征在于,所述计算机过程还包括更新一远程凭证的列表。
28.如权利要求17所述的计算机程序产品,其特征在于,所述计算机过程还包括维护所述远程凭证的状态。
29.如权利要求17所述的计算机程序产品,其特征在于,所述计算机过程还包括动态地确定所述远程凭证的状态。
30.如权利要求17所述的计算机程序产品,其特征在于,所述计算机过程还包括维护所述本地凭证的状态。
31.如权利要求17所述的计算机程序产品,其特征在于,所述计算机过程还包括错误处理。
32.如权利要求17所述的计算机程序产品,其特征在于,所述计算机过程还包括解决在所述本地凭证和所述远程凭证之间状态冲突。
33.一种系统,其特征在于,包括一接收事件通知的事件处理器;以及一在操作上与所述事件处理器相关联的同步模块,以便在所述事件处理器接收一事件通知且若本地凭证和远程凭证彼此不同时,同步所述本地凭证和远程凭证。
34.如权利要求33所述的系统,其特征在于,所述事件通知是下列的至少一个会话事件、登录事件、注销事件、锁定事件、解锁事件、定时器事件、政策应用事件、和凭证更新事件。
35.如权利要求33所述的系统,其特征在于,所述凭证包括下列的至少一个加密凭证、令牌、非对称密钥对、对称密钥、数字证书、XrML许可证、认证凭证、和授权凭证。
36.如权利要求33所述的系统,其特征在于,它还包括说本地存储管理器,以为所述同步模块枚举所述本地凭证。
37.如权利要求33所述的系统,其特征在于,它还包括一远程存储管理器,以为所述同步模块枚举所述远程凭证。
38.如权利要求33所述的系统,其特征在于,所述本地凭证存储在本地高速缓存中。
39.如权利要求33所述的系统,其特征在于,所述本地凭证存储在任何数目客户机处提供的本地高速缓存中。
40.如权利要求33所述的系统,其特征在于,所述本地凭证使用主密钥来加密。
41.如权利要求33所述的系统,其特征在于,所述远程凭证存储在远程高速缓存中。
42.如权利要求33所述的系统,其特征在于,所述本地凭证储存在任意数目的主机处提供的远程高速缓存中。
43.如权利要求33所述的系统,其特征在于,所述远程凭证由远程目录服务维护。
44.如权利要求33所述的系统,其特征在于,所述远程凭证是加密的。
全文摘要
此处描述并要求保护的实现,启用了多个不同的计算设备中的凭证漫游。一示例性系统能包括接收如客户机登录那样的事件通知的事件处理器。事件处理器能响应于接收一事件通知调用一管理服务。管理服务能包括同步模块,以将用户的凭证与如活动目录(Active Directory)那样的远程目录服务同步,使得用户的凭证可从若干不同计算设备的任一个上得到。
文档编号G06F21/20GK1681240SQ20051005274
公开日2005年10月12日 申请日期2005年3月7日 优先权日2004年4月9日
发明者D·B·克罗斯, 庄颢, P·J·哈林, 苏晓红 申请人:微软公司