從 Jamf Pro 自定義註冊畫面帶使用者資訊至 Jamf Connect 失敗的處理方式
Jamf Pro 在設定裡面的 Enrollment Customization,本來可以設定在使用者完成設備註冊的當下,同步把 SAML 裡的資訊帶給後面的 Jamf Connect Login,這樣就可以減少一步使用者還需要登入的步驟。但在撰文的當下,Jamf Pro 11.1 仍在這個功能上有問題,在跟 Jamf Support Team 了解後,大概能用一種 Workaround 來解決,只是要特別留意以下事情:
- 在 Jamf Pro 裡的 Enrollment Customization 不要再打勾 Enable Jamf Pro to pass user information to Jamf Connect 了(因為勾了也沒有用)
- 確保 Jamf Pro Settings 裡面至少已經整合了 LDAPS 或是 Cloud Identity Provider
確認上面兩項條件都沒有問題後,需要在 Computer 裡面的 Configuration Profile > Application & Custom Settings。
Preference Domain: com.jamf.connect.login
<?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>EnrollmentRealName</key>
<string>要在 Jamf Connect Login 顯示給使用者看的變數</string>
<key>EnrollmentUserName</key>
<string>真正要拿來跟 IdP 驗證密碼的使用者名稱變數</string>
</dict>
</plist>
上面的兩個變數值,可以在 Jamf Pro Configuration Profile 裡面找到。例如底下我自己的例子:
對照上圖的話,我的 XML 應該會長成這樣樣子:
<?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>EnrollmentRealName</key>
<string>$FULLNAME</string>
<key>EnrollmentUserName</key>
<string>$USERNAME</string>
</dict>
</plist>
然後記得把上面這個新做好的 Configuration Profile 設定好正確的 Scope,並且也放在 PreStage。除此之外,這個 Workaround 有一個比較不好的地方:如果這個電腦已經用 Jamf Connect 建立過帳號了,就需要把這個 Workaround 的 Profile 從電腦中移除,否則會有非預期的事情發生。因此,我們需要建立一個 Extension Attribute 去計算電腦上有幾個用 Jamf Connect 建立出來的 User。
Extension Attribute 可以使用 sean-rabbitt 公開在 Github 上的 Count of Jamf Connect Users.sh,然後就可以做一個 Smart Group ,讓其條件設定為 Extension Attribute IS NOT 0。接著要記得到剛才 Workaround Profile 的 Scope 裡面排除這個群組。