專利名稱:非受管網(wǎng)絡(luò)中公共身份的帳戶同步的制作方法
非受管網(wǎng)絡(luò)中公共身份的帳戶同步
站旦 冃豕
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的進(jìn)步,大型計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)變得相當(dāng)復(fù)雜,并具有精 密復(fù)雜的管理方案用于管理網(wǎng)絡(luò)的用戶訪問(wèn)與安全性。例如,大型計(jì)算機(jī)網(wǎng)絡(luò)一般 具有多個(gè)域,每個(gè)域具有一個(gè)主域控制器,它包含用于該域中的機(jī)器的用戶名、口 令和許可的數(shù)據(jù)庫(kù)。
相反,小規(guī)模的本地網(wǎng)絡(luò),如家庭網(wǎng)絡(luò)和小型企業(yè)網(wǎng)絡(luò),仍保持得相當(dāng)簡(jiǎn)單 且不是精密復(fù)雜的。大多數(shù)小規(guī)模網(wǎng)絡(luò)是非受管的,因?yàn)闆](méi)有專用的實(shí)體,如大型 網(wǎng)絡(luò)中的域控制器,來(lái)以集中的方式處理帳戶信息。在這種非受管網(wǎng)絡(luò)中的機(jī)器一 般連接到同一網(wǎng)絡(luò)集線器并且作為松散的對(duì)等組(有時(shí)稱為"工作組")來(lái)操作, 其目的僅是幫助用戶找到工作組內(nèi)諸如打印機(jī)和共享文件夾之類。否則,機(jī)器就如 獨(dú)立的機(jī)器那樣運(yùn)行。因此,非受管網(wǎng)絡(luò)為用戶提供很少的附加值。
沒(méi)有有效的安全性管理,并且機(jī)器沒(méi)有被良好地集成以便于網(wǎng)絡(luò)訪問(wèn)和資源 共享。本地帳戶必須在每個(gè)機(jī)器上手動(dòng)創(chuàng)建,并且在工作組中的不同機(jī)器上的帳戶 之間沒(méi)有關(guān)系。因而,用戶能登錄到一個(gè)機(jī)器上但不能登錄到同一網(wǎng)絡(luò)中的另一機(jī) 器上,因?yàn)橛脩舻膸暨€未在該另一機(jī)器上建立。沒(méi)有可靠的機(jī)制來(lái)枚舉網(wǎng)絡(luò)中的 計(jì)算機(jī)。而且,機(jī)器上的資源共享是難以實(shí)現(xiàn)和維護(hù)的,并且難以管理以提供安全 性。
概述
網(wǎng)絡(luò)化計(jì)算機(jī)系統(tǒng)常常支持用戶從一個(gè)計(jì)算機(jī)遷移到另一計(jì)算機(jī)上。鑒于上 述原因,本發(fā)明提供一種用于在沒(méi)有服務(wù)器的情況下在非受管安全工作組中組織計(jì) 算機(jī)網(wǎng)絡(luò)上的多個(gè)計(jì)算機(jī)的平臺(tái)。非受管安全工作組在組中的計(jì)算機(jī)之間提供公共 用戶訪問(wèn)和安全資源共享。按照本發(fā)明的一個(gè)方面,如果用戶帳戶信息在非受管安 全工作組的計(jì)算機(jī)之一上被修改或添加,則用戶帳戶在非受管安全工作組的每個(gè)計(jì) 算機(jī)上被同步。用戶帳戶可被復(fù)制或修改以同步非受管安全工作組中的帳戶信息。
根據(jù)本發(fā)明的另一方面,計(jì)算機(jī)將帳戶信息的改變通告給非受管安全工作組
5中的其它計(jì)算機(jī)。如果非受管安全工作組中的計(jì)算機(jī)之一確定該變化沒(méi)有在當(dāng)前帳戶信息中反映,則該計(jì)算機(jī)可向發(fā)出通告的計(jì)算機(jī)請(qǐng)求經(jīng)更新的帳戶信息。
根據(jù)本發(fā)明的另一方面,本發(fā)明在同步非受管安全工作組中的經(jīng)更新的用戶帳戶之前,確定在用戶帳戶中是否存在沖突。當(dāng)沖突被解決時(shí),在非受管安全工作組的各計(jì)算機(jī)上復(fù)制被改變的用戶帳戶。
根據(jù)本發(fā)明的另一方面, 一應(yīng)用程序接口 (API)允許應(yīng)用程序査詢網(wǎng)絡(luò)化計(jì)算機(jī)系統(tǒng)和非受管安全工作組的屬性。在本發(fā)明的一說(shuō)明性實(shí)施例中,一 API提供計(jì)算機(jī)網(wǎng)絡(luò)中的非受管安全工作組的列表,提供有關(guān)指定的非受管安全工作組的信息,提供有關(guān)非受管安全工作組內(nèi)的指定計(jì)算機(jī)的信息,創(chuàng)建新的非受管安全工作組,以及允許計(jì)算機(jī)加入或離開非受管安全工作組。
根據(jù)本發(fā)明的另一方面,作出請(qǐng)求的計(jì)算機(jī)通過(guò)與非受管安全工作組中的一成員計(jì)算機(jī)建立信任來(lái)加入該非受管安全工作組。該成員計(jì)算機(jī)認(rèn)證作出請(qǐng)求的計(jì)算機(jī)。作出請(qǐng)求的計(jì)算機(jī)用自簽名的證書在該成員計(jì)算機(jī)上建立帳戶。作出請(qǐng)求的計(jì)算機(jī)隨后存儲(chǔ)有關(guān)該非受管安全工作組的信息并將其自己作為該非受管安全工作組的成員來(lái)發(fā)布。
提供本概述來(lái)以簡(jiǎn)化形式介紹將在下面的詳細(xì)描述中進(jìn)一步描述的一些概念。本概述并不是要標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不是要用于幫助確定所要求保護(hù)的主題的范圍。
附圖簡(jiǎn)述
本發(fā)明的以上述概述以及隨后本發(fā)明的示例性實(shí)施例的詳細(xì)描述在結(jié)合附圖閱讀時(shí)將更好地理解,這些附圖包括在此是為了示例而非限制本發(fā)明。
圖1是概括地示出根據(jù)本發(fā)明的一個(gè)說(shuō)明性實(shí)施例可在小規(guī)模非受管安全工作組中使用的示例性計(jì)算機(jī)系統(tǒng)的框圖。
圖2是示出根據(jù)本發(fā)明的一個(gè)說(shuō)明性實(shí)施例可在其上將少量計(jì)算機(jī)形成非受管安全工作組的本地計(jì)算機(jī)網(wǎng)絡(luò)的示意圖。
圖3是示出根據(jù)本發(fā)明的一個(gè)說(shuō)明性實(shí)施例在非受管安全工作組中的兩個(gè)計(jì)算機(jī)之間建立信任和復(fù)制用戶帳戶與用戶概況的示意圖。
圖4是示出根據(jù)本發(fā)明的一個(gè)說(shuō)明性實(shí)施例用于計(jì)算機(jī)加入非受管安全工作
組的過(guò)程的流程圖。
圖5是示出根據(jù)本發(fā)明的一個(gè)說(shuō)明性實(shí)施例的提供加入或創(chuàng)建非受管安全工作組的選項(xiàng)的示例性用戶界面窗口的示意圖。
圖6示出了了根據(jù)本發(fā)明的一個(gè)說(shuō)明性實(shí)施例的用于使一計(jì)算機(jī)加入非受管安全工作組的場(chǎng)景。
圖7示出了根據(jù)本發(fā)明的一個(gè)說(shuō)明性實(shí)施例用于在非受管安全工作組中從一
計(jì)算機(jī)向另一計(jì)算機(jī)提供經(jīng)更新的帳戶信息的流程圖。
圖8示出了根據(jù)本發(fā)明的一個(gè)說(shuō)明性實(shí)施例用于在非受管安全工作組中從一
計(jì)算機(jī)獲得經(jīng)更新的帳戶信息的流程圖。
圖9示出根據(jù)本發(fā)明的一個(gè)說(shuō)明性實(shí)施例用于在非受管安全工作組中支持應(yīng)
用程序編程接口 (API)的體系結(jié)構(gòu)。
圖10A-B示出根據(jù)本發(fā)明的一個(gè)說(shuō)明性實(shí)施例的一般編程接口。
圖11A-B示出根據(jù)本發(fā)明的一個(gè)說(shuō)明性實(shí)施例的分解編程接口。
圖12A-B示出根據(jù)本發(fā)明的一個(gè)說(shuō)明性實(shí)施例的重定義編程接口。
圖13A-B示出根據(jù)本發(fā)明的一個(gè)說(shuō)明性實(shí)施例的具有合并的功能的編程接□。
圖14A-B示出根據(jù)本發(fā)明的一個(gè)說(shuō)明性實(shí)施例的具有脫離的功能的編程接Q。
圖15A-B示出根據(jù)本發(fā)明的一個(gè)說(shuō)明性實(shí)施例的通過(guò)動(dòng)態(tài)重寫代碼以取代接口功能的編程接口。
詳細(xì)描述
轉(zhuǎn)到附圖,其中相同的參考標(biāo)號(hào)指代相同的元素,本發(fā)明被示為在一合適的計(jì)算環(huán)境中實(shí)現(xiàn)。盡管不作要求,但本發(fā)明將在諸如程序模塊等由個(gè)人計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述。通常,程序模塊包括執(zhí)行特定的任務(wù)或
實(shí)現(xiàn)特定的抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。而且,本領(lǐng)域的技術(shù)人員將意識(shí)到,本發(fā)明可用其它計(jì)算機(jī)系統(tǒng)配置來(lái)實(shí)施,這些配置包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)、大型計(jì)算機(jī)等。本發(fā)明可在其中任務(wù)由通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計(jì)算環(huán)境中實(shí)施。在分布式計(jì)算環(huán)境中,程序模塊可位于本地或遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備兩者中。
包括對(duì)下列術(shù)語(yǔ)的定義以便于對(duì)詳細(xì)說(shuō)明的理解。
域一由域控制器(例如服務(wù)器)集中管理的網(wǎng)絡(luò)化計(jì)算機(jī)組。域控制器管理對(duì)該域的用戶訪問(wèn)和安全性。域控制器一般包含該域中的計(jì)算機(jī)(機(jī) 器)的用戶名、口令和許可的數(shù)據(jù)庫(kù)。
非受管安全工作組一網(wǎng)絡(luò)化計(jì)算機(jī)的對(duì)等組,其中在沒(méi)有服務(wù)器的情況 下提供用戶訪問(wèn)與安全性。通常,在對(duì)等組內(nèi)的每個(gè)計(jì)算機(jī)(機(jī)器)上 維護(hù)一個(gè)帳戶數(shù)據(jù)結(jié)構(gòu)。非受管安全工作組在概念上可被視為駐留在本 地網(wǎng)絡(luò)中的計(jì)算機(jī)的安全組,其中這些計(jì)算機(jī)一起工作以保護(hù)它們免遭 外部用戶和機(jī)器的可能侵入,同時(shí)安全組中的用戶被給予高度自由和在 訪問(wèn)該組的機(jī)器和資源方面的協(xié)作。
下面描述根據(jù)本發(fā)明的一個(gè)說(shuō)明性方面的可在小規(guī)模非受管安全工作組中使 用的通用計(jì)算設(shè)備?,F(xiàn)在轉(zhuǎn)到圖1,通用計(jì)算設(shè)備以常規(guī)個(gè)人計(jì)算機(jī)20的形式示
出,包括處理單元21、系統(tǒng)存儲(chǔ)器22以及將各種系統(tǒng)組件(包括系統(tǒng)存儲(chǔ)器)耦 合到處理單元21的系統(tǒng)總線23。系統(tǒng)總線23可以是若干類型的總線結(jié)構(gòu)中的任 一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器,外設(shè)總線以及使用各種總線體系結(jié)構(gòu)中的 任一種的局部總線。系統(tǒng)存儲(chǔ)器包括只讀存儲(chǔ)器(ROM) 24和隨機(jī)存取存儲(chǔ)器 (RAM) 25?;据斎?輸出系統(tǒng)(BIOS) 26包含幫助在個(gè)人計(jì)算機(jī)的元件之間 傳送信息(如在啟動(dòng)時(shí))的基本例程,它被存儲(chǔ)在ROM24中。個(gè)人計(jì)算機(jī)20還 包括讀寫硬盤60的硬盤驅(qū)動(dòng)器27、讀寫可移動(dòng)磁盤29的磁盤驅(qū)動(dòng)器28、以及讀 寫如CD ROM或其它光介質(zhì)等可移動(dòng)光盤31的光盤驅(qū)動(dòng)器30。
硬盤驅(qū)動(dòng)器27、磁盤驅(qū)動(dòng)器28和光盤驅(qū)動(dòng)器30分別通過(guò)硬盤驅(qū)動(dòng)器接口 32, 磁盤驅(qū)動(dòng)器接口 33和光盤驅(qū)動(dòng)器接口 34連接到系統(tǒng)總線23。驅(qū)動(dòng)器及其相關(guān)聯(lián) 的計(jì)算機(jī)可讀介質(zhì)為個(gè)人計(jì)算機(jī)20提供了計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊 和其它數(shù)據(jù)的非易失性存儲(chǔ)。盡管在此所示的示例性環(huán)境利用硬盤60、可移動(dòng)磁 盤29和可移動(dòng)光盤31,但本領(lǐng)域的技術(shù)人員將意識(shí)到,該示例性操作環(huán)境中也可 使用可存儲(chǔ)計(jì)算機(jī)可訪問(wèn)的數(shù)據(jù)的其它類型的計(jì)算機(jī)可讀介質(zhì),如磁帶盒、閃存卡、 數(shù)字視頻盤、伯努利(Bernoulli)盒式磁帶、隨機(jī)存取存儲(chǔ)器、只讀存儲(chǔ)器、存儲(chǔ) 區(qū)域網(wǎng)等。
多個(gè)程序模塊可存儲(chǔ)在硬盤60、磁盤29、光盤31、 ROM24或RAM25中, 包括操作系統(tǒng)35、 一個(gè)或多個(gè)應(yīng)用程序36、其它程序模塊37和程序數(shù)據(jù)38。用 戶可通過(guò)如鍵盤40和定點(diǎn)設(shè)備42等輸入設(shè)備將命令與信息輸入到個(gè)人計(jì)算機(jī)20 中。其它輸入設(shè)備(未示出)可包括話筒、操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃 描儀等。這些和其它輸入設(shè)備常常通過(guò)耦合到系統(tǒng)總線的串行端口接口 46連接到
8處理單元21,但可通過(guò)如并行端口、游戲端口或通用串行總線(USB)或網(wǎng)絡(luò)接 口卡等其它接口來(lái)連接。監(jiān)示器47或其它類型的顯示設(shè)備也經(jīng)由如視頻適配器48 等接口連接到系統(tǒng)總線23。除了監(jiān)示器之外,個(gè)人計(jì)算機(jī)一般包括未示出的其它 外圍輸出設(shè)備,如揚(yáng)聲器和打印機(jī)。
個(gè)人計(jì)算機(jī)20可使用到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),如遠(yuǎn)程計(jì)算機(jī)49的邏輯連 接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)49可以是另一個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、 網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點(diǎn),并且一般包括許多或全部相對(duì)于個(gè)人 計(jì)算機(jī)20描述的元件,盡管在圖1中僅示出存儲(chǔ)器存儲(chǔ)設(shè)備50。圖1所示的邏輯 連接包括局域網(wǎng)(LAN) 51和廣域網(wǎng)(WAN) 52。這類網(wǎng)絡(luò)化環(huán)境在辦公室、企 業(yè)級(jí)計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)是很常見的。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時(shí),個(gè)人計(jì)算機(jī)20通過(guò)網(wǎng)絡(luò)接口或適配器53連接 到本地網(wǎng)絡(luò)51。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時(shí),個(gè)人計(jì)算機(jī)20—般包括調(diào)制解調(diào) 器54或用于通過(guò)WAN 52建立通信的其它裝置。調(diào)制解調(diào)器54可以內(nèi)置或外置 的,它經(jīng)由串行端口接口46連接到系統(tǒng)總線23。在網(wǎng)絡(luò)化環(huán)境中,相對(duì)于個(gè)人計(jì) 算機(jī)20描述的程序模塊或其部分可存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。將意識(shí)到,所 示網(wǎng)絡(luò)連接是示例性的,可使用在計(jì)算機(jī)之間建立通信鏈路的其它手段。
在隨后的描述中,除非另外指明,否則本發(fā)明將參考由一個(gè)或多個(gè)計(jì)算機(jī)執(zhí) 行的動(dòng)作和操作的符號(hào)表示來(lái)描述。因此,將理解,這些動(dòng)作和操作(有時(shí)稱為計(jì) 算機(jī)執(zhí)行的)包括計(jì)算機(jī)的處理單元對(duì)以結(jié)構(gòu)化形式表示數(shù)據(jù)的電信號(hào)的操縱。該 操縱變換了數(shù)據(jù)或在計(jì)算機(jī)的存儲(chǔ)器系統(tǒng)中的位置上維護(hù)數(shù)據(jù),從而以本領(lǐng)域技術(shù) 人員熟知的方式重新配置或以其它方式更改了計(jì)算機(jī)的操作。維護(hù)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu) 是具有由數(shù)據(jù)的格式定義的特定屬性的存儲(chǔ)器的物理位置。然而,盡管本發(fā)明在上 述上下文中描述,但這并不意味著限制,如本領(lǐng)域技術(shù)人員將意識(shí)到的,下文描述 的動(dòng)作和操作也可用硬件來(lái)實(shí)現(xiàn)。
現(xiàn)在參考圖2,本發(fā)明的一個(gè)說(shuō)明性實(shí)施例涉及一種用于在非受管本地網(wǎng)絡(luò) 200上的少量計(jì)算機(jī),例如十(10)個(gè)或更少的成員計(jì)算機(jī)的平臺(tái),以形成非受管 安全工作組來(lái)提供對(duì)用戶訪問(wèn)和資源共享的組級(jí)控制,而不需要使用集中式管理組 件。在一說(shuō)明性實(shí)施例中,非受管本地網(wǎng)絡(luò)200以對(duì)等關(guān)聯(lián)來(lái)配置。非受管本地網(wǎng) 絡(luò)200被分類為非受管的是因?yàn)闆](méi)有中央服務(wù)器管理和存儲(chǔ)用戶帳戶信息。在非受 管安全工作組中,安全策略和訪問(wèn)控制在組級(jí)上實(shí)現(xiàn),以防止不在組中的計(jì)算機(jī)或 用戶對(duì)資源的未經(jīng)授權(quán)的訪問(wèn)和使用,同時(shí)允許在每用戶的基礎(chǔ)上對(duì)組內(nèi)資源的共
9在本發(fā)明的一個(gè)說(shuō)明性實(shí)施例中,圖2示出小型本地網(wǎng)絡(luò)70,其代表是家庭 網(wǎng)絡(luò)和小型企業(yè)網(wǎng)絡(luò)。本地網(wǎng)絡(luò)是非受管的,意思是它沒(méi)有如域控制器等集中式管 理組件。如圖2所示,本地網(wǎng)絡(luò)具有網(wǎng)絡(luò)集線器或交換機(jī)72,以及與其連接的多 個(gè)計(jì)算機(jī)(或計(jì)算設(shè)備)。計(jì)算機(jī)之間的連接可以是無(wú)線的。例如,設(shè)備76是通 過(guò)接入點(diǎn)78與網(wǎng)絡(luò)通信的無(wú)線設(shè)備。
按照本發(fā)明的各說(shuō)明性方面,本地網(wǎng)絡(luò)70上的一些計(jì)算機(jī)可形成一非受管安 全工作組。將意識(shí)到,非受管安全工作組不依賴于特定的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。例如,非 受管安全工作組可在由無(wú)線設(shè)備形成的自組織(adhoc)網(wǎng)絡(luò)中建立。由于管理因 素和復(fù)制數(shù)據(jù)的需求,非受管安全工作組平臺(tái)在組中的計(jì)算機(jī)數(shù)量保持較小時(shí)更為 有效。例如,可加入一個(gè)給定的非受管安全工作組的計(jì)算機(jī)數(shù)量可被限于一預(yù)定的 最大計(jì)算機(jī)數(shù)量(例如,在一個(gè)非受管安全工作組中為十個(gè)成員)。
作為示例,如圖2所示,計(jì)算機(jī)90, 92, 94和96形成了非受管安全工作組 100 (由連接這些計(jì)算機(jī)的虛線示意性地指示),該組具有用戶友好名稱 "TobyClub"。如果沒(méi)有可加入的現(xiàn)有組或者如果一計(jì)算機(jī)的用戶不想加入任何 現(xiàn)有的組,則可創(chuàng)建一個(gè)新的非受管安全工作組。在這點(diǎn)上,在本發(fā)明的一說(shuō)明性 實(shí)施例中,每個(gè)計(jì)算機(jī)可僅屬于一個(gè)非受管安全工作組。如將在下面更詳細(xì)地描述 的,非受管安全工作組中的計(jì)算機(jī)在它們之間建立信任,并且在組內(nèi)共享如用戶帳 戶數(shù)據(jù)和用戶概況數(shù)據(jù)等信息。如計(jì)算機(jī)102等新的計(jì)算機(jī)可加入該非受管安全工 作組IOO,并且組中計(jì)算機(jī)可離開該安全工作組,并且在特殊情況下,可從組中被 驅(qū)逐出來(lái)。
圖3示出在非受管本地網(wǎng)絡(luò)上形成小規(guī)模非受管安全工作組的基礎(chǔ)概念。為 使計(jì)算機(jī)102加入另一計(jì)算機(jī)96以便形成非受管安全工作組,計(jì)算機(jī)102必須首 先與第二計(jì)算機(jī)96建立信任。這在以下情形下發(fā)生當(dāng)計(jì)算機(jī)102想要加入計(jì)算 機(jī)96所屬的現(xiàn)有安全工作組時(shí),或者當(dāng)計(jì)算機(jī)102響應(yīng)來(lái)自計(jì)算機(jī)96的邀請(qǐng)以形 成一個(gè)新組時(shí)。有許多不同方法在兩個(gè)計(jì)算機(jī)之間建立信任。通常,建立信任要求 一個(gè)計(jì)算機(jī)通過(guò)顯示它知道另一計(jì)算機(jī)所知的某個(gè)秘密來(lái)向另一計(jì)算機(jī)認(rèn)證它自
己。在本發(fā)明的一說(shuō)明性實(shí)施例中,該秘密是由另一計(jì)算機(jī)接受的組管理員的用戶 名和口令。在另一說(shuō)明性實(shí)施例中,該秘密是由另一計(jì)算機(jī)生成的隨機(jī)個(gè)人標(biāo)識(shí)號(hào) (PIN)。在某些實(shí)現(xiàn)中,可能需要兩個(gè)計(jì)算機(jī)之間的相互認(rèn)證。將意識(shí)到,在兩 個(gè)計(jì)算機(jī)之間建立信任的具體方法對(duì)于本發(fā)明是不是關(guān)鍵性的。在計(jì)算機(jī)96與102之間的信任已經(jīng)建立之后,這些計(jì)算機(jī)形成非受管安全工 作組,或者如果計(jì)算機(jī)96屬于一現(xiàn)有的非受管安全工作組,則計(jì)算機(jī)102被接納 到該組中。為此,在一說(shuō)明性實(shí)施例中,每個(gè)非受管安全工作組和該安全工作組中 的每個(gè)節(jié)點(diǎn)被分配一個(gè)GUID (全局唯一標(biāo)識(shí)符),它是唯一標(biāo)識(shí)符。當(dāng)計(jì)算機(jī)變 成一個(gè)非受管安全工作組的成員(或者通過(guò)創(chuàng)建新組,或者通過(guò)加入現(xiàn)有組)時(shí), 該機(jī)器的GUID和該機(jī)器上的用戶帳戶的GUID被改變或者被重新創(chuàng)建為該組的 GUID,以反映該網(wǎng)絡(luò)組的授權(quán)/身份。
在形成非受管安全工作組之后,用戶帳戶數(shù)據(jù)和用戶概況被復(fù)制到組中的每 個(gè)計(jì)算機(jī)。如圖3所示,計(jì)算機(jī)96上的用戶帳戶數(shù)據(jù)IIO被復(fù)制到計(jì)算機(jī)102, 反之亦然。在復(fù)制用戶帳戶之后,與這些用戶帳戶相關(guān)聯(lián)的用戶概況112被復(fù)制到 其它計(jì)算機(jī)。術(shù)語(yǔ)"用戶概況"在此用于表示屬于一特定用戶的數(shù)據(jù)。例如,用戶 概況可包括用戶的注冊(cè)表設(shè)置、用戶的所選文檔、以及安全策略、用戶頭像(即用 戶的圖標(biāo)表示)、以及用于個(gè)性化用戶會(huì)話的設(shè)置、配置和文件等等。用戶概況的 具體內(nèi)容取決于實(shí)現(xiàn)。安全工作組的管理員可在組中的一計(jì)算機(jī)上創(chuàng)建用戶帳戶和
設(shè)置安全策略,并且這些帳戶和安全策略被復(fù)制到該安全工作組中的所有機(jī)器。由
于組中的每個(gè)計(jì)算機(jī)具有全部用戶帳戶和用戶概況,因此具有有效帳戶的用戶可使 用其用戶名和口令登錄到組中的任何計(jì)算機(jī)上。復(fù)制如用戶頭像和用于個(gè)性化用戶
會(huì)話的設(shè)置、配置以及文件等數(shù)據(jù)還允許用戶具有跨非受管安全工作組中的各計(jì)算 機(jī)的統(tǒng)一用戶體驗(yàn)。在本發(fā)明的一實(shí)施例中,帳戶數(shù)據(jù)和用戶概況的一個(gè)子集可以 實(shí)質(zhì)上一致而不是字面意義上同步。本發(fā)明的一實(shí)施例支持應(yīng)用程序虛擬化/同步, 其中用戶將應(yīng)用程序安裝在非受管安全工作組的一成員上,并且可在沒(méi)有將該軟件 安裝在其它成員上的情況下從非受管安全工作組的任何其它成員使用該應(yīng)用程序。 返回到圖2,在本發(fā)明的一說(shuō)明性實(shí)施例中,能夠參與非受管安全工作組的計(jì) 算機(jī)96配備了安全組服務(wù)模塊116,用于處理非受管安全工作組的創(chuàng)建、加入與 操作。計(jì)算機(jī)96還具有本地安全授權(quán)機(jī)構(gòu)(LSA) 118和安全帳戶管理器(SAM) 120。本地安全授權(quán)機(jī)構(gòu)118是負(fù)責(zé)本地系統(tǒng)安全策略、用戶認(rèn)證、以及向操作系 統(tǒng)的事件日志發(fā)送安全消息的用戶模式進(jìn)程。安全策略指定例如允許哪些用戶登錄 到該機(jī)器、口令策略、授予用戶和組的特權(quán)、以及系統(tǒng)安全審核設(shè)置等等。安全帳 戶管理器120管理存儲(chǔ)在計(jì)算機(jī)的系統(tǒng)注冊(cè)表中的數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)包含標(biāo)識(shí)被允 許訪問(wèn)該機(jī)器的用戶和組以及它們的口令和其它屬性的數(shù)據(jù)。該計(jì)算機(jī)還包括一個(gè) 或多個(gè)認(rèn)證模塊,如Windows NT⑧LAN管理器(NTLM)模塊122或Kerberos模塊126,用于按照所選的認(rèn)證協(xié)議來(lái)執(zhí)行認(rèn)證操作。此外,使用文件復(fù)制服務(wù)器
(FRS) 128來(lái)將數(shù)據(jù)和文件(包括用戶帳戶和概況)復(fù)制到非受管安全工作組中 的其它計(jì)算機(jī)。
在圖2所示的實(shí)施例中,應(yīng)用程序121與安全組服務(wù)模塊116接口,用于通 過(guò)API層模塊119來(lái)處理非受管安全工作組的創(chuàng)建、加入和操作。如將討論的, API層模塊119支持用于獲得有關(guān)非受管安全工作組的信息、創(chuàng)建非受管安全工作 組、加入非受管安全工作組和離開非受管安全工作組的應(yīng)用程序接口 (API)。
現(xiàn)在同時(shí)參考圖2和4,在本發(fā)明的一說(shuō)明性實(shí)施例中,當(dāng)獨(dú)立計(jì)算機(jī)102 連接到本地網(wǎng)絡(luò)70并開機(jī)(步驟170)時(shí),其操作系統(tǒng)自動(dòng)發(fā)現(xiàn)本地網(wǎng)絡(luò)上是否 存在非受管安全工作組(步驟172)。為此,計(jì)算機(jī)102按照簡(jiǎn)單服務(wù)發(fā)現(xiàn)協(xié)議
(SSDP)來(lái)廣播發(fā)現(xiàn)請(qǐng)求136,以檢測(cè)連接到本地網(wǎng)絡(luò)的其它機(jī)器。在這點(diǎn)上, 屬于安全工作組的計(jì)算機(jī)96上的安全組服務(wù)模塊116己經(jīng)向該計(jì)算機(jī)的SSDP服 務(wù)138注冊(cè)了安全工作組的友好名稱和GUID。響應(yīng)于SSDP請(qǐng)求,本地網(wǎng)絡(luò)70 上的每個(gè)計(jì)算機(jī)返回一個(gè)響應(yīng)。該響應(yīng)標(biāo)識(shí)作出響應(yīng)的計(jì)算機(jī)以及它是否是非受管
安全工作組的一部分,并且如果是,則還有有關(guān)該組的信息。例如,來(lái)自計(jì)算機(jī) 96的響應(yīng)150包括組名152,它指示該計(jì)算機(jī)是稱為"TobyClub"的非受管安全 工作組的成員。
在本發(fā)明的一個(gè)實(shí)施例中,如果計(jì)算機(jī)102檢測(cè)到本地網(wǎng)絡(luò)上的一個(gè)或多個(gè) 現(xiàn)有的非受管安全工作組(步驟176),則當(dāng)其用戶158 (圖2中的"Patrick") 登錄時(shí), 一個(gè)用戶界面窗口彈出,詢問(wèn)該用戶是否想要該計(jì)算機(jī)加入現(xiàn)有非受管安 全工作組中的任一個(gè)(步驟178)。該用戶界面窗口的一個(gè)示例示于圖5中。用戶 界面窗口 160提供該計(jì)算機(jī)已經(jīng)檢測(cè)到的本地網(wǎng)絡(luò)上的現(xiàn)有非受管安全工作組的 列表162,并且用戶可通過(guò)點(diǎn)擊組名來(lái)選擇一個(gè)組來(lái)加入。如果在本地網(wǎng)絡(luò)上沒(méi)有 檢測(cè)到現(xiàn)有的非受管安全工作組,則該列表為空。該用戶界面還包括査詢166,它 給予用戶創(chuàng)建新的非受管安全工作組的選項(xiàng)。因而,在沒(méi)有現(xiàn)有非受管安全工作組 時(shí),用戶可選擇創(chuàng)建一個(gè)新的組(步驟180)。即使本地網(wǎng)絡(luò)上有現(xiàn)有的非受管安 全工作組,用戶仍可選擇創(chuàng)建一個(gè)新組而不是加入任何現(xiàn)有組。例如,如果計(jì)算機(jī) 102檢測(cè)到本地網(wǎng)絡(luò)上的計(jì)算機(jī)88不是任何安全工作組的成員(即計(jì)算機(jī)88是"獨(dú) 立"機(jī)器),則用戶158可決定創(chuàng)建一新安全工作組(一個(gè)計(jì)算機(jī)的安全工作組) (步驟184)并邀請(qǐng)計(jì)算機(jī)88加入該組(步驟186)。
如果用戶158 ( "Patrick")選擇創(chuàng)建新非受管安全工作組的選項(xiàng)(步驟180),則安全組服務(wù)模塊116創(chuàng)建該新組的新GUID,并且將該計(jì)算機(jī)的帳戶域GUID改 變?yōu)樵摻M的新GUID。安全組服務(wù)模塊116隨后創(chuàng)建"安全組節(jié)點(diǎn)"組,它是包含 代表該非受管安全工作組中計(jì)算機(jī)的計(jì)算機(jī)帳戶的本地安全組。("安全組節(jié)點(diǎn)" 是組名的一個(gè)示例。該實(shí)施例也支持其它組名。)只有在安全組節(jié)點(diǎn)組中列出的計(jì) 算機(jī)可以執(zhí)行與該組中其它計(jì)算機(jī)的復(fù)制。帳戶可連同強(qiáng)隨機(jī)口令一起創(chuàng)建。
安全組服務(wù)168還創(chuàng)建"安全組管理員"組,用于保存新非受管安全工作組 的管理員的憑證。在只有安全組管理員組中標(biāo)識(shí)的管理員才被允許在該安全組中添 加或移除節(jié)點(diǎn)。創(chuàng)建"安全組管理員"帳戶,并且提示用戶158輸入一個(gè)良好的(非 空)口令。("安全組管理員"是組名的一個(gè)示例。(如將討論的,本發(fā)明的各實(shí) 施例支持可用作口令的替代或者補(bǔ)充的個(gè)人標(biāo)識(shí)號(hào)(PIN)。)該實(shí)施例也支持其 它組名。)在用戶輸入口令之后,安全組管理員帳戶被添加到安全組管理員組。
另一方面,如果用戶158選擇加入由計(jì)算機(jī)102檢測(cè)到的現(xiàn)有非受管安全工 作組(步驟178),則選擇該組的節(jié)點(diǎn)中已經(jīng)響應(yīng)該SSDP請(qǐng)求的節(jié)點(diǎn),并且建立 與該選定節(jié)點(diǎn)的安全組服務(wù)的遠(yuǎn)程過(guò)程調(diào)用(RPC)接口的連接。在圖2所示的示 例中,計(jì)算機(jī)102已經(jīng)選擇與計(jì)算機(jī)96交談。計(jì)算機(jī)96隨后發(fā)出要計(jì)算機(jī)102 認(rèn)證它自己的請(qǐng)求。通過(guò)正確地認(rèn)證自己,計(jì)算機(jī)102與計(jì)算機(jī)96建立信任(步 驟182)。在這么做時(shí),計(jì)算機(jī)102也與組100的其余節(jié)點(diǎn)建立了信任,因?yàn)樗鼈?信任計(jì)算機(jī)96并且假定信任計(jì)算機(jī)96所信任的任何計(jì)算機(jī)。然而,在替換實(shí)施例 中,想要加入非受管安全工作組的計(jì)算機(jī)可被要求個(gè)別地與組中的每個(gè)計(jì)算機(jī)建立 信任。
如上所述,建立信任的一種常見方法是計(jì)算機(jī)呈現(xiàn)其它計(jì)算機(jī)所知的秘密。 在本發(fā)明的一實(shí)施例中,使用用于對(duì)等者之間的相互認(rèn)證的自簽名證書。目標(biāo)節(jié)點(diǎn) 的證書可傳回經(jīng)認(rèn)證的要加入的計(jì)算機(jī)。在本發(fā)明的一說(shuō)明性實(shí)施例中,秘密是在 目標(biāo)節(jié)點(diǎn)計(jì)算機(jī)96的安全組管理員組中注冊(cè)的組管理員的名稱和口令。響應(yīng)于來(lái) 自目標(biāo)節(jié)點(diǎn)計(jì)算機(jī)96的質(zhì)詢,計(jì)算機(jī)102提示用戶158輸入有效的管理員名稱和 口令。在一說(shuō)明性實(shí)現(xiàn)中,管理員196 (圖2中例示為"Toby")可簡(jiǎn)單地走到想 要加入非受管安全工作組的計(jì)算機(jī)102處并輸入其用戶名和口令。計(jì)算機(jī)102將輸 入的管理員名稱和口令發(fā)送到目標(biāo)節(jié)點(diǎn)計(jì)算機(jī)96。目標(biāo)節(jié)點(diǎn)計(jì)算機(jī)96檢查由計(jì)算 機(jī)102返回的管理員名稱和口令。如果它們是有效的并且對(duì)應(yīng)于在安全組管理員組 中找到的管理員帳戶,則計(jì)算機(jī)102變成非受管安全工作組100的成員。目標(biāo)節(jié)點(diǎn) 計(jì)算機(jī)96創(chuàng)建要加入的計(jì)算機(jī)102的計(jì)算機(jī)帳戶,并將目標(biāo)節(jié)點(diǎn)計(jì)算機(jī)的秘密傳
13回要加入的計(jì)算機(jī)102。要加入的計(jì)算機(jī)102隨后保存該目標(biāo)節(jié)點(diǎn)計(jì)算機(jī)的秘密。
此時(shí),要加入的計(jì)算機(jī)102將啟動(dòng)與目標(biāo)節(jié)點(diǎn)計(jì)算機(jī)96的"同步"操作。在完成
同步操作之后,建立了完全的信任。
之后,在非受管安全工作組的成員之間出現(xiàn)變化時(shí)復(fù)制用戶帳戶和用戶概況
(步驟188)。在一個(gè)說(shuō)明性實(shí)現(xiàn)中,作為非受管安全工作組的成員的計(jì)算機(jī)周期 性地(例如每4分鐘)發(fā)送"喚起注意(Hello)"消息到該組中的所有其它節(jié)點(diǎn)。 喚起注意消息包含組GUID、節(jié)點(diǎn)的當(dāng)前系統(tǒng)時(shí)間和復(fù)制的最后更新計(jì)數(shù)。不要求 其它組成員響應(yīng),但將相應(yīng)地更新它們的組成員表,并記錄從該成員收到"喚起注 意"的最后時(shí)間。當(dāng)從LSA收到SAM變化時(shí),計(jì)算機(jī)上的安全組服務(wù)發(fā)送"通 知(Notify)"消息到安全工作組中的所有節(jié)點(diǎn)。當(dāng)組節(jié)點(diǎn)收到通知消息時(shí),它將 消息中的更新計(jì)數(shù)(UpdateCount)與其當(dāng)前的更新計(jì)數(shù)進(jìn)行比較。如果收到的更 新計(jì)數(shù)比當(dāng)前的更新計(jì)數(shù)新,則接收者回調(diào)發(fā)送者以得到特定的變化列表并在本地 應(yīng)用這些變化。
在一替換的說(shuō)明性實(shí)施例中,代替使用管理員名稱和口令作為秘密,目標(biāo)節(jié) 點(diǎn)計(jì)算機(jī)96生成一隨機(jī)個(gè)人標(biāo)識(shí)號(hào)(PIN)作為秘密。目標(biāo)節(jié)點(diǎn)計(jì)算機(jī)96的用戶 196("Toby")將該秘密PIN給予想要加入該組的計(jì)算機(jī)102的用戶158("Patrick")。 用戶158隨后響應(yīng)于該提示將這個(gè)PIN輸入到計(jì)算機(jī)102中,并且經(jīng)由網(wǎng)絡(luò)連接 將PIN傳送給目標(biāo)節(jié)點(diǎn)96以便建立信任。
圖6示出根據(jù)本發(fā)明的一實(shí)施例計(jì)算機(jī)系統(tǒng)(KitchenPC) 601加入非受管安 全工作組603的說(shuō)明性場(chǎng)景。(本發(fā)明的其它實(shí)施例可利用其它技術(shù)來(lái)提供對(duì)想要 加入非受管安全工作組603的機(jī)器的認(rèn)證。)在該示例性場(chǎng)景中,計(jì)算機(jī)系統(tǒng) (DenPC) 605已經(jīng)是非受管安全工作組603的成員。力7乂是一個(gè)過(guò)程,通過(guò)這個(gè) 過(guò)程未加入的機(jī)器與現(xiàn)有非受管安全工作組的成員協(xié)作以獲得該非受管安全工作 組中的成員資格。在該說(shuō)明性實(shí)現(xiàn)中,有十個(gè)主要步驟
1) KitchenPC 601通過(guò)用HouseCastle_Kpublic質(zhì)詢DenPC 605而將其認(rèn)證為非 受管安全工作組603的成員。如果DenPC 605響應(yīng)正確,則它證明 DenPC605知道共享秘密。
2) KitchenPC 601生成公/私鑰對(duì)并生成自簽名證書KitchenPC_Cert。
3) KitchenPC 601為自己創(chuàng)建一個(gè)KitchenPC帳戶并將KitchenPC—Cert與該 帳戶相關(guān)聯(lián)。
4) KitchenPC 601使用由驅(qū)動(dòng)》/7乂的用戶提供的管理員的公知帳戶和和管理
14員的口令登錄到DenPC 605 。 KitchenPC 601將其證書傳遞給DenPC 605 。
5) DenPC 605安裝KitchenPC的證書。
6) DenPC 605創(chuàng)建KitchenPC 601的機(jī)器帳戶,將該帳戶與KitchenPC—Cert
相關(guān)聯(lián),隨后將該證書輸入到非受管安全工作組603。
7) DenPC (603)將其自己的證書和共享秘密返回給KitchenPC (601),后 者
a. 安裝DenPC_Cert。
b. 存儲(chǔ)共享秘密。
c. 從私鑰生成HouseCastle—Cert的副本并安裝該副本。
8) KitchenPC (601)創(chuàng)建DenPC 605的機(jī)器帳戶,并將該帳戶與DenPC—Cert 相關(guān)聯(lián)。
9) KitchenPC 601經(jīng)由功能發(fā)現(xiàn)607將自己發(fā)布(廣播)為非受管安全工作 組的成員。
10) KitchenPC 601啟動(dòng)與DenPC 605的同步操作。(在前面的步驟中, KitchenPC 601和DenPC 605僅建立相互信任。 一旦它們具有相互信任, 同步操作就用來(lái)自其它計(jì)算機(jī)的證書、帳戶和組的完整集合來(lái)填充每個(gè)計(jì) 算機(jī)。)
將意識(shí)到,在建立信任階段期間的通信和在組成員之間為復(fù)制用戶帳戶、用 戶概況和與組操作有關(guān)的其它數(shù)據(jù)的后續(xù)通信應(yīng)該適當(dāng)?shù)厥軘?shù)字簽名與加密的保 護(hù)以保護(hù)數(shù)據(jù)的完整性與機(jī)密性。(在本發(fā)明的一實(shí)施例中,使用基于公鑰/私鑰 的認(rèn)證機(jī)制(PK/S信道認(rèn)證)。公鑰放在自簽名證書中,在以后用于驗(yàn)證私鑰持 有者的身份。)為此,通信可遵循合適的認(rèn)證協(xié)議,如NTLM或Kerberos。在一 個(gè)說(shuō)明性實(shí)現(xiàn)中,非受管安全工作組的節(jié)點(diǎn)使用(DCE) RPC來(lái)復(fù)制,RPC采用 NTLM認(rèn)證機(jī)制。信道以調(diào)用級(jí)認(rèn)證和私密性來(lái)保護(hù),而訪問(wèn)控制以對(duì)作為非受 管安全工作組的成員的調(diào)用者的基于服務(wù)器的檢査為基礎(chǔ)。使用認(rèn)證度量防止本地 網(wǎng)絡(luò)上的其它計(jì)算機(jī)對(duì)非受管安全工作組中的節(jié)點(diǎn)之間通信的竊聽與篡改。
在加入非受管安全工作組100之后,計(jì)算機(jī)102可自愿地離開該組。為此, 用戶158登錄到要從非受管安全工作組移除的機(jī)器102上,并通過(guò)適當(dāng)?shù)挠脩艚缑?窗口選擇離開該組。在一說(shuō)明性實(shí)現(xiàn)中,當(dāng)計(jì)算機(jī)離開非受管安全工作組時(shí),從安 全組節(jié)點(diǎn)組中移除該計(jì)算機(jī),并且刪除其相應(yīng)的計(jì)算機(jī)帳戶。這個(gè)動(dòng)作結(jié)束了用于 復(fù)制帳戶的信任。在計(jì)算機(jī)離開組時(shí),連同所有計(jì)算機(jī)帳戶一起刪除安全組管理員和安全組節(jié)點(diǎn)組。然而,計(jì)算機(jī)GUID仍保留為與加入該組時(shí)的GUID—樣。在從 該組移除之后,計(jì)算機(jī)102變成本地網(wǎng)絡(luò)上的獨(dú)立計(jì)算機(jī),因此工作組100變成一 個(gè)計(jì)算機(jī)的非受管安全工作組。(然而,在工作組100變成一個(gè)計(jì)算機(jī)的非受管安 全工作組之后,計(jì)算機(jī)隨后可加入它。)它不再被信任并且將再也接收不到對(duì)用戶 帳戶和概況的任何更新。
在某些特殊情況下,計(jì)算機(jī)可被"驅(qū)逐"出非受管安全工作組。例如,如果 組中一個(gè)計(jì)算機(jī)已經(jīng)被偷走,則需要將該計(jì)算機(jī)從該組中驅(qū)逐出去,因此以后不能 使用它來(lái)訪問(wèn)該組的數(shù)據(jù)與資源。從安全組節(jié)點(diǎn)組中移除被驅(qū)逐的計(jì)算機(jī),并刪除 其帳戶。這防止將來(lái)將帳戶信息復(fù)制到被驅(qū)逐的計(jì)算機(jī)。然而,可使用其它措施來(lái) 徹底地使被驅(qū)逐計(jì)算機(jī)與組斷絕關(guān)系。由于被驅(qū)逐計(jì)算機(jī)具有帳戶數(shù)據(jù)庫(kù)的完整副 本(包括口令),因此被驅(qū)逐計(jì)算機(jī)可試圖將它自己認(rèn)證為任何其它用戶(或計(jì)算 機(jī))并仍獲得對(duì)安全工作組的訪問(wèn)。因此,應(yīng)當(dāng)采取措施從而在被驅(qū)逐的計(jì)算機(jī)不 能竊聽通信并看見口令的情況下改變殘留秘密。作為驅(qū)逐過(guò)程的一部分,計(jì)算機(jī)的 秘密必須在改變?nèi)魏斡脩裘孛苤半x線改變。計(jì)算機(jī)秘密的改變可在專用信道上 "帶外"完成,如通過(guò)使用軟盤來(lái)承載秘密。在一實(shí)現(xiàn)中,在驅(qū)逐計(jì)算機(jī)之后,非 受管安全工作組的管理員196必須在沒(méi)有被驅(qū)逐計(jì)算機(jī)的情況下重建該組。作為恢 復(fù)過(guò)程的一部分,剩余在組中的一個(gè)計(jì)算機(jī)("恢復(fù)計(jì)算機(jī)")被隔離(即從網(wǎng)絡(luò) 中移除)并用于進(jìn)行組恢復(fù)。為組中剩余的每個(gè)計(jì)算機(jī)生成一新的隨機(jī)LSA秘密 并在恢復(fù)計(jì)算機(jī)的本地帳戶數(shù)據(jù)庫(kù)中存儲(chǔ)為該計(jì)算機(jī)的新計(jì)算機(jī)口令。然而,新的 秘密不能通過(guò)網(wǎng)絡(luò)發(fā)送到其它計(jì)算機(jī),因?yàn)橛斜或?qū)逐的機(jī)器可接收更新的危險(xiǎn)。為 解決這個(gè)問(wèn)題,管理員196為安全工作組中每個(gè)剩余的計(jì)算機(jī)創(chuàng)建一個(gè)"驅(qū)逐"軟 盤(或任何其它便攜介質(zhì),如CD ROM),它包含該計(jì)算機(jī)的新LSA秘密。管理 員用他的管理員帳戶登錄到他想要保持在非受管安全工作組中的每個(gè)計(jì)算機(jī)上,并 在該計(jì)算機(jī)上運(yùn)行驅(qū)逐盤以改變?cè)撚?jì)算機(jī)的口令。一旦驅(qū)逐盤在組中剩余的機(jī)器上
運(yùn)行,要求所有用戶在登錄到組中的計(jì)算機(jī)上時(shí)改變他們的口令,因?yàn)楸或?qū)逐計(jì)算 機(jī)具有所有用戶的現(xiàn)有口令(或至少有導(dǎo)出密鑰)。
按照本發(fā)明的至少某些方面的非受管安全工作組的一個(gè)優(yōu)點(diǎn)是使機(jī)器與機(jī)器 的通信安全。按照本發(fā)明的一個(gè)方面,可在成員機(jī)器與請(qǐng)求加入非受管安全工作組 的機(jī)器之間使用自簽名證書。而且,如上所述創(chuàng)建的驅(qū)逐軟盤可被分發(fā),其中所有 機(jī)器帳戶基本上在同時(shí)被重置為新的隨機(jī)口令。在重置口令時(shí),成員機(jī)器將失去通 信的能力;然而,機(jī)器將在驅(qū)逐軟盤輪到它時(shí)獲得通信的能力。得不到驅(qū)逐軟盤的機(jī)器(例如被驅(qū)逐機(jī)器)只擁有舊的口令,并且不能與非受管安全工作組通信。按 照本發(fā)明的至少某些方面的非受管安全工作組的另一個(gè)優(yōu)點(diǎn)是防止經(jīng)由用戶帳戶 的非授權(quán)訪問(wèn)。按照本發(fā)明的一個(gè)方面,所有用戶帳戶被改變。按照本發(fā)明的另一 方面,口令被設(shè)置為在下次登錄時(shí)過(guò)期。
按照本發(fā)明的至少某些方面的非受管安全工作組的一個(gè)優(yōu)點(diǎn)是,每個(gè)用戶具 有組中所有計(jì)算機(jī)知道的身份。因此,用戶能用同一用戶名和口令登錄到安全工作 組中的任何計(jì)算機(jī)上。例如,在小型企業(yè)設(shè)置中,職員能用同一用戶名和口令登錄 到形成安全工作組的本地辦公網(wǎng)絡(luò)上的任何計(jì)算機(jī)上,而不需要分別在每個(gè)計(jì)算機(jī) 上設(shè)置用戶帳戶。同樣,當(dāng)用戶在組中的計(jì)算機(jī)之一上改變其口令時(shí),該改變將被 復(fù)制到其它計(jì)算機(jī)。因而,非受管安全工作組可顯著地簡(jiǎn)化用戶帳戶的創(chuàng)建與修改, 并且使組中的計(jì)算機(jī)對(duì)于授權(quán)用戶更加"可訪問(wèn)"。
非受管安全工作組中的計(jì)算機(jī)的改進(jìn)的網(wǎng)絡(luò)集成還允許用戶享受計(jì)算機(jī)網(wǎng)絡(luò) 的益處。在登錄到組中的任何計(jì)算機(jī)中之后,用戶能使用該用戶自己的設(shè)置訪問(wèn)該 用戶的所有文檔,而無(wú)論這些文檔和設(shè)置實(shí)際存儲(chǔ)在何處。這再次成為可能,因?yàn)?用戶的所有文檔與所有計(jì)算機(jī)所識(shí)別的單一用戶身份相關(guān)聯(lián)。因而,可以作出一個(gè) 査詢來(lái)標(biāo)識(shí)給定用戶的所有文檔與設(shè)置。這使用戶能夠在整個(gè)安全工作組上具有其 全部文檔與設(shè)置的"統(tǒng)一"視圖。
如上所述,在安全工作組中的計(jì)算機(jī)之間復(fù)制的用戶概況可包括用戶的文檔。 在一說(shuō)明性實(shí)施例中,給定用戶一組預(yù)選文檔,例如在用戶的"我的文檔"文件夾 中的文檔,被自動(dòng)復(fù)制到安全工作組中的每個(gè)計(jì)算機(jī)。當(dāng)用戶已經(jīng)修改了其中一個(gè) 文檔時(shí),檢測(cè)到文檔修訂,并且被修改的文檔由文件復(fù)制服務(wù)(FRS)復(fù)制到組中 其它計(jì)算機(jī)。在本發(fā)明的一說(shuō)明性實(shí)施例中,為減少計(jì)算機(jī)為存儲(chǔ)被復(fù)制的文檔所 使用的存儲(chǔ)器量,超過(guò)閾值大小的文件不被復(fù)制。如果文件超過(guò)閾值大小,代之以 僅將存儲(chǔ)該文件的計(jì)算機(jī)上指向該文件的鏈接復(fù)制到其它計(jì)算機(jī)。
非受管安全工作組還允許在組用戶之間安全地共享文件。想要與第二用戶共 享其文檔的用戶能修改該文檔的屬性,以指示允許第二用戶訪問(wèn)該文檔。當(dāng)?shù)诙?戶使用應(yīng)用程序來(lái)訪問(wèn)該文檔時(shí),檢査文檔屬性以確認(rèn)第二用戶已被給予訪問(wèn)該文 檔的權(quán)限。在一說(shuō)明性實(shí)現(xiàn)中,小型企業(yè)網(wǎng)絡(luò)中的安全工作組的用戶能僅與一個(gè)其 它用戶共享文檔。在一替換的說(shuō)明性實(shí)施例中,非受管安全工作組的用戶能與組中 所有用戶共享該用戶的文件。這個(gè)實(shí)現(xiàn)可適用于家庭網(wǎng)絡(luò)設(shè)置。
非受管安全工作組可允許尚未加入組的計(jì)算機(jī)具有對(duì)該組的有限訪問(wèn)。例如,
17用戶可帶回其工作用的膝上型計(jì)算機(jī)并將它連接到其家庭網(wǎng)絡(luò),但選擇不加入家庭 網(wǎng)絡(luò)上的安全工作組。在這種情況下,非成員計(jì)算機(jī)可被給予來(lái)賓狀態(tài),并允許它 訪問(wèn)一組預(yù)選的資源。同樣,傳統(tǒng)計(jì)算機(jī)(即沒(méi)有用于相關(guān)于非受管安全工作組的 操作的軟件的計(jì)算機(jī))仍可用與其在常規(guī)的工作組中相同的方式與非受管安全工作 組中的計(jì)算機(jī)通信。
一旦計(jì)算機(jī)(機(jī)器)變成非受管安全工作組的一部分,在非受管安全工作組 的任何成員發(fā)生變化時(shí),就在成員計(jì)算機(jī)之間復(fù)制和同步用戶帳戶和用戶組。(變 化可對(duì)應(yīng)于修改用戶帳戶信息或添加用戶帳戶信息。)參加非受管安全工作組的計(jì) 算機(jī)是對(duì)等的,沒(méi)有指定的主計(jì)算機(jī)。在非受管安全工作組中的計(jì)算機(jī)可通過(guò)網(wǎng)絡(luò) 通告變化。該操作允許成員計(jì)算機(jī)啟動(dòng)復(fù)制,并因而彼此保持同步。
參與復(fù)制的計(jì)算機(jī)維護(hù)這些計(jì)算機(jī)將復(fù)制的數(shù)據(jù)的狀態(tài)。這些計(jì)算機(jī)跟蹤以 下內(nèi)容
計(jì)算機(jī)版本號(hào)只要計(jì)算機(jī)上的任何帳戶有變化就更新該號(hào)碼。該版本 號(hào)在高級(jí)別上確定何時(shí)需要同步操作。
帳戶版本號(hào)只要計(jì)算機(jī)上的特定帳戶有變化就更新該號(hào)碼。該版本號(hào) 用于在需要同步操作時(shí)確定哪些帳戶要同步,并且是按每個(gè)帳戶來(lái)跟蹤 的。
復(fù)制可以是面向拉(pull-oriented)的復(fù)制,其中每個(gè)計(jì)算機(jī)在其計(jì)算機(jī)版本號(hào)變 化時(shí)通告該版本號(hào)。當(dāng)非受管安全工作組的成員檢測(cè)到另一成員已經(jīng)通告了新版本 號(hào)時(shí),該成員用它在其記錄中所具有的該計(jì)算機(jī)的版本號(hào)來(lái)檢査這個(gè)版本號(hào)。如果 該成員確定另一計(jì)算機(jī)已經(jīng)發(fā)布了較新的數(shù)據(jù),則它啟動(dòng)復(fù)制。
在一說(shuō)明性實(shí)施例中,所有用戶帳戶被復(fù)制。所有帳戶組被復(fù)制;因而,在 一個(gè)計(jì)算機(jī)上作為管理員的用戶將被復(fù)制為其它計(jì)算機(jī)上的管理員。下列數(shù)據(jù)被復(fù) 制
>用戶名 >用戶口令 >用戶頭像
>帳戶版本號(hào)該數(shù)據(jù)由非受管安全工作組用于通知成員何時(shí)它們應(yīng)當(dāng)更新
它們的本地?cái)?shù)據(jù)。 >用戶組名 >用戶組成員列表>計(jì)算機(jī)版本號(hào)該數(shù)據(jù)由非受管安全工作組用于決定是否要與另一計(jì)算機(jī) 啟動(dòng)同步操作。
>非受管安全工作組秘密該數(shù)據(jù)是機(jī)器對(duì)機(jī)器秘密,它建立非受管安全工 作組的機(jī)器之間的信任。 圖7示出根據(jù)本發(fā)明的一個(gè)說(shuō)明性實(shí)施例用于非受管安全工作組中將經(jīng)更新 的帳戶信息從一成員計(jì)算機(jī)提供給另一計(jì)算機(jī)的流程圖700。在步驟701,成員計(jì) 算機(jī)確定存儲(chǔ)在該成員計(jì)算機(jī)上的帳戶信息中是否有變化。如果沒(méi)有變化,則該過(guò)
程退出。如果有變化,則在步驟703,該計(jì)算機(jī)通過(guò)使用功能發(fā)現(xiàn)消息發(fā)布相關(guān)聯(lián)
的計(jì)算機(jī)版本號(hào)來(lái)通告該變化。本發(fā)明的實(shí)施例可使用其它發(fā)布協(xié)議,例如前述的
SSDP來(lái)發(fā)布相關(guān)聯(lián)的計(jì)算機(jī)版本號(hào)。在步驟705,成員計(jì)算機(jī)確定是否從另一計(jì) 算機(jī)接收到對(duì)用戶帳戶列表的請(qǐng)求。如果沒(méi)有,則該過(guò)程退出。如果有,則在步驟 707,成員計(jì)算機(jī)將列表發(fā)送給該另一計(jì)算機(jī)。如果特定的帳戶信息已經(jīng)在成員計(jì) 算機(jī)上更新或者添加,則該另一計(jì)算機(jī)可進(jìn)一步請(qǐng)求相應(yīng)的帳戶信息。在步驟709, 確定是否接收到這樣的請(qǐng)求。如果沒(méi)有接收到進(jìn)一步的請(qǐng)求,則該過(guò)程退出。如果 已經(jīng)接收到進(jìn)一步的請(qǐng)求,則在步驟7U,成員計(jì)算機(jī)將指定的帳戶信息發(fā)送到該 另一計(jì)算機(jī)。
圖8示出根據(jù)本發(fā)明的一個(gè)說(shuō)明性實(shí)施例用于在非受管安全工作組中從成員 計(jì)算機(jī)獲得經(jīng)更新的帳戶信息的流程圖800。(流程圖800對(duì)應(yīng)于在圖7所示的另 一計(jì)算機(jī)上執(zhí)行的過(guò)程。)在步驟801,該另一計(jì)算機(jī)確定是否接收到成員計(jì)算機(jī) 已經(jīng)改變了帳戶信息的通告。如果沒(méi)有,則該過(guò)程退出。如果已經(jīng)接收到通告,則 在步驟803,該另一計(jì)算機(jī)將所通告的版本號(hào)與在記錄上所具有的成員計(jì)算機(jī)的版 本號(hào)進(jìn)行比較。如果不是,則該過(guò)程退出。如果所通告的版本較新,則在步驟805, 該另一計(jì)算機(jī)向成員計(jì)算機(jī)請(qǐng)求用戶帳戶列表。在步驟807,該另一計(jì)算機(jī)作出對(duì) 已經(jīng)被更新的或新的帳戶信息的請(qǐng)求。在步驟809,該另一計(jì)算機(jī)在沖突解決(稍 后討論)之后更新存儲(chǔ)在該另一計(jì)算機(jī)上的帳戶信息。
盡管經(jīng)更新的帳戶信息可根據(jù)流程圖700來(lái)獲得,但本發(fā)明的實(shí)施例支持其 它帳戶更新過(guò)程。在本發(fā)明的一實(shí)施例中,第一成員計(jì)算機(jī)廣播帶有經(jīng)更新的版本 號(hào)的通告,以指示在帳戶信息中已發(fā)生變化。非受管安全工作組的第二成員響應(yīng)于 來(lái)自該成員計(jì)算機(jī)的通告,將帳戶版本號(hào)發(fā)送到第一成員計(jì)算機(jī)。因此,第一成員 計(jì)算機(jī)向第二成員計(jì)算機(jī)返回較新的用戶帳戶列表。
當(dāng)新計(jì)算機(jī)加入非受管安全工作組時(shí),它沒(méi)有與該非受管安全工作組相關(guān)的
19帳戶數(shù)據(jù)。此時(shí),它用非受管安全工作組數(shù)據(jù)更新它自己。只要在非受管安全工作 組的任何參與成員上改變了任何用戶帳戶或組,該變化就可經(jīng)由功能發(fā)現(xiàn)(或另一 發(fā)布機(jī)制,例如SSDP)來(lái)通告。通告觸發(fā)非受管安全工作組的成員之間的復(fù)制序 列。非受管安全工作組中的計(jì)算機(jī)通過(guò)經(jīng)由功能發(fā)現(xiàn)發(fā)布它們的計(jì)算機(jī)版本號(hào)來(lái)通 告它們的變化。
當(dāng)一成員離開非受管安全工作組時(shí),用戶可決定從該計(jì)算機(jī)上刪除某些帳戶。 這個(gè)變化,以及非受管安全工作組的經(jīng)更新的成員資格可被復(fù)制到其余的成員。當(dāng) 一成員被驅(qū)逐時(shí),非受管安全工作組的秘密被改變。秘密的變化被傳播到非受管安 全工作組中的其它成員。
當(dāng)機(jī)器首次加入非受管安全工作組時(shí),機(jī)器之間的初始信任通過(guò)管理員用口 令登錄來(lái)建立。 一旦信任已建立,則這些機(jī)器可交換自簽名證書并通過(guò)基于證書的 相互認(rèn)證來(lái)執(zhí)行認(rèn)證。(如前所述,可使用其它認(rèn)證機(jī)制。) 一旦計(jì)算機(jī)已經(jīng)與另 一計(jì)算機(jī)認(rèn)證,該計(jì)算機(jī)隨后就能復(fù)制帳戶信息。
在本發(fā)明的一說(shuō)明性實(shí)施例中,安全帳戶管理器(SAM)數(shù)據(jù)庫(kù)通過(guò)在輔助
屬性文件中存儲(chǔ)新屬性來(lái)擴(kuò)展。(安全帳戶管理器數(shù)據(jù)庫(kù)包含定義的用戶和組以及 相應(yīng)的口令和其它屬性。)輔助屬性文件(對(duì)應(yīng)于本地存儲(chǔ)的數(shù)據(jù))在復(fù)制帳戶時(shí) 被復(fù)制。而且,輔助屬性文件能被擴(kuò)展,以包括附加的屬性,例如,用戶頭像、口
令提示、帳戶GUID和帳戶證書。
非受管安全工作組包括多個(gè)機(jī)器,它們彼此是對(duì)等的。這意味著對(duì)同一對(duì)象 的變化可在任何參與機(jī)器上由具有適當(dāng)權(quán)限的人來(lái)作出。變化可在成員機(jī)器"在線" 時(shí)或者在這些機(jī)器"離線"時(shí)作出。在機(jī)器離線時(shí)對(duì)機(jī)器所作的變化會(huì)導(dǎo)致與用戶 帳戶或帳戶組沖突的變化,如下更詳細(xì)地描述的。非受管安全工作組特征可利用一 種機(jī)制來(lái)檢測(cè)沖突。隨后,沖突可被自動(dòng)解決或者在授權(quán)用戶的幫助下解決。
帳戶的"變化"被定義為該帳戶的任何屬性的變化。沖突解決與檢測(cè)可在"整 個(gè)帳戶級(jí)"上執(zhí)行。(另外,沖突解決與檢測(cè)可在每個(gè)屬性級(jí)上執(zhí)行。)作為一個(gè) 示例,如果在一個(gè)機(jī)器上改變一個(gè)帳戶的頭像并在另一機(jī)器上改變同一帳戶的口 令,則這兩個(gè)帳戶都被認(rèn)為有變化,因而將要求沖突解決,即使在屬性級(jí)上這些變 化是非重疊的。
兩個(gè)成員機(jī)器之間的同步受到這些機(jī)器不同步的時(shí)段的影響。如果這些機(jī)器 已經(jīng)分離一段長(zhǎng)時(shí)間,則這些機(jī)器之間的差異被認(rèn)為是沖突。在一說(shuō)明性實(shí)施例中,
這些差異是使用管理用戶界面(UI)通過(guò)人工干預(yù)來(lái)解決的。 一個(gè)說(shuō)明性的長(zhǎng)時(shí)段是當(dāng)機(jī)器之間的最后更新時(shí)戳差異至少是30天,而一個(gè)說(shuō)明性的短時(shí)段是當(dāng)兩 個(gè)成員機(jī)器之間的"最后更新"時(shí)戳小于30天時(shí)這兩個(gè)機(jī)器之間沒(méi)有連接。設(shè)置
說(shuō)明性的30天閾值,使得大多數(shù)正常的離線情形,例如機(jī)器每天關(guān)機(jī),能自動(dòng)處
理沖突解決。由于用戶帳戶和組不會(huì)非常頻繁地變化,因此上述準(zhǔn)則也用于確定當(dāng) 計(jì)算機(jī)從備份恢復(fù)時(shí)同步如何發(fā)生。
長(zhǎng)時(shí)段同步在以下時(shí)間發(fā)生機(jī)器已經(jīng)分離與如上定義的長(zhǎng)時(shí)段一樣長(zhǎng)的相 當(dāng)長(zhǎng)的時(shí)段,且機(jī)器之間發(fā)生了變化。同步阻塞錯(cuò)誤被發(fā)送到較老的機(jī)器的同步處 理程序。較老的機(jī)器上的用戶能夠正常使用機(jī)器,因?yàn)槠鋷襞c非受管安全工作組 的其余機(jī)器沒(méi)有沖突。在本發(fā)明的一說(shuō)明性實(shí)施例中,同步阻塞錯(cuò)誤允許該機(jī)器上 的管理員通過(guò)提供下列選擇來(lái)解決同步
從較老的機(jī)器丟棄所有變化并選取最后的變化。該選擇等價(jià)于較老的機(jī) 器第一次加入非受管安全工作組。
同步來(lái)自較老的機(jī)器的變化。在本發(fā)明的一實(shí)施例中,如果用戶選取這 個(gè)選擇,則機(jī)器之間的同步會(huì)如這些機(jī)器分離了一段短時(shí)間一樣地發(fā)生。 本發(fā)明的其它實(shí)施例不區(qū)分長(zhǎng)和短時(shí)段沖突,從而所有沖突作為短時(shí)段 沖突處理。
短時(shí)段同步在機(jī)器之間上一次發(fā)生變化起它們已經(jīng)分離了短時(shí)段時(shí)發(fā)生。短 時(shí)段同步的處理依賴于要同步的變化的特性。本發(fā)明的一說(shuō)明性實(shí)施例支持下列具 有相關(guān)聯(lián)解決的變化。
無(wú)沖突變化
> 在一個(gè)機(jī)器上添加了帳戶通過(guò)在其它機(jī)器上創(chuàng)建同一帳戶來(lái)解決。
> 在一機(jī)器上刪除用戶帳戶通過(guò)在其它機(jī)器上刪除同一帳戶來(lái)解決。 如果一個(gè)機(jī)器是成員,則在較老的機(jī)器上刪除帳戶的時(shí)候,該機(jī)器 上的管理員將被警告該刪除對(duì)其余成員的影響。
> 在一個(gè)機(jī)器上改變帳戶的屬性通過(guò)在其它機(jī)器上改變同一帳戶的 同一屬性來(lái)解決。
> 在一機(jī)器上添加用戶組:通過(guò)在其它機(jī)器上創(chuàng)建同一用戶組來(lái)解決。
> 在一機(jī)器上刪除用戶組:通過(guò)在其它機(jī)器上刪除同一用戶組來(lái)解決。 如果一機(jī)器是成員,則在較老的機(jī)器上刪除用戶組時(shí),在該機(jī)器上 的管理員將被警告該刪除對(duì)其它成員的影響。
> 在一機(jī)器上改變用戶組的成員資格通過(guò)在其它機(jī)器上改變同一用
21戶組的成員資格來(lái)解決。
> 交換兩個(gè)用戶的顯示名稱:通過(guò)在其它機(jī)器上交換這些名稱來(lái)解決。 注意,這導(dǎo)致在機(jī)器上重復(fù)的顯示名稱。然而,由于用戶帳戶是由 GUID (全局唯一標(biāo)識(shí)符)標(biāo)識(shí)的,因此該變化是非沖突變化。
沖突變化
> 在兩個(gè)不同機(jī)器上改變同一用戶帳戶通過(guò)發(fā)送同步阻塞錯(cuò)誤并在 較老的機(jī)器上拒絕該用戶參與非受管安全工作組直到該用戶或管理 員解決該沖突為止來(lái)解決。
在本發(fā)明的一實(shí)施例中,統(tǒng)一地對(duì)待所有沖突。在長(zhǎng)時(shí)段與短時(shí)段沖突之間 沒(méi)有區(qū)別。所有沖突作為短時(shí)段沖突來(lái)處理。
在本發(fā)明的一實(shí)施例中,如果新帳戶不匹配按照GUID的任何本地帳戶并且 具有與本地帳戶相同的名稱,則產(chǎn)生沖突。
非受管安全工作組的帳戶中的沖突經(jīng)由與沖突管理用戶界面的集成來(lái)呈現(xiàn)。 如果是在當(dāng)前機(jī)器上,則個(gè)別用戶在該用戶的帳戶發(fā)生沖突時(shí)被通知該沖突。在任 何成員機(jī)器上的管理員被通知有關(guān)非受管安全工作組內(nèi)的所有帳戶沖突,如在管理 員所登錄的機(jī)器上觀看到的。換言之,如果非受管安全工作組中的不同機(jī)器具有在 不同機(jī)器上發(fā)生沖突的不同帳戶,則在每個(gè)機(jī)器上的視圖是不同的。
如果對(duì)帳戶變化的最終選擇被復(fù)制到所有成員機(jī)器,則沖突的解決被認(rèn)為已 經(jīng)會(huì)聚了。當(dāng)在一個(gè)別機(jī)器上解決了帳戶沖突時(shí),相應(yīng)的變化被復(fù)制到其它機(jī)器。 取決于所解決的沖突的特性,在其它機(jī)器上的某些現(xiàn)有沖突可隨著當(dāng)前機(jī)器上的沖 突的解決而解決。
非受管安全工作組依賴于多個(gè)機(jī)器通過(guò)網(wǎng)絡(luò)通信并能夠響應(yīng)于成員機(jī)器的變 化而改變其狀態(tài)的能力。網(wǎng)絡(luò)與參與機(jī)器會(huì)以多種方式發(fā)生故障。因此,有必要擁 有非受管安全工作組功能,其方式是成員機(jī)器和非受管安全工作組作為整體能預(yù)測(cè) 性地處理錯(cuò)誤、故障并且進(jìn)行清理和從這類錯(cuò)誤和故障的恢復(fù)。非受管安全工作組 一般可通過(guò)在開始原子事務(wù)之前利用標(biāo)記標(biāo)志來(lái)處理錯(cuò)誤與故障。如果因任何原因 事務(wù)失敗,則記錄該標(biāo)志并在下次開始服務(wù)時(shí)執(zhí)行清理。復(fù)制動(dòng)作被設(shè)計(jì)為在機(jī)器 變得可用時(shí)自動(dòng)繼續(xù),因而在復(fù)制期間的故障被自動(dòng)處理。如果在機(jī)器上的特征安 裝以任何方式被破壞,則服務(wù)在該機(jī)器上停止,并且機(jī)器不再參與非受管安全工作 組。
根據(jù)本發(fā)明的諸方面的非受管安全工作組支持眾多用戶情形。作為示例,一個(gè)用戶情形涉及家庭網(wǎng)絡(luò)中的"漫游家長(zhǎng)控制"。家長(zhǎng)可創(chuàng)建家長(zhǎng)控制限制,用于 限制孩子如何使用計(jì)算機(jī)。家長(zhǎng)控制限制被復(fù)制到組中的所有計(jì)算機(jī)。因而,當(dāng)孩 子登錄到組中的任何計(jì)算機(jī)上時(shí),家長(zhǎng)控制限制"跟隨"著孩子,而無(wú)論其正在使 用哪個(gè)計(jì)算機(jī)。另外,孩子的審核報(bào)告隨著孩子在組中的每個(gè)計(jì)算機(jī)上的活動(dòng)而被 更新。根據(jù)本發(fā)明的說(shuō)明性實(shí)施例,用戶情形支持在非受管安全工作組中漫游、共 享數(shù)據(jù)對(duì)象以及備份用戶的數(shù)據(jù)對(duì)象等等。用戶情形建立于非受管安全工作組內(nèi)的 信任與用戶數(shù)據(jù)復(fù)制之上。
本發(fā)明的一說(shuō)明性實(shí)施例提供一組接口 (應(yīng)用程序編程接口 (API)),該組 接口可由應(yīng)用程序或其它服務(wù)用于査詢非受管安全工作組的屬性和成員,并用于啟 動(dòng)非受管安全工作組內(nèi)的動(dòng)作。
本發(fā)明的說(shuō)明性實(shí)施例支持下列接口
IWorkgroupNetlnformation (工作組網(wǎng)絡(luò)信息) 一提供局域網(wǎng)內(nèi)的非受 管安全工作組和無(wú)聯(lián)系計(jì)算機(jī)的列表。
IWorkgroupInformation (工作組信息) 一提供有關(guān)給定非受管安全工 作組的信息,包括作為整體的特征的屬性和成員計(jì)算機(jī)列表。
IWorkgroupComputerlnformation (工作組計(jì)算機(jī)信息)—提供有關(guān)非 受管安全工作組內(nèi)的計(jì)算機(jī)的信息。
'IWorkgroupNetContro1 (工作組網(wǎng)絡(luò)控制) 一允許用戶創(chuàng)建新的非受管 安全工作組。
IWorkgroupControl (工作組控制)—允許用戶使計(jì)算機(jī)加入或離開非 受管安全工作組。
/『oAgra^Uw/orm油'ow接口提供有關(guān)非受管安全工作組的信息。
interface IWorkgroupNetlnformation : IUnknown
〃
//創(chuàng)建已知工作組的枚舉器.
〃
HRESULT GetWorkgroups([out] IEnum Workgroups** ppEnum);
〃〃按名稱提供已知工作組的接口. 〃如果計(jì)算機(jī)當(dāng)前屬于一個(gè)工作組,則pszWorkgroup
〃可以是空串,以指示當(dāng)前工作組。 〃
〃如果pszWorkgroupGUID是空串且當(dāng)前 〃計(jì)算機(jī)不是工作組的成員,則GetWorkgroup將 〃返回S—FALSE并且將承ppWorkgroup設(shè)置為NULL.
〃
HRESULT GetWorkgroup([in,string] LPCWSTR pszWorkgroupGUID, [out] IWorkgroupInformation** pp Workgroup);
〃
//創(chuàng)建已知的無(wú)聯(lián)系計(jì)算機(jī)的枚舉器.
〃
HRESULT GetComputers([out] IEnumString* * ppEnum);
〃
〃注冊(cè)變化通知 〃
HRESULT Advise([in] IUnknown* pUnk, [out] DWORD* pdwCookie); HRESULT Unadvise(而ORD dwCookie);
(枚舉工作組)禾卩/五"wmCom;wfeM (枚舉計(jì)算機(jī))都是從 /EWwmen^Zj/e (可枚舉)f底生白勺。TEwwml^orAgrowjw返回/J^or^grow/ /"/brmo^'OM接 口 ,其每一個(gè)代表一個(gè)已知的非受管安全工作組。/五mw7Com;^to^返回LPWSTR,
其每一個(gè)是與任何非受管安全工作組無(wú)聯(lián)系的已知計(jì)算機(jī)的名稱。
interface IEnumWorkgroups : IUnknown HRESULT Next([in] ULONG celt,
24[out, size_is(celt),
length—is(*pceltFetched)] IWorkgroupInformation** rgelt, ULONG* pceltFetched); HRESULT Skip([in] ULONG celt); HRESULT ResetO;
HRESULT Clone([out] IEnum Workgroups** ppEnum Workgroups);
interface IEnumComputers : IUnknown
HRESULT Nextflm] ULONG celt, [out, size—is(celt),
length—is(*pceltFetched)] IWorkgroupComputerlnformation** rgelt, ULONG* pceltFetched); HRESULT Skip([in] ULONG celt); HRESULT ResetO;
HRESULT Clone([out] IEnumComputers** ppEnumComputers);
對(duì)于變化通知,/『oAgraM/ A^/w/om2油'o":Mofv&e (通告)將接受 /『oAgrawpA^/w/(^ma"owJcfv^e (工作組網(wǎng)絡(luò)信息通告)。 interface IWorkgroupNetlnformationAdvise : IUnknown
〃
〃工作組發(fā)現(xiàn)的通知 〃
HRESULT OnWorkgroupFound([in] IWorkgroupInformation* pWI); HRESULT OnWorkgroupLost([in] IWorkgroupInformation* pWI);
〃
〃計(jì)算機(jī)發(fā)現(xiàn)的通知〃
HRESULT OnComputerFound([in, string] LPCWSTR pszComputer); HRESULT OnComputerLost([in, string] LPCWSTR pszComputer);
/『onfcgraw; /w/o,a"o"接口提供有關(guān)給定非受管安全工作組的信息,包括作 為整體的非受管安全工作組的屬性和成員計(jì)算機(jī)列表。
interface IWorkgroupInformation : IUnknown
〃
〃取工作組的主名稱 〃
〃返回的名稱串必須通過(guò)CoTaskMemFree()釋放.
〃
HRESULT GetName([out,string] LPWSTR* ppszName);
〃
〃取工作組的唯一身份(GUID) 〃
〃唯一身份在工作組的生存期內(nèi)從不改變 //-用它作參考
〃
HRESULT GetGUID([out,string] LPWSTR* ppszGUID);
〃
〃取創(chuàng)建工作組的時(shí)間 〃
HRESULT GetCreationTime([out] FILETIME* pft);
26〃取工作組中計(jì)算機(jī)的枚舉器 〃
HRESULT GetComputers([out] IEnumComputers** ppEnum);
〃
〃注冊(cè)變化通知 〃
HRESULT Advise([in] lUnknown* pUnk, [out] DWORD* pdwCookie); HRESULT Unadvise(DWORD dwCookie);
X寸 于 變 ^f七 通 失口 , /PForA:graw; /w/or附a"o".v^^v&e 接 受 /衡Agrow/ /"/b,fl"o"」£/v/"(工作組信息通告)。
interface IWorkgroupInformationAdvise : lUnknown
〃
〃工作組成員資格變化的通知.
〃
//注意.*不支持對(duì)應(yīng)于
〃除本地計(jì)算機(jī)所屬的工作組以外的任何工作組的 〃IWorkgroupInformation.
〃
HRESULT OnMemberAdded([in] IWorkgroupComputerlnformation* pComputer);
HRESULT OnMemberRemoved([in] IWorkgroupComputerlnformation* pComputer》
〃
〃工作組成員狀態(tài)變化的通知
27〃
HRESULT OnMemberStateChanged([in] IWorkgroupComputerlnformation*pComputer);
IWorkgroupComputerlnformation提供有關(guān)非受管安全工作組內(nèi)的計(jì)算機(jī)的信息。
interface IWorkgroupComputerlnformation : IUnknown
〃
〃取計(jì)算機(jī)名稱〃
〃返回的名稱串必須通過(guò)CoTaskMemFree()釋放.
〃
HRESULT GetName([out,string] LPWSTR* ppszName);
〃
〃取計(jì)算機(jī)的描述〃
〃返回的名稱串必須通過(guò)CoTaskMemFree()來(lái)釋放.
〃
HRESULT GetDescription([out,string] LPWSTR* ppszDescription);
〃
〃取計(jì)算機(jī)與工作組同步的最后時(shí)間〃
〃返回值可以是零,表示未知〃
HRESULT GetLastSyncTime([out] FILETIME* pft);〃
〃取計(jì)算機(jī)的唯一身份(GUID)〃
〃唯一身份在工作組中的計(jì)算機(jī)的生存期內(nèi)從不改變〃-使用它作為參考
〃
HRESULT GetUniqueID([out] GUID* pGUID);
IWorkgroupNetControl接口是經(jīng)由Querylnterface(QI)(查詢接口 )從IWorkgroupNetlnformation獲得的。
interface IWorkgroupNetControl : IUnknown
〃
〃創(chuàng)建新工作組,其中當(dāng)前無(wú)聯(lián)系的機(jī)器變成第一個(gè)成員,〃即創(chuàng)建一個(gè)計(jì)算機(jī)的工作組.
〃
HRESULT Create([in, string] LPCWSTRpszWorkgroupAdminPassword,[out] IWorkgroupInformation* * ppWorkgroup);
〃
〃使計(jì)算機(jī)不加入它其當(dāng)前工作組?!ㄔ撚?jì)算機(jī)隨后回到未加入狀態(tài).
〃
HRESULT Leave();iTF0^:graw;7C0"&0/接口是經(jīng)由QI從/『0rA:graw; /"/0m7fl"0"獲得的。interface IWorkgroupControl: IUnknown
〃
〃將計(jì)算機(jī)加入指定的工作組.
〃
HRESULT Join([in,string] LPCWSTR pszAdminPassword);
〃
〃從工作組驅(qū)逐指定計(jì)算機(jī) 〃
HRESULT Evict([in,string] LPCWSTR pszComputer);
圖9示出根據(jù)本發(fā)明的一說(shuō)明性實(shí)施例在非受管安全工作組中支持應(yīng)用程序 編程接口 (API)的流程圖900。如果應(yīng)用程序(例如如圖2所示的應(yīng)用程序121) 在步驟901生成API請(qǐng)求,則在步驟903解析該API請(qǐng)求以確定API類型和相應(yīng) 的參數(shù)(例如,非受管安全工作組id)。因此,API請(qǐng)求消息是針對(duì)所支持的API 類型來(lái)處理的,如步驟905-913所示。
應(yīng)用程序編程接口 (或簡(jiǎn)稱之為接口)可以被視為用于允許一個(gè)或多個(gè)代碼 段與由一個(gè)或多個(gè)其它代碼段提供的功能進(jìn)行通信或?qū)ζ溥M(jìn)行訪問(wèn)的任何機(jī)制、進(jìn) 程、協(xié)議?;蛘撸幊探涌诳梢员灰暈槟軌蛲ㄐ诺伛詈现疗渌?jì)算機(jī)的一個(gè)或多個(gè) 機(jī)制、方法、函數(shù)調(diào)用、模塊等的系統(tǒng)的組件的一個(gè)或多個(gè)機(jī)制、方法、函數(shù)調(diào)用、 模塊、對(duì)象等。上述語(yǔ)句中的術(shù)語(yǔ)"代碼段"意在包括一個(gè)或多個(gè)指令或代碼行, 并包括例如,代碼模塊、對(duì)象、子例程、函數(shù)等等,而無(wú)論應(yīng)用的術(shù)語(yǔ)是什么、或 代碼段是否被單獨(dú)編譯、或代碼段是否作為源代碼、中間代碼或目標(biāo)代碼來(lái)提供、 代碼段是否在運(yùn)行時(shí)系統(tǒng)或進(jìn)程中使用、或它們是否位于同一或不同機(jī)器上或跨多 個(gè)機(jī)器分布、或由代碼段表示的功能是否完全由軟件、完全由硬件或由硬件和軟件 的組合來(lái)實(shí)現(xiàn)。
概念上,編程接口可以被一般地査看,如圖IOA或圖IOB所示的。圖10A示 出了接口 "接口 1"為管道,第一和第二代碼段通過(guò)該管道進(jìn)行通信。圖IOB示出 了接口包括接口對(duì)象Il和12 (可以是或不是第一和第二代碼段的部分),它們?cè)试S系統(tǒng)的第一和第二代碼段通過(guò)介質(zhì)M進(jìn)行通信。在圖10B的視圖中,可以認(rèn)為
接口對(duì)象Il和I2為同一系統(tǒng)的分開的接口,并且也可以認(rèn)為對(duì)象Il和I2加上介 質(zhì)M構(gòu)成了接口。盡管圖IOA和IOB示出了雙向流程以及該流程的每一側(cè)上的接 口,但某些實(shí)現(xiàn)可僅具有一個(gè)方向上的信息流(或如下所述沒(méi)有信息流),或僅具 有一側(cè)的接口對(duì)象。作為示例而非局限,諸如應(yīng)用程序編程或程序接口 (API)、 入口點(diǎn)、方法、函數(shù)、子例程、遠(yuǎn)程過(guò)程調(diào)用和組件對(duì)象模型(COM)接口等術(shù) 語(yǔ)被包含在編程接口的定義之內(nèi)。
這類編程接口的各方面可包括第一代碼段向第二代碼段發(fā)送信息的方法(其 中,"信息"以其最廣泛的意義使用,并包括數(shù)據(jù)、命令、請(qǐng)求等等);第二代碼 段接收信息的方法;以及該信息的結(jié)構(gòu)、序列、句法、組織、模式、定時(shí)和內(nèi)容。 在這一點(diǎn)上,只要信息以接口所定義的方式傳輸,底層傳輸介質(zhì)本身可以對(duì)接口的 操作不重要,無(wú)論該介質(zhì)是有線還是無(wú)線,或兩者的組合。在某些情況下,信息可 以不在常規(guī)意義上的一個(gè)或兩個(gè)方向上傳遞,因?yàn)樾畔鬏斂梢曰蛘咄ㄟ^(guò)另一機(jī)制 (如,信息被放置在與代碼段之間的信息流分離的緩沖區(qū)、文件等中)或者不存在, 如當(dāng)一個(gè)代碼段僅訪問(wèn)由第二代碼段執(zhí)行的功能的時(shí)候。這些方面的任一個(gè)或所有 可以在給定的情況下是重要的,如,取決于代碼段是否是松耦合或緊耦合配置的系 統(tǒng)的一部分,并且因此該列表應(yīng)當(dāng)被認(rèn)為是說(shuō)明性的而非限制。
編程接口的這一概念對(duì)本領(lǐng)域的技術(shù)人員是已知的,并且可以通過(guò)閱讀上述 本發(fā)明的詳細(xì)描述而清楚。然而,有其它方法來(lái)實(shí)現(xiàn)編程接口,并且除非明顯地排 除,否則這些方法也由所附權(quán)利要求書包含在內(nèi)。這些其它方法看似比圖IOA和 10B的視圖更精密或復(fù)雜,但是它們?nèi)詧?zhí)行類似的功能來(lái)實(shí)現(xiàn)同一整體結(jié)果。現(xiàn)在 簡(jiǎn)要描述編程接口的某些說(shuō)明性替換實(shí)現(xiàn)。
可以通過(guò)將通信分裂成多個(gè)離散通信來(lái)間接地實(shí)現(xiàn)從一個(gè)代碼段到另一個(gè)的 通信。這在圖IIA和11B中示意性地描述。如圖所示,可以按照可分功能集來(lái)描 述某些接口。由此,可以分解圖IOA和10B的接口功能來(lái)達(dá)到相同的結(jié)果,如同 可以在數(shù)學(xué)上提供24,或2乘2乘3乘2—樣。因此,如圖11A所示,可以細(xì)分 由接口 "接口 1"提供的功能以將該接口的通信轉(zhuǎn)換成多個(gè)接口 "接口 1A"、"接 口 1B"、"接口 1C"等,而達(dá)到相同的結(jié)果。如圖IIB所示,由接口 II提供的 功能可以被細(xì)分成多個(gè)接口 Ila、 Ilb、 Ilc等,而達(dá)到相同的結(jié)果。類似地,從第 一代碼段接收信息的第二代碼段的接口 12可以被分解成多個(gè)接口 I2a、 I2b、 I2c等。 當(dāng)分解時(shí),包括在第一代碼段中的接口的數(shù)量不需要匹配包括在第二代碼段中的接
31口的數(shù)量。在圖IIA或11B的任一情況下,接口 "接口 1"和Il的功能性精神分 別與圖1B和1C的保持相同。接口的分解也可遵從結(jié)合、交換和其它數(shù)學(xué)性質(zhì), 使得分解較難識(shí)別。例如,操作的排序可以是不重要的,并且因此由接口完成的功 能可以在達(dá)到該接口之前由另一段代碼或接口較好地完成,或者由系統(tǒng)的單獨(dú)組件 執(zhí)行。此外,編程領(lǐng)域的普通技術(shù)人員可以理解有各種方式來(lái)作出達(dá)到相同結(jié)果的 不同函數(shù)調(diào)用。
在某些情況下,可能忽略、添加或重定義編程接口的某些方面(如參數(shù)),
而仍達(dá)到預(yù)期的結(jié)果。這在圖12A和12B中示出。例如,假定圖10A的接口 "接 口 l"包括函數(shù)調(diào)用^"fl"(7"; 械;^ec/^ow, ot^w()(求平方),這是包括三個(gè)參數(shù) /"pW (輸入)、/^ec/Wo"(精度)和ow^ W (輸出),并且由第一代碼段向第二代 碼段發(fā)出的調(diào)用。如果中間參數(shù)/^ec/s/o"在給定的情形下無(wú)關(guān)緊要,如圖12A所 示,則它也可以被忽略或甚至由一無(wú)意義(在這一情況下)參數(shù)來(lái)替換。也可以添 加無(wú)關(guān)緊要的另外的參數(shù)。在任一情況下,只要在輸入由第二代碼段求平方之后返 回輸出,就可以達(dá)到求平方的功能。;^ec&'ow也有可能對(duì)計(jì)算系統(tǒng)的某一下游或其 它部分是極有意義的參數(shù);然而, 一旦認(rèn)識(shí)到; "c^/ow對(duì)計(jì)算平方這一有限目的 不是必需的,它就可以被替換或忽略。例如,代替?zhèn)鬟f一個(gè)有效的值, 而是在不對(duì)結(jié)果產(chǎn)生不利影響的情況下傳遞諸如出生日期等無(wú)意義的值。類似地, 如圖12B所示,接口Il由接口I1'替換,它被重定義來(lái)忽略或向接口添加參數(shù)。接 口I2可類似地被重定義為接口I2',它被重定義來(lái)忽略不必要的參數(shù),或可在別處 處理的參數(shù)。此處的要點(diǎn)是在某些情況下,編程接口可包括對(duì)某一目的而言所不需 要的方面,諸如參數(shù),因此可以忽略或重定義它們,或在別處為其它目的處理它們。 合并兩個(gè)分開的代碼模塊的一些或全部功能,使得它們之間的"接口"改變 形式也是可行的。例如,圖10A和10B的功能可以被分別轉(zhuǎn)化成圖13A和13B的 功能。在圖13A中,圖10B的先前的第一和第二代碼段被合并成包含兩者的模塊。 在這一情況下,該代碼段仍可以彼此通信,但是該接口可以適用于更適合單個(gè)模塊 的形式。由此,例如,正式的Call (調(diào)用)和Return (返回)語(yǔ)句將不再必需,但 是依照接口 "接口 1"的類似處理或響應(yīng)仍是有效的。類似地,如圖13B所示,圖 10B的部分(或全部)接口I2可以內(nèi)聯(lián)地寫入接口I1來(lái)形成接口I1"。如圖所示, 接口 12被劃分成I2a和I2b,并且接口部分I2a與接口 II內(nèi)聯(lián)地編寫代碼來(lái)形成接 口 11"。對(duì)于一個(gè)具體的示例,考慮圖10B的接口 II執(zhí)行一函數(shù)調(diào)用square(/np械 ow0W),它由接口I2接收,接口I2在由第二代碼段處理了隨/";n^傳遞的的值(對(duì)
32其求平方)之后,使用傳回已求平方的結(jié)果。在這一情況下,由第二代碼
段執(zhí)行的處理(對(duì)/H/7W求平方)可以由第一代碼段在不調(diào)用該接口的情況下執(zhí)行。
可以通過(guò)將通信分裂成多個(gè)離散的通信來(lái)間接地實(shí)現(xiàn)從一個(gè)代碼段到另一個(gè)
的通信。這在圖14A和14B中示意性地描述。如圖14A所示,提供了一個(gè)或多個(gè) 中間件(脫離接口 (Divorce Interface),因?yàn)樗鼈儚脑冀涌诿撾x功能和/或接口 函數(shù)),以轉(zhuǎn)化第一接口 "接口 1"上的通信,使得它們符合不同的接口,在本情 況下為"接口 2A"、"接口 2B"和"接口 2C"。這可以在這樣一種情況中完成, 例如,存在被設(shè)計(jì)成依照"接口 1"協(xié)議與如操作系統(tǒng)進(jìn)行通信的應(yīng)用程序的已安 裝基礎(chǔ),但是然后該操作系統(tǒng)被改為使用不同的接口,在本情況下為接口 "接口 2A"、"接口 2B"和"接口 2C"。要點(diǎn)是改變了由第二代碼段使用的原始接口, 使得它不再與第一代碼段所使用的接口兼容,因此使用中介來(lái)令舊接口和新接口兼 容。類似地,如圖14B所示,可以使用脫離接口 DI1引入第三代碼段以從接口 II 接收通信,并使用脫離接口 DI2引入第三代碼段以向例如被重新設(shè)計(jì)成與DI2 — 起工作的接口 12a和I2b發(fā)送接口功能,但是提供相同的功能性結(jié)果。類似地,DI1 和DI2可以共同工作以將圖10B的接口 II和12的功能轉(zhuǎn)換到一新的操作系統(tǒng),而 提供相同或類似的功能性結(jié)果。
再一種可能的變型是動(dòng)態(tài)地重寫代碼,以使用別的東西來(lái)替換接口功能,而 仍達(dá)到相同的總體結(jié)果。例如,可以有這樣一種系統(tǒng),其中,向執(zhí)行環(huán)境(如由.Net 框架提供的環(huán)境、Java運(yùn)行時(shí)環(huán)境或其它類似的運(yùn)行時(shí)型環(huán)境)中的即時(shí) (Just-in-Time) (JIT)編譯器或解釋器提供了以中間語(yǔ)言(如Microsoft IL、 Java ByteCode等)呈現(xiàn)的代碼段??梢跃帉慗IT編譯器以動(dòng)態(tài)地將通信從第一代碼段 轉(zhuǎn)換到第二代碼段,g卩,令它們符合第二代碼段(原始或不同的第二代碼段)可能 需要的不同接口。這在圖15A和15B中有描述。如圖15A中所看見的,這一方法 類似于上述的脫離情形。它可以在這樣一種情況下完成,例如,應(yīng)用程序的已安裝 基礎(chǔ)被設(shè)計(jì)成依照"接口 1"協(xié)議來(lái)與操作系統(tǒng)進(jìn)行通信,但是然后該操作系統(tǒng)被 改為使用不同的接口。 JIT編譯器可以用于令來(lái)自已安裝基礎(chǔ)應(yīng)用程序的進(jìn)行中的 通信符合操作系統(tǒng)的新接口。如圖15B所描述的,這一動(dòng)態(tài)重寫接口的方法也可 應(yīng)用于動(dòng)態(tài)地分解或者改變接口。
應(yīng)當(dāng)注意,通過(guò)替換實(shí)施例實(shí)現(xiàn)與接口相同或相似的結(jié)果的上述情形也可以 用各種方式串行地、并行地或與其它干預(yù)代碼組合。由此,上文呈現(xiàn)的替換實(shí)施例 并非互斥,并且可以被混合、匹配和組合以產(chǎn)生與圖IOA和10B中所呈現(xiàn)的一般情形相同或等效的情形。也應(yīng)當(dāng)注意,對(duì)于大多數(shù)編程構(gòu)造,可以有此處未描述的 實(shí)現(xiàn)接口的相同或相似功能的其它類似的方式,但是它們?nèi)杂杀景l(fā)明的精神和范圍 來(lái)表示,g卩,應(yīng)當(dāng)注意,它至少部分地是由作為接口的值的基礎(chǔ)的接口表示的功能 和由其啟用的有利結(jié)果。
如本領(lǐng)域技術(shù)人員所意識(shí)到的,具有包含用于控制計(jì)算機(jī)系統(tǒng)的指令的相關(guān) 聯(lián)的計(jì)算機(jī)可讀介質(zhì)的計(jì)算機(jī)系統(tǒng)可用于實(shí)現(xiàn)在此公開的示例性實(shí)施例。計(jì)算機(jī)系
統(tǒng)可包括至少一個(gè)計(jì)算機(jī),如微處理器、數(shù)字信號(hào)處理器以及相關(guān)聯(lián)的外圍電子電 路。
盡管已經(jīng)用專用于結(jié)構(gòu)特征和/或方法動(dòng)作的語(yǔ)言描述了本主題,但要理解, 所附權(quán)利要求書中定義的主題不必限于上述特定特征或動(dòng)作。相反,上述特定特征 和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求書的示例形式而被公開的。
權(quán)利要求
1.一種第一計(jì)算機(jī)中的其上存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述指令被配置為執(zhí)行包括以下步驟的方法(a)使所述第一計(jì)算機(jī)加入一非受管安全工作組;(b)將與所述第一計(jì)算機(jī)相關(guān)聯(lián)的第一帳戶信息提供給第二計(jì)算機(jī)用于復(fù)制,所述第二計(jì)算機(jī)是所述非受管安全工作組的成員;(c)獲得與所述第二計(jì)算機(jī)相關(guān)聯(lián)的第二帳戶信息;以及(d)復(fù)制所述第二帳戶信息。
2. 如權(quán)利要求l所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還具有執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令(e) 確定所述第一帳戶信息的變化已經(jīng)發(fā)生;以及(f) 將所述變化提供給作為所述非受管安全工作組的成員的每個(gè)其它計(jì)算機(jī)。
3. 如權(quán)利要求2所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,(f)包括執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令①(1)向所述每個(gè)其它計(jì)算機(jī)通告所述變化。
4. 如權(quán)利要求3所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,(f)包括執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令(f)(2)從所述第二計(jì)算機(jī)接收帳戶版本信息;以及(f)(3)響應(yīng)于(f)(2),發(fā)送較新的用戶帳戶的列表。
5. 如權(quán)利要求3所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,(f)包括執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令-(f)(2)從所述第二計(jì)算機(jī)接收對(duì)用戶帳戶的列表的第一請(qǐng)求;以及(f)(3)響應(yīng)于(f)(2),將所述用戶帳戶的列表連同相應(yīng)的信息一起發(fā)送給所述第二計(jì)算機(jī),(f)(4)從所述第二計(jì)算機(jī)接收對(duì)一指定用戶帳戶的相關(guān)聯(lián)帳戶信息的第二請(qǐng)求;以及(f)(5)響應(yīng)于(f)(4),將所述相關(guān)聯(lián)帳戶信息發(fā)送給所述第二計(jì)算機(jī)。
6. 如權(quán)利要求5所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述指定用戶帳戶的至少一個(gè)屬性已經(jīng)被修改。
7. 如權(quán)利要求5所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述指定用戶帳戶已經(jīng)被添加到所述第一帳戶信息。
8. 如權(quán)利要求1所述計(jì)算機(jī)可讀介質(zhì),其特征在于,還具有執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令(e) 確定相關(guān)聯(lián)帳戶信息的變化已經(jīng)在除所述第一計(jì)算機(jī)以外的作為所述非受管安全工作組的成員的其它計(jì)算機(jī)上發(fā)生;(f) 從除所述第一計(jì)算機(jī)以外的計(jì)算機(jī)獲得指定帳戶信息;以及(g) 自動(dòng)在所述第一計(jì)算機(jī)與除所述第一計(jì)算機(jī)以外的計(jì)算機(jī)之間同步所述指定帳戶信息。
9. 如權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,(g)包括執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令(g)(l)檢測(cè)是否存在與所述指定帳戶信息的沖突;(g)(2)解決檢測(cè)到的沖突;(g)(3)用所述指定帳戶信息更新用戶帳戶數(shù)據(jù)結(jié)構(gòu);以及(g)(4)向所述非受管安全工作組的其它成員發(fā)布經(jīng)解決的沖突。
10. 如權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,(e)包括執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令(e) (l)從除所述第一計(jì)算機(jī)以外的計(jì)算機(jī)接收通告。
11. 如權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,(f)包括執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令-(f) (l)響應(yīng)于(d),請(qǐng)求除所述第一計(jì)算機(jī)以外的所述計(jì)算機(jī)提供根據(jù)版本信息的用戶帳戶列表。
12. 如權(quán)利要求ll所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,(f)包括執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令0)(2)從除所述第一計(jì)算機(jī)以外的所述計(jì)算機(jī)接收具有較新的用戶帳戶的列表。
13. 如權(quán)利要求2所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,刪除所述第一帳戶信息。
14. 一種支持非受管安全工作組的計(jì)算機(jī)系統(tǒng),所述計(jì)算機(jī)系統(tǒng)包括安全組服務(wù)模塊,它處理所述非受管安全工作組的創(chuàng)建、加入和操作;以及應(yīng)用程序接口 (API)模塊,它允許應(yīng)用程序獲得有關(guān)計(jì)算機(jī)網(wǎng)絡(luò)中的非受管安全工作組的信息、創(chuàng)建所述非受管安全工作組、加入所述非受管安全工作組、以 及離開所述非受管安全工作組。
15. 如權(quán)利要求14的計(jì)算機(jī)系統(tǒng),其特征在于,所述應(yīng)用程序接口模塊通過(guò) 查詢所述安全組服務(wù)模塊來(lái)向所述應(yīng)用程序提供計(jì)算機(jī)網(wǎng)絡(luò)內(nèi)的非受管安全工作 組和無(wú)聯(lián)系計(jì)算機(jī)的列表。
16. 如權(quán)利要求14所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述應(yīng)用程序模塊通過(guò)查詢所述安全組服務(wù)模塊來(lái)向所述應(yīng)用程序提供有關(guān)選定的非受管安全工作組的 信息,所述信息包括所述選定的非受管工作組的屬性和所述選定的非受管工作組的 成員計(jì)算機(jī)列表。
17. 如權(quán)利要求14所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述應(yīng)用程序模塊通過(guò)查詢所述安全組服務(wù)模塊來(lái)向所述應(yīng)用程序提供有關(guān)非受管安全工作組內(nèi)的計(jì)算 機(jī)的信息。
18. 如權(quán)利要求14所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述應(yīng)用程序模塊通過(guò) 指示所述安全組服務(wù)模塊來(lái)允許由所述應(yīng)用程序在所述計(jì)算機(jī)網(wǎng)絡(luò)內(nèi)創(chuàng)建新的非 受管工作組。
19. 如權(quán)利要求14所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述應(yīng)用程序模塊通過(guò)指示所述安全組服務(wù)模塊來(lái)允許由所述應(yīng)用程序使所述計(jì)算機(jī)系統(tǒng)加入或離開所 述計(jì)算機(jī)網(wǎng)絡(luò)中的非受管工作組。
20. —種第一計(jì)算機(jī)中的其上存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì), 所述指令被配置為執(zhí)行包括以下步驟的方法.-(a) 將自簽名證書發(fā)送給第二計(jì)算機(jī),以建立所述第一計(jì)算機(jī)的相關(guān)聯(lián)帳戶, 其中所述第二計(jì)算機(jī)是一非受管安全工作組的成員,并且所述第一計(jì)算機(jī)不是所述 非受管安全工作組的成員;(b) 存儲(chǔ)所述第二計(jì)算機(jī)的相關(guān)聯(lián)證書、共享秘密和所述非受管安全工作組的 復(fù)制的證書;(c) 在所述第一計(jì)算機(jī)上創(chuàng)建所述第二計(jì)算機(jī)的相應(yīng)帳戶;(d) 廣播所述第一計(jì)算機(jī)是所述非受管安全工作組的工作組成員;以及(e) 與所述第二計(jì)算機(jī)同步帳戶信息。
全文摘要
一種在沒(méi)有服務(wù)器的情況下支持非受管安全工作組以便在組中的計(jì)算機(jī)之間進(jìn)行公共用戶訪問(wèn)與安全資源共享的平臺(tái)。用戶帳戶通過(guò)在非受管安全工作組的每個(gè)計(jì)算機(jī)上復(fù)制和修改帳戶得到同步。一計(jì)算機(jī)向非受管安全工作組中的其它計(jì)算機(jī)通告帳戶信息的變化。如果非受管安全工作組中的計(jì)算機(jī)之一確定該變化沒(méi)有反映在當(dāng)前的帳戶信息中,則該計(jì)算機(jī)向發(fā)出通告的計(jì)算機(jī)請(qǐng)求經(jīng)更新的帳戶信息。在同步非受管安全工作組中的用戶帳戶之前,解決不同計(jì)算機(jī)上的用戶帳戶之間的任何沖突。而且,一應(yīng)用程序接口(API)允許應(yīng)用程序查詢網(wǎng)絡(luò)化計(jì)算機(jī)系統(tǒng)與非受管安全工作組的屬性,以及加入非受管安全工作組。
文檔編號(hào)G06F15/16GK101495986SQ200680025305
公開日2009年7月29日 申請(qǐng)日期2006年7月10日 優(yōu)先權(quán)日2005年7月12日
發(fā)明者A·K·雅達(dá)夫, C·古扎克, G·E·范德伯格特, J·布里扎克, M·薩姆基, N·J·托馬瑟里 申請(qǐng)人:微軟公司