CN101495986A - 非受管网络中公共身份的帐户同步 - Google Patents

非受管网络中公共身份的帐户同步 Download PDF

Info

Publication number
CN101495986A
CN101495986A CNA2006800253051A CN200680025305A CN101495986A CN 101495986 A CN101495986 A CN 101495986A CN A2006800253051 A CNA2006800253051 A CN A2006800253051A CN 200680025305 A CN200680025305 A CN 200680025305A CN 101495986 A CN101495986 A CN 101495986A
Authority
CN
China
Prior art keywords
computing machine
unmanaged
group
trouble free
free service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2006800253051A
Other languages
English (en)
Other versions
CN101495986B (zh
Inventor
M·萨姆基
J·布里扎克
C·古扎克
G·E·范德伯格特
N·J·托马瑟里
A·K·雅达夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101495986A publication Critical patent/CN101495986A/zh
Application granted granted Critical
Publication of CN101495986B publication Critical patent/CN101495986B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种在没有服务器的情况下支持非受管安全工作组以便在组中的计算机之间进行公共用户访问与安全资源共享的平台。用户帐户通过在非受管安全工作组的每个计算机上复制和修改帐户得到同步。一计算机向非受管安全工作组中的其它计算机通告帐户信息的变化。如果非受管安全工作组中的计算机之一确定该变化没有反映在当前的帐户信息中,则该计算机向发出通告的计算机请求经更新的帐户信息。在同步非受管安全工作组中的用户帐户之前,解决不同计算机上的用户帐户之间的任何冲突。而且,一应用程序接口(API)允许应用程序查询网络化计算机系统与非受管安全工作组的属性,以及加入非受管安全工作组。

Description

非受管网络中公共身份的帐户同步
背景
随着计算机网络技术的进步,大型计算机网络已经变得相当复杂,并具有精密复杂的管理方案用于管理网络的用户访问与安全性。例如,大型计算机网络一般具有多个域,每个域具有一个主域控制器,它包含用于该域中的机器的用户名、口令和许可的数据库。
相反,小规模的本地网络,如家庭网络和小型企业网络,仍保持得相当简单且不是精密复杂的。大多数小规模网络是非受管的,因为没有专用的实体,如大型网络中的域控制器,来以集中的方式处理帐户信息。在这种非受管网络中的机器一般连接到同一网络集线器并且作为松散的对等组(有时称为“工作组”)来操作,其目的仅是帮助用户找到工作组内诸如打印机和共享文件夹之类。否则,机器就如独立的机器那样运行。因此,非受管网络为用户提供很少的附加值。
没有有效的安全性管理,并且机器没有被良好地集成以便于网络访问和资源共享。本地帐户必须在每个机器上手动创建,并且在工作组中的不同机器上的帐户之间没有关系。因而,用户能登录到一个机器上但不能登录到同一网络中的另一机器上,因为用户的帐户还未在该另一机器上建立。没有可靠的机制来枚举网络中的计算机。而且,机器上的资源共享是难以实现和维护的,并且难以管理以提供安全性。
概述
网络化计算机系统常常支持用户从一个计算机迁移到另一计算机上。鉴于上述原因,本发明提供一种用于在没有服务器的情况下在非受管安全工作组中组织计算机网络上的多个计算机的平台。非受管安全工作组在组中的计算机之间提供公共用户访问和安全资源共享。按照本发明的一个方面,如果用户帐户信息在非受管安全工作组的计算机之一上被修改或添加,则用户帐户在非受管安全工作组的每个计算机上被同步。用户帐户可被复制或修改以同步非受管安全工作组中的帐户信息。
根据本发明的另一方面,计算机将帐户信息的改变通告给非受管安全工作组中的其它计算机。如果非受管安全工作组中的计算机之一确定该变化没有在当前帐户信息中反映,则该计算机可向发出通告的计算机请求经更新的帐户信息。
根据本发明的另一方面,本发明在同步非受管安全工作组中的经更新的用户帐户之前,确定在用户帐户中是否存在冲突。当冲突被解决时,在非受管安全工作组的各计算机上复制被改变的用户帐户。
根据本发明的另一方面,一应用程序接口(API)允许应用程序查询网络化计算机系统和非受管安全工作组的属性。在本发明的一说明性实施例中,一API提供计算机网络中的非受管安全工作组的列表,提供有关指定的非受管安全工作组的信息,提供有关非受管安全工作组内的指定计算机的信息,创建新的非受管安全工作组,以及允许计算机加入或离开非受管安全工作组。
根据本发明的另一方面,作出请求的计算机通过与非受管安全工作组中的一成员计算机建立信任来加入该非受管安全工作组。该成员计算机认证作出请求的计算机。作出请求的计算机用自签名的证书在该成员计算机上建立帐户。作出请求的计算机随后存储有关该非受管安全工作组的信息并将其自己作为该非受管安全工作组的成员来发布。
提供本概述来以简化形式介绍将在下面的详细描述中进一步描述的一些概念。本概述并不是要标识出所要求保护的主题的关键特征或必要特征,也不是要用于帮助确定所要求保护的主题的范围。
附图简述
本发明的以上述概述以及随后本发明的示例性实施例的详细描述在结合附图阅读时将更好地理解,这些附图包括在此是为了示例而非限制本发明。
图1是概括地示出根据本发明的一个说明性实施例可在小规模非受管安全工作组中使用的示例性计算机系统的框图。
图2是示出根据本发明的一个说明性实施例可在其上将少量计算机形成非受管安全工作组的本地计算机网络的示意图。
图3是示出根据本发明的一个说明性实施例在非受管安全工作组中的两个计算机之间建立信任和复制用户帐户与用户概况的示意图。
图4是示出根据本发明的一个说明性实施例用于计算机加入非受管安全工作组的过程的流程图。
图5是示出根据本发明的一个说明性实施例的提供加入或创建非受管安全工作组的选项的示例性用户界面窗口的示意图。
图6示出了了根据本发明的一个说明性实施例的用于使一计算机加入非受管安全工作组的场景。
图7示出了根据本发明的一个说明性实施例用于在非受管安全工作组中从一计算机向另一计算机提供经更新的帐户信息的流程图。
图8示出了根据本发明的一个说明性实施例用于在非受管安全工作组中从一计算机获得经更新的帐户信息的流程图。
图9示出根据本发明的一个说明性实施例用于在非受管安全工作组中支持应用程序编程接口(API)的体系结构。
图10A-B示出根据本发明的一个说明性实施例的一般编程接口。
图11A-B示出根据本发明的一个说明性实施例的分解编程接口。
图12A-B示出根据本发明的一个说明性实施例的重定义编程接口。
图13A-B示出根据本发明的一个说明性实施例的具有合并的功能的编程接口。
图14A-B示出根据本发明的一个说明性实施例的具有脱离的功能的编程接口。
图15A-B示出根据本发明的一个说明性实施例的通过动态重写代码以取代接口功能的编程接口。
详细描述
转到附图,其中相同的参考标号指代相同的元素,本发明被示为在一合适的计算环境中实现。尽管不作要求,但本发明将在诸如程序模块等由个人计算机执行的计算机可执行指令的一般上下文中描述。通常,程序模块包括执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等。而且,本领域的技术人员将意识到,本发明可用其它计算机系统配置来实施,这些配置包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、网络PC、小型机、大型计算机等。本发明可在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实施。在分布式计算环境中,程序模块可位于本地或远程存储器存储设备两者中。
包括对下列术语的定义以便于对详细说明的理解。
·域-由域控制器(例如服务器)集中管理的网络化计算机组。域控制器管理对该域的用户访问和安全性。域控制器一般包含该域中的计算机(机器)的用户名、口令和许可的数据库。
·非受管安全工作组-网络化计算机的对等组,其中在没有服务器的情况下提供用户访问与安全性。通常,在对等组内的每个计算机(机器)上维护一个帐户数据结构。非受管安全工作组在概念上可被视为驻留在本地网络中的计算机的安全组,其中这些计算机一起工作以保护它们免遭外部用户和机器的可能侵入,同时安全组中的用户被给予高度自由和在访问该组的机器和资源方面的协作。
下面描述根据本发明的一个说明性方面的可在小规模非受管安全工作组中使用的通用计算设备。现在转到图1,通用计算设备以常规个人计算机20的形式示出,包括处理单元21、系统存储器22以及将各种系统组件(包括系统存储器)耦合到处理单元21的系统总线23。系统总线23可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器,外设总线以及使用各种总线体系结构中的任一种的局部总线。系统存储器包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统(BIOS)26包含帮助在个人计算机的元件之间传送信息(如在启动时)的基本例程,它被存储在ROM 24中。个人计算机20还包括读写硬盘60的硬盘驱动器27、读写可移动磁盘29的磁盘驱动器28、以及读写如CD ROM或其它光介质等可移动光盘31的光盘驱动器30。
硬盘驱动器27、磁盘驱动器28和光盘驱动器30分别通过硬盘驱动器接口32,磁盘驱动器接口33和光盘驱动器接口34连接到系统总线23。驱动器及其相关联的计算机可读介质为个人计算机20提供了计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。尽管在此所示的示例性环境利用硬盘60、可移动磁盘29和可移动光盘31,但本领域的技术人员将意识到,该示例性操作环境中也可使用可存储计算机可访问的数据的其它类型的计算机可读介质,如磁带盒、闪存卡、数字视频盘、伯努利(Bernoulli)盒式磁带、随机存取存储器、只读存储器、存储区域网等。
多个程序模块可存储在硬盘60、磁盘29、光盘31、ROM 24或RAM 25中,包括操作系统35、一个或多个应用程序36、其它程序模块37和程序数据38。用户可通过如键盘40和定点设备42等输入设备将命令与信息输入到个人计算机20中。其它输入设备(未示出)可包括话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备常常通过耦合到系统总线的串行端口接口46连接到处理单元21,但可通过如并行端口、游戏端口或通用串行总线(USB)或网络接口卡等其它接口来连接。监示器47或其它类型的显示设备也经由如视频适配器48等接口连接到系统总线23。除了监示器之外,个人计算机一般包括未示出的其它外围输出设备,如扬声器和打印机。
个人计算机20可使用到一个或多个远程计算机,如远程计算机49的逻辑连接在网络化环境中操作。远程计算机49可以是另一个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并且一般包括许多或全部相对于个人计算机20描述的元件,尽管在图1中仅示出存储器存储设备50。图1所示的逻辑连接包括局域网(LAN)51和广域网(WAN)52。这类网络化环境在办公室、企业级计算机网络、内联网和因特网是很常见的。
当在LAN网络环境中使用时,个人计算机20通过网络接口或适配器53连接到本地网络51。当在WAN网络环境中使用时,个人计算机20一般包括调制解调器54或用于通过WAN 52建立通信的其它装置。调制解调器54可以内置或外置的,它经由串行端口接口46连接到系统总线23。在网络化环境中,相对于个人计算机20描述的程序模块或其部分可存储在远程存储器存储设备中。将意识到,所示网络连接是示例性的,可使用在计算机之间建立通信链路的其它手段。
在随后的描述中,除非另外指明,否则本发明将参考由一个或多个计算机执行的动作和操作的符号表示来描述。因此,将理解,这些动作和操作(有时称为计算机执行的)包括计算机的处理单元对以结构化形式表示数据的电信号的操纵。该操纵变换了数据或在计算机的存储器系统中的位置上维护数据,从而以本领域技术人员熟知的方式重新配置或以其它方式更改了计算机的操作。维护数据的数据结构是具有由数据的格式定义的特定属性的存储器的物理位置。然而,尽管本发明在上述上下文中描述,但这并不意味着限制,如本领域技术人员将意识到的,下文描述的动作和操作也可用硬件来实现。
现在参考图2,本发明的一个说明性实施例涉及一种用于在非受管本地网络200上的少量计算机,例如十(10)个或更少的成员计算机的平台,以形成非受管安全工作组来提供对用户访问和资源共享的组级控制,而不需要使用集中式管理组件。在一说明性实施例中,非受管本地网络200以对等关联来配置。非受管本地网络200被分类为非受管的是因为没有中央服务器管理和存储用户帐户信息。在非受管安全工作组中,安全策略和访问控制在组级上实现,以防止不在组中的计算机或用户对资源的未经授权的访问和使用,同时允许在每用户的基础上对组内资源的共享。
在本发明的一个说明性实施例中,图2示出小型本地网络70,其代表是家庭网络和小型企业网络。本地网络是非受管的,意思是它没有如域控制器等集中式管理组件。如图2所示,本地网络具有网络集线器或交换机72,以及与其连接的多个计算机(或计算设备)。计算机之间的连接可以是无线的。例如,设备76是通过接入点78与网络通信的无线设备。
按照本发明的各说明性方面,本地网络70上的一些计算机可形成一非受管安全工作组。将意识到,非受管安全工作组不依赖于特定的网络拓扑结构。例如,非受管安全工作组可在由无线设备形成的自组织(ad hoc)网络中建立。由于管理因素和复制数据的需求,非受管安全工作组平台在组中的计算机数量保持较小时更为有效。例如,可加入一个给定的非受管安全工作组的计算机数量可被限于一预定的最大计算机数量(例如,在一个非受管安全工作组中为十个成员)。
作为示例,如图2所示,计算机90,92,94和96形成了非受管安全工作组100(由连接这些计算机的虚线示意性地指示),该组具有用户友好名称“TobyClub”。如果没有可加入的现有组或者如果一计算机的用户不想加入任何现有的组,则可创建一个新的非受管安全工作组。在这点上,在本发明的一说明性实施例中,每个计算机可仅属于一个非受管安全工作组。如将在下面更详细地描述的,非受管安全工作组中的计算机在它们之间建立信任,并且在组内共享如用户帐户数据和用户概况数据等信息。如计算机102等新的计算机可加入该非受管安全工作组100,并且组中计算机可离开该安全工作组,并且在特殊情况下,可从组中被驱逐出来。
图3示出在非受管本地网络上形成小规模非受管安全工作组的基础概念。为使计算机102加入另一计算机96以便形成非受管安全工作组,计算机102必须首先与第二计算机96建立信任。这在以下情形下发生:当计算机102想要加入计算机96所属的现有安全工作组时,或者当计算机102响应来自计算机96的邀请以形成一个新组时。有许多不同方法在两个计算机之间建立信任。通常,建立信任要求一个计算机通过显示它知道另一计算机所知的某个秘密来向另一计算机认证它自己。在本发明的一说明性实施例中,该秘密是由另一计算机接受的组管理员的用户名和口令。在另一说明性实施例中,该秘密是由另一计算机生成的随机个人标识号(PIN)。在某些实现中,可能需要两个计算机之间的相互认证。将意识到,在两个计算机之间建立信任的具体方法对于本发明是不是关键性的。
在计算机96与102之间的信任已经建立之后,这些计算机形成非受管安全工作组,或者如果计算机96属于一现有的非受管安全工作组,则计算机102被接纳到该组中。为此,在一说明性实施例中,每个非受管安全工作组和该安全工作组中的每个节点被分配一个GUID(全局唯一标识符),它是唯一标识符。当计算机变成一个非受管安全工作组的成员(或者通过创建新组,或者通过加入现有组)时,该机器的GUID和该机器上的用户帐户的GUID被改变或者被重新创建为该组的GUID,以反映该网络组的授权/身份。
在形成非受管安全工作组之后,用户帐户数据和用户概况被复制到组中的每个计算机。如图3所示,计算机96上的用户帐户数据110被复制到计算机102,反之亦然。在复制用户帐户之后,与这些用户帐户相关联的用户概况112被复制到其它计算机。术语“用户概况”在此用于表示属于一特定用户的数据。例如,用户概况可包括用户的注册表设置、用户的所选文档、以及安全策略、用户头像(即用户的图标表示)、以及用于个性化用户会话的设置、配置和文件等等。用户概况的具体内容取决于实现。安全工作组的管理员可在组中的一计算机上创建用户帐户和设置安全策略,并且这些帐户和安全策略被复制到该安全工作组中的所有机器。由于组中的每个计算机具有全部用户帐户和用户概况,因此具有有效帐户的用户可使用其用户名和口令登录到组中的任何计算机上。复制如用户头像和用于个性化用户会话的设置、配置以及文件等数据还允许用户具有跨非受管安全工作组中的各计算机的统一用户体验。在本发明的一实施例中,帐户数据和用户概况的一个子集可以实质上一致而不是字面意义上同步。本发明的一实施例支持应用程序虚拟化/同步,其中用户将应用程序安装在非受管安全工作组的一成员上,并且可在没有将该软件安装在其它成员上的情况下从非受管安全工作组的任何其它成员使用该应用程序。
返回到图2,在本发明的一说明性实施例中,能够参与非受管安全工作组的计算机96配备了安全组服务模块116,用于处理非受管安全工作组的创建、加入与操作。计算机96还具有本地安全授权机构(LSA)118和安全帐户管理器(SAM)120。本地安全授权机构118是负责本地系统安全策略、用户认证、以及向操作系统的事件日志发送安全消息的用户模式进程。安全策略指定例如允许哪些用户登录到该机器、口令策略、授予用户和组的特权、以及系统安全审核设置等等。安全帐户管理器120管理存储在计算机的系统注册表中的数据库,该数据库包含标识被允许访问该机器的用户和组以及它们的口令和其它属性的数据。该计算机还包括一个或多个认证模块,如Windows
Figure A20068002530500111
LAN管理器(NTLM)模块122或Kerberos模块126,用于按照所选的认证协议来执行认证操作。此外,使用文件复制服务器(FRS)128来将数据和文件(包括用户帐户和概况)复制到非受管安全工作组中的其它计算机。
在图2所示的实施例中,应用程序121与安全组服务模块116接口,用于通过API层模块119来处理非受管安全工作组的创建、加入和操作。如将讨论的,API层模块119支持用于获得有关非受管安全工作组的信息、创建非受管安全工作组、加入非受管安全工作组和离开非受管安全工作组的应用程序接口(API)。
现在同时参考图2和4,在本发明的一说明性实施例中,当独立计算机102连接到本地网络70并开机(步骤170)时,其操作系统自动发现本地网络上是否存在非受管安全工作组(步骤172)。为此,计算机102按照简单服务发现协议(SSDP)来广播发现请求136,以检测连接到本地网络的其它机器。在这点上,属于安全工作组的计算机96上的安全组服务模块116已经向该计算机的SSDP服务138注册了安全工作组的友好名称和GUID。响应于SSDP请求,本地网络70上的每个计算机返回一个响应。该响应标识作出响应的计算机以及它是否是非受管安全工作组的一部分,并且如果是,则还有有关该组的信息。例如,来自计算机96的响应150包括组名152,它指示该计算机是称为“TobyClub”的非受管安全工作组的成员。
在本发明的一个实施例中,如果计算机102检测到本地网络上的一个或多个现有的非受管安全工作组(步骤176),则当其用户158(图2中的“Patrick”)登录时,一个用户界面窗口弹出,询问该用户是否想要该计算机加入现有非受管安全工作组中的任一个(步骤178)。该用户界面窗口的一个示例示于图5中。用户界面窗口160提供该计算机已经检测到的本地网络上的现有非受管安全工作组的列表162,并且用户可通过点击组名来选择一个组来加入。如果在本地网络上没有检测到现有的非受管安全工作组,则该列表为空。该用户界面还包括查询166,它给予用户创建新的非受管安全工作组的选项。因而,在没有现有非受管安全工作组时,用户可选择创建一个新的组(步骤180)。即使本地网络上有现有的非受管安全工作组,用户仍可选择创建一个新组而不是加入任何现有组。例如,如果计算机102检测到本地网络上的计算机88不是任何安全工作组的成员(即计算机88是“独立”机器),则用户158可决定创建一新安全工作组(一个计算机的安全工作组)(步骤184)并邀请计算机88加入该组(步骤186)。
如果用户158(“Patrick”)选择创建新非受管安全工作组的选项(步骤180),则安全组服务模块116创建该新组的新GUID,并且将该计算机的帐户域GUID改变为该组的新GUID。安全组服务模块116随后创建“安全组节点”组,它是包含代表该非受管安全工作组中计算机的计算机帐户的本地安全组。(“安全组节点”是组名的一个示例。该实施例也支持其它组名。)只有在安全组节点组中列出的计算机可以执行与该组中其它计算机的复制。帐户可连同强随机口令一起创建。
安全组服务168还创建“安全组管理员”组,用于保存新非受管安全工作组的管理员的凭证。在只有安全组管理员组中标识的管理员才被允许在该安全组中添加或移除节点。创建“安全组管理员”帐户,并且提示用户158输入一个良好的(非空)口令。(“安全组管理员”是组名的一个示例。(如将讨论的,本发明的各实施例支持可用作口令的替代或者补充的个人标识号(PIN)。)该实施例也支持其它组名。)在用户输入口令之后,安全组管理员帐户被添加到安全组管理员组。
另一方面,如果用户158选择加入由计算机102检测到的现有非受管安全工作组(步骤178),则选择该组的节点中已经响应该SSDP请求的节点,并且建立与该选定节点的安全组服务的远程过程调用(RPC)接口的连接。在图2所示的示例中,计算机102已经选择与计算机96交谈。计算机96随后发出要计算机102认证它自己的请求。通过正确地认证自己,计算机102与计算机96建立信任(步骤182)。在这么做时,计算机102也与组100的其余节点建立了信任,因为它们信任计算机96并且假定信任计算机96所信任的任何计算机。然而,在替换实施例中,想要加入非受管安全工作组的计算机可被要求个别地与组中的每个计算机建立信任。
如上所述,建立信任的一种常见方法是计算机呈现其它计算机所知的秘密。在本发明的一实施例中,使用用于对等者之间的相互认证的自签名证书。目标节点的证书可传回经认证的要加入的计算机。在本发明的一说明性实施例中,秘密是在目标节点计算机96的安全组管理员组中注册的组管理员的名称和口令。响应于来自目标节点计算机96的质询,计算机102提示用户158输入有效的管理员名称和口令。在一说明性实现中,管理员196(图2中例示为“Toby”)可简单地走到想要加入非受管安全工作组的计算机102处并输入其用户名和口令。计算机102将输入的管理员名称和口令发送到目标节点计算机96。目标节点计算机96检查由计算机102返回的管理员名称和口令。如果它们是有效的并且对应于在安全组管理员组中找到的管理员帐户,则计算机102变成非受管安全工作组100的成员。目标节点计算机96创建要加入的计算机102的计算机帐户,并将目标节点计算机的秘密传回要加入的计算机102。要加入的计算机102随后保存该目标节点计算机的秘密。此时,要加入的计算机102将启动与目标节点计算机96的“同步”操作。在完成同步操作之后,建立了完全的信任。
之后,在非受管安全工作组的成员之间出现变化时复制用户帐户和用户概况(步骤188)。在一个说明性实现中,作为非受管安全工作组的成员的计算机周期性地(例如每4分钟)发送“唤起注意(Hello)”消息到该组中的所有其它节点。唤起注意消息包含组GUID、节点的当前系统时间和复制的最后更新计数。不要求其它组成员响应,但将相应地更新它们的组成员表,并记录从该成员收到“唤起注意”的最后时间。当从LSA收到SAM变化时,计算机上的安全组服务发送“通知(Notify)”消息到安全工作组中的所有节点。当组节点收到通知消息时,它将消息中的更新计数(UpdateCount)与其当前的更新计数进行比较。如果收到的更新计数比当前的更新计数新,则接收者回调发送者以得到特定的变化列表并在本地应用这些变化。
在一替换的说明性实施例中,代替使用管理员名称和口令作为秘密,目标节点计算机96生成一随机个人标识号(PIN)作为秘密。目标节点计算机96的用户196(“Toby”)将该秘密PIN给予想要加入该组的计算机102的用户158(“Patrick”)。用户158随后响应于该提示将这个PIN输入到计算机102中,并且经由网络连接将PIN传送给目标节点96以便建立信任。
图6示出根据本发明的一实施例计算机系统(KitchenPC)601加入非受管安全工作组603的说明性场景。(本发明的其它实施例可利用其它技术来提供对想要加入非受管安全工作组603的机器的认证。)在该示例性场景中,计算机系统(DenPC)605已经是非受管安全工作组603的成员。加入是一个过程,通过这个过程未加入的机器与现有非受管安全工作组的成员协作以获得该非受管安全工作组中的成员资格。在该说明性实现中,有十个主要步骤:
1)KitchenPC 601通过用HouseCastle_Kpublic质询DenPC 605而将其认证为非受管安全工作组603的成员。如果DenPC 605响应正确,则它证明DenPC605知道共享秘密。
2)KitchenPC 601生成公/私钥对并生成自签名证书KitchenPC_Cert。
3)KitchenPC 601为自己创建一个KitchenPC帐户并将KitchenPC_Cert与该帐户相关联。
4)KitchenPC 601使用由驱动加入的用户提供的管理员的公知帐户和和管理员的口令登录到DenPC 605。KitchenPC 601将其证书传递给DenPC 605。
5)DenPC 605安装KitchenPC的证书。
6)DenPC 605创建KitchenPC 601的机器帐户,将该帐户与KitchenPC_Cert相关联,随后将该证书输入到非受管安全工作组603。
7)DenPC(603)将其自己的证书和共享秘密返回给KitchenPC(601),后者:
a.安装DenPC_Cert。
b.存储共享秘密。
c.从私钥生成HouseCastle_Cert的副本并安装该副本。
8)KitchenPC(601)创建DenPC 605的机器帐户,并将该帐户与DenPC_Cert相关联。
9)KitchenPC 601经由功能发现607将自己发布(广播)为非受管安全工作组的成员。
10)KitchenPC 601启动与DenPC 605的同步操作。(在前面的步骤中,KitchenPC 601和DenPC 605仅建立相互信任。一旦它们具有相互信任,同步操作就用来自其它计算机的证书、帐户和组的完整集合来填充每个计算机。)
将意识到,在建立信任阶段期间的通信和在组成员之间为复制用户帐户、用户概况和与组操作有关的其它数据的后续通信应该适当地受数字签名与加密的保护以保护数据的完整性与机密性。(在本发明的一实施例中,使用基于公钥/私钥的认证机制(PK/S信道认证)。公钥放在自签名证书中,在以后用于验证私钥持有者的身份。)为此,通信可遵循合适的认证协议,如NTLM或Kerberos。在一个说明性实现中,非受管安全工作组的节点使用(DCE)RPC来复制,RPC采用NTLM认证机制。信道以调用级认证和私密性来保护,而访问控制以对作为非受管安全工作组的成员的调用者的基于服务器的检查为基础。使用认证度量防止本地网络上的其它计算机对非受管安全工作组中的节点之间通信的窃听与篡改。
在加入非受管安全工作组100之后,计算机102可自愿地离开该组。为此,用户158登录到要从非受管安全工作组移除的机器102上,并通过适当的用户界面窗口选择离开该组。在一说明性实现中,当计算机离开非受管安全工作组时,从安全组节点组中移除该计算机,并且删除其相应的计算机帐户。这个动作结束了用于复制帐户的信任。在计算机离开组时,连同所有计算机帐户一起删除安全组管理员和安全组节点组。然而,计算机GUID仍保留为与加入该组时的GUID一样。在从该组移除之后,计算机102变成本地网络上的独立计算机,因此工作组100变成一个计算机的非受管安全工作组。(然而,在工作组100变成一个计算机的非受管安全工作组之后,计算机随后可加入它。)它不再被信任并且将再也接收不到对用户帐户和概况的任何更新。
在某些特殊情况下,计算机可被“驱逐”出非受管安全工作组。例如,如果组中一个计算机已经被偷走,则需要将该计算机从该组中驱逐出去,因此以后不能使用它来访问该组的数据与资源。从安全组节点组中移除被驱逐的计算机,并删除其帐户。这防止将来将帐户信息复制到被驱逐的计算机。然而,可使用其它措施来彻底地使被驱逐计算机与组断绝关系。由于被驱逐计算机具有帐户数据库的完整副本(包括口令),因此被驱逐计算机可试图将它自己认证为任何其它用户(或计算机)并仍获得对安全工作组的访问。因此,应当采取措施从而在被驱逐的计算机不能窃听通信并看见口令的情况下改变残留秘密。作为驱逐过程的一部分,计算机的秘密必须在改变任何用户秘密之前离线改变。计算机秘密的改变可在专用信道上“带外”完成,如通过使用软盘来承载秘密。在一实现中,在驱逐计算机之后,非受管安全工作组的管理员196必须在没有被驱逐计算机的情况下重建该组。作为恢复过程的一部分,剩余在组中的一个计算机(“恢复计算机”)被隔离(即从网络中移除)并用于进行组恢复。为组中剩余的每个计算机生成一新的随机LSA秘密并在恢复计算机的本地帐户数据库中存储为该计算机的新计算机口令。然而,新的秘密不能通过网络发送到其它计算机,因为有被驱逐的机器可接收更新的危险。为解决这个问题,管理员196为安全工作组中每个剩余的计算机创建一个“驱逐”软盘(或任何其它便携介质,如CD ROM),它包含该计算机的新LSA秘密。管理员用他的管理员帐户登录到他想要保持在非受管安全工作组中的每个计算机上,并在该计算机上运行驱逐盘以改变该计算机的口令。一旦驱逐盘在组中剩余的机器上运行,要求所有用户在登录到组中的计算机上时改变他们的口令,因为被驱逐计算机具有所有用户的现有口令(或至少有导出密钥)。
按照本发明的至少某些方面的非受管安全工作组的一个优点是使机器与机器的通信安全。按照本发明的一个方面,可在成员机器与请求加入非受管安全工作组的机器之间使用自签名证书。而且,如上所述创建的驱逐软盘可被分发,其中所有机器帐户基本上在同时被重置为新的随机口令。在重置口令时,成员机器将失去通信的能力;然而,机器将在驱逐软盘轮到它时获得通信的能力。得不到驱逐软盘的机器(例如被驱逐机器)只拥有旧的口令,并且不能与非受管安全工作组通信。按照本发明的至少某些方面的非受管安全工作组的另一个优点是防止经由用户帐户的非授权访问。按照本发明的一个方面,所有用户帐户被改变。按照本发明的另一方面,口令被设置为在下次登录时过期。
按照本发明的至少某些方面的非受管安全工作组的一个优点是,每个用户具有组中所有计算机知道的身份。因此,用户能用同一用户名和口令登录到安全工作组中的任何计算机上。例如,在小型企业设置中,职员能用同一用户名和口令登录到形成安全工作组的本地办公网络上的任何计算机上,而不需要分别在每个计算机上设置用户帐户。同样,当用户在组中的计算机之一上改变其口令时,该改变将被复制到其它计算机。因而,非受管安全工作组可显著地简化用户帐户的创建与修改,并且使组中的计算机对于授权用户更加“可访问”。
非受管安全工作组中的计算机的改进的网络集成还允许用户享受计算机网络的益处。在登录到组中的任何计算机中之后,用户能使用该用户自己的设置访问该用户的所有文档,而无论这些文档和设置实际存储在何处。这再次成为可能,因为用户的所有文档与所有计算机所识别的单一用户身份相关联。因而,可以作出一个查询来标识给定用户的所有文档与设置。这使用户能够在整个安全工作组上具有其全部文档与设置的“统一”视图。
如上所述,在安全工作组中的计算机之间复制的用户概况可包括用户的文档。在一说明性实施例中,给定用户一组预选文档,例如在用户的“我的文档”文件夹中的文档,被自动复制到安全工作组中的每个计算机。当用户已经修改了其中一个文档时,检测到文档修订,并且被修改的文档由文件复制服务(FRS)复制到组中其它计算机。在本发明的一说明性实施例中,为减少计算机为存储被复制的文档所使用的存储器量,超过阈值大小的文件不被复制。如果文件超过阈值大小,代之以仅将存储该文件的计算机上指向该文件的链接复制到其它计算机。
非受管安全工作组还允许在组用户之间安全地共享文件。想要与第二用户共享其文档的用户能修改该文档的属性,以指示允许第二用户访问该文档。当第二用户使用应用程序来访问该文档时,检查文档属性以确认第二用户已被给予访问该文档的权限。在一说明性实现中,小型企业网络中的安全工作组的用户能仅与一个其它用户共享文档。在一替换的说明性实施例中,非受管安全工作组的用户能与组中所有用户共享该用户的文件。这个实现可适用于家庭网络设置。
非受管安全工作组可允许尚未加入组的计算机具有对该组的有限访问。例如,用户可带回其工作用的膝上型计算机并将它连接到其家庭网络,但选择不加入家庭网络上的安全工作组。在这种情况下,非成员计算机可被给予来宾状态,并允许它访问一组预选的资源。同样,传统计算机(即没有用于相关于非受管安全工作组的操作的软件的计算机)仍可用与其在常规的工作组中相同的方式与非受管安全工作组中的计算机通信。
一旦计算机(机器)变成非受管安全工作组的一部分,在非受管安全工作组的任何成员发生变化时,就在成员计算机之间复制和同步用户帐户和用户组。(变化可对应于修改用户帐户信息或添加用户帐户信息。)参加非受管安全工作组的计算机是对等的,没有指定的主计算机。在非受管安全工作组中的计算机可通过网络通告变化。该操作允许成员计算机启动复制,并因而彼此保持同步。
参与复制的计算机维护这些计算机将复制的数据的状态。这些计算机跟踪以下内容:
·计算机版本号:只要计算机上的任何帐户有变化就更新该号码。该版本号在高级别上确定何时需要同步操作。
·帐户版本号:只要计算机上的特定帐户有变化就更新该号码。该版本号用于在需要同步操作时确定哪些帐户要同步,并且是按每个帐户来跟踪的。
复制可以是面向拉(pull-oriented)的复制,其中每个计算机在其计算机版本号变化时通告该版本号。当非受管安全工作组的成员检测到另一成员已经通告了新版本号时,该成员用它在其记录中所具有的该计算机的版本号来检查这个版本号。如果该成员确定另一计算机已经发布了较新的数据,则它启动复制。
在一说明性实施例中,所有用户帐户被复制。所有帐户组被复制;因而,在一个计算机上作为管理员的用户将被复制为其它计算机上的管理员。下列数据被复制:
Figure A20068002530500181
用户名
Figure A20068002530500182
用户口令
用户头像
Figure A20068002530500184
帐户版本号:该数据由非受管安全工作组用于通知成员何时它们应当更新它们的本地数据。
Figure A20068002530500185
用户组名
Figure A20068002530500186
用户组成员列表
Figure A20068002530500191
计算机版本号:该数据由非受管安全工作组用于决定是否要与另一计算机启动同步操作。
Figure A20068002530500192
非受管安全工作组秘密:该数据是机器对机器秘密,它建立非受管安全工作组的机器之间的信任。
图7示出根据本发明的一个说明性实施例用于非受管安全工作组中将经更新的帐户信息从一成员计算机提供给另一计算机的流程图700。在步骤701,成员计算机确定存储在该成员计算机上的帐户信息中是否有变化。如果没有变化,则该过程退出。如果有变化,则在步骤703,该计算机通过使用功能发现消息发布相关联的计算机版本号来通告该变化。本发明的实施例可使用其它发布协议,例如前述的SSDP来发布相关联的计算机版本号。在步骤705,成员计算机确定是否从另一计算机接收到对用户帐户列表的请求。如果没有,则该过程退出。如果有,则在步骤707,成员计算机将列表发送给该另一计算机。如果特定的帐户信息已经在成员计算机上更新或者添加,则该另一计算机可进一步请求相应的帐户信息。在步骤709,确定是否接收到这样的请求。如果没有接收到进一步的请求,则该过程退出。如果已经接收到进一步的请求,则在步骤711,成员计算机将指定的帐户信息发送到该另一计算机。
图8示出根据本发明的一个说明性实施例用于在非受管安全工作组中从成员计算机获得经更新的帐户信息的流程图800。(流程图800对应于在图7所示的另一计算机上执行的过程。)在步骤801,该另一计算机确定是否接收到成员计算机已经改变了帐户信息的通告。如果没有,则该过程退出。如果已经接收到通告,则在步骤803,该另一计算机将所通告的版本号与在记录上所具有的成员计算机的版本号进行比较。如果不是,则该过程退出。如果所通告的版本较新,则在步骤805,该另一计算机向成员计算机请求用户帐户列表。在步骤807,该另一计算机作出对已经被更新的或新的帐户信息的请求。在步骤809,该另一计算机在冲突解决(稍后讨论)之后更新存储在该另一计算机上的帐户信息。
尽管经更新的帐户信息可根据流程图700来获得,但本发明的实施例支持其它帐户更新过程。在本发明的一实施例中,第一成员计算机广播带有经更新的版本号的通告,以指示在帐户信息中已发生变化。非受管安全工作组的第二成员响应于来自该成员计算机的通告,将帐户版本号发送到第一成员计算机。因此,第一成员计算机向第二成员计算机返回较新的用户帐户列表。
当新计算机加入非受管安全工作组时,它没有与该非受管安全工作组相关的帐户数据。此时,它用非受管安全工作组数据更新它自己。只要在非受管安全工作组的任何参与成员上改变了任何用户帐户或组,该变化就可经由功能发现(或另一发布机制,例如SSDP)来通告。通告触发非受管安全工作组的成员之间的复制序列。非受管安全工作组中的计算机通过经由功能发现发布它们的计算机版本号来通告它们的变化。
当一成员离开非受管安全工作组时,用户可决定从该计算机上删除某些帐户。这个变化,以及非受管安全工作组的经更新的成员资格可被复制到其余的成员。当一成员被驱逐时,非受管安全工作组的秘密被改变。秘密的变化被传播到非受管安全工作组中的其它成员。
当机器首次加入非受管安全工作组时,机器之间的初始信任通过管理员用口令登录来建立。一旦信任已建立,则这些机器可交换自签名证书并通过基于证书的相互认证来执行认证。(如前所述,可使用其它认证机制。)一旦计算机已经与另一计算机认证,该计算机随后就能复制帐户信息。
在本发明的一说明性实施例中,安全帐户管理器(SAM)数据库通过在辅助属性文件中存储新属性来扩展。(安全帐户管理器数据库包含定义的用户和组以及相应的口令和其它属性。)辅助属性文件(对应于本地存储的数据)在复制帐户时被复制。而且,辅助属性文件能被扩展,以包括附加的属性,例如,用户头像、口令提示、帐户GUID和帐户证书。
非受管安全工作组包括多个机器,它们彼此是对等的。这意味着对同一对象的变化可在任何参与机器上由具有适当权限的人来作出。变化可在成员机器“在线”时或者在这些机器“离线”时作出。在机器离线时对机器所作的变化会导致与用户帐户或帐户组冲突的变化,如下更详细地描述的。非受管安全工作组特征可利用一种机制来检测冲突。随后,冲突可被自动解决或者在授权用户的帮助下解决。
帐户的“变化”被定义为该帐户的任何属性的变化。冲突解决与检测可在“整个帐户级”上执行。(另外,冲突解决与检测可在每个属性级上执行。)作为一个示例,如果在一个机器上改变一个帐户的头像并在另一机器上改变同一帐户的口令,则这两个帐户都被认为有变化,因而将要求冲突解决,即使在属性级上这些变化是非重叠的。
两个成员机器之间的同步受到这些机器不同步的时段的影响。如果这些机器已经分离一段长时间,则这些机器之间的差异被认为是冲突。在一说明性实施例中,这些差异是使用管理用户界面(UI)通过人工干预来解决的。一个说明性的长时段是当机器之间的最后更新时戳差异至少是30天,而一个说明性的短时段是当两个成员机器之间的“最后更新”时戳小于30天时这两个机器之间没有连接。设置说明性的30天阈值,使得大多数正常的离线情形,例如机器每天关机,能自动处理冲突解决。由于用户帐户和组不会非常频繁地变化,因此上述准则也用于确定当计算机从备份恢复时同步如何发生。
长时段同步在以下时间发生:机器已经分离与如上定义的长时段一样长的相当长的时段,且机器之间发生了变化。同步阻塞错误被发送到较老的机器的同步处理程序。较老的机器上的用户能够正常使用机器,因为其帐户与非受管安全工作组的其余机器没有冲突。在本发明的一说明性实施例中,同步阻塞错误允许该机器上的管理员通过提供下列选择来解决同步:
·从较老的机器丢弃所有变化并选取最后的变化。该选择等价于较老的机器第一次加入非受管安全工作组。
·同步来自较老的机器的变化。在本发明的一实施例中,如果用户选取这个选择,则机器之间的同步会如这些机器分离了一段短时间一样地发生。本发明的其它实施例不区分长和短时段冲突,从而所有冲突作为短时段冲突处理。
短时段同步在机器之间上一次发生变化起它们已经分离了短时段时发生。短时段同步的处理依赖于要同步的变化的特性。本发明的一说明性实施例支持下列具有相关联解决的变化。
·无冲突变化:
Figure A20068002530500211
在一个机器上添加了帐户:通过在其它机器上创建同一帐户来解决。
Figure A20068002530500212
在一机器上删除用户帐户:通过在其它机器上删除同一帐户来解决。如果一个机器是成员,则在较老的机器上删除帐户的时候,该机器上的管理员将被警告该删除对其余成员的影响。
在一个机器上改变帐户的属性:通过在其它机器上改变同一帐户的同一属性来解决。
Figure A20068002530500214
在一机器上添加用户组:通过在其它机器上创建同一用户组来解决。
Figure A20068002530500215
在一机器上删除用户组:通过在其它机器上删除同一用户组来解决。如果一机器是成员,则在较老的机器上删除用户组时,在该机器上的管理员将被警告该删除对其它成员的影响。
Figure A20068002530500216
在一机器上改变用户组的成员资格:通过在其它机器上改变同一用户组的成员资格来解决。
Figure A20068002530500221
交换两个用户的显示名称:通过在其它机器上交换这些名称来解决。
注意,这导致在机器上重复的显示名称。然而,由于用户帐户是由GUID(全局唯一标识符)标识的,因此该变化是非冲突变化。
·冲突变化:
Figure A20068002530500222
在两个不同机器上改变同一用户帐户:通过发送同步阻塞错误并在较老的机器上拒绝该用户参与非受管安全工作组直到该用户或管理员解决该冲突为止来解决。
在本发明的一实施例中,统一地对待所有冲突。在长时段与短时段冲突之间没有区别。所有冲突作为短时段冲突来处理。
在本发明的一实施例中,如果新帐户不匹配按照GUID的任何本地帐户并且具有与本地帐户相同的名称,则产生冲突。
非受管安全工作组的帐户中的冲突经由与冲突管理用户界面的集成来呈现。如果是在当前机器上,则个别用户在该用户的帐户发生冲突时被通知该冲突。在任何成员机器上的管理员被通知有关非受管安全工作组内的所有帐户冲突,如在管理员所登录的机器上观看到的。换言之,如果非受管安全工作组中的不同机器具有在不同机器上发生冲突的不同帐户,则在每个机器上的视图是不同的。
如果对帐户变化的最终选择被复制到所有成员机器,则冲突的解决被认为已经会聚了。当在一个别机器上解决了帐户冲突时,相应的变化被复制到其它机器。取决于所解决的冲突的特性,在其它机器上的某些现有冲突可随着当前机器上的冲突的解决而解决。
非受管安全工作组依赖于多个机器通过网络通信并能够响应于成员机器的变化而改变其状态的能力。网络与参与机器会以多种方式发生故障。因此,有必要拥有非受管安全工作组功能,其方式是成员机器和非受管安全工作组作为整体能预测性地处理错误、故障并且进行清理和从这类错误和故障的恢复。非受管安全工作组一般可通过在开始原子事务之前利用标记标志来处理错误与故障。如果因任何原因事务失败,则记录该标志并在下次开始服务时执行清理。复制动作被设计为在机器变得可用时自动继续,因而在复制期间的故障被自动处理。如果在机器上的特征安装以任何方式被破坏,则服务在该机器上停止,并且机器不再参与非受管安全工作组。
根据本发明的诸方面的非受管安全工作组支持众多用户情形。作为示例,一个用户情形涉及家庭网络中的“漫游家长控制”。家长可创建家长控制限制,用于限制孩子如何使用计算机。家长控制限制被复制到组中的所有计算机。因而,当孩子登录到组中的任何计算机上时,家长控制限制“跟随”着孩子,而无论其正在使用哪个计算机。另外,孩子的审核报告随着孩子在组中的每个计算机上的活动而被更新。根据本发明的说明性实施例,用户情形支持在非受管安全工作组中漫游、共享数据对象以及备份用户的数据对象等等。用户情形建立于非受管安全工作组内的信任与用户数据复制之上。
本发明的一说明性实施例提供一组接口(应用程序编程接口(API)),该组接口可由应用程序或其它服务用于查询非受管安全工作组的属性和成员,并用于启动非受管安全工作组内的动作。
本发明的说明性实施例支持下列接口:
··IWorkgroupNetInformation(工作组网络信息)-提供局域网内的非受管安全工作组和无联系计算机的列表。
··IWorkgroupInformation(工作组信息)-提供有关给定非受管安全工作组的信息,包括作为整体的特征的属性和成员计算机列表。
··IWorkgroupComputerInformation(工作组计算机信息)-提供有关非受管安全工作组内的计算机的信息。
··IWorkgroupNetControl(工作组网络控制)-允许用户创建新的非受管安全工作组。
··IWorkgroupControl(工作组控制)-允许用户使计算机加入或离开非受管安全工作组。
IWorkgroupNetInformation接口提供有关非受管安全工作组的信息。
interface IWorkgroupNetInformation:IUnknown
{
   //
   //创建已知工作组的枚举器.
   //
   HRESULT GetWorkgroups([out]IEnum Workgroups**ppEnum);
   //
  //按名称提供已知工作组的接口.
  //如果计算机当前属于一个工作组,则pszWorkgroup
  //可以是空串,以指示当前工作组。
  //
  //如果pszWorkgroupGUID是空串且当前
  //计算机不是工作组的成员,则GetWorkgroup将
  //返回S_FALSE并且将*ppWorkgroup设置为NULL.
  //
  HRESULT GetWorkgroup([in,string]LPCWSTR pszWorkgroupGUID,
          [out]IWorkgroupInformation**pp Workgroup);
  //
  //创建已知的无联系计算机的枚举器.
  //
  HRESULT GetComputers([out]IEnumString**ppEnum);
  //
  //注册变化通知
  //
  HRESULT Advise([in]IUnknown*pUnk,[out]DWORD*pdwCookie);
  HRESULT Unadvise(DWORD dwCookie);
}
IEnumWorkgroups(枚举工作组)和IEnumComputers(枚举计算机)都是从IEnumerable(可枚举)派生的。IEnum Workgroups返回IWorkgroupInformation接口,其每一个代表一个已知的非受管安全工作组。IEnumComputers返回LPWSTR,其每一个是与任何非受管安全工作组无联系的已知计算机的名称。
interface IEnumWorkgroups:IUnknown
{
  HRESULT Next([in]ULONG celt,
       [out,size_is(celt),
       length_is(*pceltFetched)]IWorkgroupInformation**rgelt,
       [out]ULONG*pceltFetched);
  HRESULT Skip([in]ULONG celt);
  HRESULT ResetO;
  HRESULT Clone([out]IEnumWorkgroups**ppEnum Workgroups);
}
interface IEnumComputers:IUnknown
{
  HRESULT Nextflm]ULONG celt,
       [out,size_is(celt),
       length_is(*pceltFetched)]IWorkgroupComputerInformation**rgelt,
       [out]ULONG*pceltFetched);
  HRESULT Skip([in]ULONG celt);
  HRESULT ResetO;
  HRESULT Clone([out]IEnumComputers**ppEnumComputers);
}
对于变化通知,IWorkgroupNetInformatin::Advise(通告)将接受IWorkgroupNetInformationAdvise(工作组网络信息通告)。
interface IWorkgroupNetInformationAdvise:IUnknown
{
  //
  //工作组发现的通知
  //
  HRESULT OnWorkgroupFound([in]IWorkgroupInformation*pWI);
  HRESULT OnWorkgroupLost([in]IWorkgroupInformation*pWI);
  //
  //计算机发现的通知
  //
  HRESULT OnComputerFound([in,string]LPCWSTR pszComputer);
  HRESULT OnComputerLost([in,string]LPCWSTR pszComputer);
}
  }
