目錄服務

版權聲明:原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://yongyu2000.blog.51cto.com/962342/221083
目錄服務是企業最重要的IT基礎架構之一,我們的十八般武藝系列,就從這裏開始吧。
 
目錄服務
目錄服務的出現是計算機網絡化和分佈式處理的一個必然的結果。大家最爲熟悉的,就是微軟的活動目錄。其實早在AD出現之前的上世紀80年代,就已經存在很多產品化的目錄服務軟件,比如Xerox的Grapvine、Netware4中的NDS等等。簡單的說,目錄的內容,就是存儲網絡中的各類資源(帳戶、計算機、組等等),類似網絡中的電話黃頁;目錄的服務,就是指一系列針對外部應用程序和用戶的外圍服務,實現基本的查詢、更新、複製、認證等功能。
“目錄”本質上是一個數據庫,但是目前的目錄服務軟件背後,都有一個極其重要的概念:分佈式數據庫。不同於以前NT的PDC/BDC,現在企業的網絡都很大,跨越城市甚至國家,分佈式數據庫的特點是在每一個數據庫節點(域控制器)都可以進行修改,然後通過同步機制,保證整個數據庫的一致性。理解分佈式的概念,這很重要。目錄服務作爲一個數據庫,它不侷限於一臺物理計算機,而是由若干計算機一起構成的一個基於網絡的分佈式數據和服務的體系。因此,目錄服務的管理比一般的單機軟件要困難,你沒辦法備份或者Ghost整個目錄,錯誤的操作,往往會通過網絡複製,形成“牽一髮而動全身”的後果。
 
微軟的活動目錄
活動目錄(Active Directory)是微軟企業級應用服務器的核心之一,也是目前市場佔有率最高的目錄服務軟件(沒有之一)。這是一套複雜的系統軟件,很難用幾千字把它說明白。我們主要集中在明辨概念、找到誤區和把握趨勢這幾個方面。
AD有關的概念太多了,我們抓大放小,先撈乾的。簡單的說,AD與我國目前的戶籍制度和派出所非常像。活動目錄中保存着的各類網絡資源、帳號、關係,就類似戶籍系統的檔案;活動目錄域控制器,就是分佈在各地的派出所,戶籍檔案都保存在派出所(AD的數據庫,保存在DC上)。國家幅員遼闊,一個派出所不夠用,就在各地都建派出所(DC);國家人口衆多,戶籍檔案過於龐大,於是大家以省爲單位,單獨管理自己的戶籍檔案(子域)。
給老百姓發身份證,這是登陸後授予身份Token;老闆姓結婚生子,需要確認身份或更新戶籍檔案時,向派出所提出請求(DC身份驗證、信息更新等);派出所更新了戶籍信息,並通告省內的其他派出所同時更新(活動目錄服複製);買了新房子,申請房產證和戶口本,這就是計算機Join Domain;老百姓農轉非,遷戶口,從一個省到另一個省,這就是賬戶轉移;出國,涉及到了護照簽證,這是跨森林信任和認證。
學習活動目錄必須搞明白的概念包括如下幾個領域:
1)基本概念:對象、組、OU、域、子域、父域、樹、森林。這幾個概念不難,但是一定要搞清楚它們之間的關係,和一些必要的限制。
2)與DNS的集成方式。這是分佈式的AD與網絡基礎架構的橋樑,這裏面涉及到了服務器客戶機登陸、網絡資源查找、內外網域名映射、內部DNS解析等等很多方面。在沒有理解DNS與AD之間錯綜複雜的關係之前,不可貿然動手去部署AD。
3)各種情況下的身份認證。用戶登陸後獲得的令牌,跨子父域等場景,身份模擬,等等。
4)複製,各種對象的複製(包括FSMO的概念等)。很多AD的問題出現在複製方面,需要理解複製的實現方式,和當前AD環境的複製途徑,能夠用一些工具查看複製情況並發現問題。
5)LDAP協議。
6)Kerberos協議。
我們還需要了解活動目錄的物理結構,DC是活動目錄數據庫和服務的載體。AD數據庫是名爲ntds.dit的一個文件,它是基於微軟著名的Extensible Storage Engine(AD、Exchange、Access等用到的數據庫,都從此演化而來)的半結構化數據庫,你需要對這個文件和它的事務日誌等等有所瞭解。TechNet上的這篇《How the Data Store Works》,能夠回答你有關ntds.dit的一切問題。
 
