在 macOS 電腦上使用 NoMAD Login 登入 AD 帳號

macOS 電腦上有一個古老的科技,叫做目錄工具程式。透過這項工具,你可以把 Mac 電腦加入到公司網域下,很多公司都使用這個方式來提供使用者工作。
不過,曾經使用過這項工具的 IT 人員都知道,其實微軟的 AD 對 macOS 電腦來說起不了管理的作用,所有 Windows 熟知的 GPO 在 macOS 電腦上通通不管用,別說下政策了,光是部署軟體給 macOS 電腦都沒有辦法。

漸漸大家對 MDM 這個名詞開始了解,也知道要在 macOS 電腦上部署軟體或下達政策,都會需要像是 Jamf Pro 這種設備管理平台。
那 AD 對 macOS 電腦來說真的已經一無事處了嗎?其實也不是,很多 IT 人員現在即便知道將 macOS 電腦加入 AD 沒什麼路用,但為了讓員工可以用同一組 AD 帳密登入 macOS 電腦工作,還能不用一直重複輸入帳密,單一登入的取用網域上的服務,還是會有很多公司利用「目錄工具程式」把電腦加入 AD,並且同時使用 MDM 發軟體跟管政策。

不過,Apple 在 WWDC 2020 的 Leverage enterprise identity and authentication 一部影片裡面就提到了,其實 Apple 工程師自己也不推薦大家繼續使用目錄工具程式將 Mac 電腦加入 AD 就是了。
原因是 macOS 電腦的最佳使用體驗仍然是本地帳號,可以享有最多的安全功能,同時也能減少密碼同步的問題。取而代之的,Apple 推出了 Kerberos SSO Extension 功能,讓你不用把電腦加入 AD 網域,享有本地帳號的安全性,卻也同時能與 AD 同步密碼,還能繼續有單一登入的功能。
而這麼佛心的功能,Apple 以前是要額外跟企業客戶收費的,當時叫做 Apple Enterprise Connect;現在 Apple 免費的放在 MDM 框架中,只要有像是 Jamf Pro 這樣的 MDM 伺服器就能用了。

不過問題又來了,這個 Kerberos SSO Extension 可沒有「部署」帳號的能力。意思是說,Apple 有一個很知名的零接觸部署功能,IT 人員完全不需要事先把幫員工拆箱裝機,直接把全新的電腦運到員工桌上就好,員工只要自己拆箱、開機,系統就會全自動的依照 MDM 指令動作,讓裝的最新軟體、該有的設定一個都不會跑。

問題就在,Kerberos SSO Extension 在使用者開箱的時候,其實幫不上什麼忙呀。在開箱期間,使用者會被邀請建立一組本地帳號與密碼,而這個帳密跟 AD 可是一點關係都沒有,這樣就會同時增加 IT 人員跟使用者的困擾。IT 可能會想說你的帳號名稱沒有跟 AD 上的一致,使用者可能會想說密碼到底是哪一組。

還有另外一個問題,Kerberos SSO Extension 是用來幫助使用者更容易同步 AD 帳密的。有些公司會要求「電腦如果不在 AD 網域裡,就不能夠登入使用」的這種政策,Kerberos SSO Extension 就完全幫不上忙了。

前因後果說了這麼多,終於要進入正題:如何讓員工在自己開箱期間,就輸入自己的 AD 帳密並依此建立出 macOS 本地帳號,同時也可以滿足某些公司要求「電腦一定要在 AD 網域上」才能工作的要求。
(如果你服務的公司開始走向雲端,可能對於這麼傳統的 AD 技術已不感興趣,開始望向 Google Workspace、Microsoft Office 365 這種雲端辦公技術的話,下面的文章可能不適合你,也許你應該看看像是 Jamf Connect 這樣的科技)

使用 NoMAD Login 處理問題

NoMAD Login 是一個免費的開源軟體,但自從被 Jamf 買下來並重新設計成 Jamf Connect 後,至今已經很少在維護了。不過經過我們實測,現在的 NoMAD Login 1.4 版本,仍然可以使用在 macOS Ventura 13.1 上,而且也可以是 Apple Silicon 的設備喔。

這套免費的開源軟體,可以把原生的 macOS 登入視窗換掉,變成以下的樣子(背景跟上方的 Logo 都能換成公司形象等等)