IWorkgroupInformation接口提供有关给定非受管安全工作组的信息,包括作为整体的非受管安全工作组的属性和成员计算机列表。
interface IWorkgroupInformation:IUnknown
{
  //
  //取工作组的主名称
  //
  //返回的名称串必须通过CoTaskMemFree()释放.
  //
  HRESULT GetName([out,string]LPWSTR*ppszName);
  //
  //取工作组的唯一身份(GUID)
  //
  //唯一身份在工作组的生存期内从不改变
  //-用它作参考
  //
  HRESULT GetGUID([out,string]LPWSTR*ppszGUID);
  //
  //取创建工作组的时间
  //
  HRESULT GetCreationTime([out]FILETIME*pft);
  //
  //取工作组中计算机的枚举器
  //
  HRESULT GetComputers([out]IEnumComputers**ppEnum);
  //
  //注册变化通知
  //
  HRESULT Advise([in]IUnknown*pUnk,[out]DWORD*pdwCookie);
  HRESULT Unadvise(DWORD dwCookie);
}
对于变化通知,IWorkgroupInformation::Advise接受IworkgroupInformationAdvise(工作组信息通告)。
interface IWorkgroupInformationAdvise:IUnknown
{
  //
  //工作组成员资格变化的通知.
  //
  //注意:不支持对应于
  //除本地计算机所属的工作组以外的任何工作组的
  //IWorkgroupInformation.
  //
  HRESULT  OnMemberAdded([in]  IWorkgroupComputerInformation*pComputer);
  HRESULT  OnMemberRemoved([in]  IWorkgroupComputerInformation*pComputer);
  //
  //工作组成员状态变化的通知
  //
  HRESULT OnMemberStateChanged([in]IWorkgroupComputerInformation*pComputer);
}
IWorkgroupComputerInformation提供有关非受管安全工作组内的计算机的信息。
interface IWorkgroupComputerInformation:IUnknown
{
  //
  //取计算机名称
  //
  //返回的名称串必须通过CoTaskMemFree()释放.
  //
  HRESULT GetName([out,string]LPWSTR*ppszName);
  //
  //取计算机的描述
  //
  //返回的名称串必须通过CoTaskMemFree()来释放.
  //
  HRESULT GetDescription([out,string]LPWSTR*ppszDescription);
  //
  //取计算机与工作组同步的最后时间
  //
  //返回值可以是零,表示未知
  //
  HRESULT GetLastSyncTime([out]FILETIME*pft);
  //
  //取计算机的唯一身份(GUID)
  //
  //唯一身份在工作组中的计算机的生存期内从不改变
  //-使用它作为参考
  //
  HRESULT GetUniqueID([out]GUID*pGUID);
  }
     }
