本文檔介紹使用JAMF PRO例項10.48.X實施身份服務引擎v3.3的必要步驟。
思科建議瞭解以下主題:
本檔案中的資訊是根據以下軟體和版本:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
思科ISE支援JAMF作為MDM伺服器,用於管理Windows電腦。當這些電腦(由JAMF管理)連線並驗證時,ISE從JAMF伺服器檢索合規性資訊以檢索這些裝置的安全狀態的其他資訊。
根據ISE中配置的標準和條件,它使用資訊通過允許/拒絕這些電腦來實施安全訪問安全。因此,此實施有助於識別攻擊者可以利用的潛在漏洞和安全漏洞。
步驟1. 使用管理員許可權帳戶登入JAMF雲,網址為:https://YOUR_ACCOUNT.jamfcloud.com/index.html。
JAMF PRO登入頁
步驟2.從「Main Menu(主選單)」中選擇齒輪圖示。
JAMF PRO控制面板
步驟3。在主功能表上,選擇System > Useraccounts and groups。
JAMF PRO系統設定
步驟4 .選擇Password Policy選項。
JAMF PRO使用者帳戶和組
步驟5。在本節中,確認除了承載令牌身份驗證外,您還有選項Allow Basic Authentication。
附註:從JAMF PRO v10.35開始,預設情況下不啟用API的基本身份驗證。因此,您必須啟用這些功能以確保MDM整合正常運行。
有關更多資訊,請檢視標準API身份驗證更改。
步驟6。啟用最後一項功能後,請前往步驟3中所述的「Menu Settings」,然後尋找「Network IntegrationMenu」並選取。
JAMF PRO網路整合
步驟7.繼續選擇+ New以為ISE 3.3新增新例項。
JAMF PRO網路整合設定
步驟8。在Network Access Management Service下的下拉選單中,保留標籤為Cisco ISE的選項。
配置示例與ISE的網路整合
步驟9.整合將生成具有以下格式的網路整合URL:https://YOUR_ACCOUNT.jamfcloud.com/networkIntegrationEndpoint/ID. 儲存此URL,因為您必須以後使用它來連線ISE。
步驟1.選擇Menu > Administration > Network Resources > External MDM,然後點選Add。
ISE MDM整合選單
步驟2. 將安裝命名為MDM/UEM整合名稱段。
ISE MDM JAMF PRO配置示例
步驟3。向下滾動,然後繼續到測試連線。如果連線成功,則顯示此影象。如果您沒有收到相同的輸出,請參閱本文檔中的故障排除部分。
成功連線到MDM JAMF帳戶
步驟4。先前在選項中選擇OK。在頁面底部,查詢Device Identifier,其中ISE與終端會話相關聯。
MDM伺服器的其他配置
封包擷取:如果連線成功,您可以檢視從ISE PAN伺服器傳送到JAMF PRO例項的HTTPS流量:
資料包捕獲使用JAMF例項連線的示例
ISE上的日誌:ISE相應地處理和分析資料,如ise-psc.log所示:
DEBUG [admin-http-pool16][[]] cisco.cpm.mdm.api.MdmServerInfoApi -:::::- inside the method : callMdmServerInfoApiOnMdmServer()
TRACE [admin-http-pool16][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- Inside MDMVerifyServer.verify, connectToServer is called
DEBUG [admin-http-pool16][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- apiVersionSb : 3, mdmApiVersionSb : , tryWithV3 : false
DEBUG [admin-http-pool16][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- MDM Rest API Server Query String -> /ciscoise/mdminfo/?ise_api_version=3
DEBUG [admin-http-pool16][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- MDM Rest API Server Query PATH String -> /ciscoise/mdminfo/?ise_api_version=3
DEBUG [admin-http-pool16][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- 1. Connecting to the MDM server host YOUR_ACCOUNTusing apiVersion 3
DEBUG [admin-http-pool16][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- sendGETRequestDom: start HTTP request - connectionsUsed: 1, connectionsAvailable: 199
DEBUG [admin-http-pool16][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- sendGETRequestDomNonComp: start HTTP request - connectionsUsed: 0, connectionsAvailable: 200
DEBUG [admin-http-pool16][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- ===mdmFlowInfo===null,=====serverType=====MobileDeviceManager,===serverAuthType===Basic
DEBUG [admin-http-pool16][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- QueryType is heartbeatQuery
DEBUG [admin-http-pool16][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- using httpClient for http query - [parameters={http.route.default-proxy=http://PROXY_IP:PORT, http.socket.timeout=30000, http.connection.timeout=5000}]
INFO [admin-http-pool16][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- GET: MDM Server URL: https://YOUR_ACCOUNT:443//networkIntegrationEndpoint/ID/ciscoise/mdminfo/?ise_api_version=3
DEBUG [admin-http-pool16][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- Proxy Config in request = [,PROXY_IP,PORT,nullnull2fpwHJhtoIMf+jKzFKazgg==%/ZFdElAGn4odZaRIZxeiZQ==]
.
.
INFO [admin-http-pool16][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- MDM Server Response Code: 200
TRACE [admin-http-pool16][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::-
Response data received from the MDM server : <?xml version="1.0" encoding="UTF-8"?><ise_api><name>mdminfo</name><api_version>3</api_version><api_path>/networkIntegrationEndpoint/ID/ciscoise/v3</api_path><redirect_url>https://YOUR_ACCOUNT.jamfcloud.com/enroll</redirect_url><query_max_size>1000</query_max_size><messaging_support>true</messaging_support><vendor>JAMF Software</vendor><product_name>JSS</product_name><product_version>10.48.1-t1689600654</product_version></ise_api>
DEBUG [admin-http-pool16][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- sendGETRequestDom: end HTTP request - connectionsUsed: 1, connectionsAvailable: 199
DEBUG [admin-http-pool16][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- sendGETRequestDomNonComp: end HTTP request - connectionsUsed: 0, connectionsAvailable: 200
TRACE [admin-http-pool16][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- isMdmSettingsIdNotNull flag Value : false,tryWithV3 : false, isMdmSettingsUpdateRequired : false
DEBUG [admin-http-pool16][[]] cisco.cpm.mdm.api.MdmServerInfoApi -:::::- returning from the method : callMdmServerInfoApiOnMdmServer() -> com.cisco.cpm.mdm.api.MdmServerInfoData Object {
apiPath: /ID/ciscoise/v3
redirectUrl: https://YOUR_ACCOUNT.jamfcloud.com/enroll
queryMaxSize: 1000
apiVersion: 3
vendor: JAMF Software
productName: JSS
productVersion: 10.48.1-t1689600654
COMMA: ,
errorMsg: null
errorOccurred: false
}
此整合的基礎包括ISE定期對JAMF-PRO例項執行的查詢。執行故障排除的參考點(在此例項中)是主管理節點(PAN)。 PAN節點是連線方法被配置為到達MDM伺服器的位置。此相同的方法會在實施的所有節點中複製。
後續步驟可用於排除可達性問題。
步驟1.在PAN節點的TRACE級別上啟用external-mdm元件。
跟蹤級別中的外部MDM元件進行故障排除
步驟2.從PAN節點設定捕獲並保存配置。
收集MDM連線資訊的資料包捕獲示例
步驟3.瀏覽外部MDM菜單。從步驟2運行捕獲,然後選擇Test Connection.按鈕等待錯誤出現。
步驟4.停止步驟2中的捕獲。檢視對應於ise-psc.log的日誌以分析行為。
在此場景中,當您在測試與JAMF的連線時在ISE中收到此錯誤時:
MDM錯誤連線超時
與外部MDM相關的日誌顯示以下資訊:
TRACE [admin-http-pool26][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- Inside MDMVerifyServer.verify, connectToServer is called
DEBUG [admin-http-pool26][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- API version retrieved from MDM server : 3
DEBUG [admin-http-pool26][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- apiVersionSb : 3, mdmApiVersionSb : 3, tryWithV3 : false
DEBUG [admin-http-pool26][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- MDM Rest API Server Query String -> /ciscoise/mdminfo/?ise_api_version=3
DEBUG [admin-http-pool26][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- MDM Rest API Server Query PATH String -> /ciscoise/mdminfo/?ise_api_version=3
DEBUG [admin-http-pool26][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- 1. Connecting to the MDM server host YOUR_ACCOUNT.jamfcloud.com using apiVersion 3
DEBUG [admin-http-pool26][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- sendGETRequestDom: start HTTP request - connectionsUsed: 0, connectionsAvailable: 200
DEBUG [admin-http-pool26][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- sendGETRequestDomNonComp: start HTTP request - connectionsUsed: 0, connectionsAvailable: 200
DEBUG [admin-http-pool26][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- ===mdmFlowInfo===null,=====serverType=====MobileDeviceManager,===serverAuthType===Basic
DEBUG [admin-http-pool26][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- QueryType is heartbeatQuery
DEBUG [admin-http-pool26][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- using httpClient for http query - [parameters={http.socket.timeout=30000, http.connection.timeout=5000}]
INFO [admin-http-pool26][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- GET: MDM Server URL: https://YOUR_ACCOUNT:443//networkIntegrationEndpoint/ID/ciscoise/mdminfo/?ise_api_version=3
INFO [Timer-12][[]] cisco.mnt.common.utility.AlarmMessageDiskQueue -:::::- Inside dequeue
INFO [Timer-12][[]] cisco.mnt.common.utility.AlarmMessageDiskQueue -:::::- root exists
INFO [Timer-12][[]] cisco.mnt.common.utility.AlarmMessageDiskQueue -:::::- alarm.1692086243915 deleted true
INFO [admin-http-pool26][[]] cisco.cpm.mdm.util.MdmServersCache -:::::- MDM server - Status : Active, mdm server id : ID and mdm server name : JAMF_PRO
ERROR [admin-http-pool26][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- Error message while connecting to MDM server :
Connection Failed to the MDM server host – YOUR_ACCOUNT.jamfcloud.com, and port - 443 : Connection timeout occurred. Check if the MDM server is reachable : SocketTimeoutException message = connect timed out
DEBUG [admin-http-pool26][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- sendGETRequestDom: end HTTP request - connectionsUsed: 0, connectionsAvailable: 200
DEBUG [admin-http-pool26][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- sendGETRequestDomNonComp: end HTTP request - connectionsUsed: 0, connectionsAvailable: 200
ERROR [admin-http-pool26][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- Exception occurred while connecting to the MDM server A connection timeout occurred. Check if the MDM server is reachable.
ERROR [admin-http-pool26][[]] cisco.cpm.mdm.api.MdmClient -:::::- A connection timeout occurred. Check if the MDM server is reachable.
DEBUG [admin-http-pool26][[]] cisco.cpm.mdm.api.MdmServerInfoApi -:::::- returning from the method : callMdmServerInfoApiOnMdmServer() -> com.cisco.cpm.mdm.api.MdmServerInfoData Object {
apiPath: null
redirectUrl: null
queryMaxSize: null
apiVersion: null
vendor: null
productName: null
productVersion: null
COMMA: ,
errorMsg: null
errorOccurred: true
}
在封包擷取中,檢視下一個資訊:
DNS流量 — 如果在整合的設定部分輸入主機名,ISE將對您的JAMF相關例項執行查詢。如果您沒有看到主機名的解析度,請嘗試使用IP地址。此選項可用於配置,而不是配置主機名。
MDM流中的DNS流量
MDM連線埠中的重新傳輸 — 如果直接查詢IP地址(在DNS查詢或MDM設定中提供),您可能會看到重複的SYN資料包。這表示沒有直接路由到JAMF例項或外部裝置干擾443埠上的通訊。
連線到MDM超時示例
此事件表示您已連線到在設定MDM伺服器時配置的JAMF帳戶。但是,您指示連線的例項不存在或包含錯誤,因為找不到該例項。
MDM錯誤404示例
將顯示與此事件對應的日誌:
DEBUG [admin-http-pool32][[]] cisco.cpm.mdm.api.MdmServerInfoApi -:::::- inside the method : callMdmServerInfoApiOnMdmServer()
TRACE [admin-http-pool32][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- Inside MDMVerifyServer.verify, connectToServer is called
DEBUG [admin-http-pool32][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- API version retrieved from MDM server : 3
DEBUG [admin-http-pool32][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- apiVersionSb : 3, mdmApiVersionSb : 3, tryWithV3 : false
DEBUG [admin-http-pool32][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- MDM Rest API Server Query String -> /ciscoise/mdminfo/?ise_api_version=3
DEBUG [admin-http-pool32][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- MDM Rest API Server Query PATH String -> /ciscoise/mdminfo/?ise_api_version=3
DEBUG [admin-http-pool32][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- 1. Connecting to the MDM server host YOUR_ACCOUNT.jamfcloud.com using apiVersion 3
DEBUG [admin-http-pool32][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- sendGETRequestDom: start HTTP request - connectionsUsed: 1, connectionsAvailable: 199
DEBUG [admin-http-pool32][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- sendGETRequestDomNonComp: start HTTP request - connectionsUsed: 0, connectionsAvailable: 200
DEBUG [admin-http-pool32][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- ===mdmFlowInfo===null,=====serverType=====MobileDeviceManager,===serverAuthType===Basic
DEBUG [admin-http-pool32][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- QueryType is heartbeatQuery
DEBUG [admin-http-pool32][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- using httpClient for http query - [parameters={http.route.default-proxy=http://PROXY_IP:PROXY_PORT, http.socket.timeout=30000, http.connection.timeout=5000}]
INFO [admin-http-pool32][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- GET: MDM Server URL: https://YOUR_ACCOUNT.jamfcloud.com:443//networkIntegrationEndpoint/1/ewe/ciscoise/mdminfo/?ise_api_version=3
DEBUG [admin-http-pool32][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- Proxy Config in request = [,PROXY_IP,PROXY_PORT,nullnullglhhcSIWnCC7y8FvGQvm/Q==%fZ4PXgBMdoIDfbwdgIhSeA==]
INFO [admin-http-pool37][[]] cpm.admin.infra.spring.ISEAdminControllerUtils -::admin:::- mapping path found in global-forwards, forwarding to: /pages/jsonResponse.jsp
INFO [admin-http-pool37][[]] cpm.admin.infra.spring.ISEAdminControllerUtils -::admin:::- mapping path found in global-forwards, forwarding to: /pages/jsonResponse.jsp
INFO [admin-http-pool32][[]] cisco.cpm.mdm.util.MdmServersCache -:::::- MDM server - Status : Active, mdm server id : ID and mdm server name : JAMF_PRO
ERROR [admin-http-pool32][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- Error message while connecting to MDM server : Failed to connect to MDM Server JAMF_PRO : 404
DEBUG [admin-http-pool32][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- sendGETRequestDom: end HTTP request - connectionsUsed: 1, connectionsAvailable: 199
DEBUG [admin-http-pool32][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- sendGETRequestDomNonComp: end HTTP request - connectionsUsed: 0, connectionsAvailable: 200
ERROR [admin-http-pool32][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- Exception occurred while connecting to the MDM server Connection Failed: 404:: the MDM server is not reachable
ERROR [admin-http-pool32][[]] cisco.cpm.mdm.api.MdmClient -:::::- Connection Failed: 404:: the MDM server is not reachable
DEBUG [admin-http-pool32][[]] cisco.cpm.mdm.api.MdmServerInfoApi -:::::- returning from the method : callMdmServerInfoApiOnMdmServer() -> com.cisco.cpm.mdm.api.MdmServerInfoData Object {
apiPath: null
redirectUrl: null
queryMaxSize: null
apiVersion: null
vendor: null
productName: null
productVersion: null
COMMA: ,
errorMsg: null
errorOccurred: true
}
DEBUG [admin-http-pool32][[]] cisco.cpm.mdm.util.MdmServersCache -:::::- mdm Guid: GUID is found in cache and status is: false
此時的資料包捕獲提供一個HTTPS連線,其中包含在JAMF站點和ISE伺服器之間傳輸的應用資料。
錯誤404 MDM中涉及的資料包
連線中的此錯誤表示您在MDM設定中部署要整合的使用者出現問題。
驗證使用者:
MDM連線錯誤代碼401
ISE上的日誌指示此行為:
INFO [admin-http-pool8][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- GET: MDM Server URL: https://YOUR_ACCOUNT.jamfcloud.com:443/networkIntegrationEndpoint/1/79fu/ciscoise/mdminfo/?ise_api_version=3
DEBUG [admin-http-pool8][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- Proxy Config in request = [,PROXY_PORT,PROXY_PORT,nullnull2fpwHJhtoIMf+jKzFKazgg==%/ZFdElAGn4odZaRIZxeiZQ==]
ERROR [admin-http-pool8][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- Error message while connecting to MDM server : Failed to connect to MDM Server YOUR_ACCOUNT.jamfcloud.com : 401
DEBUG [admin-http-pool8][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- sendGETRequestDom: end HTTP request - connectionsUsed: 4, connectionsAvailable: 196
DEBUG [admin-http-pool8][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- sendGETRequestDomNonComp: end HTTP request - connectionsUsed: 0, connectionsAvailable: 200
DEBUG [admin-http-pool8][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- retry connecting using api v2 after 5 seconds.
DEBUG [admin-http-pool8][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- MDM Rest API Server Query String -> /ciscoise/mdminfo/?ise_api_version=2
DEBUG [admin-http-pool8][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- MDM Rest API Server Query PATH String -> /ciscoise/mdminfo/?ise_api_version=2
DEBUG [admin-http-pool8][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- 2. On Error : re-connecting to the MDM server host YOUR_ACCOUNT.jamfcloud.com using api version-2
DEBUG [admin-http-pool8][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- sendGETRequestDom: start HTTP request - connectionsUsed: 4, connectionsAvailable: 196
DEBUG [admin-http-pool8][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- sendGETRequestDomNonComp: start HTTP request - connectionsUsed: 0, connectionsAvailable: 200
DEBUG [admin-http-pool8][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- ===mdmFlowInfo===null,=====serverType=====MobileDeviceManager,===serverAuthType===Basic
DEBUG [admin-http-pool8][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- QueryType is heartbeatQuery
DEBUG [admin-http-pool8][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- using httpClient for http query - [parameters={http.route.default-proxy=http://PROXY_IP:PROXY_PORT, http.socket.timeout=30000, http.connection.timeout=5000}]
INFO [admin-http-pool8][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- GET: MDM Server URL: https://YOUR_ACCOUNT.jamfcloud.com:443/networkIntegrationEndpoint/1/79fu/ciscoise/mdminfo/?ise_api_version=2
DEBUG [admin-http-pool8][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- Proxy Config in request = [,PROXY_IP,PROXY_PORT,nullnull2fpwHJhtoIMf+jKzFKazgg==%/ZFdElAGn4odZaRIZxeiZQ==]
ERROR [admin-http-pool8][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- Error message while connecting to MDM server : Failed to connect to MDM Server YOUR_ACCOUNT.jamfcloud.com : 401
DEBUG [admin-http-pool8][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- sendGETRequestDom: end HTTP request - connectionsUsed: 4, connectionsAvailable: 196
DEBUG [admin-http-pool8][[]] cisco.cpm.mdm.util.MdmRESTClient -:::::- sendGETRequestDomNonComp: end HTTP request - connectionsUsed: 0, connectionsAvailable: 200
DEBUG [admin-http-pool8][[]] cisco.cpm.mdm.apiimpl.MDMVerifyServer -:::::- retry connecting using api v1 after 5 seconds.
封包擷取會顯示類似以下行為:
錯誤401中涉及的MDM資料包
| 修訂 | 發佈日期 | 意見 |
|---|---|---|
2.0 |
16-Jun-2026
|
更新的拼寫、間距、語法、句子結構、簡介、替代文字、更新的URL、標題等。 |
1.0 |
18-Aug-2023
|
初始版本 |