專利名稱:用于協(xié)議的用戶映射信息擴展的制作方法
用于協(xié)議的用戶映射信息擴展發(fā)明背景證書是包含有關實體和實體公鑰的信息的數(shù)字地簽署的聲明。握手是兩個實 體(例如用戶和計算機、計算機和另一計算機、或程序和另一程序)之間的對話, 用于實體相互之間的標識和認證。如果證書沒有提供用于標識用戶的身份或領域的 足夠信息,則依照握手將證書映射到用戶帳戶或安全主體通常會失敗。使用證書和握手的服務的一個示例是安全信道。安全信道(也稱為Sdiannel) 是實現(xiàn)SSL/TLS(安全套接字層/傳輸層安全性)協(xié)議的安全服務提供者接口 (SSPI) 下的安全支持提供者(SSP)的名稱。SSPI包含多個安全協(xié)議實現(xiàn)。SchannelSSP 插入在SSPI下。同樣地,KerberosSSP插入在SSPI下。Schannel主要用于需要諸 如通過SSL或TLS的超文本傳輸協(xié)議(HTTP)通信的增強的安全性的因特網(wǎng)應用 程序。例如,諸如TLS或SSL等Schannel協(xié)議需要憑證來認證服務器和(可任選 地)客戶機。Schannel安全協(xié)議需要服務器認證,其中服務器向客戶機提供其身份 的證明。服務器可能在任何時候請求客戶機認證。Schannel憑證可以是X.509證書。來自證書的公鑰和私鑰信息被用于認證服 務器和(可任選地)客戶機。當客戶機和服務器交換生成和交換會話密鑰所需的信 息時,這些密鑰也被用于提供消息完整性。Schannel是實現(xiàn)SSL和TLS的模塊,SSL和TLS是用于在服務器上建立用戶 認證的客戶機/服務器協(xié)議。該認證得到可由服務器用于客戶機扮演(client impersonation)的令牌。Schannel使用證書來認證用戶(將證書映射到用戶帳戶)。一旦用戶(客戶機)向服務器標識了其自身,服務器就必須(為用戶的帳戶) 定位授權(quán)機構(gòu)。這通常通過使用X.509證書中的用戶主體名稱(UPN)擴展來完成。 然而,如果不存在UPN或者如果UPN沒有提供用于標識用戶的領域(在跨森林的 情況下)的足夠的信息,則將證書映射到用戶帳戶(例如現(xiàn)用目錄用戶帳戶)會失 敗。類似的問題對由使用S4U的Kerberos將證書映射到用戶帳戶也存在。發(fā)明概述在認證協(xié)議中提供了用戶映射信息(例如,以"提示"的形式)。例如,客 戶機在認證期間向服務器提供用戶映射信息。提示用于協(xié)助標識用戶帳戶位于何 處,由此提供將證書映射到用戶帳戶的能力。例如,可以為TLS協(xié)議改變數(shù)據(jù)格式(例如最終(on the wire)格式),用于 發(fā)送域名和用戶名信息。例如,提示(例如以TLS擴展機制的形式)被用于發(fā)送 域/用戶名信息,以協(xié)助服務器將用戶的證書映射到帳戶。TLS擴展機制為提供了 由客戶機發(fā)送的映射數(shù)據(jù)的完整性和真實性。在服務器側(cè),來自協(xié)議層的信息被提取和映射,并被用于將用戶證書映射到 帳戶和生成安全(用戶扮演)令牌。類似地,Kerberos協(xié)議的擴展允許提供映射提示和證書并返回用戶令牌。附圖簡述
圖1是示例性映射方法的流程圖。圖2是使用握手的示例性客戶機一服務器映射系統(tǒng)的圖示。 圖3是另一示例性映射方法的流程圖。圖4是示出其中可實現(xiàn)本發(fā)明的各方面的示例性計算環(huán)境的框圖。 詳細描述在可作為客戶機/服務器認證和密鑰交換步驟的一部分交換的消息中提供包含用戶映射信息的提示。例如,客戶機可在認證期間將用戶映射信息提供給服務器。 提示(例如,以TLS擴展機制的形式)可用于發(fā)送客戶機的域/用戶名信息,以協(xié) 助服務器將用戶的證書映射到帳戶。該擴展機制提供了由客戶機發(fā)送的映射數(shù)據(jù)的 完整性和真實性。用戶提供關于在哪里找到正確的帳戶或域控制器(指向或以其它 方式維護正確的帳戶)的提示。基于證書中的提示和其他信息,將用戶映射到帳戶。 提示可以在用戶登錄時由用戶提供。因此,證書被映射到身份以認證用戶。提示與證書信息一起發(fā)送以執(zhí)行綁定。 現(xiàn)有的協(xié)議可以被擴展以傳遞附加映射信息(提示)來執(zhí)行綁定。圖1是一個示例性映射方法的流程圖。在步驟10處,客戶機向服務器發(fā)送數(shù) 據(jù)或信號,以指示正在使用映射擴展(例如包含映射信息或提示)。在步驟15處, 服務器會確認它是否能處理該擴展。在步驟20處,映射擴展被發(fā)送給服務器,例如作為用戶映射數(shù)據(jù)(UserMappingData),作為散列。如果服務器能處理該擴展, 那么在步驟25處,服務器使用映射擴展數(shù)據(jù)(提示)來確定與誰交談。于是,雙 方在步驟30處得到應用程序數(shù)據(jù)。期望擴展提供者(例如Schannel)來發(fā)送包括用戶的主體名稱(UPN)和域 的信息,以協(xié)助服務器側(cè)執(zhí)行從證書到用戶帳戶的映射。這在UPN不在證書本身 中的情況下和部署多個現(xiàn)用目錄時特別有用。映射信息也可以是例如公共名稱或帳 戶名。關于圖2的客戶機一服務器映射系統(tǒng)描述的示例性SSL握手支持基于客戶機 和服務器的X.509證書的相互認證,并經(jīng)由從主秘密得出的會話密鑰來提供客戶機 /服務器通信信道的后續(xù)保密性和完整性。期望在握手期間指定和發(fā)送UPN和域名(用戶帳戶位于其中)。在握手完成 后,信息由雙方驗證為安全的,以確保沒有中間人篡改信息。對于客戶機側(cè)認證,安全支持或協(xié)議提供者(例如Schannd)可分別在"證書 (Certificate)"和"證書驗證(CertificateVerify)"消息中發(fā)送用戶的證書和相應的 簽名。當完成握手時,服務器側(cè)可試圖將證書映射到用戶帳戶,以生成扮演令牌。圖2示出了如何將用戶映射信息集成到諸如TLS握手等握手中。雖然描述了 TLS握手,但是構(gòu)想本發(fā)明可用于任何涉及握手、證書和/或認證的協(xié)議。在最初 的"問好(Hdlo)"消息交換中,客戶機101和服務器130協(xié)商是否支持映射擴 展(例如經(jīng)由可添加到客戶機和服務器問好的擴展部分的新的擴展類型)。期望在 用戶證書消息之后的新消息(例如"用戶映射數(shù)據(jù)(user_mapping—data)")中發(fā) 送用戶映射數(shù)據(jù)(例如,主體和域名)。如上所述,關于TLS消息,將用戶映射信息從客戶機傳輸給服務器可使用TLS 擴展??梢栽诳蛻魴C問好中建立和發(fā)送新的擴展(例如用戶映射(user—mapping))。 如果服務器將同一擴展(用戶映射)置于服務器問好中,則這會向客戶機表示服務器 理解該擴展。如果服務器不理解該擴展,則它將用非擴展的服務器問好來響應,而 客戶機會如常繼續(xù)而忽略擴展。如果理解該新的擴展,那么客戶機將在客戶機證書消息之前注入新的握手消 息。該消息的定位允許服務器在其必須生效(和映射)證書之前接收映射信息。服 務器接著解析該消息、提取客戶機的域、并將其存儲在內(nèi)容中以供證書映射時使用。 "服務器處理"完全包含在映射功能中。此時,如果有擴展信息,就使用它, 否則處理如常進行。期望的是,沒有擴展時不會有出錯。由于客戶機是該擴展的發(fā)起者,因此確定客戶機何時將發(fā)送用戶映射信息。 雖然總是能發(fā)送該信息,但是可能不期望只是在任何時間將該信息廣播到任何服務 器,因為它會泄露客戶機和服務器正在使用的網(wǎng)絡基礎結(jié)構(gòu)。另一方面,當泄露信 息時,可能不會作出隱藏它的嘗試。為了避免過多地發(fā)送用戶映射信息,可使用各種示例性技術(shù)來壓制其分發(fā),諸如(1)客戶機僅在"Hello"交換中同意時發(fā)送擴展,由此防止將信息發(fā)送到不 理解用戶映射擴展的服務器,以及(2)客戶機在服務器在要發(fā)送到的"安全"域 的列表上時才發(fā)送用戶映射信息。舉例而言,該列表可以在注冊表中建立。由此,如圖3所示, 一種方法可包括在步驟200處將證書和簽名從用戶(例 如客戶機)發(fā)送至接收者(例如服務器)。接著可以在步驟210處判定是否應該向 接收者發(fā)送提示或映射信息。如果是,那么在步驟220處,將提示或映射信息發(fā)送 給接收者,并且使用提示或映射信息將證書映射到用戶帳戶。如果不應該向接收者 發(fā)送提示或映射信息,那么在步驟230處試圖將證書映射到用戶帳戶,而無需提示 的幫助??梢栽诰幊躺匣蚪换サ靥幚韺τ谝l(fā)送的用戶映射信息的收集。例如,為了 建立憑證以供在Schannel中使用,用戶(例如代表最終用戶行動的客戶機程序) 可構(gòu)建SCHANNEL—CRED ( Schannel憑證)結(jié)構(gòu),并將其傳遞給 AcquireCredentialsHandle()(獲取憑證句柄)。SCHANNEL—CRED結(jié)構(gòu)使得用戶 能夠提供證書(CERT—CONTEXT)(證書上下文),ACH()接著使用該證書 (CERT—CONTEXT)來構(gòu)建憑證(它接著附加客戶機的證書)?;蛘?,用戶可以不 指定證書,而是讓Schannel選擇用戶的默認證書。作為如何實現(xiàn)提示以提取UPN和DNS域名的示例,可使用NameUserPrincipal (名稱用戶主體)禾卩 NameDnsDomain (名稱 DSN 域)的 EXTENDED_NAME_FORMAT (擴展名稱格式)兩次調(diào)用GetUserNameEx()(獲 取用戶名擴展)。這兩者都可以被附加到PSPCredentialGroup (PSP憑證組)結(jié)構(gòu) 上??梢栽谙⒅刑峁┯脩裘氖纠蕴崾荆鏤NICODE—STRING UserPrincipalName (用戶主體名稱)。可以在消息中提供的域名的示例性提示,如 UNICODE—STRING DomainName (域名)。作為示例,InitializeSecurityContext()(初始化安全上下文)接收上下文的目標 (即它正在與之建立安全上下文的服務器的名稱)作為其參數(shù)之一。 InitializeSecurityContext將調(diào)用CheckUserMappingTarget()(檢査用戶映射目標),并將以下PSPContext (PSP上下文)結(jié)構(gòu)標志設置為結(jié)果 BOOL fSendMappingExtension默認地,該標志不被設置,這樣使得客戶機不發(fā)送擴展。調(diào)試日志將指示設置或保 留標志的決定。作為另一示例,如果成功地協(xié)商了用戶映射擴展,那么期望將UPN和域置于 PSPContext結(jié)構(gòu)中。信息將在映射過程的開始處使用,并被傳遞給基于證書的 LsaLogonUser() (Lsa登錄用戶)(S4U2Self)的版本。以上示例的各方面針對涉及SSL和TLS的協(xié)議。本發(fā)明的各方面也可以在諸 如Kerberos等協(xié)議中實施。Kerberos擴展可提供證書和可選地該證書所映射到的 用戶名。KDC (密鑰分發(fā)中心)可執(zhí)行帳戶映射和生效,并將客戶機可用于構(gòu)造 例如用于授權(quán)的令牌的授權(quán)數(shù)據(jù)發(fā)回。更具體地,例如,LsaLogonUser()調(diào)用可包括提示。名稱提示被傳遞給 LsaLogonUser()。例如,在消息中,如果提供了 UNICODE—STRINGDomainName〃 可任選,則它被用于定位森林(forest);而如果提供了 UNICODE—STRING U^erName//可任選,則它被用于定位帳戶。域名告訴客戶機(例如用戶正登錄的本 地機器)哪個域包含映射的用戶帳戶。允許調(diào)用者提供用戶名,以允許將證書映射到多個用戶帳戶。如果提供了用 戶名,那么KDC將使用它來定位用戶帳戶,并驗證證書被映射到該帳戶。如果沒有提供用戶名提示而提供了域名,那么Kerberos客戶機使用域名來定 位KDC以進行認證,而KDC會將證書映射至用戶帳戶。期望支持不包含 subjectAltName (主體替換名稱)擴展的客戶機證書。這種證書可以被映射到現(xiàn)用 目錄帳戶。為證書的帳戶映射問題提供了一般和可擴展的解決方案。如果證書包含subjectAltName/UPN擴展,那么KDC將使用它來映射客戶機。 在這種情況下,期望客戶機證書滿足NT—AUTH策略。如果基于UPN沒有發(fā)現(xiàn)用 戶對象,那么認證應該失敗。如果在證書中沒有UPN,那么KDC構(gòu)造"X509:<I><S>" AltSecID (替換會 話ID)名稱以供查找。在這種情況下,客戶機證書無需滿足NT—AUTH策略。如果在證書中沒有UPN且在上述步驟中沒有定位到用戶對象,那么可以基于 主體的區(qū)別名稱來査找客戶機帳戶,KDC構(gòu)造"X509:<S>" AltSecID名稱以供查 找。在這種情況下,期望客戶機證書滿足NT—AUTH策略。如果在證書中沒有UPN且在上述步驟中沒有定位到用戶對象,那么KDC使用主體和序列號來構(gòu)造"X509:<I><SR>" AltSecID以供査找。在這種情況下,客 戶機證書無需滿足NT_AUTH策略。如果在證書中沒有UPN且沒有定位到用戶對象,并且客戶機證書包含SKI, 那么KDC構(gòu)造"X509:〈SKI乂, AltSecID以供查找。在這種情況下,客戶機證書無 需滿足NT—AUTH策略。如果在證書中沒有UPN且在上述步驟中沒有定位到用戶對象,那么KDC構(gòu) 造"X509:<SHA1-PUKEY>" AltSecID值以供査找。在這種情況下,客戶機證書無 需滿足NT—AUTH策略。如果在證書中沒有UPN且在上述步驟中沒有定位到用戶對象,那么基于 SAN/822名稱來查找客戶機帳戶,KDC構(gòu)造"X509:<RFC822>" AltSecID以供査 找。在這種情況下,期望客戶機證書滿足NT—AUTH策略。注意,上述步驟和準則可單獨或以任何組合或順序使用。也可以使用其他步 驟或準則。期望成功定位帳戶的第一步驟或準則獲勝且搜索停止。但是如果有將相 同的證書映射到不同用戶帳戶的兩種映射方法,則可能會有配置錯誤。注意,如果客戶機的證書不具有UPN,而證書中客戶機的DN與用戶帳戶的 DN匹配,但是該用戶帳戶未被映射,那么驗證應該失敗。示例性計算環(huán)境圖4示出了其中可實現(xiàn)本發(fā)明的適當?shù)挠嬎阆到y(tǒng)環(huán)境800的示例。計算系統(tǒng) 環(huán)境800僅是合適的計算環(huán)境的一個示例,而并非旨在對本發(fā)明的使用范圍或功能 提出任何限制。計算環(huán)境800也不應被解釋為具有與示例性操作環(huán)境800中所示的 組件中的任一個或其組合相關的任何依賴性或要求。本發(fā)明可以使用許多其他通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置來操作。適用于本 發(fā)明的公知的計算系統(tǒng)、環(huán)境和/或配置的示例包括但不限于個人計算機、服務器 計算機、手持式或膝上設備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、可編 程消費電子設備、網(wǎng)絡PC、小型機、大型計算機機以及包括任一上述系統(tǒng)或設備 的分布式計算環(huán)境等。本發(fā)明可以在諸如程序模塊等由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下 文中描述。通常,程序模塊包括執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、 程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等。本發(fā)明的實施例也可以在分布式計算環(huán)境中實 現(xiàn),其中由通過通信網(wǎng)絡或其他數(shù)據(jù)傳輸介質(zhì)鏈接的遠程處理設備來執(zhí)行任務。在分布式計算環(huán)境中,程序模塊和其他數(shù)據(jù)可以位于包括存儲器存儲設備的本地和遠 程計算機存儲介質(zhì)兩者中。參考圖4,用于實現(xiàn)本發(fā)明的示例性系統(tǒng)包括計算機810形式的通用計算設 備。計算機810的組件可包括但不限于,處理單元820、系統(tǒng)存儲器830以及將包 括系統(tǒng)存儲器的各類系統(tǒng)組件耦合至處理單元820的系統(tǒng)總線821。系統(tǒng)總線821 可以是若干種總線結(jié)構(gòu)的任一種,包括存儲器總線或存儲器控制器、外圍總線以及 使用各類總線體系結(jié)構(gòu)的任一種的局部總線。作為示例而非限制,這類體系結(jié)構(gòu)包 括工業(yè)標準體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、增強ISA (EISA) 總線、視頻電子技術(shù)標準協(xié)會(VESA)局域總線和外圍部件互連(PCI)總線(也 稱為背板(Mezzanine)總線)。計算機810通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是可由計算 機810訪問的任一可用介質(zhì),包括易失性和非易失性介質(zhì)、可移動和不可移動介質(zhì)。 作為示例而非限制,計算機可讀介質(zhì)包括計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲 介質(zhì)包括以用于儲存諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息 的任一方法或技術(shù)實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。計算機存儲 介質(zhì)包括但不限于,RAM、 ROM、 EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、 數(shù)字多功能盤(DVD)或其它光盤存儲、磁盒、磁帶、磁盤存儲或其它磁性存儲 設備、或可以用來儲存所需信息并可由計算機810訪問的任一其它介質(zhì)。通信介質(zhì) 通常具體化為諸如載波或其它傳輸機制等已調(diào)制數(shù)據(jù)信號中的計算機可讀指令、數(shù) 據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任一信息傳送介質(zhì)。術(shù)語"已調(diào)制數(shù)據(jù)信號"指以對信號中的信息進行編碼的方式設置或改變其一個或多個特征的信號。作為示 例而非限制,通信介質(zhì)包括如有線網(wǎng)絡或直接接線連接等有線介質(zhì),以及諸如聲學、射頻(RF)、紅外等無線介質(zhì)和其它無線介質(zhì)。上述任何介質(zhì)的組合也應當包括 在計算機可讀介質(zhì)的范圍之內(nèi)。系統(tǒng)存儲器830包括易失性和/或非易失性存儲器形式的計算機存儲介質(zhì),如 ROM 831和RAM 832。包含如在啟動時有助于在計算機810內(nèi)的元件之間傳輸信 息的基本例程的基本輸入/輸出系統(tǒng)833(BIOS)通常儲存在ROM 831中。RAM 832 通常包含處理單元820立即可訪問和/或當前正在操作的數(shù)據(jù)和/或程序模塊。作為 示例而非限制,圖4示出了操作系統(tǒng)834、應用程序835、其它程序模塊836和程 序數(shù)據(jù)837。計算機810還可包括其它可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)。僅作示例,圖4示出了對不可移動、非易失性磁性介質(zhì)進行讀寫的硬盤驅(qū)動器841;對可移動、非易失性磁盤852進行讀寫的磁盤驅(qū)動器851;以及對可移動、非易失 性光盤856,如CDROM或其它光學介質(zhì)進行讀寫的光盤驅(qū)動器855??稍谑纠?操作環(huán)境中使用的其它可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)包括但 不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM 等等。硬盤驅(qū)動器841通常通過諸如接口 840等不可移動存儲器接口連接到系統(tǒng)總 線821,磁盤驅(qū)動器851和光盤驅(qū)動器855通常通過諸如接口 850等可移動存儲器 接口連接到系統(tǒng)總線821。驅(qū)動器及其相關聯(lián)的計算機存儲介質(zhì)向計算機810提供了計算機可讀指令、 數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲。例如,在圖4中,硬盤驅(qū)動器841被示為 儲存操作系統(tǒng)844、應用程序845、其它程序模塊846和程序數(shù)據(jù)847。注意,這 些組件可以與操作系統(tǒng)834、應用程序835、其它程序模塊836和程序數(shù)據(jù)837相 同,也可以與它們不同。這里對操作系統(tǒng)844、應用程序845、其它程序模塊846 和程序數(shù)據(jù)847給予不同的標號是為了說明至少它們是不同的副本。用戶可以通過 諸如鍵盤862和定位設備861 (通常指鼠標、跟蹤球或觸摸墊)等輸入設備向計算 機810輸入命令和信息。其它輸入設備(未示出)可包括話筒、操縱桿、游戲墊、 圓盤式衛(wèi)星天線、掃描儀等等。這些和其它輸入設備通常通過耦合至系統(tǒng)總線的用 戶輸入接口 860連接至處理單元820,但是也可以通過其它接口和總線結(jié)構(gòu)連接, 諸如并行端口、游戲端口或通用串行總線(USB)。監(jiān)視器891或其它類型的顯示 設備也通過接口,諸如視頻接口 890連接至系統(tǒng)總線821。除監(jiān)視器之外,計算機 也可包括其它外圍輸出設備,諸如揚聲器897和打印機896,它們通過輸出外圍接 口 895連接。計算機810可使用到一個或多個諸如遠程計算機880等遠程計算機的邏輯連 接在網(wǎng)絡化環(huán)境中操作。遠程計算機880可以是個人計算機、服務器、路由器、網(wǎng) 絡PC、對等設備或其它常見的網(wǎng)絡節(jié)點,并通常包括許多或所有以上相關于計算 機810所描述的元件,盡管在圖4中僅示出了存儲器存儲設備881。所描述的邏輯 連接包括LAN871和WAN873,但也可包括其它網(wǎng)絡。這類聯(lián)網(wǎng)環(huán)境常見于辦公 室、企業(yè)范圍計算機網(wǎng)絡、內(nèi)聯(lián)網(wǎng)以及因特網(wǎng)。當在LAN聯(lián)網(wǎng)環(huán)境中使用時,計算機810通過網(wǎng)絡接口或適配器870連接至 LAN 871。當在WAN聯(lián)網(wǎng)環(huán)境中使用時,計算機810通常包括調(diào)制解調(diào)器872或 用于通過諸如因特網(wǎng)等WAN 873建立通信的其它裝置。可以是內(nèi)置或外置的調(diào)制解調(diào)器872通過用戶輸入接口 860或其它適當?shù)臋C制連接至系統(tǒng)總線821。在網(wǎng)絡 化環(huán)境中,相關于計算機810所描述的程序模塊或其部分可儲存在遠程存儲器存儲 設備中。作為示例而非限制,圖4將遠程應用程序885示為駐留在存儲器設備881 上??梢岳斫?,所示出的網(wǎng)絡連接是示例性的,也可以使用在計算機之間建立通信 鏈路的其它手段。如上所述,雖然結(jié)合各種計算設備描述了本發(fā)明的示例性實施例,但是基本 的概念可以應用到任何計算設備或系統(tǒng)。這里所描述的各種技術(shù)可以結(jié)合硬件、軟件或在適當時用它們的組合來實現(xiàn)。 因此,本發(fā)明的方法和裝置或某些方面或其部分可以采用包含在有形介質(zhì)中的程序 代碼(即指令)的形式,這些有形介質(zhì)諸如軟盤、CD-ROM、硬盤或任何其它的機 器可讀存儲介質(zhì),其中當程序代碼被載入到一機器(諸如計算機)中并由其執(zhí)行時, 該機器成為用于實現(xiàn)本發(fā)明的裝置。在可編程計算機上執(zhí)行程序代碼的情況下,計 算設備一般包括處理器、處理器可讀的存儲介質(zhì)(包括易失性和非易失性存儲器和 /或存儲元件)、至少一個輸入設備和至少一個輸出設備。如果期望,程序可以用 匯編或機器語言來實現(xiàn)。在任一情況下,語言可以是編譯或翻譯語言并且與硬件實 現(xiàn)相結(jié)合。本發(fā)明的方法和裝置也可以用在某些傳輸介質(zhì)上發(fā)送的程序代碼的形式來實 施,這些傳輸介質(zhì)諸如在電線或電纜上、通過光纖或經(jīng)由任何其它形式的傳輸,其 中當接收到程序代碼,將其載入到機器并由該機器執(zhí)行程序代碼時,該機器成為實 現(xiàn)本發(fā)明的裝置,所述機器諸如EPROM、門陣列、可編程邏輯器件(PLD)、客戶 計算機等等。當在通用處理器上實現(xiàn)時,程序代碼與處理器相結(jié)合以提供用于調(diào)用 本發(fā)明的功能的唯一裝置。此外,結(jié)合本發(fā)明使用的任何存儲技術(shù)可以總是硬件和 軟件的組合。雖然結(jié)合各種附圖的優(yōu)選實施例描述了本發(fā)明,但是應該理解可以使用其它 類似的實施例,或者可以對所描述的實施例作出修改和添加以執(zhí)行本發(fā)明相同的功 能而不背離本發(fā)明。因此,本發(fā)明不應被限于任何單一的實施例,而應該按照符合 所附權(quán)利要求書的廣度和范圍來解釋。
權(quán)利要求
1.一種認證方法,包括將映射擴展指示符從第一計算設備發(fā)送到第二計算設備;依照所接收到的映射擴展指示符,確認所述第二計算設備能夠接受映射信息;以及將所述映射信息發(fā)送給所述第二計算設備。
2. 如權(quán)利要求1所述的方法,其特征在于,還包括基于所述映射信息來定位 帳戶或認證服務器。
3. 如權(quán)利要求2所述的方法,其特征在于,所述認證服務器包括域控制器。
4. 如權(quán)利要求2所述的方法,其特征在于,還包括在定位所述帳戶或認證服 務器之后得到應用程序數(shù)據(jù)并驗證所述應用程序數(shù)據(jù)。
5. 如權(quán)利要求l所述的方法,其特征在于,還包括將證書從所述第一計算設 備發(fā)送到所述第二計算設備。
6. 如權(quán)利要求5所述的方法,其特征在于,還包括基于所述映射信息和所述 證書,將用戶映射到帳戶。
7. 如權(quán)利要求5所述的方法,其特征在于,還包括使用所述映射信息將所述 證書映射到用戶。
8. 如權(quán)利要求1所述的方法,其特征在于,還包括判定所述第二計算設備是 否支持所述映射信息,如果是,則確認所述第二計算設備能夠接受所述映射信息, 并將所述映射信息發(fā)送給所述第二計算設備。
9. 一種認證方法,包括將映射信息和證書從第一計算設備發(fā)送到第二計算設備;以及 基于所述映射信息定位帳戶或認證服務器控制器。
10. 如權(quán)利要求9所述的方法,其特征在于,所述認證服務器包括域控制器。
11. 如權(quán)利要求9所述的方法,其特征在于,所述映射信息包括域名提示或 用戶名提示。
12. 如權(quán)利要求9所述的方法,其特征在于,所述映射信息是協(xié)議擴展機制 的形式。
13. 如權(quán)利要求9所述的方法,其特征在于,還包括基于所述映射信息和所述證書來認證用戶。
14. 如權(quán)利要求9所述的方法,其特征在于,還包括使用所述映射信息將所 述證書映射到用戶帳戶。
15. 如權(quán)利要求9所述的方法,其特征在于,還包括在將所述映射信息發(fā)送 給所述第二計算設備之前判定所述第二計算設備是否支持所述映射信息。
16. 如權(quán)利要求15所述的方法,其特征在于,還包括向所述第一計算設備確 認所述第二計算設備能夠接受所述映射信息。
17. —種其上存儲有數(shù)據(jù)結(jié)構(gòu)的計算機可讀介質(zhì),所述數(shù)據(jù)結(jié)構(gòu)包括 映射信息;以及證書。
18. 如權(quán)利要求17所述的計算機可讀介質(zhì),其特征在于,所述映射信息是協(xié) 議擴展的形式。
19. 如權(quán)利要求17所述的計算機可讀介質(zhì),其特征在于,所述映射信息包括 域名提示、用戶名提示或用于將所述證書映射到帳戶的數(shù)據(jù)。
20. 如權(quán)利要求17所述的計算機可讀介質(zhì),其特征在于,所述映射信息是提 供所述證書和所述證書映射到其上的可任選用戶名的Kerberos擴展。
全文摘要
在可在認證握手期間交換的消息中提供包含用戶映射信息的提示。例如,客戶機可在認證期間向服務器提供用戶映射信息。提示(例如以TLS擴展機制的形式)可用于發(fā)送客戶機的域/用戶名信息,以協(xié)助該服務器將用戶的證書映射到帳戶。該擴展機制提供由該客戶機發(fā)送的映射數(shù)據(jù)的完整性和真實性。用戶提供有關在哪里找到正確的帳戶或域控制器(指向或以其它方式維護正確的帳戶)的提示?;谠撎崾竞妥C書中的其他信息,用戶被映射到帳戶。該提示可以在用戶登錄時由用戶提供。因此,證書被映射到身份上,以認證該用戶。提示與該證書信息一起發(fā)送以執(zhí)行綁定??蓴U展現(xiàn)有協(xié)議來傳遞附加映射信息(提示)以執(zhí)行該綁定?;赬.509證書和映射用戶名提示,定義對Kerberos的供應商專用擴展,以獲取授權(quán)數(shù)據(jù)。
文檔編號H04L9/00GK101218779SQ200680025299
公開日2008年7月9日 申請日期2006年7月12日 優(yōu)先權(quán)日2005年7月14日
發(fā)明者C·J·克勞爾, D·B·克勞斯, G·梅德文斯基, J·保爾, K·賈格納森, L·朱, P·J·里奇 申請人:微軟公司