在目錄服務之間同步憑證散列的制作方法
【專利說明】在目錄服務之間同步憑證散列
[0001]Μ?
[0002] 越來越多的組織正在使用云服務應用及資源而不是只使用現場應用和資源(其 中與云相反,"現場"指在組織的控制下,不考慮任何物理位置)。與現場應用和資源一樣, 用戶需要憑證來訪問現存云服務。注意某些(通常很小的)組織僅將云用于他們基于憑證 的身份基礎結構和應用,并且這樣使用云來處理基于憑證的認證。
[0003]很大的組織現場運行目錄服務(其一個示例是微軟公司的包括其域控制器服務 器的ActiveDirectory? )來認證用戶,并使應用發現用戶帳戶以及帳戶之間的聯系。此 外,這允許這樣的組織為安全的目的保留對它們的憑證相關的數據的完全控制而不是將數 據提供給云。大的組織使用(例如,在ActiveDirectory?場景中)可被稱為聯盟/聯盟 服務,其包括用于個體用戶利用他們的現場憑證來訪問云中的資源的機制。
[0004]憑證不被同步;相反,云將登錄請求等引導到現場身份基礎結構以認證,允許用戶 僅登錄一次。
[0005]然而,聯盟的安裝和維護相對來說很昂貴,并且因此僅大組織趨向使用聯盟。許多 較小組織想要使用相同用戶名和密碼來訪問現場資源和應用以及云資源和應用。然而,沒 有聯盟,需要某種方式來處理現場憑證和云憑證。
[0006]-種解決方案是截取明文用戶口令來傳輸到目標目錄服務。明文用戶口令可被復 制到身份基礎結構中的全部服務器/數據庫。然而,這可能是不安全的,特別是當云目錄服 務是目標時。此外,軟件需要在目標目錄服務的每個服務器上被配置以捕捉全部用戶口令 改變事件。除了其它缺點,這還是低效且不便于維護的。
[0007]出于安全的理由,許多公司不想要將現場憑證數據釋放到云,這導致認證問題。一種解決方案是發行一個憑證集合供用戶來訪問云應用,而另一憑證集合用于用戶訪問現場 應用。這也是低效且不便于維護的。
[0008] 施述
[0009]提供本概述以便以簡化形式介紹將在以下的詳細描述中進一步描述的一些代表 性概念的選集。本概述不旨在標識出所要求保護的主題的關鍵特征或必要特征,也不旨在 以限制所要求保護的主題的范圍的任何方式來使用。
[0010] 簡言之,在此描述的主題的各種方面指向將在源位置改變了的口令安全地同步到 目標位置,使得相同的憑證可在源和目標位置被使用。在一個方面,基于明文口令計算的散 列值被接收,其中散列值響應于在源服務處的口令改變事件被計算。對應于散列值的數據 被導出到目標服務,以將新口令同步到目標服務供在身份認證中使用。對應于散列值的數 據可以使用次級散列算法被次級散列成為受口令保護的團塊。
[0011] 在一個方面,同步主進程被耦合到域網格。同步主進程被配置來將在域網格接收 到的口令改變與網格外的目標目錄服務(例如,云目錄服務)進行同步。同步主進程從域 網格獲得代表明文口令的散列值、將散列值通過至少一個次級散列算法處理成受秘密保護 的團塊、將秘密保護的團塊導出到目標目錄服務。同步主進程可被耦合到網格的組件或耦 合到網格的組件并獲得來自網格的組件或耦合到網格的組件的散列值,其中組件被配置來 接收對應于在網格的任何域控制器處作出的口令改變的經復制的口令改變數據。
[0012] 在一個方面,包括對應于明文口令的受保護團塊的多個數據集合被維護。每個團 塊與一個身份相關聯,其中團塊通過至少兩個散列算法從明文口令計算。用另一個散列算 法計算的另一個團塊與身份相關聯,包括通過用其它團塊代替該團塊。這可通過用其它散 列算法為每個身份計算團塊來實現,包括針對每個身份將與那個身份相關聯的團塊散列成 針對那個身份的其它團塊。這也可以通過從現場目錄服務組件接收其它團塊并接收標識對 應于該其它散列算法的信息的信息來實現。
[0013] 結合附圖閱讀以下詳細描述,本發明的其他優點會變得顯而易見。
[0014] 附圖簡沐
[0015] 作為示例而非限制,在附圖中示出了本發明,附圖中相同的附圖標記指示相同或 相似的元素,附圖中:
[0016] 圖1是根據一個示例實施例的表示配置用于將在現場目錄服務處作出的口令改 變同步到云目錄服務的示例組件的框圖。
[0017] 圖2是根據一個或多個示例實施例的表示可在將在源目錄服務處的口令改變安 全地同步到目標目錄服務中被采用的示例步驟的流程圖。
[0018] 圖3是根據一個示例實施例的表示配置用于通過單個組件將在任何域控制器處 作出的口令改變同步到云目錄服務的示例組件的框圖。
[0019] 圖4是根據一個示例實施例的表示可在安全口令同步操作中始終被采用的示例 步驟的流程圖。
[0020] 圖5是根據一個示例實施例的表示可被采用以在登錄嘗試期間使用安全地同步 了的口令相關的數據來認證用戶的示例步驟的流程圖。
[0021] 圖6是根據一個示例實施例的表示可被采用來改變次級散列算法和為一組用戶 維護的口令相關數據的示例步驟的流程圖。
[0022] 圖7是示出其中可實現本文中描述的各個實施例的示例性非限制聯網環境的框 圖。
[0023] 圖8是示出其中可實現本文中所描述的各個實施例的一個或多個方面的示例性 非限制計算系統或操作環境的框圖。
[0024] 詳細描沐
[0025] 在此描述的技術的各方面通常涉及允許憑證的單個集合被用于現場資源訪問和 云資源訪問兩者的口令同步技術。如將理解的,該技術提供了相對直接的安裝和維護現場 而同時安全的解決方案。
[0026] 在一個方面,同步代理執行來自現場目錄服務的與云目錄服務的同步操作。在一 個實現中,同步代理可被添加到域控制器網格作為(例如,運行在加入域的單個機器上的) 單個組件(相對于運行在域網格中的每個域控制器上而言)。
[0027] 在一個方面,維護在現場目錄服務中的憑證通過首先使用一個或多個散列算法來 散列口令來與云目錄服務進行同步。主散列被使用,并且可與至少一個次級散列組合使用。 明文口令從不發送到云。
[0028] 在一個方面,該技術支持使得現場系統切換到新主散列算法,無需要求用戶改變 他們現有口令或以其他方式重新捕捉用戶的明文口令。此外,如果次級散列算法受損或更 安全的次級散列算法以其他方式變得想要使用,次級散列算法可被改變無需要求用戶改變 他們的現有口令或以其他方式重新捕捉用戶的明文口令。
[0029] 應當理解,本文中的任何示例均是非限制的。例如,在此的許多示例在目錄服務環 境(諸如ActiveDirectory? )中一般地描述;然而,任何類似的身份基礎結構/環境可 從在此描述的技術獲益。此外,盡管各示例指向安全憑證同步,需要被安全地同步的其它類 型數據可從在此描述的技術獲益。因此,本發明不限制于本文所述的任何具體的實施例、方 面、概念、結構、功能或示例。相反,本文所述的實施例、方面、概念、結構、功能或示例中的任 一個都是非限制性的,并且可用一般在數據同步、數據安全和/或云服務方面提供好處和 優點的各種方式來使用本發明。
[0030] 圖1是示出可被用于將包括來自現場組件的憑證數據的數據安全地同步到云目 錄服務102的示例組件的框圖。現場組件104包括包括口令同步代理108的同步主進程 106(例如,身份管理器同步引擎)。一般而言,同步主進程106包括主動驅動來自源目錄服 務110的憑證的檢索和導出的進程。
[0031] 在一個實現中,同步通過口令同步代理108來實現,其通過合適的接口 112調用現 場(本地)目錄服務108以獲得如下面描述的包括經散列的口令的憑證相關數據。為了僅 獲得自上一次同步時間起經改變的經散列的口令(增量),,調用可提供同步時戳。例如, ActiveDirectory?具有公開建檔的API(IDL_DRSGetNCChanges),在被調用時其檢索并返 回自所提供的時戳起的改變的列表,所提供的時戳是口令同步代理108提供的上一次同步 時間。在改變數據包括口令相關數據以外的內容的情形中,同步代理108解析/過濾所返 回的數據來確定自上一次同步時間起的經更新的憑證集合。
[0032] 經改變的憑證的集合作為經散列的憑證的集合被返回到口令同步代理108。在一 個實現中,這些散列不被同步主進程106或口令同步代理108持久存儲,并且僅臨時用于將 憑證散列同步到目標目錄服務(例如,圖1中的云目錄服務102)的嘗試中。在一個實現