微軟資格認證:域用戶的登錄過程和GC的關係

1. 模擬環境
  根域爲contoso.msft,dc爲dc1.contoso.msft,dc2.contoso.msft同時也是GC,所處站點site 1;
  子域爲child.contoso.msft,dc爲child-dc.child.contoso.msft,所處站點site 2不是GC;在域child.contoso.msft上有用戶john用於驗證本實驗!
  2. Gc存儲着森林中所有域的域分區的所有對象的部分屬性
  同時還存儲着林中所有通用組的成員列表,在域用戶登錄的過程中和查詢過程中,GC發揮着重要的作用;或者可以說沒有GC域用戶在一般情況下就不能登錄,這裏爲什麼說是在一般情況下,因爲有特例(後面再說)!
  先說說域用戶的登錄過程和GC的關係:首先域用戶要想登錄成功,必須從所在域的dc那裏成功構建“安全訪問令牌”,沒有這個安全訪問令牌域用戶是不能登錄的;那麼這個域用戶所在域的dc是如何來爲用戶成功構建安全訪問令牌呢?要成功構建安全訪問令牌必須滿足三個條件:
  a. 從dc那裏取得這個域用戶的SID
  b. 從DC那裏取得這個域用戶所具有的權限
  c. 取得這個域用戶的所屬組:包括本地域組、全局組、通用組;本地域組和全局組可以向dc查詢,但是通用組只有由DC向GC去查詢,因爲只有GC存儲了通用組的成員列表;這裏不管這個用戶是否屬於某個通用組,都要去查詢GC來確定這個用戶是否屬於某個通用組。
  綜合以上三個因素,所以當GC不在線的情況下,即使當前域的dc是ok的,當前域的dns是ok的,同樣用戶不能登錄域!
  結合實例就是:當contoso.msft中的dc2.contoso.msft(同時也是GC)宕機的情況下,其子域中的用戶john是不能登錄其所在的域child.contoso.msft的,即使child-dc.child.comtoso.msft是正常的!
  例外:
  a 域管理員組的成員不受此限制
  b 登陸過的客戶端可以使用本機的緩存來登錄
  c 2003的域模式如果爲默認的混合模式,在這種情況下通用組是不可用的,所以這個時候是不用去查詢GC來確定通用組的情況的!
  3. 通用組成員緩存
  那如何在GC不在線的情況下,也能讓域用戶順利登錄呢?
  解決問題的方法就是使用通用組成員緩存(當然了,在每個站點都設置GC就不提了,這樣做就要考慮硬件成本,畢竟GC會複製大量信息;單域的情況下除外,單域中建議所有的dc都提升爲GC,這個時候是不會增加複製流量的);要想在GC不在線的情況下,域用戶也能登錄;那就必須使用緩存,使用客戶機的緩存(前提是此用戶必須在這個客戶機上登錄)或使用dc緩存(這樣即使此用戶沒有在這臺客戶機上登錄,也能登錄;當然了要有緩存信息的話,必須要在域中的某個地方登錄);這個緩存在dc上信息的可以在dc上看的到的。
  4.驗證
  首先在child-dc.child.contoso.msft上新建一個用戶john,然後在dc上看一下;這個用戶的msds-cached-membership屬性,是空的,是not set!這個屬性就是緩存用戶的通用組和全局組的信息的!
  a. 首先來看一下,在哪裏設置通用組成員緩存
  b. 禁用dc2.contoso.msft的網卡(相當於GC不可用),在域child.contoso.msft內用用戶john在xp客戶端登錄,這時會發現登錄不了(即使這個時候dc和dns都是ok的)
  c. 啓用GC,用john在child-dc.child.contoso.msft上登錄(沒有多餘的客戶端了,前提是修改默認域控制器策略允許john在本地登錄),以讓child-dc.child.contoso.msft從GC上緩存該用戶的通用組和全局組的信息!
  這個時候john用戶在child-dc.child.contoso.msft上是可以登錄的;註銷;用administrator登錄看看這個用戶的緩存的信息:
  d. 禁用GC,在xp客戶端上用john登錄!這個時候你會發現即使gc不在線,即使這個用戶以前沒有在xp這臺客戶端上登錄過(一點要在本域的其他地方登陸過),它照樣能登錄成功。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章