活動目錄管理的常見誤區
很多企業的IT都有過把AD推倒重做的痛苦經歷,AD不像一般的軟件,可以通過卸載重裝來解決問題。遇到了棘手的問題推倒重做AD,往往也意味着重建帳號、客戶機重新加入域、重裝Exchange等大量的工作,和來自用戶的抱怨。因此,我這裏總結一些AD管理方面的誤區,幫助大家避免AD的推倒重做。
1)很多企業輕視設計和規劃,一般體現在對域的劃分和域名選擇的隨意性上,有很多企業爲此把AD推倒重做,甚至不止一次。活動目錄的設計需要從企業IT的整體規劃出發,不能各自爲戰,甚至出現一個公司多個獨立域的奇怪現象。活動目錄提供了多種層次結構,對於一般的企業,不建議在域結構上做得過於複雜,設計的要點應滿足“簡單就是美”這樣一個宗旨。活動目錄的設計支持容量非常大,沒有必要因爲擔心用戶過多而劃分子域,只需要合理的規劃OU即可。TechNet上的經典文章《Best Practice Active Directory Design for Managing Windows Networks》給出了AD規劃的步驟,強烈建議大家在運行DCPromo這個命令之前,至少把這篇文章閱讀3遍。
2)運營和管理鬆懈,安全形同虛設。很多企業將活動目錄視爲“綠色軟件”,僅在新員工報到時創建帳號,平時極少監控和維護,AD的邏輯結構往往都很混亂。“沒有規矩,不成方圓”,如同中國的戶籍制度,企業需要一套AD日常管理的流程,這個流程至少要涉及到:
-創建新帳號,用戶帳號命名的規則、OU選擇及郵箱(如有Exchange)的規則,避免隨意性和前後不一致;
-創建用戶組的申請流程,組的管理辦法,組的有效期規定,避免AD中出現大量廢棄的組,要定期清理,要有規則;
-跟安全有關的制度,如密碼策略、用戶遺忘密碼的恢復流程、日常審計等等最基本的安全制度
-計算機加入域的辦法,是否需要設置權限,域中計算機賬戶的管理,最基本的組策略
設計各類流程的目的只有一個,保證“一致性”。否則活動目錄中的內容在經歷比較長的一段時間後,一定會出現大量的錯誤、零亂、冗餘的數據。
3)對活動目錄基礎結構和Schema缺乏足夠的保護。 Exchange、OCS以及其他的分佈式系統軟件,在安裝時往往需要向AD中寫入大量的信息(包括分佈式配置和對AD Schema等更新)。很多企業沒有意識到這類軟件對AD更新時存在的風險,在安裝時沒有事先對AD進行備份,也缺乏足夠的測試,往往由於操作不當導致AD的結構出現損壞。對於這類“牽一髮而動全身”的舉動,應該慎之又慎,事先做好充足的功課,絕不可以趕鴨子上架,臨時抱佛腳。
 
成爲優秀活動目錄管理員所需要的經歷
僅僅做DCPromo和創建帳戶,是不會讓你成爲一個優秀的活動目錄管理員的。好的AD管理員,需要至少有如下3個方面的技能或者經驗:
1)升級和整合。從舊版本升級到新版本(如NT PDC到Win2k AD),把兩套獨立的活動目錄合併爲一套,這在現實生活中非常的常見,企業的兼併收購,就需要這方面的整合,有時候,甚至是微軟的活動目錄和其他公司目錄服務產品的整合。這個在國外稱之爲Active Directory Consolidation,很多IT顧問公司,都把這門技術作爲吃飯的營生。
2)災難恢復。在數據丟失或者硬件故障的情況下,重建DC,並且從備份恢復活動目錄的經驗。AD的災難恢復是令很多人頭疼不已的問題,這裏面涉及到信任關係、SID、DNS、複製同步等等複雜的問題。
3)異構並存。由於某些原因,企業中需要有兩套甚至兩套以上的目錄服務同時並存,如AD跟Lotus Notes and Domino。異構並存需要管理員掌握Microsoft Identity Integration Server之類的身份集成軟件,也要在流程上做出很多工作。
以上三個領域涉及到了大量的知識,工具和經驗的運用。在學習過程中,不妨從做實驗的角度,模擬一些這方面的需求,設計一些小項目來讓自己完成。
 