當你把 macOS 登入視窗換成 NoMAD Login 後就很有趣了。當使用者在上面第一次登入 AD 帳號密碼時,NoMAD Login 會自動利用這組帳密建立一個 macOS 本地帳戶。甚至你也能設定,如果使用者不在 AD 網域上時,即便帳密都輸入正確,也不給他登入電腦。

如何搭配 Jamf 使用零接觸使用 NoMAD Login

如同所說,NoMAD Login 已經是一個比較少被維護的開源軟體了,如果在使用上遇到問題的話,必須要回到 NoMAD 的網上社群尋求網友們幫忙。所以若要確定在公司裡面使用,多多少少要建設心態,未來會需要到網路上發問找答案。

首先,我們要先取得 NoMAD 的安裝檔。很無奈的,作者現在沒有把 1.4 的安裝檔放在官網上了。而我們的這篇文章是基於 1.4 於 macOS Ventura 13.1 與 Apple Silicon 進行測試的,所以建議還是要取得這個版本,而不是官網的 1.3 版;他改把 1.4 的安裝檔放在 MacAdmins 的 Slack 上。

當你下載到 1.4 版本,你會發現這個安裝檔的簽署已經過期了,所以你可能要重新簽署。(這一段會需要 Apple 開發者帳號,如果沒有加入開發者帳號,可能要拿其它信任的 CA 來簽。但就不在這篇的話題裡了)

除了重新簽署外,這個安裝檔並不是使用 Flat Package 的形式打包的,所以如果要放在零接觸部署裡可能會有問題,因為 Apple 需要安裝檔有被簽署過、而且要以 Flat Package 打包才能放在零接觸部署,這樣使用者在開箱的時候才會自動安裝 NoMAD Login,他們也才能登入 AD 帳密部署本地帳號。

參考 Flat Package Format – The missing documentation,並且搭配 Pacifist 可以知道下載下來的那份安裝檔不是 Flat PKG。所以需要透過像是 Jamf Composer 這類軟體重新打包一次,將其變成 FlatPKG 並重新簽署,才能放在零接觸部署裡使用。

其實發現整篇文章裡面最困難的不是如何設定 NoMAD Login,而是如何取得它、並且讓他可以正常使用。所以如果已經有人幫你準備好了上面的安裝檔,還幫你重新簽署和打包,那應該會省下不少工。

當然,如果你實在沒有辦法準備上面那一大段內容,而且你剛好使用 Jamf Pro 做為 MDM 的話,那你可能還有第二種方式能不去準備上面那一堆,改用 Jamf Pro 的 Policy 並設定 Trigger 為 Enrollment 會簡單非常多。

最簡單的最後一步

首先來搞定 NoMAD Login 的設定檔。只要到 Jamf Pro > 電腦 > 設定描述檔 > 新增 > 應用程式和自訂設定 > 上傳 > 新增,並在偏好網域裡面填入 menu.nomad.login.ad,內容的部分填下以下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ADDomain</key>
<string>AD網域填寫在此</string>
</dict>
</plist>

當然 NoMAD Login 還有很多的設定可以用,例如想限制員工必須在 AD 網域上才能登入時,可以多帶上

<key>DenyLocal</key>
<bool>true</bool>

更多的設定可以參考這個官方指南

在 Jamf Pro PreStage 完成零接觸設定

1. 跳過原生 macOS 的本地帳號建立功能,改由 NoMAD Login 來效勞。

2. 在設定描述檔裡選擇剛才建立的描述檔。在下圖中,額外搭配了 Kerberos SSO Extension,確保由 NoMAD Login 建立完帳戶後,接著由 Kerberos SSO Extension 接手同步密碼與單一登入的工作。

3. 在零接觸期間,安裝 NoMAD Login 軟體

你的下一步

使用 NoMAD Login 搭配 Kerberos SSO Extension 與 MDM 是一個蠻簡單的方式,幫助 IT 與使用者面對傳統的 AD 架構時,仍然能夠同步密碼、單一登入、發佈政策與部署軟體。

但隨著越來越多公司往混合辦公前進,AD 也隨著時代延伸到雲端環境上,因此 NoMAD 並不適合用在整合 Microsoft Azure AD、Google Workspace、Okta 或是 ADFS 等服務上,比較適合使用 Jamf Connect 來處理。

若對於本篇文章有問題,或對 Jamf Connect 希望取得更進一步了解,歡迎與我們聯絡