IWorkgroupNetControl接口是经由QueryInterface(QI)(查询接口)从IWorkgroupNetInformation获得的。
interface IWorkgroupNetControl:IUnknown
{
  //
  //创建新工作组,其中当前无联系的机器变成第一个成员,
  //即创建一个计算机的工作组.
  //
  HRESULT Create([in,string]LPCWSTR pszWorkgroupAdminPassword,
          [out]IWorkgroupInformation**ppWorkgroup);
  //
  //使计算机不加入它其当前工作组。
  //该计算机随后回到未加入状态.
  //
  HRESULT Leave();
}
IWorkgroupControl接口是经由QI从IWorkgroupInformation获得的。
interface IWorkgroupControl:IUnknown
{
  //
  //将计算机加入指定的工作组.
  //
  HRESULT Join([in,string]LPCWSTR pszAdminPassword);
  //
  //从工作组驱逐指定计算机
  //
  HRESULT Evict([in,string]LPCWSTR pszComputer);
}
图9示出根据本发明的一说明性实施例在非受管安全工作组中支持应用程序编程接口(API)的流程图900。如果应用程序(例如如图2所示的应用程序121)在步骤901生成API请求,则在步骤903解析该API请求以确定API类型和相应的参数(例如,非受管安全工作组id)。因此,API请求消息是针对所支持的API类型来处理的,如步骤905-913所示。
应用程序编程接口(或简称之为接口)可以被视为用于允许一个或多个代码段与由一个或多个其它代码段提供的功能进行通信或对其进行访问的任何机制、进程、协议。或者,编程接口可以被视为能够通信地耦合至其它计算机的一个或多个机制、方法、函数调用、模块等的系统的组件的一个或多个机制、方法、函数调用、模块、对象等。上述语句中的术语“代码段”意在包括一个或多个指令或代码行,并包括例如,代码模块、对象、子例程、函数等等,而无论应用的术语是什么、或代码段是否被单独编译、或代码段是否作为源代码、中间代码或目标代码来提供、代码段是否在运行时系统或进程中使用、或它们是否位于同一或不同机器上或跨多个机器分布、或由代码段表示的功能是否完全由软件、完全由硬件或由硬件和软件的组合来实现。
概念上,编程接口可以被一般地查看,如图10A或图10B所示的。图10A示出了接口“接口1”为管道,第一和第二代码段通过该管道进行通信。图10B示出了接口包括接口对象I1和I2(可以是或不是第一和第二代码段的部分),它们允许系统的第一和第二代码段通过介质M进行通信。在图10B的视图中,可以认为接口对象I1和I2为同一系统的分开的接口,并且也可以认为对象I1和I2加上介质M构成了接口。尽管图10A和10B示出了双向流程以及该流程的每一侧上的接口,但某些实现可仅具有一个方向上的信息流(或如下所述没有信息流),或仅具有一侧的接口对象。作为示例而非局限,诸如应用程序编程或程序接口(API)、入口点、方法、函数、子例程、远程过程调用和组件对象模型(COM)接口等术语被包含在编程接口的定义之内。
这类编程接口的各方面可包括第一代码段向第二代码段发送信息的方法(其中,“信息”以其最广泛的意义使用,并包括数据、命令、请求等等);第二代码段接收信息的方法;以及该信息的结构、序列、句法、组织、模式、定时和内容。在这一点上,只要信息以接口所定义的方式传输,底层传输介质本身可以对接口的操作不重要,无论该介质是有线还是无线,或两者的组合。在某些情况下,信息可以不在常规意义上的一个或两个方向上传递,因为信息传输可以或者通过另一机制(如,信息被放置在与代码段之间的信息流分离的缓冲区、文件等中)或者不存在,如当一个代码段仅访问由第二代码段执行的功能的时候。这些方面的任一个或所有可以在给定的情况下是重要的,如,取决于代码段是否是松耦合或紧耦合配置的系统的一部分,并且因此该列表应当被认为是说明性的而非限制。
编程接口的这一概念对本领域的技术人员是已知的,并且可以通过阅读上述本发明的详细描述而清楚。然而,有其它方法来实现编程接口,并且除非明显地排除,否则这些方法也由所附权利要求书包含在内。这些其它方法看似比图10A和10B的视图更精密或复杂,但是它们仍执行类似的功能来实现同一整体结果。现在简要描述编程接口的某些说明性替换实现。
可以通过将通信分裂成多个离散通信来间接地实现从一个代码段到另一个的通信。这在图11A和11B中示意性地描述。如图所示,可以按照可分功能集来描述某些接口。由此,可以分解图10A和10B的接口功能来达到相同的结果,如同可以在数学上提供24,或2乘2乘3乘2一样。因此,如图11A所示,可以细分由接口“接口1”提供的功能以将该接口的通信转换成多个接口“接口1A”、“接口1B”、“接口1C”等,而达到相同的结果。如图11B所示,由接口I1提供的功能可以被细分成多个接口I1a、I1b、I1c等,而达到相同的结果。类似地,从第一代码段接收信息的第二代码段的接口I2可以被分解成多个接口I2a、I2b、I2c等。当分解时,包括在第一代码段中的接口的数量不需要匹配包括在第二代码段中的接口的数量。在图11A或11B的任一情况下,接口“接口1”和I1的功能性精神分别与图1B和1C的保持相同。接口的分解也可遵从结合、交换和其它数学性质,使得分解较难识别。例如,操作的排序可以是不重要的,并且因此由接口完成的功能可以在达到该接口之前由另一段代码或接口较好地完成,或者由系统的单独组件执行。此外,编程领域的普通技术人员可以理解有各种方式来作出达到相同结果的不同函数调用。
在某些情况下,可能忽略、添加或重定义编程接口的某些方面(如参数),而仍达到预期的结果。这在图12A和12B中示出。例如,假定图10A的接口“接口1”包括函数调用Square(input,precision,output)(求平方),这是包括三个参数:input(输入)、precision(精度)和output(输出),并且由第一代码段向第二代码段发出的调用。如果中间参数precision在给定的情形下无关紧要,如图12A所示,则它也可以被忽略或甚至由一无意义(在这一情况下)参数来替换。也可以添加无关紧要的另外的参数。在任一情况下,只要在输入由第二代码段求平方之后返回输出,就可以达到求平方的功能。precision也有可能对计算系统的某一下游或其它部分是极有意义的参数;然而,一旦认识到precision对计算平方这一有限目的不是必需的,它就可以被替换或忽略。例如,代替传递一个有效的pricision值,而是在不对结果产生不利影响的情况下传递诸如出生日期等无意义的值。类似地,如图12B所示,接口I1由接口I1′替换,它被重定义来忽略或向接口添加参数。接口I2可类似地被重定义为接口I2′,它被重定义来忽略不必要的参数,或可在别处处理的参数。此处的要点是在某些情况下,编程接口可包括对某一目的而言所不需要的方面,诸如参数,因此可以忽略或重定义它们,或在别处为其它目的处理它们。
合并两个分开的代码模块的一些或全部功能,使得它们之间的“接口”改变形式也是可行的。例如,图10A和10B的功能可以被分别转化成图13A和13B的功能。在图13A中,图10B的先前的第一和第二代码段被合并成包含两者的模块。在这一情况下,该代码段仍可以彼此通信,但是该接口可以适用于更适合单个模块的形式。由此,例如,正式的Call(调用)和Return(返回)语句将不再必需,但是依照接口“接口1”的类似处理或响应仍是有效的。类似地,如图13B所示,图10B的部分(或全部)接口I2可以内联地写入接口I1来形成接口I1″。如图所示,接口I2被划分成I2a和I2b,并且接口部分I2a与接口I1内联地编写代码来形成接口I1″。对于一个具体的示例,考虑图10B的接口I1执行一函数调用square(input,output),它由接口I2接收,接口I2在由第二代码段处理了随input传递的的值(对其求平方)之后,使用output传回已求平方的结果。在这一情况下,由第二代码段执行的处理(对input求平方)可以由第一代码段在不调用该接口的情况下执行。
可以通过将通信分裂成多个离散的通信来间接地实现从一个代码段到另一个的通信。这在图14A和14B中示意性地描述。如图14A所示,提供了一个或多个中间件(脱离接口(Divorce Interface),因为它们从原始接口脱离功能和/或接口函数),以转化第一接口“接口1”上的通信,使得它们符合不同的接口,在本情况下为“接口2A”、“接口2B”和“接口2C”。这可以在这样一种情况中完成,例如,存在被设计成依照“接口1”协议与如操作系统进行通信的应用程序的已安装基础,但是然后该操作系统被改为使用不同的接口,在本情况下为接口“接口2A”、“接口2B”和“接口2C”。要点是改变了由第二代码段使用的原始接口,使得它不再与第一代码段所使用的接口兼容,因此使用中介来令旧接口和新接口兼容。类似地,如图14B所示,可以使用脱离接口DI1引入第三代码段以从接口I1接收通信,并使用脱离接口DI2引入第三代码段以向例如被重新设计成与DI2一起工作的接口I2a和I2b发送接口功能,但是提供相同的功能性结果。类似地,DI1和DI2可以共同工作以将图10B的接口I1和I2的功能转换到一新的操作系统,而提供相同或类似的功能性结果。
再一种可能的变型是动态地重写代码,以使用别的东西来替换接口功能,而仍达到相同的总体结果。例如,可以有这样一种系统,其中,向执行环境(如由.Net框架提供的环境、Java运行时环境或其它类似的运行时型环境)中的即时(Just-in-Time)(JIT)编译器或解释器提供了以中间语言(如Microsoft IL、JavaByteCode等)呈现的代码段。可以编写JIT编译器以动态地将通信从第一代码段转换到第二代码段,即,令它们符合第二代码段(原始或不同的第二代码段)可能需要的不同接口。这在图15A和15B中有描述。如图15A中所看见的,这一方法类似于上述的脱离情形。它可以在这样一种情况下完成,例如,应用程序的已安装基础被设计成依照“接口1”协议来与操作系统进行通信,但是然后该操作系统被改为使用不同的接口。JIT编译器可以用于令来自已安装基础应用程序的进行中的通信符合操作系统的新接口。如图15B所描述的,这一动态重写接口的方法也可应用于动态地分解或者改变接口。
应当注意,通过替换实施例实现与接口相同或相似的结果的上述情形也可以用各种方式串行地、并行地或与其它干预代码组合。由此,上文呈现的替换实施例并非互斥,并且可以被混合、匹配和组合以产生与图10A和10B中所呈现的一般情形相同或等效的情形。也应当注意,对于大多数编程构造,可以有此处未描述的实现接口的相同或相似功能的其它类似的方式,但是它们仍由本发明的精神和范围来表示,即,应当注意,它至少部分地是由作为接口的值的基础的接口表示的功能和由其启用的有利结果。
如本领域技术人员所意识到的,具有包含用于控制计算机系统的指令的相关联的计算机可读介质的计算机系统可用于实现在此公开的示例性实施例。计算机系统可包括至少一个计算机,如微处理器、数字信号处理器以及相关联的外围电子电路。
尽管已经用专用于结构特征和/或方法动作的语言描述了本主题,但要理解,所附权利要求书中定义的主题不必限于上述特定特征或动作。相反,上述特定特征和动作是作为实现权利要求书的示例形式而被公开的。

