2014年10月4日 星期六

OS X 加入Active Directory網域與整合實務 (OS X join Active Directory domain and integration practice)

中大型規模的企業網路環境經常利用目錄服務來集中管理和整合多種平台的使用者、群組和計算資源等網路物件,Apple 公司的 OS X系統在一般企業組織網路環境下雖非最普遍的桌面型或伺服器系統,但仍有一定的市佔率,雖然Apple已擁有自己實作的原生目錄服務— Open Directory ,存在並整合在所有的OS X系統中,用以負責提供OS X用戶端和伺服器的目錄與網路驗證服務,但OS X也可以輕易的支援並整合到其它LDAP協定基礎的目錄服務,這包含了市位率高的微軟Active Directory目錄服務,因此針對許多企業組織目前業已部署微軟的Active Directory目錄服務架構環境之下,考量如何將OS X系統順利加入現存的Active Directory目錄服務,以達成單一目錄服務架構即可集中管理所有帳戶、資源的優點無非是可行而重要的,因此本文將詳細說明如何把OS X機器加入Active Directory網域以及牽涉到的相關整合實務上的問題。

壹. 將OS X 加入Active Directory網域的目的與優點

目錄服務主要用以集中存放並管理各種網路物件,並依據其設計架構實施有效率和安全性的資源管理政策,而X.500與LDAP為目前工業界的目錄服務標準協定,因此假若企業網路環境下存有多種可支援LDAP協定的系統時,管理員就需要考慮是否建置一個LDAP目錄服務架構來集中存放、管理各種網路物件與資源,由於微軟的Active Directory目錄服務不僅是LDAP協定的實現且已廣泛為業界採用而擁有高市佔率的事實,因此若能夠將Linux、OS X等其它非Windows平台加入Active Directory將可獲得一些管理上的好處:

  • 實現企業單一目錄服務架構即可支援所有系統
  • 實現企業單一登入(Single Sign On;SSO)的驗證環境
  • 提供OS X機器單一存取Active Directory資源的環境
  • 集中管理維護使用者和群組帳戶
  • 制定一致且強制性的密碼原則

當然,要獲得上述這些目錄服務整合上的好處並非一蹴可幾,而是需要事前妥善的規劃與設計再加以正確的設定與維護才可能達成。

貳. 加入前的準備條件與設定

為了順利的將OS X加入或繫結到Active Directory,管理者最好先進行下列的檢查或設定工作:

  • 確認網路上存在一個可正常運作的 Active Directory 網域 (可利用網域控制站上的dcdiag程式來檢查網域控制站及DNS的正確性)。
  • 設定並確認 OS X電腦網路的DNS伺服器指向Active Directory網域環境下的DNS伺服器(通常為網域控制站)。
    Active Directory透過DNS的動態更新來註冊網域主機和伺服器服務,並藉此提供各種伺服器查詢服務,因此為了能夠讓OS X能夠正確的動態更新與查詢,您務必要將TCP/IP組態中的DNS伺服器設成網域控制站上的DNS伺服器。
  • 確認網域控制站和OS X機器所設定的時區正確無誤而且時間誤差不超過五分鐘 (因為Kerberos驗證協定需要時間同步)

參. OS X加入網域實務 (OS X用戶繫結到Active Directory)

實務上,欲將一部OS X機器加入Active Directory網域有二種介面操作方式:

  1. 『使用者與群組』圖形介面工具
  2. dsonfigad 命令工具

方法一:圖形介面工具加入網域

利用『使用者與群組』圖形介面工具來將OS X加入到Active Directory網域是較為友善的做法,其基本步驟如下:

  1. 由蘋果功能表中選取『系統偏好設定』,然後開啟『使用者與群組』工具。
  2. 於『使用者與群組』設定頁中,檢查或按一下下方的鎖頭以允許進一步變更,若否,則請解除鎖頭以允許變更,然後按一下上方的『登入選項』,並按下『網路帳號伺服器』項目右側的『加入…』按鈕。
    osxjoin1
  3. 接下來,請於出現的設定視窗中,輸入Active Directory網域控制站的位址或網域名稱 (請確認您的TCP/IP網路DNS伺服器設定正確),確認加入網域所使用的電腦帳戶名稱並輸入網域管理員名稱與密碼,檢查所有輸入皆無誤後,再按下『好』按鈕。
    osxjoin2
  4. 將下來畫面會經過取得網域資訊、執行加入以及更新搜尋路徑之過程,請等待...。
    osxjoin7 
  5. 最後,如果一切正確無誤且畫面上亦沒有出現任何錯誤或警告訊息,則您就會看到電腦已成功的加入網域的畫面。
    osxjoin8

方法二:命令列方式加入網域

