Active Directory

ad(active directory)
主要功能是提供存取目錄的服務
可讓使用者從單一點登入,卻能存取所有網路資源
採用 ldap目錄服務標準,及微軟專屬設計,並承襲winnt網域概念
ad在網路中大部份傳輸的資料都與查詢有關
ad的安全建立在MIT kerberos v5驗證協定上
ps:ad參考x.500標準但並非一樣

ad支援以下
rfc2251,1777定義的 ldap v3,v2
mapi-rpc(messaging application program interface-rpc),遠端程式呼叫
x.500

ps:
adsi(active directory service interfaces):用於目錄的api
可用來編寫應用程式存取和管理ad服務,以ldap為基礎的服務,ex:nds
是odsi(open directory services interfaces)和wosa(windows open services architecture)的一部份

……………………………………

AD 服務層如下
DSA,支援介面ldap,repl,sam,mapi
database layer,支援介面mapi
ese,連接 data store

介面有以下
LDAP 提供api給ldap用戶端,讓程式使用adsi與ad服務溝通
REPL 給 RPC,SMTP或IP來執行複寫
ps:smtp只用在站台間複製,rpc over ip可用於誇站台和站台間複製
SAM 在Windows 2000與Windows NT4.0 之間提供一個相容性介面
MAPI 讓legacy mapi用戶端可過mapi-rpc來和da連接,ex:outlook
ps:其他服務如下
NSPI(Name Service Provider Interface) 讓ad與Exchange Server目錄服務之間的溝通更容易
XDS Windows 2000使用Exchange Directory Service和Exchange中的目錄服務溝通
sntp 讓各dc時間同步,類似ntp
ps:若client和dc差5分鐘以上,kerberos會拒絕驗證

DSA(directory system agent,目錄系統代理員)
是一個ad程序,能管理目錄的實體儲存
會在各dc上執行並管理所有的目錄服務功能
win2000中LSA(local system authority)子系統的組成部份
LDAP用戶端使用LDAP v3和DSA相連
使用以下連結機制存取目錄
 部份程式用MAPI(messaging applications programming interface)與DSA相連
 win nt用戶端使用SAM介面和DSA相連
 ad的DSA使用專用的RPC介彼此相連以執行複製

dsa支援以下操作
物件識別:用來保持guid與物件的關聯
交易處理程序
架構增強的更新
存取控制的增強:dsa能加強目錄中的安全限制,dsa層會讀取access token(存取權杖)的sid 
對複製的支援:dsa包括複寫通知時的管道
參照:管理從database layer接收到的目錄分層資訊

database layer
提供資料庫資訊的物件檢視
是內部的介面
任何關於資料庫的存取呼叫都將透過此層進行
主要功能是將各 dn轉譯成dn tag的整數結構,用於所有內部的存取上,並保證其唯一性
會對個體記錄的建立,檢索,刪除,和記錄中的屬性,值負責
使用 schema cache來取其需要的屬性和資訊

ese(extensible storage engine)
全新且強化的jet資料庫版本
儲存了所有的ad物件
在esent.dll安裝處理交易的資料庫系統
控制ntds.dit資料庫檔案
ps:esent.dll 預設存放在%systemroot%system32
ps:isam更早版本為jet資料庫

ntds.dit儲存了所有的ad資訊
該檔案包含整體架構,gc,儲存在dc中所有物件的ese資料庫
ps:ntds.dit可由ntdsutil工具來管理

該資料庫邏輯上分成三份目錄切割區,也就是NC(namung context,命名內容),如下
 schema NC(架構命名內容)
 configuration NC(組態命名內容) 複寫拓樸與相關中繼資料
 domain NC(網域命名內容),一或多個依照網域的目錄磁碟分割 (含有目錄中特定網域物件的樹狀子目錄)
ex:ntdev.microsoft.com網域控制站會具有下列目錄磁碟分割
架構(CN=Schema,CN=Configuration,DC=microsoft,DC=com)
組態 (CN=Configuration,DC=microsoft,DC=com)
網域NTDEV (DC=ntdev,DC=microsoft,DC=com)
ps:相同網域的dc會互相複寫全部三個目錄磁碟分割
ps:不同網域的 dc只會複寫架構和組態
ps:若 DC是用來作為GC時,還會同時擁有其他網域domain NC的一部份拷備,包含各網域中所有物件及部分物件屬性

ad資料庫預設位置
%systemroot%NTDS
ps:預設每個DC會在其 winntntds中儲存一筆資料庫的拷貝(ntds.dit)
ps:是網域的實際目錄

