其實,關注論壇真的會帶給技術人蠻多的思考點和寫作點。這不,前一陣子我在兩個不同論壇上看到了内容相似的一個問題,一個是來自于winos: http://bbs.winos.cn/thread-94121-1-1.html,另一個則來自微軟官方論壇: http://social.technet.microsoft.com/Forums/zh-CN/windowsserversystemzhchs/thread/e64bdc7c-0bc4-4755-8457-e5f08b74e54d。因為提問者描述文字較多,是以這裡請大家先自行進傳入連結接閱讀一下文章内容。 當我看完這兩個文章,腦子裡很快過了一遍相關知識點,也不禁暗暗搖頭,貌似活動目錄方面确實沒有現成的方式方法來滿足提問者的需求。兩個完全不同的域,它們之間的域目錄分區隻會在自己域的多台域控之間複制,而并不會被拷貝到其他域,即使它們在同一個林中。舉例說明,就是A域的DC上建立了一個使用者賬号,它不會自動被複制到B域的DC上去,哪怕A域和B域是父子域,哪怕A域和B域是雙向信任關系,這都不會發生。同一林中的域控隻會去同步配置分區以及架構分區中的内容(配置分區中存儲的是活動目錄拓撲結構和相關中繼資料,架構分區中存儲的是對活動目錄中所有對象的類别及屬性的定義)。是以,聯想到這裡,很多朋友給出的結論可能就是提問者的需求無法實作之類的了。 不,不一定。我突然想到很早之前曾經接觸過一款微軟的身份認證、身份生命周期管理産品,MIIS(Microsoft Identity Integration Server)。我們用MIIS可以建構一個元目錄(metadirectory),這個目錄将分散在其他目錄或資料庫中的資訊統一組織起來,并放在一個集中區域。元目錄服務于其他目錄,并建立一個連結以便于我們能夠控制他們間的資料如何共享。例如,一個資料庫中的資料修改可以自動被同步到與之關聯的其他資料庫。在微軟對旗下産品的定義中,MIIS主要執行以下工作: 1. 賬号的釋出與回收 2. 目錄同步 3. 認證資訊的內建與管理 對MIIS,它能夠服務的對象不止是活動目錄,還包括了活動目錄應用程式模式ADAM、NT 4.0、Exchange全局通訊簿(GAL)、Novell eDirectory、Oracle 8i和9i、Lotus Notes / Domino、SQL 7 / 2000、SunOne / iPlanet / Netscape、IBM Informix、dBase等等。比如我在exchange的相關版塊中最常見到的就是有工程師利用MIIS來同步多個郵件域的GAL或者做Lotus Notes到exchange的帳戶遷移。于是,我翻開MIIS的幫助文檔,并且尋找到了其中幾段文字和幾副示意圖:

(圖一) 圖一為我們展示了一個建立使用者對象時的MIIS處理模型。可以看到,當一個新的使用者帳号被添加到資料庫(/活動目錄資料庫)DataSource1中以後,MIIS先從中拷貝資料将其轉儲于metaverse(您可以将metaverse了解為元目錄資料庫中存放身份認證資訊的表)中,随後從metaverse再provision給其他的資料源。
(圖二) 圖二是另外一種常見模型。當幾個資料源中已經同步有一個使用者對象時,在其中一個資料源中對對象屬性做修改都可以傳播到其他資料源中的相應位置(圖中示例的是使用者MikeD的title屬性值由district manager變化為vice president)。 看來,用MIIS來解決前面文章中的使用者需求應該是可行的,甚至可能會超出了我們預想的那麼好,因為它不止可以同步兩個活動目錄資料庫的新增使用者帳号資訊,在已存在的使用者帳号屬性發生變化時,它依然能夠進行精細粒度的增量更新,甚至是使用者密碼同步。這讓做為系統工程師的我們會得到與同一個域内DC之間同步極為相似的體驗感。 OK,那麼就為有需求的那幾個使用者推薦說明一下吧。 …… 哦,不急不急,MIIS是如此的強大(雖然上文并未過多地介紹其他功能),自然是需要向微軟付費購買才能使用的。但是比較不幸的消息是,MIIS完整版授權費用比較的高昂(有興趣的朋友可以聯系一下當地的軟體供應商問問看),另外,試用版的MIIS在當下也不是那麼的好找了(當然,如果您有technet或者msdn訂閱那就好辦了),即使您找到了,180天試用完畢後呢? 是以,這裡,特别地介紹給大家,IIFP(Identity Integration Feature Pack)這款産品。 與其稱IIFP為一款産品,不如稱它為一個特性包(Package),一個功能更新檔。它其實就是MIIS的一個簡化版(非主流叫法:“閹割版”,呵呵),它隻能提供AD活動目錄,ADAM和Exchange資料庫的身份認證內建與同步。但是,最重要的是,IIFP是免費的,您可以在下面的位址中下載下傳到它:
沒有什麼好說的,點選Install Identity Integration Feature Pack . 2. 出現配置向導的的歡迎界面,直接點選“Next” 3. 照例彈出使用者接受授權協定的視窗,當然選擇同意。 4. 在安裝類型選擇界面中選擇完全安裝(complete),下一步 5. 出現資料儲存的選擇界面,需要輸入我們背景SQL資料庫的相關資訊,
SQL資料庫也就是最終IIFP存放metaverse的地方。 6. 随後要求輸入IIFP使用的服務帳号,這個帳号是需要在活動目錄中先建立好的,并且需要加入到IIFP所安裝的伺服器的本地系統管理者組中(administrators)
指定好服務帳号,密碼及其所在域以後,點選下一步。 7. 出現一個關于IIFP所要用到的組的資訊界面,并且裡面的内容系統已經自動幫我們配置好了,不用修改,保持預設即可
8. 提示已經準備好了安裝前的設定,可以開始安裝,點選“start” 9. 如果是将IIFP安裝在一台域控制器上(正如我本文所做的一樣),會出現一個警告視窗,
這是因為IIFP設計中并不推薦它所使用的服務帳号是域管理者的身份。我在step 6中也提到了,需要把IIFP服務帳号加入要安裝IIFP的伺服器上的本地管理者組中,而加入域控上的administrators組則意味着成為了擁有至高無上權利的域管理者。這樣會存在一定的安全隐患。是以在生産環境中還是建議給IIFP另起個爐竈。
由于實驗環境,可以忽略它,點選OK 10. 接着又出現一個警告框,大意是告訴我們需要指定一個位置來存儲IIFP密鑰集的備份
點選OK 11. 選擇一個位置并輸入檔案名,系統将儲存一個bin類型的密鑰集副本檔案
12. 飛快的安裝過程,點選finish完成IIFP的安裝。 13. 又出現一個提示視窗,說明需要登出重登入後系統的安全組等等的設定才會生效,點選Yes即刻登出
重新登入後,可以在ADUC中看到前面配置中的多個安全組已經自動建立,
簡要的對這幾個組做一下說明, MIISAdmins:這個組的成員對IIFP有完全控制權限,能夠通路IIFP中的一切資料。 MIISBrowse:這個組的成員具有使用查詢操作來收集使用者帳号資訊的權限。 MIISJoiners:這個組的成員可以通過Identity Manager通路Joiner和Metaverse Search,在Joiner中MIISJoiners組成員可以join或者project disconnectors,在Metaverse Search中可以檢視對象屬性或者從Metaverse中斷開對象連接配接。 MIISOperators:這個組的成員權限最低,隻有在Identity Manager裡的Operations界面下檢視操作執行記錄的權限而已。 (PS:如果你不知道這段定義中的一些英文關鍵字,别急,沒關系,本文後面會做進一步的聯合說明。) 來到資料庫伺服器上檢視,對應的資料庫instance也已經建立了出來。
至此,對IIFP的安裝部分可以算是告一個段落。 裝好了以後自然是很想檢驗一下戰果, 找到下圖位置,
點選“Identity Manager”,正式進入IIFP的使用者管理界面。
一眼看上去,位于此界面上方比較醒目的是幾個大的标簽,
我們要配置的部分也就集中在這幾個标簽卡中。 這裡先大概對這幾個标簽做一下說明。
Operations在點選這個标簽後看到的界面,是關于所有的Management Agents運作或者别的作業執行時(/後)的記錄。你可以在這個界面裡中斷,清除,或者重新執行IIFP的工作任務。
(因為這裡我才建立的IIFP,并沒有配置和執行任何任務作業,是以大家看到的是比較空白的樣子,待我在後面做些操作後會再截圖出來,屆時會看到很多記錄。)
Management Agents相信很多IT Pro對MA這個東西已經比較熟悉了,現在有各種各樣的MA出現在了微軟不同産品的配置裡,比如SCOM,比如DPM,雖然具體内容可能不盡相同,但是它的功能基本都是一樣的,就是此産品和服務對象之間溝通的橋梁。對于本文中的IIFP,MA就是它和連接配接上的某個AD域(data source or target)之間的資料傳遞通道。MA負責将資料從Data Source移動到IIFP資料庫中,也可以将資料從IIFP資料庫移動到Target資料庫中去。
做為IIFP配置的最最重要的一塊,我後面會對MA這部分進行更多更詳細的講解。
Metaverse Designer與其他兩個初始界面中看到的不太一樣,在Metaverse Designer下已經存在了很多内容,如下圖所示,
可能經常玩活動目錄的朋友對這張圖上的字眼都會感到非常熟悉,是的,這其實是Metaverse存儲在SQL server中的架構資訊,我們在活動目錄中也能從對象屬性或者架構分區中看到類似的資訊。通過這個管理界面,可以添加,修改,删除對象類型和屬性,甚至是控制哪些屬性要被索引,衆所周知,索引可以大大提高資料庫處理資料的性能。
Metaverse Search這部分很好了解,如圖所示,你可以通過定義一些比較和查找條件來搜尋存儲在SQL資料庫中的對象和它們的屬性。并且,你還可以更細節地檢視是哪個MA建立出的對象,這些個對象被何時修改過,等等等等。
JoinerJoiner這個管理接口是用來查找和檢視disconnector對象的,disconnector是在connect space(connect space 是對象及其屬性資訊進入MA或者從MA出去之前的中轉站)中未被連接配接到Metaverse中現有對象的一種對象(object)。然後可以通過Joiner來修改disconnector object或者手動方式join or project它。 (其實在MIIS/IIFP的知識體系中,有非常多的概念點。而這方面的中文資料幾乎沒有,是以要搞清楚這些知識點建議大家就是去讀MIIS/IIFP的幫助文檔。 這裡我也盡可能的控制了需要提到的這些概念的範圍,否則光是鋪陳這些知識怕是寫幾百頁也不夠的。另外很多知識點在本文的主題中無關輕重的,也會一帶而過,避免過多地幹擾到讀者。還是那句話,如果你對更多關于MIIS/IIFP的内容感興趣的話,它的help文檔相信會是你的不二選擇。) 大概熟悉了IIFP的相關概念和圖形化管理工具以後,後面要做的,便是去配置它。我會在下篇文章中講述如何建立MA來實作contoso.com和northwind.com這兩個毫無關系的域之間的對象屬性的同步。 敬請期待!
轉載于:https://blog.51cto.com/mrfly/341411