您也可以利用OS X 的Active Directory命令列指令 dsconfigad來加入網域,其最基本語法為:

dsonfigad -add 網域名稱 -c 電腦名稱 -u  管理員名稱 -p 管理員密碼

底下範例利用管理員帳戶與密碼將OS X電腦加入Active Directory網域-lij.local,並將機器帳戶加入到預先建立好的組織單位 APPLE底下。

dsconfigad01

其實dsconfigad命令工具提供了相當豐富的選項,此不贅言,使用者可以自行使用 man dsconfigad 命令來檢視完整的選項及說明。

肆. OS X整合Active Directory的進階與偏好性設定

為了因應不同的整合環境需求,OS X另外提供了『目錄工具程式』(/System/Library/CoreServices/Directory Utility.app/Contents/MacOS/Directory Utility)以便讓OSX機器的網域使用者能夠設定目錄伺服器的一些進階連線選項,這些進階設定可於加入時直接按下『打開目錄工具程式』加以設定,也可以日後需要時才加以變更設定:

  1. 由『使用者與群組』工中,按一下『網路帳號伺服器』右側的『編輯』按鈕。
    adoption1
  2. 接下來出現的畫面視窗中,按一下下方的『打開目錄工具程式』按鈕。
  3. 確認鎖頭已解除的狀況下,選取『Active Directory』服務,然後再按下下方的鉛筆圖像。
    adoption2
  4. 待新畫面出現後,按一下『顯示進階選項』左側之三角圖像,您就可以看到『使用者經驗』設定選項。
  5. 『使用者經驗』設定選項這一部份的設定與使用者的工作環境設定有關,具有下列選項:
    • 登入時建立移動帳戶:此選項預設為未啟用,一旦您啟用這個選項,系統將會自動快取使用者帳戶驗證資訊與相關屬性於本機快取區並且於登入時同步,因此即使沒有網路連至網域控制站時仍可順利登入,移動使用者帳戶很適合使用MAC筆電的用戶,此外,您還可以勾選下列的選項『在建立移動帳號前需要先確認』以便使用者第一次登入時提供使用者一個如下額外的確認對話盒。
      mobileuser
    • 將本機個人專屬目錄強制於啟動磁碟上:預設為勾選啟用的選項,當Active Directory使用者登入時會建立一個本機家目錄於/Users/username,不過,當您停用此選項時,您必需確保您已經預先設定好網路家目錄,並啟用下一項的UNC路徑連線選項,否則一旦未建立本機家目錄,又無網路家目錄可連線時,將可能會導致使用者無法登入。
    • 使用Active Directory上的UNC路徑來取得網路個人專屬位置:若網域使用者有指定一個網路家目錄,則OS X機器將會於使用者登入時自動掛載與連結這個目錄,而預設上自然是使用Windows的SMB協定,但也可以選取afp協定。
    • 預設使用者shell:UNIX系統需要一個命令列SHELL,預設為/bin/bash,您可以依據使用者的偏好性或熟悉度,輸入其它可用的SHELL,例如 /bin/csh、/bin/ksh、/bin/tcsh、/bin/zsh等。
      adoption3
  6. 按下中間的『對應』選項,可用以設定OS X的UID、GID對應並使用Active Directory的特定屬性,預設上OS X會動態產生UID、GID值,對大部份的整合網路環境下,預設值應是適合而足夠了,但是如果您需要自行管理UID與GID,才需要加以設定對應的屬性,不過這部份與Active Directory有否擴充Schema有關,您通常需要在網域控制站上利用dism工具(Windows Server 2012)或ServerManagerCmd.exe 工具(Windows Server 2008)來安裝 "Identity Management for UNIX" 才能夠讓Active Directory支援UNIX相關屬性。
    adoptions4
  7. 按一下按下最右側的『管理』選項,可用以設定如下的選項:
    • 優先使用此網域伺服器:預設上OS X會透過DNS查詢來使用適當的網域控制站,假若站台(site)內有多部網域控制站,而您又基於效能、連線品質和控制站硬體能力之相關考量下而有偏好使用的網域控制站,則將您可以在此輸入偏好性的網域控制站名稱以讓OS X機器日後直接使用這部網域控制站來登入和查詢Active Directory。
    • 賦予管理者權限:設定是否要讓Active Directory 二個預設名稱為 "Domain Admins" 和 "Enterprise Admins" 群組的成員可以管理此部OS X機器,由於Active Directory環境下的網域管理員內定上對於加入網域內的Windows機器均具有完全管理權限,因此吾人在此會偏好勾選此選項以讓Active Directory樹系及網域管理員可以直接管理此部OS X電腦。
    • 允許從樹系裡的任何網域認證:預設上,OS X會搜尋Active Directory樹系內的所有網域來進行驗證工作(因為預設的搜尋路徑為 "/Active Directory/樹系名稱/All Domains"),假若您的樹系內擁有多個網域,而您希望只能從某個特定網域來進行驗證工作,則您不僅需要在此清除此選項,還需要在『目錄工具程式』內的『搜尋規則』設定頁中,刪除 "/Active Directory/樹系名稱/All Domains" 路徑並新增所欲的網域名稱(如下圖中所示)。
      adoption6 

      adoption7