Claims (20)

1.一种第一计算机中的其上存储有计算机可执行指令的计算机可读介质,所述指令被配置为执行包括以下步骤的方法:
(a)使所述第一计算机加入一非受管安全工作组;
(b)将与所述第一计算机相关联的第一帐户信息提供给第二计算机用于复制,所述第二计算机是所述非受管安全工作组的成员;
(c)获得与所述第二计算机相关联的第二帐户信息;以及
(d)复制所述第二帐户信息。
2.如权利要求1所述的计算机可读介质,其特征在于,还具有执行以下步骤的计算机可执行指令:
(e)确定所述第一帐户信息的变化已经发生;以及
(f)将所述变化提供给作为所述非受管安全工作组的成员的每个其它计算机。
3.如权利要求2所述的计算机可读介质,其特征在于,(f)包括执行以下步骤的计算机可执行指令:
(f)(1)向所述每个其它计算机通告所述变化。
4.如权利要求3所述的计算机可读介质,其特征在于,(f)包括执行以下步骤的计算机可执行指令:
(f)(2)从所述第二计算机接收帐户版本信息;以及
(f)(3)响应于(f)(2),发送较新的用户帐户的列表。
5.如权利要求3所述的计算机可读介质,其特征在于,(f)包括执行以下步骤的计算机可执行指令:
(f)(2)从所述第二计算机接收对用户帐户的列表的第一请求;以及
(f)(3)响应于(f)(2),将所述用户帐户的列表连同相应的信息一起发送给所述第二计算机,
(f)(4)从所述第二计算机接收对一指定用户帐户的相关联帐户信息的第二请求;以及
(f)(5)响应于(f)(4),将所述相关联帐户信息发送给所述第二计算机。
6.如权利要求5所述的计算机可读介质,其特征在于,所述指定用户帐户的至少一个属性已经被修改。
7.如权利要求5所述的计算机可读介质,其特征在于,所述指定用户帐户已经被添加到所述第一帐户信息。
8.如权利要求1所述计算机可读介质,其特征在于,还具有执行以下步骤的计算机可执行指令:
(e)确定相关联帐户信息的变化已经在除所述第一计算机以外的作为所述非受管安全工作组的成员的其它计算机上发生;
(f)从除所述第一计算机以外的计算机获得指定帐户信息;以及
(g)自动在所述第一计算机与除所述第一计算机以外的计算机之间同步所述指定帐户信息。
9.如权利要求8所述的计算机可读介质,其特征在于,(g)包括执行以下步骤的计算机可执行指令:
(g)(1)检测是否存在与所述指定帐户信息的冲突;
(g)(2)解决检测到的冲突;
(g)(3)用所述指定帐户信息更新用户帐户数据结构;以及
(g)(4)向所述非受管安全工作组的其它成员发布经解决的冲突。
10.如权利要求8所述的计算机可读介质,其特征在于,(e)包括执行以下步骤的计算机可执行指令:
(e)(1)从除所述第一计算机以外的计算机接收通告。
11.如权利要求8所述的计算机可读介质,其特征在于,(f)包括执行以下步骤的计算机可执行指令:
(f)(1)响应于(d),请求除所述第一计算机以外的所述计算机提供根据版本信息的用户帐户列表。
12.如权利要求11所述的计算机可读介质,其特征在于,(f)包括执行以下步骤的计算机可执行指令:
(f)(2)从除所述第一计算机以外的所述计算机接收具有较新的用户帐户的列表。
13.如权利要求2所述的计算机可读介质,其特征在于,删除所述第一帐户信息。
14.一种支持非受管安全工作组的计算机系统,所述计算机系统包括:
安全组服务模块,它处理所述非受管安全工作组的创建、加入和操作;以及
应用程序接口(API)模块,它允许应用程序获得有关计算机网络中的非受管安全工作组的信息、创建所述非受管安全工作组、加入所述非受管安全工作组、以及离开所述非受管安全工作组。
15.如权利要求14的计算机系统,其特征在于,所述应用程序接口模块通过查询所述安全组服务模块来向所述应用程序提供计算机网络内的非受管安全工作组和无联系计算机的列表。
16.如权利要求14所述的计算机系统,其特征在于,所述应用程序模块通过查询所述安全组服务模块来向所述应用程序提供有关选定的非受管安全工作组的信息,所述信息包括所述选定的非受管工作组的属性和所述选定的非受管工作组的成员计算机列表。
17.如权利要求14所述的计算机系统,其特征在于,所述应用程序模块通过查询所述安全组服务模块来向所述应用程序提供有关非受管安全工作组内的计算机的信息。
18.如权利要求14所述的计算机系统,其特征在于,所述应用程序模块通过指示所述安全组服务模块来允许由所述应用程序在所述计算机网络内创建新的非受管工作组。
19.如权利要求14所述的计算机系统,其特征在于,所述应用程序模块通过指示所述安全组服务模块来允许由所述应用程序使所述计算机系统加入或离开所述计算机网络中的非受管工作组。
20.一种第一计算机中的其上存储有计算机可执行指令的计算机可读介质,所述指令被配置为执行包括以下步骤的方法:
(a)将自签名证书发送给第二计算机,以建立所述第一计算机的相关联帐户,其中所述第二计算机是一非受管安全工作组的成员,并且所述第一计算机不是所述非受管安全工作组的成员;
(b)存储所述第二计算机的相关联证书、共享秘密和所述非受管安全工作组的复制的证书;
(c)在所述第一计算机上创建所述第二计算机的相应帐户;
(d)广播所述第一计算机是所述非受管安全工作组的工作组成员;以及
(e)与所述第二计算机同步帐户信息。
CN2006800253051A 2005-07-12 2006-07-10 非受管网络中公共身份的帐户同步 Active CN101495986B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/179,764 US7958543B2 (en) 2005-07-12 2005-07-12 Account synchronization for common identity in an unmanaged network
US11/179,764 2005-07-12
PCT/US2006/026814 WO2007008852A2 (en) 2005-07-12 2006-07-10 Account synchronization for common identity in an unmanaged network

