Verwenden der MDM zum anwenden von Softwareupdates auf Apple-Geräte
Deklarative Geräteverwaltung ist die Zukunft der Geräteverwaltung von Apple. Damit ist es möglich, dass Einstellungen asynchron auf das Gerät angewendet werden können und es seinen Status an die MDM-Lösung (Mobile Device Management) ohne kontinuierliche Abfrage zurückgibt. Das ist ideal für die Leistung und Skalierbarkeit und ermöglicht auch einen modernen Ansatz für die Verwaltung von Softwareupdates. Die deklarative Geräteverwaltung stellt proaktive Statusberichte von Geräten zur Verfügung, während sich Werte und Konfigurationen verändern. So hast eine MDM-Lösung immer einen aktuellen Stand der Geräte, ohne regelmäßig Anfragen ausführen zu müssen.
Eine MDM-Lösung deklariert die gewünschte Version des Betriebssystems und delegiert die Aufgabe an das Gerät selbst, um diesen Zustand zu erreichen, anstatt einen Befehl für ein Softwareupdate an ein Gerät zu senden, um ein Update zu initiieren. Dadurch wird der Softwareupdate-Vorgang resilienter und auch für Benutzer:innen transparenter.
Die Wichtigkeit der Verwendung von Softwareupdatedeklarationen
MDM-Lösungen sollten wann immer es möglich ist Softwareupdatedeklarationen verwenden. Jedoch sind ältere Softwareupdatebefehle und -profile noch immer verfügbar und werden unterstützt. Mit den folgenden Änderungen können sie zeitgleich mit Softwareupdatedeklarationen arbeiten:
Von einer Deklaration definierte Aufschübe haben Vorrang vor Aufschüben, die von einer Einschränkung konfiguriert wurden.
Die Einstellungen für automatische Softwareupdates in macOS, die von einer Deklaration angewendet wurde, haben Vorrang vor den Einstellungen für automatische Updates, die in einem Konfigurationsprofil bereitgestellt wurden.
Wenn ein anstehendes Softwareupdate mit einer deklarativen Geräteverwaltung konfiguriert wurde, werden einige MDM-Befehle nicht mehr vom Client verarbeitet und geben stattdessen Fehlermeldungen zurück, die besagen, dass es eine aktive Deklaration auf dem Gerät gibt, wie in der folgenden Tabelle erklärt wird:
MDM-Befehl | Ergebnis | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Limitiert: In macOS können auf dem Betriebssystem basierende Updates, die nicht verwaltet sind, in der Befehlsantwort angezeigt werden, z. B. in Xcode oder Befehlszeilenprogrammen. | ||||||||||
| Das Gerät gibt einen | ||||||||||
| Das Gerät gibt ein leeres Status-Array zurück. |
Verwenden des Lookup-Diensts der Apple-Software
Der Lookup-Dienst der Apple-Software (verfügbar unter https://gdmf.apple.com/v2/pmv) ist die offizielle Quelle für den Erhalt von Listen mit öffentlich verfügbaren Updates, Upgrades und schnellen Sicherheitsmaßnahmen. Er erlaubt einer MDM-Lösung, eine Anfrage abzuschicken, sobald sie veröffentlicht sind, und die Anwendbarkeit für jedes Hardware-Modell schnell und akkurat zu berechnen.
Die JSON-Antwort enthält drei Listen verfügbarer Softwareveröffentlichungen:
PublicAssetSets: Diese Liste enthält die neuesten Versionen, die öffentlich verfügbar sind, wenn versucht wird ein Update oder ein Upgrade auszuführen.
AssetSets: Diese Liste ist eine Untergruppe von PublicAssetSets und enthält all die Versionen, die für MDM-Lösungen für die Push-Übertragung an betreute Geräte verfügbar sind.
PublicRapidSecurityResponses: Diese Liste enthält die Veröffentlichungen der schnellen Sicherheitsmaßnahmen, die derzeit für Apple-Geräte verfügbar sind.
Jedes Element in der Liste enthält die Produktversions
-Nummer und den Build
des Betriebssystems, das Veröffentlichungsdatum
, an dem die Version veröffentlich wurde, das Ablaufdatum
sowie eine Liste unterstützter Geräte
für diese Version. Die Geräteliste entspricht dem ProductName
-Wert des Geräts, die in der DeviceInformation
-Antwort, der ursprünglichen Authenticate
-Anfrage oder in der MachineInfo
zurückgegeben wird, wenn das Gerät versucht, sich anzumelden.
Das Ablaufdatum ist üblicherweise auf 180 Tage nach dem Veröffentlichungsdatum festgelegt und definiert das Datum, an dem die Signatur des Updates abläuft. Ein abgelaufenes Update kann nicht mehr auf Geräten installiert werden. Wenn nachfolgende Updates zur Verfügung gestellt werden, können die Ablaufdaten vorheriger Updates aktualisiert werden. Wird kein Ablaufdatum bereitgestellt, ist das Update nicht abgelaufen. Ein Update ist nur dann abgelaufen, wenn sein Ablaufdatum in der Vergangenheit liegt.
Die Assets werden nach Betriebssytemplattform gruppiert und verwenden die folgenden Schlüssel:
iOS
(enthält auch iPadOS, tvOS und watchOS)macOS
xrOS
(entspricht visionOS)
{
"AssetSets": {
"iOS": [
{
"ProductVersion": "17.5",
"Build": "21F6079",
"PostingDate": "2024-05-13",
"ExpirationDate": "2024-08-15",
"SupportedDevices": ["iPad11,1", "iPad11,2", "iPad11,3", "iPad11,4", "iPad11,6", "iPad11,7", "iPad12,1", "iPad12,2", "iPad13,1","iPad13,10", "iPad13,11", "iPad13,16", "iPad13,17", “iPad13,18", "iPad13,19", "iPad13,2", "iPad13,4", “iPad13,5", "iPad13,6", "iPad13,7", "iPad13,8", "iPad13,9", "iPad14,1", "iPad14,2", "iPad14,3", "iPad14,4", "iPad14,5", "iPad14,6", "iPad6,11", "iPad6,12", "iPad6,3", "iPad6,4", "iPad6,7", "iPad6,8", "iPad7,1", "iPad7,11", "iPad7,12", "iPad7,2", "iPad7,3", "iPad7,4", "iPad7,5", "iPad7,6", "iPad8,1", "iPad8,10", "iPad8,11", "iPad8,12", "iPad8,2", "iPad8,3", "iPad8,4", "iPad8,5", "iPad8,6", "iPad8,7", "iPad8,8", "iPad8,9", "iPhone10,1", "iPhone10,2", "iPhone10,3", "iPhone10,4", "iPhone10,5", "iPhone10,6", "iPhone11,2", "iPhone11,6", "iPhone11,8", "iPhone12,1", "iPhone12,3", "iPhone12,5", "iPhone12,8", "iPhone13,1", "iPhone13,2", "iPhone13,3", "iPhone13,4", "iPhone14,2", "iPhone14,3", "iPhone14,4", "iPhone14,5", "iPhone14,6", "iPhone14,7", "iPhone14,8", "iPhone15,2", "iPhone15,3"
]
},
Anhand der Produktversionsliste kannst du erkennen, welche Versionen größer sind als die aktuelle Betriebssystemversion des Geräts und auf ein bestimmtes Gerät angewendet werden können. Stelle die Versionsliste den lokalen MDM-Admins als mögliche Betriebssystemupdate-Kandidaten zur Verfügung.
Senden eines Statusberichts an die MDM-Lösung
Damit Updates für Statusobjekte erhalten werden können, während sie sich ändern, muss der Server jeden Statusbericht unterschreiben, indem er eine ManagementStatusSubscriptions
-Deklaration an das Gerät sendet. Das Gerät sendet dann einen StatusReport
an die MDM-Lösung, wenn eine ManagementStatusSubscriptions
-Deklaration aktiv wird, wenn sich der Status des unterschriebenen Objekts ändern sowie alle 24 Stunden.
Für die Überwachung der Betriebssystemversionen und dem Status des Softwareupdates will die MDM-Lösung möglicherweise die folgenden Statusberichte unterschreiben:
Statusbericht | Beschreibung |
---|---|
| Die Build-Version des Betriebssystems auf dem Gerät (z. B. 21E219). |
| Die Version des Betriebssystems, das auf dem Gerät verwendet wird (z B. 17.4). |
| Das Build des Betriebssystems und die Versionen der Sicherheitsmaßnahmen, die auf dem Gerät verwendet werden (z. B. 20A123a oder 20F75c). |
| Die Version der Sicherheitsmaßnahme des Betriebssystems, die auf dem Gerät verwendet wird (z. B. a). |
| Ein Wörterbuch, das die Versionen des Builds und des Betriebssystems des Softwareupdates enthält, das auf dem Gerät aussteht. |
| Der Installationsstatus des Softwareupdates – enthält folgende Werte:
|
| Ein Wörterbuch mit Details zu dem Grund eines ausstehenden Softwareupdates. Der Schlüssel
|
| Details zum Fehlschlag eines Softwareupdates. Die Details enthalten die Anzahl der Fehlschläge des Softwareupdates, den Zeitstempel des letzten Fehlschlags und den Grund des Fehlschlags. |
| Der registrierte Name des Beta-Programms des Geräts oder eine leere Zeichenkette, falls kein Beta-Programm registriert ist. |
Zusätzlich zu den anderen Berichten können MDM-Lösungen softwareupdate.install-reason
, falls gewünscht, auch Admins für Supportzwecke zur Verfügung gestellt werden oder um weitere Einblicke darin zu liefern, wie Updates ausgelöst werden. Mit diesem Wörterbuch kann bestimmt werden, ob das Softwareupdate durch Benutzer:innen initialisiert wurde, automatisch erfolgte oder durch eine Erzwingungsdeklaration durchgesetzt wurde.
Anfordern einer bestimmten Mindestsoftwareversion während der MDM-Registrierung
Wenn ein Gerät diese Fähigkeiten unterstützt, wird in den MachineInfo
-Daten ein Schlüssel MDM_CAN_REQUEST_SOFTWARE_UPDATE zurückgegeben, dessen Wert „True“ (wahr) ist. Dieser Wert wird in der ursprünglichen HTTP POST-Anfrage an die MDM-Lösung gesendet, wenn das Gerät eine Verwaltungskonfiguration in im Systemassistenten entdeckt. Weitere Informationen erhältst du in der yaml-Datei MachineInfo im GitHub-Repository für die Apple-Geräteverwaltung.
Zusätzlich stehen folgende Felder in den Daten von MachineInfo
zur Verfügung (nur Zeichenketten):
Schlüssel | Mindestens unterstütztes Betriebssystem | Beschreibung | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
VERSION | iOS 17 iPadOS 17 macOS 14 | Die auf dem Gerät installierte Build-Version (beispielsweise 7A182). | |||||||||
OS_VERSION | iOS 17 iPadOS 17 macOS 14 | Die Version des Betriebssystems, das auf dem Gerät installiert ist (beispielsweise 17.0). | |||||||||
SUPPLEMENTAL_BUILD_VERSION | iOS 17 iPadOS 17 macOS 14 | Die Version der schnellen Sicherheitsmaßnahme (falls verfügbar). | |||||||||
SUPPLEMENTAL_OS_VERSION_EXTRA | iOS 17 iPadOS 17 macOS 14 | Die Versionserweiterung der schnellen Sicherheitsmaßnahme (falls verfügbar). | |||||||||
SOFTWARE_UPDATE_DEVICE_ID | iOS 17.4 iPadOS 17.4 macOS 14.4 | Die Modell-ID des Geräts, anhand derer verfügbare Systemupdates im Lookup-Dienst der Apple-Software gesucht werden. |
Anhand der zur Verfügung gestellten Informationen kann die MDM-Lösung entscheiden, ob das Geräteupdate durchgesetzt werden soll.
Wenn eine Gerätelösung ein Softwareupdate nicht durchsetzt, sendet es einfach das MDM-Registrierungsprofil als Antwort auf die HTTP POST-Anfrage. Die entspricht dem normalen Vorgehen beim Erlauben der Durchführung einer MDM-Registrierung.
Wenn die MDM-Lösung ein Softwareupdate durchsetzt, muss eine HTTP-Antwort mit dem Statuscode 403 zurückgegeben werden und sich ein JSON- oder XML-Objekt im Hauptteil der Antwort befinden (für den Header der Antwort zum HTTP-Inhaltstyp muss jeweils
application/json
oderapplication/xml
festgelegt werden).
Nachdem das Gerät diese fehlerbezogene Antwort erhält, versucht es auf die angegebene Version zu aktualisieren. Wenn das Update erfolgreich ist, startet das Gerät neu und der Systemassistent muss erneut durchgeführt werden. Die nächste MachineInfo
-POST-Anfrage des Geräts an die MDM-Lösung zeigt die aktualisierte Version des Betriebssystems und die MDM-Lösung kann mit der Registrierung fortfahren. Wenn das Update fehlschlägt, wird Benutzer:innen ein Fehler angezeigt und das Fenster „Remoteverwaltung“ wird im Systemassistenten angezeigt.
Das response
-Schema wird in der Tabelle unten angezeigt.
Schlüssel | Typ | Erforderlich | Beschreibung | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Zeichenkette | Ja | Muss auf | ||||||||
| Zeichenkette | Nein | Die Beschreibung des Fehlers. Wird nur für Anmeldezwecke verwendet. | ||||||||
| Zeichenkette | Nein | Die Beschreibung des Fehlers in von Benutzer:innen lesbarer Form. | ||||||||
| Lexikon | Ja | Weitere Daten, die das Softwareupdate präzisieren. |
Das Wörterbuchschema für details
wird hier definiert.
Schlüssel | Typ | Erforderlich | Beschreibung | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Zeichenkette | Ja | Die Betriebssystemversion, auf die das Gerät aktualisiert werden soll. | ||||||||
| Zeichenkette | Nein | Die Build-Version, auf die das Gerät aktualisiert werden soll. | ||||||||
| Lexikon | Nein | Das Gerät wird im Beta-Programm registriert und erlaubt durchgesetzte Softwareupdates auf Betriebssystemversionen des Beta-Programms. Das Gerät verbleibt im Beta-Programm, nachdem das durchgesetzte Softwareupdate abgeschlossen ist. |
Falls nur OSVersion
angegeben wird, lädt und installiert ein Gerät automatisch alle für diese Version verfügbaren schnellen Sicherheitsmaßnahmen. Falls ein bestimmter Build oder eine ergänzende Version benötigt werden, kann eine MDM-Lösung auch optional BuildVersion
angeben. Um beispielsweise für ein Gerät iOS 16.5.1(a) als Voraussetzung für die Registrierung festzulegen – obwohl bereits iOS 16.5.1(c) verfügbar ist – muss eine MDM-Lösung für OSVersion
die Option iOS 16.5.1 festlegen sowie 20F770750b für BuildVersion
.
Wichtig: Vor macOS 15 konnten nur Versionen der Listen PublicAssetSets
und PublicRapidSecurityResponses
angegeben werden. In macOS 15 können Assets auch von AssetSets
genutzt werden.
MDM-Einstellungen für Softwareupdates
Die Deklaration com.apple.configuration.softwareupdate.settings
(verfügbar in iOS 18, iPadOS 18 und macOS 15) besteht aus Wörterbüchern, mit denen zahlreiche Verhaltensaspekte eines Softwareupdates konfiguriert werden können.
Nachdem eine MDM-Lösung verschiedene Schlüssel auf mehrere Deklarationen verteilt, führt ein Gerät die Einstellungen aller aktiven Deklarationen für Softwareupdate-Einstellungen zusammen. Falls ein Schlüssel von mehreren Deklarationen konfiguriert wird, hängt das Ergebnis der Zusammenführung von dem jeweiligen Schlüssel ab und wird im Folgenden erläutert.
Automatische Softwareupdates mit MDM konfigurieren
Die Deklaration com.apple.configuration.softwareupdate.settings
verfügt über ein Wörterbuch, mit dem das Verhalten für automatische Softwareupdates auf betreuten iPhones, iPads und Macs definiert werden kann. Weitere Informationen findest du unter Wörterbuchschlüssel für AutomaticActions.
Umgang von MDM mit schnellen Sicherheitsmaßnahmen
Schnelle Sicherheitsmaßnahmen betreffen immer die neueste Version eines Betriebssystems, welches somit die Basisversion der schnellen Sicherheitsmaßnahme bildet. Wenn beispielsweise auf einem iPhone iOS 17.2 als Betriebssystemversion installiert ist, wird das ergänzende Update 17.2 (a) angewendet, sofern vorhanden. Unter iOS 18, iPadOS 18 und macOS 15 wurden kombinierte Updates zur Verfügung gestellt, die es ermöglichen, dass Softwareupdates alle verfügbaren schnellen Sicherheitsmaßnahmen enthalten.
Vor iOS 18, iPadOS 18 und macOS 15 muss eine MDM-Lösung möglicherweise zwei Softwareupdates veranlassen, um sicherzustellen, dass die ergänzende Version vorhanden ist: Zuerst muss auf die Basisversion des ergänzenden Updates aktualisiert werden (beispielsweise iOS 17.1 auf iOS 17.2), anschließend muss die Basisversion auf die ergänzende Version aktualisiert werden (beispielsweise iOS 17.2 auf iOS 17.2 (a)).
Unter iOS 18, iPadOS 18 und macOS 15 kann eine MDM-Lösung Folgendes angeben:
Entweder die Betriebssystemversion (wodurch verfügbare schnelle Sicherheitsmaßnahmen automatisch installiert werden)
Oder die ergänzende Build-Version (wodurch ein Gerät während des Prozesses automatisch erforderliche Updates auf die Basisversion durchführt)
Diese zwei Ansätze betreffen die Konfiguration zum Durchsetzen von Softwareupdates sowie zur Mindestversion während der automatischen Geräteregistrierung.
Die Deklaration com.apple.configuration.softwareupdate.settings
kann auch verwendet werden, um das Verhalten von schnellen Sicherheitsmaßnahmen auf betreuten iPhones, iPads und Macs zu konfigurieren. Weitere Informationen findest du unter Wörterbuchschlüssel für RapidSecurityResponse unter iOS, iPadOS und macOS.
Verschieben von Softwareupdates mit MDM
Um ein Softwareupdate oder -upgrade einen bis 90 Tage zu verschieben, verwende die Deklaration com.apple.configuration.softwareupdate.settings
auf betreuten iPhones, iPads und Macs.
Über eine konfigurierte Verschiebung wird definiert, wie viele Tage ein Update nach dessen Veröffentlichung Benutzer:innen nicht angeboten wird. Unabhängig von der konfigurierten Verschiebung kann eine MDM-Lösung dennoch auf betreuten Geräten ein bestimmtes Softwareupdate oder eine schnelle Sicherheitsmaßnahme durchsetzen. Weitere Informationen findest du unter Wörterbuchschlüssel für das Verschieben unter iOS und iPadOS und Wörterbuchschlüssel für das Verschieben unter macOS.
Hinweis: Das Verschieben von Softwareupdates verschiebt auch alle schnellen Sicherheitsmaßnahmen, die auf dieser Version basieren.
Erzwingen von Softwareupdates mit MDM
Um ein Softwareupdate auf Geräten, die per Geräteregistrierung oder automatischer Geräteregistrierung registriert wurden, bis zu einem bestimmten Zeitpunkt durchzusetzen, können MDM-Lösungen die Deklaration com.apple.configuration.softwareupdate.enforcement.specific
verwenden.
Eine Konfiguration wird ignoriert, wenn sie eine Betriebssystem- oder Build-Version angibt, die identisch oder älter ist, als die aktuelle Version auf dem Gerät.
Wenn mehrere Konfigurationen mit neuerer Betriebssystem- oder Build-Version vorhanden sind, als die aktuelle Version auf dem Gerät, wird die Konfiguration mit frühestem Datum und Uhrzeit zuerst verarbeitet. Die anderen verbleiben in der Warteschlange. Wenn die Version auf dem Gerät aktualisiert wird, wird die Gruppe der Konfigurationen erneut verarbeitet, um zu bestimmen, welche als nächstes verarbeitet wird.
Verfügbare schnelle Sicherheitsmaßnahmen werden automatisch installiert, wenn eine MDM-Lösung ausschließlich TargetOSVersion
definiert. Um eine bestimmte Version oder schnelle Sicherheitsmaßnahme anzuwenden, kann eine MDM-Lösung zusätzlich zur Angabe des Builds einschließlich der ergänzenden Versions-ID den Schlüssel TargetBuildVersion
verwenden.
Weitere Informationen findest du unter Wörterbuchschlüssel für durchgesetzte Softwareupdates.
Benachrichtigungen
Der Notifications-Schlüssel ändert das Standardverhalten für Benachrichtigungen. Es wird nur eine Mitteilung 1 Stunde vor dem Durchsetzungszeitpunkt sowie ein Countdown für den Neustart angezeigt. Weitere Informationen findest du unter Notifications-Schlüssel.
Verwenden des Bootstrap Tokens für Mac-Computer mit Apple Chips
Um ein durchgesetztes Softwareupdate auf betreuten Mac-Computern mit Apple Chips zu autorisieren, kann eine MDM-Lösung ein Bootstrap Token anfordern und hinterlegen. Dadurch entsteht ein reibungsloser Softwareupdate-Ablauf und die Notwendigkeit von Interaktion von Seiten der Benutzer:innen als Teil des Vorgangs wird vermieden. Bei Bedarf verwendet das Gerät einen GetBootstrapTokenRequest
, um das Bootstrap Token aus der MDM-Lösung wiederherzustellen.
Im ersten Schritt bestimmt die MDM-Lösung mithilfe des Befehls SecurityInfo
, ob das Gerät ein Bootstrap Token unterstützt. Enthält die Antwort ein BootstrapTokenRequiredForSoftwareUpdate
, das auf „true“ gesetzt ist, kann das Gerät ein Bootstrap Token zum Autorisieren des Softwareupdates vewenden.
Damit ein Bootstrap Token erstellt werden kann, muss die MDM-Lösung com.apple.mdm.bootstraptoken
zum ServerCapabilities
-Array im MDM-Profil hinzufügen. Weitere Informationen findest du unter MDM payload auf der Apple Developer-Website.
Nachdem das Gerät das Bootstrap Token erhält, wird bei der nächsten Anmeldung eines:einer für Secure Token aktivierten Benutzers:Benutzerin ein Bootstrap Token erstellt. Danach greift es auf den Check-In-Endpunkt der MDM-Lösung zu und verwaltet das Token mit einer SetBootstrapTokenRequest
treuhänderisch. Weitere Informationen findest du unter Set Bootstrap Token auf der Apple Developer-Website.
Weitere Informationen zu den aktuellsten Schemaspezifikationen findest du unter GitHub-Repository für die Apple-Geräteverwaltung.