目錄服務的發展方向
活動目錄是保存企業IT資源的一個封閉式數據庫。域作爲一個分界線,把企業內部資源和外部的資源清晰地分開了。隨着商務活動的交互性增強,企業之間的協作日益緊密,我認爲,以目錄服務爲代表的企業IT資源管理,大趨勢是從封閉走向開放。體現在具體的方面,主要包括以下幾個現象和趨勢:
 
1)SSO和ADFS的出現。SSO是指Single Sign On,單一登陸;ADFS是指活動目錄聯合服務。很多企業中,用戶需要訪問的資源,可能來自第三方的服務提供商,而不在公司的Domain之內,這時,就需要一個可以在Internet上方便的驗證企業用戶身份的服務,也就是ADFS。ADFS將活動目錄拓展到Internet。
2)ADAM的出現。微軟ADAM是一個獨立的目錄服務器,類似於活動目錄(ActiveDirectory),但沒有和Window集成在一起。也就是說,它不需要域服務器而單獨運行,同時包含活動目錄的功能。如果要開發基於目錄服務的應用,ADAM是個不錯的選擇。傳統的AD,同時承擔了用戶身份管理(Identity Management)和爲分佈式應用程序提供配置信息保存的角色,而且,這兩個角色都依賴域的存在。ADAM是用戶帳戶數據庫與分佈式應用數據庫分離的一個嘗試和開始。ADAM只爲分佈式應用服務,更爲純粹,相比AD這樣一個高度耦合和複雜的系統,在多變的IT環境下顯得更加靈活。
3)SOA、雲計算等嶄新應用模式對的身份管理的新要求。基於託管的雲計算,要求企業的目錄服務在企業內網和託管數據中心之間進行同步,這中間存在很多問題和變數,也有安全和管理上的隱患,應該是今後目錄服務的一個突破口。
ADFS、ADAM、雲計算的身份管理,這些都是目錄服務和用戶身份管理(Identity Management)前沿領域,若想成爲此方面的專家,應該針對這些技術做跟蹤和不斷的研究。
目錄服務(活動目錄)的學習資料
微軟網絡廣播:活動目錄在 Windows Server 2003 中的應用
嶽雷老師的Active Directory 教程,寫非常清楚,適合初學者
Directory service
Active Directory Architecture
Ientity 2.0 tops 2008 trends in identity management
微軟AD團隊的Blog
 
一些圖書
各種各樣的“活動目錄管理大全”之類的書就不介紹了,來幾本經典的。
《深入理解Microsoft Windows 2000 分佈式服務:開發人員和技術管理人員指南》,David Chappell著,潘愛民譯,微軟三層架構時代的經典之作。幫助你理解活動目錄,以及基於活動目錄之上的分佈式應用的一些關鍵概念。我對AD的深入理解,大多來源於此書。
《Windows 2000 Active Directory程序設計》,這本書有些老了,主要講的是ADSI的編程(而且是古老的VB)。但是它的頭兩章僅用了30頁紙,就對活動目錄的方方面面做了一個極其清楚地介紹,適合用來明晰概念。
《Windows安全性編程》,這也是一本老書,而且不講AD。但是,如果你對Windows中的種種登陸方式、身份驗證、NTLM、Netlogon、Kerberos等等概念不甚理解,這本書可以看一看,代碼看不懂沒關係,看概念即可。
這些只是供你參考,有些內容比較老了,而且在.net和雲計算的今天,也算不上什麼前沿技術了。請根據自己的需要選擇,千萬不要犯資料導向型的錯誤
 
--------------------------------------------------------------------------------------
筆者水平有限,技術發展日新月異,文中若有出入或疏漏之處,還請讀者不吝指出,謝謝大家!
本文出自 “喻勇的博客” 博客,請務必保留此出處http://yongyu2000.blog.51cto.com/962342/221083
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章