Publications (2)

Publication Number Publication Date
CN101495986A true CN101495986A (zh) 2009-07-29
CN101495986B CN101495986B (zh) 2012-06-06

Family

ID=37637865

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800253051A Active CN101495986B (zh) 2005-07-12 2006-07-10 非受管网络中公共身份的帐户同步

Country Status (8)

Country Link
US (1) US7958543B2 (zh)
JP (1) JP2009503632A (zh)
KR (1) KR20080024513A (zh)
CN (1) CN101495986B (zh)
BR (1) BRPI0613189A2 (zh)
MX (1) MX2008000519A (zh)
RU (1) RU2008101462A (zh)
WO (1) WO2007008852A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095656A (zh) * 2011-11-03 2013-05-08 陈璧超 一种对等通信方法、通信节点和对等通信系统
CN107509176A (zh) * 2017-09-13 2017-12-22 广东欧珀移动通信有限公司 一种群组的建立方法及装置、计算机存储介质
CN107959684A (zh) * 2017-12-08 2018-04-24 上海壹账通金融科技有限公司 安全通信方法、装置、计算机设备及存储介质
CN109344621A (zh) * 2018-09-17 2019-02-15 郑州云海信息技术有限公司 一种安全基线检测方法、装置、设备及可读存储介质
CN116204580A (zh) * 2021-11-30 2023-06-02 斯诺弗雷克公司 在多部署数据库中复制帐户安全特征

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7640324B2 (en) * 2003-04-15 2009-12-29 Microsoft Corporation Small-scale secured computer network group without centralized management
JP4324053B2 (ja) * 2004-08-16 2009-09-02 キヤノン株式会社 データ通信装置、その制御方法、及びプログラム
EP1816824A1 (en) * 2006-02-07 2007-08-08 Thomson Licensing Method for device insertion into a community of network devices
US8572387B2 (en) * 2006-07-26 2013-10-29 Panasonic Corporation Authentication of a peer in a peer-to-peer network
WO2008042913A2 (en) * 2006-10-02 2008-04-10 Presenceid, Inc. Systems and methods for delegating information technology authorization to at least one other person
US8819814B1 (en) * 2007-04-13 2014-08-26 United Services Automobile Association (Usaa) Secure access infrastructure
US8606941B2 (en) * 2007-05-02 2013-12-10 Murata Machinery, Ltd. Relay server and relay communication system
US7689700B2 (en) * 2008-01-08 2010-03-30 Microsoft Corporation Configuration of a peer group
US8533797B2 (en) 2008-06-12 2013-09-10 Microsoft Corporation Using windows authentication in a workgroup to manage application users
US8606889B2 (en) 2010-01-21 2013-12-10 Microsoft Corporation Roaming application settings across multiple computing devices
EP2369805B1 (de) * 2010-03-17 2017-07-19 ABB Schweiz AG Verfahren zur Konfigurieruing und Verteilung von Zugriffsrechten in einem verteilten System
US20120023138A1 (en) * 2010-07-26 2012-01-26 International Business Machines Corporation Deleting objects with group authority
US20120072270A1 (en) * 2010-09-21 2012-03-22 Dan Waylonis Ad Wallet
US9691055B2 (en) 2010-12-17 2017-06-27 Google Inc. Digital wallet
WO2012117536A1 (ja) * 2011-03-02 2012-09-07 富士通株式会社 ファイル共有装置、ファイル共有方法およびプログラム
JP5744611B2 (ja) * 2011-04-20 2015-07-08 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US20160140566A1 (en) 2011-11-13 2016-05-19 Google Inc. Secure transmission of payment credentials
US8955086B2 (en) 2012-03-16 2015-02-10 Red Hat, Inc. Offline authentication
CN103593799B (zh) 2012-08-16 2016-10-26 腾讯科技(深圳)有限公司 自然人信息设置方法、系统及相应的好友推荐方法、系统
US9589122B2 (en) * 2013-11-19 2017-03-07 Tencent Technology (Shenzhen) Company Limited Operation processing method and device
EP3349393A1 (en) 2015-06-30 2018-07-18 Visa International Service Association Mutual authentication of confidential communication
US11444766B2 (en) * 2015-07-06 2022-09-13 Apple Inc. Combined authorization process
WO2017147683A1 (en) * 2016-03-01 2017-09-08 Nandbox Inc. Managing multiple profiles for a single account in an asynchronous messaging system
JP6763253B2 (ja) * 2016-09-20 2020-09-30 コニカミノルタ株式会社 顧客情報管理装置及びプログラム
US20180352430A1 (en) * 2017-05-30 2018-12-06 Atlassian Pty Ltd Systems and methods for creating electronic access accounts
EP3579519B1 (en) * 2018-06-08 2021-05-05 Secucloud GmbH Linearly scalable network security architecture
US11146560B1 (en) * 2018-08-30 2021-10-12 Amazon Technologies, Inc. Distributed governance of computing resources
US11374939B2 (en) * 2019-06-30 2022-06-28 Microsoft Technology Licensing, Llc Managing application constraints across platforms
US20210241387A1 (en) * 2020-01-30 2021-08-05 Proofpoint, Inc. Systems and methods for pushing universal profile updates
CN113868194B (zh) * 2021-09-09 2024-01-23 苏州浪潮智能科技有限公司 一种存储设备本地用户组的管理方法、装置、系统及介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5708812A (en) * 1996-01-18 1998-01-13 Microsoft Corporation Method and apparatus for Migrating from a source domain network controller to a target domain network controller
US6049809A (en) * 1996-10-30 2000-04-11 Microsoft Corporation Replication optimization system and method
US5968121A (en) * 1997-08-13 1999-10-19 Microsoft Corporation Method and apparatus for representing and applying network topological data
US6144959A (en) * 1997-08-18 2000-11-07 Novell, Inc. System and method for managing user accounts in a communication network
US7076476B2 (en) * 1999-03-02 2006-07-11 Microsoft Corporation Method and system for integrated service administration via a directory service
US6751634B1 (en) * 1999-08-26 2004-06-15 Microsoft Corporation Method and system for detecting object inconsistency in a loosely consistent replicated directory service
WO2001072002A2 (en) * 2000-03-17 2001-09-27 America Online, Inc. Shared groups rostering system
US6839752B1 (en) * 2000-10-27 2005-01-04 International Business Machines Corporation Group data sharing during membership change in clustered computer system
US7685224B2 (en) * 2001-01-11 2010-03-23 Truelocal Inc. Method for providing an attribute bounded network of computers
US7275102B2 (en) * 2001-01-22 2007-09-25 Sun Microsystems, Inc. Trust mechanisms for a peer-to-peer network computing platform
US6879564B2 (en) * 2001-02-28 2005-04-12 Microsoft Corp. Method for designating communication paths in a network
US7721110B2 (en) * 2001-04-06 2010-05-18 Mcafee, Inc. System and method for secure and verified sharing of resources in a peer-to-peer network environment
US20030028594A1 (en) * 2001-07-31 2003-02-06 International Business Machines Corporation Managing intended group membership using domains
US7068789B2 (en) * 2001-09-19 2006-06-27 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) group security infrastructure and method
US6870329B2 (en) * 2002-04-26 2005-03-22 Vector Products, Inc. PWM controller with automatic low battery power reduction circuit and lighting device incorporating the controller
US8037181B2 (en) * 2002-06-28 2011-10-11 Microsoft Corporation Re-partitioning directories
US7263560B2 (en) * 2002-08-30 2007-08-28 Sun Microsystems, Inc. Decentralized peer-to-peer advertisement
US7392375B2 (en) * 2002-09-18 2008-06-24 Colligo Networks, Inc. Peer-to-peer authentication for real-time collaboration
US7613812B2 (en) * 2002-12-04 2009-11-03 Microsoft Corporation Peer-to-peer identity management interfaces and methods
US7640324B2 (en) * 2003-04-15 2009-12-29 Microsoft Corporation Small-scale secured computer network group without centralized management
US7320068B2 (en) * 2003-06-05 2008-01-15 Microsoft Corporation Systems and methods to migrate a user profile when joining a client to a server and/or domain
US7246261B2 (en) * 2003-07-24 2007-07-17 International Business Machines Corporation Join protocol for a primary-backup group with backup resources in clustered computer system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095656A (zh) * 2011-11-03 2013-05-08 陈璧超 一种对等通信方法、通信节点和对等通信系统
CN107509176A (zh) * 2017-09-13 2017-12-22 广东欧珀移动通信有限公司 一种群组的建立方法及装置、计算机存储介质
CN107959684A (zh) * 2017-12-08 2018-04-24 上海壹账通金融科技有限公司 安全通信方法、装置、计算机设备及存储介质
CN109344621A (zh) * 2018-09-17 2019-02-15 郑州云海信息技术有限公司 一种安全基线检测方法、装置、设备及可读存储介质
CN109344621B (zh) * 2018-09-17 2021-10-22 郑州云海信息技术有限公司 一种安全基线检测方法、装置、设备及可读存储介质
CN116204580A (zh) * 2021-11-30 2023-06-02 斯诺弗雷克公司 在多部署数据库中复制帐户安全特征