ad記錄檔預設位置
%systemroot%NTDS
ps: 將資料庫和記錄檔分開存放到不同的硬碟上可獲得較佳效能

shared system volume(共用的系統磁碟區)
磁碟區由所有網域控制站維護
儲存內容:1指令檔,2網域與企業部份的群組原則物件
預設位置
%systemroot%SYSVOLsysvol
ps: 只能放在ntfs5.0的磁區上,因為ad須用NTFS 5中的進階記錄功能來追蹤應該要複寫的變更
存放指令檔以供登入時使用
%systemroot%SYSVOLsysvolDomainnamescripts

ps:SYSVOL 目錄結構
domain
 DO_NOT_REMOVE_NtFrs_PreInstall_Directory
 Policies
  {GUID}
   adm
   MACHINE
   USER
  {等等…}
 scripts
staging
staging areas
 MyDomainName.com
指令碼
Sysvol (Sysvol 共用)
  MyDomainName.com
  DO_NOT_REMOVE_NtFrs_PreInstall_Directory
   Policies
   {GUID}
    adm
    MACHINE
    USER
   {等等…}
  scripts(NETLOGON 共用)

……………………………………………………………………………..

win 2000 server啟用ad步驟
執行DCPROMO.EXE叫出ad建立精靈
ps:等同到開始>程式集>系統管理工具>設定你的伺服器>選active directory>啟動>開始設定相關組態

win2000第一次建立新 ad網域
1執行DCPROMO.EXE>建立新網域>建立新樹狀目錄>建立新樹系
2輸入網域名稱,設定dns,設定目錄服務還原密碼,完成重開機

win2000網域控制站加入ad網域
1執行DCPROMO.EXE>為既有的網域新增一部網域控制站
2輸入網域名稱,設定目錄服務還原密碼,完成重開機
ps:dc離開ad也是執行dcpromo.exe

dcpromo主要會協助以下建立
 啟動Kerberos V5服務
 建立AD架構
 建立SYSVOL共用目錄
 處理好DNS的動態註冊資料
 套用Default Domain Policy和Default Domain Controllers Policy這兩個gpo

執行dcpromo建立 ad架構大致流程
為既有的網域新增一部網域控制站
建立新網域,可在選:
 加入即有的樹狀目錄
 建立新樹狀目錄,可在選:
  加入既有的樹系
  建立新樹系

…..

將電腦加入網域
1電腦的dns設成網域控制站的ip
2 到我的電腦>內容>網路識別或電腦名稱>內容或變更>選擇網域並輸入網域名稱>確定
3輸入該網域控制站具有加入權限的帳號並附上密碼,通常為administrator
4成功後要求電腦重開機
ps:
用其他方式加入網域http://support.microsoft.com/kb/251335/zh-tw
利用委派加入網域http://blogs.technet.com/b/csstwplatform/archive/2009/08/10/3271976.aspx
關於委派工作與加入網域http://social.technet.microsoft.com/Forums/zh-TW/winserverzhcht/thread/42414b79-c0b9-41d5-b3ee-ef215b1de4d8
限制只能由網域管理者可將使用者端電腦加入網域http://social.technet.microsoft.com/forums/zh-TW/winserverzhcht/thread/b640edb8-7e65-4f61-9892-4b5875d193c9/

在ad中管理加入網域的電腦
1到開始>程式集>系統管理工具>active directory使用者及電腦>選自己的網域>Computers
2選擇要管理的電腦按右鍵選管理
ps:對方電腦至少必須允許tcp445及udp137
ps:若無法管理可在對方電腦執行gpupdate /force

…..

在ad裡的網域新增使用者
1到開始>程式集>系統管理工具>active directory使用者及電腦>選自己的網域>新增>使用者
2設定使用者登入名稱,全名>設定密碼>完成
ps: 若是以本地工作群組新增使用者,則該使用者只在本機帳戶有效

在ad裡的網域設定使用者
1到開始>程式集>系統管理工具>active directory使用者及電腦>選擇使用者
2a,帳戶>登入時數,可設定使用者登入的時間規則
2b, 帳戶>登入到,可限制只有網域中的那一台才可由該使用者登入
2c,設定檔>主資料夾,在本機產生資料夾供該使用者透過網路存取

…..

win2000 dc升級成win2003 dc
1,win2000 dc(Schema Master角色)執行指令 adprep /forestprep
2,win2000 dc(Infrastracture Master角色)執行指令 adprep /domainpre
3,放入win2003光碟開始安裝