一般而言,上述這些進階設定即使採用預設值而不加以設定,網域使用者應該也可以正常登入存取網域資源,因此,管理員基於必要的環境需求再設定選項即可,但其中對於網域使用者家目錄的設計您需要特別留意,預設上系統會替每個網域使用者建立本機家目錄於/Users/username並且使用這個本機家目錄做為存放私人文件檔案之處,但您可以在Active Directory網域控制站上利用『Active Directory使用者和電腦』工具的『設定檔』設定頁來設定主資料夾的網路位置,不過這個位置所使用的共用資料夾及權限需要您預設建立(如下圖所示),然後清除或取消『將本機個人專屬目錄強制於啟動磁碟上』這個選項,當網域使用者登入後就會使用網路家目錄而非本機家目錄了。

homedir

下圖說明了『使用者經驗』設定頁中不同的設定以及是否預先建立網路家目錄,將會影響網域使用者登入OS X機器後的家目錄位置。

homedirectory

伍. OS X機器上的確認與檢查

一旦將OS X加入網域後,為了確保可以正確無誤的運作以及進一步了解與Active Directory的關聯性狀況,您可以執行一些檢視或測試工作,這通常包括了:

  1. 檢查Active Directory組態設定
  2. 確認Active Directory搜尋路徑
  3. 測試驗證

檢查組態

一旦成功的將OS X加入網域後,您可以在OS X機器上利用dsconfigad -show來顯示目前的Active Directory組態,例如下圖所示,OS X加入了lij.local網域並註冊了apple1s-mac機器帳戶,至於進階相關的設定大多採預設值並未變更。

確認Active Directory搜尋路徑

 

dsconfigad2

 

確認Active Directory搜尋路徑

接下來,您還必需確認適當的搜尋路徑已被建立,因為如果繫結時沒有建立這些搜尋路徑,則OS X用戶機器將無法查詢Active Directory物件,使用者可使用目錄服務命令指令dscl 和 id 命令來查詢Active Diretory使用者物件以確認AD的搜尋路徑已被建立。

  • dscl /Search -read /Users/<AD使用者名稱>
  • id <AD 使用者名稱>

下圖顯示了這二個命令查詢使用者物件的結果。
dscl1

測試驗證

一旦OS X用戶電腦可以成功的搜尋Active Directory,接下來您可以測試使用者的Kerberos驗證登入是否成功,測試驗證工作利用dscl或su命令:

  • dscl /Search -authonly <AD 使用者>
  • su <AD 使用者>

下圖示範了測試了 david 這個Active Directory 使用者成功的在OS X機器上驗證成功的畫面。

dscl3

陸. 網域控制站上的確認與檢查

另一方面,Active Directory 的管理員亦可以在網域控制站的機器上執行一些檢查和確認工作,以確認OS X機器已成為網域內信任的工作站機器。

  • 檢查是否成功建立機器帳戶
  • 檢查是否成功的在DNS動態更新主機記錄
  • 檢查機器帳戶的屬性內容

檢查OS X機器帳戶

如果您只需要檢查OS X機器帳戶是否已被成功的新增在Active Directory某容區之下,並檢查基本的屬性值,則透過『Active Directory 網域使用者和電腦』這個圖形介面工具即可。

利用『Active Directory 網域使用者和電腦』工具下的 『Computer』容區(預設)或指定的組織單位內看到OS X所建立的機器名稱帳戶。
如下圖例顯示了OS X的機器帳戶被建立在APPLE組織單位下,且也成功的顯示了其作業系統與版本。
osxca

檢查DNS動態更新記錄

利用『DNS』主控台的Active Directory網域區域下看到OS X利用動態更新所建立的主機記錄。
ddnsosx

檢查機器帳戶的屬性內容

如果您需要了解OS X機器帳號的所有屬性值,則ldp程式應是最適當的檢視工具。
ldp1

柒. OSX電腦使用網域帳戶登入、連線、搜尋與存取

一旦如上述步驟將Apple 的OS X機器加入Active Directory網域並確認正確無誤之後,OS X機器的使用者將可以利用網域帳戶登入、查詢、存取Active Directory資源與物件,不過既然是Active Directory使用者帳戶,自然也需要遵循Active Directory網域的各項密碼原則與鎖定原則。