Also Published As

Publication number Publication date
WO2007008852A2 (en) 2007-01-18
US20070016630A1 (en) 2007-01-18
WO2007008852A3 (en) 2009-04-16
KR20080024513A (ko) 2008-03-18
RU2008101462A (ru) 2009-07-20
US7958543B2 (en) 2011-06-07
JP2009503632A (ja) 2009-01-29
MX2008000519A (es) 2008-03-06
CN101495986B (zh) 2012-06-06
BRPI0613189A2 (pt) 2012-01-03

Similar Documents

Publication Publication Date Title
CN101495986B (zh) 非受管网络中公共身份的帐户同步
US7640324B2 (en) Small-scale secured computer network group without centralized management
US10454927B2 (en) Systems and methods for managing relationships among digital identities
CN108055131B (zh) 用于密钥链同步的系统和方法
CN102369509B (zh) 关系数据管理的控制服务
CN110417843A (zh) 计算机网络外部的设备资产的分散化管理的系统和方法
CN108140031A (zh) 对等可同步存储系统
CN110430087A (zh) 区块链热升级的架构设计与实现
CN102932164A (zh) 群集客户端故障转移
CN102821160B (zh) 一种云计算网络环境下面向松散云节点多层次数据保护的系统与方法
CN102904927A (zh) 具有时间相关证书的分布式计算机系统
CN102017514A (zh) 家用网络中的认证信息管理方法及装置
CN113067899B (zh) 一种启动/关闭区块链节点服务的方法和装置
KR102294569B1 (ko) 블록체인 네트워크를 구축할 수 있는 블록체인 관리시스템
JP5011965B2 (ja) 情報の管理方法及び情報処理装置
JP2011522337A (ja) サーバクラスタに配信されるコンピュータシステムのソフトウェアモジュールの同期化方法、同期化システムおよびデータストレージへの適用
WO2020255382A1 (ja) コンテンツ取引システム、コンテンツ取引方法、鍵管理装置、及び鍵管理プログラム
US20220027315A1 (en) Method of synchronous deletion for distributed storage system
CN116112506A (zh) 基于联盟链系统的交易信息处理方法、装置、介质及设备
Montagut et al. Traceability and integrity of execution in distributed workflow management systems
WO2024082818A1 (zh) 基于多区块链的跨链处理方法、装置、设备、系统及介质
WO2022168192A1 (ja) データ移行装置、データ移行方法、及び、データ移行プログラム
JP2019144995A (ja) 情報処理装置及び情報処理プログラム
CN109656811A (zh) 基于可用性模式和安全性模式的软件用例生成方法
JP2022156182A (ja) データ管理システム、データ管理方法、及びノード

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150508

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150508

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.