從 Jamf Pro 自定義註冊畫面帶使用者資訊至 Jamf Connect 失敗的處理方式

Published by gleetsai on

Jamf Pro 在設定裡面的 Enrollment Customization,本來可以設定在使用者完成設備註冊的當下,同步把 SAML 裡的資訊帶給後面的 Jamf Connect Login,這樣就可以減少一步使用者還需要登入的步驟。但在撰文的當下,Jamf Pro 11.1 仍在這個功能上有問題,在跟 Jamf Support Team 了解後,大概能用一種 Workaround 來解決,只是要特別留意以下事情:

  1. 在 Jamf Pro 裡的 Enrollment Customization 不要再打勾 Enable Jamf Pro to pass user information to Jamf Connect 了(因為勾了也沒有用)
  2. 確保 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 裡面排除這個群組。

Categories: Jamf