
Software-updates met apparaatbeheer 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 voorziening voor apparaatbeheer zonder dat daarvoor constante polling nodig is. Dit is ideaal voor de prestaties en schaalbaarheid en maakt een geavanceerde 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 voorziening voor apparaatbeheer 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 voorziening voor apparaatbeheer 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 voorzieningen voor apparaatbeheer 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, kunnen bepaalde apparaatbeheercommando's niet meer door de client worden verwerkt en worden er fouten weergegeven waarin wordt vermeld dat er een actieve declaratie op het apparaat staat, zoals weergegeven in de volgende tabel:
Commando voor apparaatbeheer | Resultaat | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Beperkt: Op Mac-computers 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 kan een voorziening voor apparaatbeheer informatie over releases opvragen zodra Apple ze publiceert, en de toepasbaarheid voor elk hardwaremodel snel en nauwkeurig 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 voorzieningen voor apparaatbeheer naar apparaten 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
visionOS
{
"AssetSets": {
"iOS": [
{
"ProductVersion": "18.2.1",
"Build": "22C6161",
"PostingDate": "2025-01-06",
"ExpirationDate": "2025-04-17",
"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,10", "iPad14,11", "iPad14,2", "iPad14,3", "iPad14,4", "iPad14,5", "iPad14,6", "iPad14,8", "iPad14,9", "iPad16,1", "iPad16,2", "iPad16,3", "iPad16,4", "iPad16,5", "iPad16,6", "iPad7,11", "iPad7,12", "iPad8,1", "iPad8,10", "iPad8,11", "iPad8,12", "iPad8,2", "iPad8,3", "iPad8,4", "iPad8,5", "iPad8,6", "iPad8,7", "iPad8,8", "iPad8,9", "iPhone11,2", "iPhone11,4", "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", "iPhone15,4", "iPhone15,5", "iPhone16,1", "iPhone16,2", "iPhone17,1", "iPhone17,2", "iPhone17,3", "iPhone17,4"
]
},
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 vervolgens aan de beheerder van de voorziening voor apparaatbeheer zodat deze een overzicht heeft van de mogelijke kandidaten voor besturingssysteemupdates.
Een statusrapport naar de voorziening voor apparaatbeheer 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 voorziening voor apparaatbeheer 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 voorziening voor apparaatbeheer 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 voorziening voor apparaatbeheer softwareupdate.install-reason
beschikbaar te maken voor beheerders voor ondersteuningsdoeleinden en om meer inzicht te krijgen in hoe een update plaatsvindt. Je kunt dit woordenboek gebruiken 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
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 voorziening voor apparaatbeheer 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-versies | 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 voorziening voor apparaatbeheer bepalen of de update op het apparaat moet worden afgedwongen.
Als een voorziening voor apparaatbeheer een software-update niet afdwingt, retourneert de voorziening het inschrijvingsprofiel als reactie op het
HTTP POST
-verzoek, net zoals bij een normale voortzetting van de inschrijving.Als de voorziening voor apparaatbeheer de software-update wel afdwingt, moet de voorziening een
HTTP
-reactie met de statuscode 403 retourneren en een JSON- of XML-object toevoegen in de hoofdtekst van de reactie (deHTTP Content-Type
-koptekst van de reactie moet zijn ingesteld opapplication/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 MachineInfo POST
-verzoek van het apparaat aan de voorziening voor apparaatbeheer wordt de bijgewerkte besturingssysteemversie weergegeven, waarna de voorziening de 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 je alleen de OSVersion
opgeeft, worden alle snelle beveiligingsmaatregelen voor die versie automatisch gedownload en op het apparaat geïnstalleerd. Als een specifieke build of aanvullende versie nodig is, kan een voorziening voor apparaatbeheer 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 voorziening voor apparaatbeheer OSVersion
instellen op iOS 16.5.1
en 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.
Apparaatbeheerinstellingen voor software-updates
De declaratie com.apple.configuration.softwareupdate.settings
(beschikbaar in iOS 18, iPadOS 18, macOS 15, tvOS 18.4 en nieuwer) bestaat uit woordenboeken die kunnen worden gebruikt om verschillende aspecten van de toepassing van software-updates te configureren.
Nadat een voorziening voor apparaatbeheer 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 apparaatbeheer
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, Apple TV's en Macs die onder toezicht staan. Zie AutomaticActions-woordenboeksleutels voor meer informatie.
Hoe een voorziening voor apparaatbeheer 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 voorziening voor apparaatbeheer 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). 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 voorziening voor apparaatbeheer 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 apparaatbeheer
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 na hoeveel dagen een organisatie een versie aan gebruikers aanbiedt nadat deze door Apple is uitgebracht. Ook als er uitstel is geconfigureerd, kan een voorziening voor apparaatbeheer nog altijd een specifieke software-update, -upgrade of snelle beveiligingsmaatregel afdwingen op beheerde apparaten. Zie Deferrals-woordenboeksleutels voor iOS, iPadOS en tvOS 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 apparaatbeheer
Om een software-update op een bepaalde tijd af te dwingen op apparaten die zijn ingeschreven via apparaatinschrijving of automatische apparaatinschrijving, kunnen voorzieningen voor apparaatbeheer de declaratie com.apple.configuration.softwareupdate.enforcement.specific
toepassen.
Als een configuratie op een apparaat wordt toegepast waarin een besturingssysteem- of buildversie is opgegeven die hetzelfde is als of ouder is dan de versie die op het apparaat is geïnstalleerd, retourneert het apparaat een fout in het statusrapport.
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. Als onderdeel van dit proces negeert het apparaat alle bestaande configuraties waarin een versie is opgegeven die ouder is dan of hetzelfde is als de huidige versie.
Beschikbare snelle beveiligingsmaatregelen worden automatisch door het besturingssysteem geïnstalleerd als een voorziening voor apparaatbeheer alleen de TargetOSVersion
opgeeft. Om een specifieke versie of snelle beveiligingsmaatregel te installeren, kan een voorziening voor apparaatbeheer 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 voorziening voor apparaatbeheer 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 voorziening voor apparaatbeheer op te halen.
In de eerste stap bepaalt de voorziening voor apparaatbeheer 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 aan te maken, moet de voorziening voor apparaatbeheer com.apple.mdm.bootstraptoken
toevoegen aan de array ServerCapabilities
in het profiel voor apparaatbeheer. Zie Device Management Profile 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 voorziening voor apparaatbeheer 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).