Software-updates met MDM implementeren op Apple apparaten
Declaratief apparaatbeheer is de toekomst van Apple apparaatbeheer. Het stelt het apparaat in staat om asynchroon instellingen toe te passen en de status door te geven aan de MDM-oplossing (Mobile Device Management) zonder dat daarvoor constante polling nodig is. Dit is ideaal voor de prestaties en schaalbaarheid en maakt een moderne benadering van het beheer van software-updates mogelijk. Met declaratief apparaatbeheer kunnen apparaten proactief hun status doorgeven als waarden en configuraties worden aangepast. Op deze manier heeft een MDM-oplossing altijd een actueel overzicht van de apparaten zonder dat er regelmatig verzoeken naar de apparaten hoeven te worden verstuurd.
In plaats van een software-updatecommando naar een apparaat te sturen om een update starten, maakt een MDM-oplossing de gewenste besturingssysteemversie bekend. Vervolgens wordt het aan het apparaat zelf overgelaten om die status te bereiken. Dit zorgt voor een robuuster software-updateproces en verbeterde transparantie voor gebruikers.
Het belang van het gebruik van declaraties voor software-updates
In MDM-oplossingen moet zoveel mogelijk gebruik worden gemaakt van declaraties voor software-updates. De verouderde commando's en profielen voor software-updates zijn echter nog steeds beschikbaar en worden nog steeds ondersteund. Ze kunnen in combinatie met declaraties voor software-updates worden gebruikt. Hierbij gelden de volgende wijzigingen:
Uitstel dat met een declaratie is ingesteld, heeft voorrang boven uitstel dat met een beperking is ingesteld.
Instellingen voor automatische software-updates in macOS die zijn toegepast met een declaratie hebben voorrang boven instellingen voor automatische updates die met een configuratieprofiel zijn opgegeven.
Wanneer er een software-update klaar staat die is geconfigureerd via declaratief apparaatbeheer, worden bepaalde MDM-commando's niet meer door de client verwerkt en worden er fouten weergegeven waarin wordt vermeld dat er een actieve declaratie op het apparaat staat, zoals weergegeven in de volgende tabel:
MDM-commando | Resultaat | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Beperkt: In macOS kunnen niet-beheerde besturingssysteemupdates worden weergegeven in de reactie op het commando, zoals Xcode of commandoregeltools. | ||||||||||
| Het apparaat retourneert een | ||||||||||
| Het apparaat retourneert een lege statusarray. |
De zoekvoorziening voor Apple software gebruiken
De Apple Software Lookup Service (https://gdmf.apple.com/v2/pmv) is de officiële informatiebron voor het opvragen van een lijst met algemeen beschikbare updates, upgrades en snelle beveiligingsmaatregelen. Hiermee kunnen MDM-oplossingen informatie over releases opvragen zodra die zijn gepubliceerd zodat ze de toepasbaarheid voor elk hardwaremodel snel en nauwkeurig kunnen berekenen.
De JSON-reactie bevat drie lijsten met beschikbare softwarereleases:
PublicAssetSets: Deze lijst bevat de nieuwste releases die voor alle gebruikers beschikbaar zijn als ze proberen de software te updaten of te upgraden.
AssetSets: Deze lijst is een subset van PublicAssetSets en bevat alle releases die door MDM-oplossingen naar apparaten die onder toezicht staan kunnen worden verstuurd.
PublicRapidSecurityResponses: Deze lijst bevat releases van snelle beveiligingsmaatregelen die momenteel beschikbaar zijn voor Apple apparaten.
Elk element in de lijst bevat het ProductVersion
-nummer en de Build
van het besturingssysteem, de PostingDate
waarop de release is gepubliceerd, de ExpirationDate
en een lijst met SupportedDevices
voor die release. De apparaatlijst komt overeen met de ProductName
-waarde van het apparaat die wordt geretourneerd in een DeviceInformation
-reactie, het eerste Authenticate
-verzoek of in de MachineInfo
wanneer het apparaat zich probeert in te schrijven.
Met de vervaldatum, die doorgaans is ingesteld op 180 dagen na de releasedatum., wordt de datum aangegeven waarop de update niet meer wordt ondertekend. Een update kan na de vervaldatum niet meer op apparaten worden geïnstalleerd. Wanneer er nieuwe updates beschikbaar komen, wordt de vervaldatum van eerdere updates mogelijk bijgewerkt. Als er geen vervaldatum is opgegeven, is de update nog niet verlopen. Een update is pas verlopen wanneer deze een vervaldatum heeft die in het verleden ligt.
De onderdelen worden per besturingssysteem gegroepeerd met de volgende sleutels:
iOS
(inclusief iPadOS, tvOS en watchOS)macOS
xrOS
(is hetzelfde als 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"
]
},
Gebruik de lijst met productversies om te bepalen welke versies nieuwer zijn dan de huidige besturingssysteemversie van het apparaat en van toepassing zijn op een specifiek apparaat. Geef deze lijst met versies aan de MDM-beheerder zodat deze een overzicht heeft van de mogelijke kandidaten voor besturingssysteemupdates.
Een statusrapport naar de MDM-oplossing sturen
Om updates over gewijzigde statusonderdelen te ontvangen, moet de server een abonnement nemen op de bijbehorende statusrapporten door een ManagementStatusSubscriptions
-declaratie naar het apparaat te sturen. Het apparaat stuurt vervolgens een StatusReport
naar de MDM-oplossing wanneer een ManagementStatusSubscriptions
-declaratie wordt geactiveerd, als de status van een onderdeel met een abonnement verandert en om de 24 uur.
Om de versies van besturingssystemen en de status van software-updates te controleren, kan de MDM-oplossing een abonnement nemen op de volgende statusrapporten:
Statusrapport | Beschrijving |
---|---|
| De buildversie van het besturingssysteem op het apparaat (bijvoorbeeld 21E219). |
| De versie van het besturingssysteem dat op het apparaat wordt gebruikt (bijvoorbeeld 17.4). |
| De buildversie van het besturingssysteem en de versie van de snelle beveiligingsmaatregel die op het apparaat worden gebruikt (bijvoorbeeld 20A123a of 20F75c). |
| De versie van de snelle beveiligingsmaatregel die op het apparaat wordt gebruikt (bijvoorbeeld a). |
| Een woordenboek met de buildversie en de besturingssysteemversie van de software-update die klaar staat op het apparaat. |
| De installatiestatus van de software-update met een van de volgende waarden:
|
| Een woordenboek met informatie over de reden voor de software-update die klaar staat. De sleutel
|
| Informatie over een mislukte software-update. Hier worden onder andere het aantal keren dat de software-update is mislukt, de tijdstempel van de laatste mislukte poging en de reden voor het mislukken van de update vermeld. |
| De naam van het bètaprogramma waarbij het apparaat is ingeschreven of een lege tekenreeks als het apparaat niet bij een bètaprogramma is ingeschreven. |
Naast andere rapporten kan het ook handig zijn om via een MDM-oplossing softwareupdate.install-reason
beschikbaar te maken voor beheerders voor ondersteuningsdoeleinden en om meer inzicht te krijgen in hoe de update is gestart. Dit woordenboek kan worden gebruikt om te bepalen of een gebruiker de update zelf heeft gestart, of de update automatisch is gestart of dat de update is afgedwongen door een declaratie voor het afdwingen van software-updates.
Om een minimale softwareversie vragen tijdens de inschrijving bij MDM
Als een apparaat deze mogelijkheid ondersteunt, wordt de sleutel 'MDM_CAN_REQUEST_SOFTWARE_UPDATE' met de instelling 'True' geretourneerd in de MachineInfo
-gegevens die worden verstuurd in het eerste HTTP POST-verzoek aan de MDM-oplossing wanneer het apparaat een beheerconfiguratie detecteert in de configuratie-assistent. Zie het MachineInfo.yaml-bestand in de GitHub-repository voor Apple apparaatbeheer voor meer informatie (Engelstalig).
Daarnaast geven apparaten de volgende velden op in de MachineInfo
-gegevens (allemaal tekenreeksen):
Sleutel | Minimale OS-versie | Beschrijving | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
VERSION | iOS 17 iPadOS 17 macOS 14 | De versie van de build die op het apparaat is geïnstalleerd (bijvoorbeeld 7A182). | |||||||||
OS_VERSION | iOS 17 iPadOS 17 macOS 14 | De versie van het besturingssysteem dat op het apparaat is geïnstalleerd (bijvoorbeeld 17.0). | |||||||||
SUPPLEMENTAL_BUILD_VERSION | iOS 17 iPadOS 17 macOS 14 | De versie van de snelle beveiligingsmaatregel die op het apparaat is geïnstalleerd (indien aanwezig). | |||||||||
SUPPLEMENTAL_OS_VERSION_EXTRA | iOS 17 iPadOS 17 macOS 14 | De aanvullende versie van de snelle beveiligingsmaatregel die op het apparaat is geïnstalleerd (indien aanwezig). | |||||||||
SOFTWARE_UPDATE_DEVICE_ID | iOS 17.4 iPadOS 17.4 macOS 14.4 | De apparaatmodel-ID die wordt gebruikt om beschikbare besturingssysteemupdates op te zoeken in de zoekvoorziening voor Apple software. |
Op basis van de verstrekte informatie kan de MDM-oplossing bepalen of de update op het apparaat moet worden afgedwongen.
Als een MDM-oplossing een software-update niet afdwingt, retourneert de MDM-oplossing het MDM-inschrijvingsprofiel als reactie op het HTTP POST-verzoek, net zoals bij een normale voortzetting van de MDM-inschrijving.
Als de MDM-oplossing de software-update wel afdwingt, moet de MDM-oplossing een HTTP-reactie met de statuscode 403 retourneren en een JSON- of XML-object toevoegen in de hoofdtekst van de reactie (de HTTP Content-Type-koptekst van de reactie moet zijn ingesteld op
application/json
ofapplication/xml
).
Nadat het apparaat deze foutmelding heeft ontvangen, probeert het de software bij te werken naar de opgegeven versie. Als de update slaagt, wordt het apparaat opnieuw opgestart en moet de gebruiker de configuratie-assistent opnieuw doorlopen. In het volgende POST-verzoek met MachineInfo
van het apparaat aan de MDM-oplossing wordt de bijgewerkte besturingssysteemversie weergegeven, waarna de MDM-oplossing de MDM-inschrijving kan voortzetten. Als de update mislukt, ziet de gebruiker een foutmelding en verschijnt het paneel voor extern beheer opnieuw in de configuratie-assistent.
De notatie voor response
wordt in de onderstaande tabel beschreven.
Sleutel | Type | Vereist | Beschrijving | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Tekenreeks | Ja | Moet zijn ingesteld op | ||||||||
| Tekenreeks | Nee | De beschrijving van de fout. Wordt alleen gebruikt voor logdoeleinden. | ||||||||
| Tekenreeks | Nee | Een voor de gebruiker leesbare beschrijving van de fout. | ||||||||
| Woordenboek | Ja | Aanvullende gegevens over de software-update. |
De notatie van het woordenboek voor details
wordt hier beschreven.
Sleutel | Type | Vereist | Beschrijving | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Tekenreeks | Ja | De besturingssysteemversie waarnaar het apparaat moet worden bijgewerkt. | ||||||||
| Tekenreeks | Nee | De buildversie waarnaar het apparaat moet worden bijgewerkt. | ||||||||
| Woordenboek | Nee | Het apparaat wordt ingeschreven bij het bètaprogramma, waardoor software-updates naar bètaversies van besturingssystemen kunnen worden afgedwongen. Het apparaat blijft ingeschreven bij het bètaprogramma nadat de afgedwongen software-update is voltooid. |
Als alleen de OSVersion
is opgegeven, worden alle snelle beveiligingsmaatregelen voor die versie automatisch gedownload en op het apparaat geïnstalleerd. Wanneer een specifieke build of aanvullende versie nodig is, kan een MDM-oplossing ook de BuildVersion
opgeven. Als op een apparaat bijvoorbeeld iOS 16.5.1(a) moet zijn geïnstalleerd om te kunnen worden ingeschreven en iOS 16.5.1(c) al beschikbaar is, moet een MDM-oplossing de OSVersion
instellen op iOS 16.5.1 en de BuildVersion
op 20F770750b.
Belangrijk: In versies van macOS ouder dan macOS 15 kunnen alleen versies uit de lijsten PublicAssetSets
en PublicRapidSecurityResponses
worden opgegeven. In macOS 15 kunnen ook onderdelen uit AssetSets
worden gebruikt.
MDM-instellingen voor software-updates
De declaratie com.apple.configuration.softwareupdate.settings
(beschikbaar in iOS 18, iPadOS 18 en macOS 15) bestaat uit woordenboeken die kunnen worden gebruikt om verschillende aspecten van de toepassing van software-updates te configureren.
Nadat een MDM-oplossing verschillende sleutels over meerdere declaraties heeft verdeeld, voegt een apparaat de instellingen van alle actieve declaraties voor software-updates samen. Als dezelfde sleutel door meerdere declaraties is geconfigureerd, is de manier waarop de sleutels worden samengevoegd afhankelijk van de specifieke sleutel. Dit wordt beschreven in de onderstaande tabellen.
Automatische software-updates configureren met MDM
De declaratie com.apple.configuration.softwareupdate.settings
bevat een woordenboek voor het opgeven van instellingen voor het toepassen van automatische software-updates op iPhones, iPads en Macs die onder toezicht staan. Zie AutomaticActions-woordenboeksleutels voor meer informatie.
Hoe MDM snelle beveiligingsmaatregelen verwerkt
Snelle beveiligingsmaatregelen zijn altijd van toepassing op de nieuwste update van een besturingssysteem, die fungeert als de basisversie van de snelle beveiligingsmaatregel. Als op een iPhone bijvoorbeeld de besturingssysteemversie iOS 17.2 is geïnstalleerd, dan wordt de aanvullende update 17.2 (a) toegepast (indien beschikbaar). In iOS 18, iPadOS 18 en macOS 15 zijn gecombineerde updates beschikbaar, waar alle beschikbare snelle beveiligingsmaatregelen deel van uitmaken.
In versies ouder dan iOS 18, iPadOS 18 en macOS 15 moet een MDM-oplossing mogelijk twee software-updates uitvoeren om te zorgen dat een aanvullende versie is geïnstalleerd. Eerst moet het apparaat worden bijgewerkt naar de basisversie van de aanvullende update als deze nog niet is geïnstalleerd (bijvoorbeeld van iOS 17.1 naar iOS 17.2), en vervolgens moet de basisversie worden bijgewerkt naar de aanvullende versie (bijvoorbeeld van iOS 17.2 naar iOS 17.2 (a)).
In iOS 18, iPadOS 18 en macOS 15 kan een MDM-oplossing een van de volgende versies opgeven:
De versie van het besturingssysteem (waarbij beschikbare snelle beveiligingsupdates automatisch worden geïnstalleerd)
De versie van de aanvullende build (waarbij als onderdeel van het proces automatisch een noodzakelijke update van de basisversie op het apparaat wordt uitgevoerd)
Deze twee benaderingen zijn van toepassing op de configuratie voor het afdwingen van software-updates en op de afgedwongen minimale versie tijdens automatische apparaatinschrijving.
De declaratie com.apple.configuration.softwareupdate.settings
kan ook worden gebruikt om de toepassing van snelle beveiligingsmaatregelen op iPhones, iPads en Macs onder toezicht te configureren. Zie RapidSecurityResponse-woordenboeksleutels voor iOS, iPadOS en macOS voor meer informatie.
Een software-update uitstellen met MDM
Een software-update of -upgrade kan tussen 1 en 90 dagen worden uitgesteld met de declaratie com.apple.configuration.softwareupdate.settings
op iPhones, iPads en Macs die onder toezicht staan.
In een geconfigureerd uitstel wordt opgegeven hoeveel dagen een versie niet aan gebruikers wordt aangeboden na door Apple te zijn uitgebracht. Ook als er uitstel is geconfigureerd, kan een MDM-oplossing nog altijd een specifieke software-update, -upgrade of snelle beveiligingsmaatregel afdwingen op beheerde apparaten. Zie Deferrals-woordenboeksleutels voor iOS en iPadOS en Deferrals-woordenboeksleutels voor macOS voor meer informatie.
Opmerking: Bij het uitstellen van een software-update worden ook alle snelle beveiligingsmaatregelen uitgesteld die van die versie afhankelijk zijn.
Software-updates afdwingen met MDM
Om een software-update op een bepaalde tijd af te dwingen op apparaten die zijn ingeschreven via apparaatinschrijving of automatische apparaatinschrijving, kunnen MDM-oplossingen de declaratie com.apple.configuration.softwareupdate.enforcement.specific
toepassen.
Als in een configuratie een besturingssysteem- of buildversie is opgegeven die hetzelfde is als of ouder is dan de versie die op het apparaat is geïnstalleerd, wordt de configuratie genegeerd.
Als er meerdere configuraties aanwezig zijn met een nieuwere besturingssysteem- of buildversie dan de versie die op het apparaat is geïnstalleerd, wordt de configuratie met de dichtstbijzijnde datum en tijd als eerste verwerkt en blijven de andere configuraties in de wachtrij staan. Wanneer het apparaat is bijgewerkt naar de nieuwe versie, wordt de groep configuraties opnieuw verwerkt om te bepalen welke configuratie daarna moet worden verwerkt.
Beschikbare snelle beveiligingsmaatregelen worden automatisch geïnstalleerd als een MDM-oplossing alleen de TargetOSVersion
opgeeft. Om een specifieke versie of snelle beveiligingsmaatregel te installeren, kan een MDM-oplossing naast de buildversie ook de sleutel TargetBuildVersion
opgeven, inclusief de ID van de aanvullende versie.
Zie Woordenboeksleutels voor het afdwingen van software-updates voor meer informatie.
Meldingen
Met de sleutel 'Notifications' kan de standaardinstelling voor meldingen worden gewijzigd zodat alleen een melding één uur voor de deadline en een melding voor het aftellen naar de herstart worden weergegeven. Zie Sleutel 'Notifications' voor meer informatie.
Het Bootstrap Token gebruiken voor Macs met Apple silicon
Om een afgedwongen software-update te autoriseren op een Mac met Apple silicon die onder toezicht staat, kan een MDM-oplossing een Bootstrap Token aanvragen en bewaren. Zo kunnen software-updates naadloos worden geïnstalleerd en hoeft de gebruiker zelf niets te doen. Indien nodig gebruikt het apparaat een GetBootstrapTokenRequest
om het Bootstrap Token uit de MDM-oplossing op te halen.
In de eerste stap bepaalt de MDM-oplossing met het commando SecurityInfo
of het apparaat een Bootstrap Token ondersteunt. Als de reactie de sleutel BootstrapTokenRequiredForSoftwareUpdate
met de instelling 'True' bevat, kan het apparaat een Bootstrap Token gebruiken om een software-update te autoriseren.
Om een Bootstrap Token te laten aanmaken, moet de MDM-oplossing com.apple.mdm.bootstraptoken
toevoegen aan de array ServerCapabilities
in het MDM-profiel. Zie de MDM-payload op de Apple Developer-website voor meer informatie (Engelstalig).
Nadat het apparaat het Bootstrap Token heeft ontvangen, wordt de volgende keer dat een Secure Token-gebruiker inlogt een Bootstrap Token aangemaakt door het apparaat. Vervolgens neemt het apparaat contact op met het eindpunt van de MDM-oplossing en geeft het token in bewaring met een SetBootstrapTokenRequest
. Zie Set Bootstrap Token op de Apple Developer-website voor meer informatie (Engelstalig).
Zie de GitHub-repository voor Apple apparaatbeheer voor de recentste notatie-informatie (Engelstalig).