A small helper for automating the IServ enrollment process for iPads.
Go to file
Kevin Dorner d833c2a76a Fixed tags, added checks, much refactor - such wow
- Fixed host_tags retrieval (now supports multiple tags and properly handles none)
- Added status code check
- Added check for failed authorization
- Renamed target_compilation -> mdm_compilation
- Fixed and refactored squeeze_html_form()
2022-03-26 20:01:39 +01:00
src Fixed tags, added checks, much refactor - such wow 2022-03-26 20:01:39 +01:00
.gitignore (untested) config and more big changes 2022-03-25 01:48:44 +01:00
Cargo.lock (untested) config and more big changes 2022-03-25 01:48:44 +01:00
Cargo.toml (untested) config and more big changes 2022-03-25 01:48:44 +01:00
Readme.md (untested) config and more big changes 2022-03-25 01:48:44 +01:00
config.toml.example Fixed tags, added checks, much refactor - such wow 2022-03-26 20:01:39 +01:00

Readme.md

IServ-iPad-Helper

Introduction

The IServ-iPad-Helper makes your admin life easier by automating device creation and compilation assignment for Apple iPads (and perhaps other Apple devices). You just have to connect the iDevices to a lightning ethernet dongle and don't have to touch you computer, allowing you to focus on following the onscreen instructions required by the iPads. This can save you a lot of time when setting up iPads in bulk.

Motivation

My main motivation for writing this program was that IServ currently lacks the functionality of automating iDevice enrollment; all steps have to performed manually through the web interface and you often face long wait times, when a database modification is performed. This quickly gets tedious, especially because the mdm and the general device management are decoupled from another, requiring you to jump back and forth between the two.

Prerequisites

  • Your iPads automatically receive an ip address with unrestricted internet access through a lightning wired ethernet adapter (note that this temporary ip address is overridden once the device is created)
  • You have a device filter that only returns devices you want to be edited and added to the compilation (usually "empty room" and keyword search for "iPad" should suffice)

Workflow

  1. Continously the server is queried for devices matching the specified device filter.
  2. Once a device has been activated through Apple's servers, a device is added by the IServ mdm. This program detects the new device and assigns the next available ip address that was suggested, as well as a room to the device.
  3. The device is added to the compilation (most likely you want a compilation that includes a WiFi profile)
  4. The proposed mdm changes are confirmed

Disclaimer

While I can confirm that the program was fully working the last time I used it, I cannot guarantee that changes to IServ in the future will not break this program in the future or cause unintended side effects. Since IServ sadly does not provide a proper versioned API the only way to achieve this kind of functionality is through programatically using the same human-centered web GUI you would've used for the task. Further, the barebone HTML parsing employed is sensitive to change, because it merely looks for hard-coded strings in the response (proper XML parsing seemed overkill for this simple task and would require more work). Lastly, you should be aware that this program does not come with warranty and that you are responsible for your actions and any damage sustained.