一. 登入網域

在OS X機器上登入網域與Windows 平台並無不同,您可以在登入畫面中按『Other …』 圖示後再以電子郵件格式(使用者名稱@AD網域名稱)或傳統Windiows的登入名稱(網域名稱\使用者名稱)方式來執行登入,如下圖所示。

domainlogin

如果是第一次利用剛建立的網域使用者登入OS X機器,通常您還會看到如下圖要求變更密碼的畫面,當然您所變更的密碼內容必需符合網域群組原則的密碼原則,否則也會看到無法變更密碼的錯誤。

domainlogin2

 

二. 存取網域資源

透過Kerberos協定登入Active Directory網域成功後,您就可以直接存取擁有權限的網域資源,例如下圖為存取網域內檔案伺服器之二個共用資料夾的畫面,第一個共用資料夾,網域使用者並無任何存取權限,故被直接拒絕,而第二個共用資料夾,使用者具有讀取權限,因此可以直接檢視其內容,存取時無需再度提示與輸入密碼。

accesscontrol1

由於Active Directory網域採用Kerberos驗證協定並授權存取資源,因此一旦登入成功,您可以利用klist命令檢查Kerberos票證(Tickets) 的狀況,如下圖為作者登入網域存取檔案伺服器後所顯示了二把本機快取的票證--TGT和ST,票證的有效生命週期為十小時,這正是微軟Active Directory預設票證的生命週期。

tgtst

三. 變更網域密碼

OS X機器的使用者需要變更Active Directrory 網域使用者密碼,除了密碼已到期可於登入畫面提示時變更,正確的方法應是藉由『使用者與群組』 工具程式中的『更改密碼』 按鈕來變更自己的網域密碼。

chpwd

由於OS X有自己的密碼管理系統--鑰匙圈(keychain),因此如果您由一些未整合的工具或程式來變更密碼,例如使用passwd命令指令或在網域控制站上重設密碼,則還需要手動的透過『鑰匙圈存取』程式來變更鑰匙圈的登入密碼或系統會於下次登入時提示您變更,所以應該少用這些工具來變更網域密碼。

keychain

 

捌. 將OS X退出Active Directory網域

對於已經加入網域的OS X機器,日後基於任何理由可於任何時間由授權的使用者將OS X機器解除綁定,亦即退出Active Directory網域而再度成為獨立的機器,而欲將OS X機器移除目前的網域也有二種方法:

  • 圖形介面的『目錄工具程式』
  • dsconfigad –remove 命令

圖形介面的退出Active Directory網域做法與步驟如下:

  1. 開啟『目錄工具程式』並編輯 Active Directory 服務。
  2. 按下『解除綁定』按鈕。
  3. 輸入Active Directory 網域管理員名稱與密碼。
    removead1
  4. 正常狀況下,OS X機器會連上網域控制站並移除Active Directory目錄上的機器帳戶並刪除動態更新的DNS記錄,一旦順利完全退出或解除綁定工作,您將會看到如下圖的正常狀況。
    removead2

    假若網路連線或Active Directory網域出了任何問題而導致無法連上網域控制站,則此時畫面將會出現如下的警告訊息,此時,您雖然仍可以按『強制解除綁定』按鈕來執行強制解除綁定而退離Active Directory網域,但由於此時並無法連至網域控制站,因此OS X的機器帳戶仍會存在Active Directory目錄資料庫中,DNS的記錄也仍然存在區域中,因此,您還必需利用Active Directory管理工具來手動移除電腦物件與DNS記錄。
    removead3 

另一種利用命令列的方式來解除Active Directory 綁定工作則可以用 dsconfigad -remove 命令,譬如下圖範例在可順利連接網域控制站時即可順解除綁定。

removead5

玖. 結語

Apple OS X支援 Active Directory目錄服務能夠讓MAC 用戶端和伺服器輕易的整合到現存的企業Active Directory環境,而讓企業可以只建構一個單一目錄服務架構就可以同時支援Mac和Windows用戶端,因此如果您的企業組織大多是Windows 平台且只有少數的OS X電腦,為了易於集中管理帳戶與資源分享存取,將OS X加入網域來運作是應是個不錯的部署與整合方式。

Active Directory目錄服務上另一項主要的管理利器無非是群組原則(Group Policy),因為透過群組原則這項管理功能可以將一些工作環境設定與限制強制應用到一群使用者和機器上,但即使將OS X加入網域,仍無法套用群組原則設定,而OS X系統中一項相似的功能乃是Profile Manager,因此為了更進一步整合二種平台的工作環境設定與限制,思考如何更有效率的整合Open Directory與Active Directory目錄下的這二種技術將是未來可加以研究和探討的方向。