Använda MDM till att driftsätta programuppdateringar för Apple-enheter
Deklarativ enhetshantering är framtiden för hantering av Apple-enheter. Den gör att enheten kan använda inställningar asynkront och rapportera status till MDM-lösningen utan kontinuerliga förfrågningar. Det här är perfekt för prestanda och skalbarhet och bidrar till ett modernt förhållningssätt till hantering av programuppdateringar. Deklarativ enhetshantering tillhandahåller proaktiv statusrapportering från enheter, till exempel värden och konfigurationsändringar. På det sättet har en MDM-lösning alltid en uppdaterad vy av enheter utan att den regelbundet måste skicka förfrågningar.
Istället för att skicka ett programuppdateringskommando till en enhet för att inleda en uppdatering deklarerar en MDM-lösning den önskade operativsystemsstatusen och delegerar uppgiften att åstadkomma den statusen till själva enheten. Det här gör hanteringen av programuppdateringsprocessen mer robust och ger större insyn för användare.
Vikten av att dra nytta av programuppdateringsdeklarationer
MDM-lösningar bör dra nytta av programuppdateringsdeklarationer när det är möjligt. Äldre kommandon och profiler för programuppdatering är dock fortfarande tillgängliga och stöds. De kan fungera i kombination med programuppdateringsdeklarationer med följande ändringar:
Fördröjningar som definieras av en deklaration har företräde framför fördröjningar som konfigureras av en begränsning.
Inställningar för automatisk programuppdatering i macOS som används av en deklaration har företräde framför inställningar för automatisk uppdatering som tillhandahålls i en konfigurationsprofil.
När det finns en väntande programuppdatering som har konfigurerats med deklarativ enhetshantering bearbetas en del MDM-kommandon inte längre av klienten utan returnerar fel som meddelar att det finns en aktiv deklaration på enheten, vilket visas i följande tabell:
MDM-kommando | Resultat | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Begränsat: I macOS kan operativsystembaserade uppdateringar som inte hanteras visas i kommandosvaret, till exempel i Xcode eller kommandoradsverktyg. | ||||||||||
| Enheten returnerar felet | ||||||||||
| Enheten returnerar en tom statusarray. |
Använda Apple Software Lookup Service
Apple Software Lookup Service (finns på https://gdmf.apple.com/v2/pmv) är den officiella resursen där du kan få en lista över offentligt tillgängliga uppdateringar, uppgraderingar och snabba säkerhetssvar. Den gör det möjligt för en MDM-lösning att förfråga versioner så fort de publiceras och beräkna tillämpligheten för varje maskinvarumodell korrekt och utan dröjsmål.
JSON-svaret innehåller tre listor med tillgängliga programvaruversioner:
PublicAssetSets: Den här listan innehåller de senast släppta versionerna som är offentligt tillgängliga om användare försöker uppdatera eller uppgradera.
AssetSets: Den här listan är en deluppsättning av PublicAssetSets och innehåller alla släppta versioner som är tillgängliga för MDM-lösningar att erbjuda till övervakade enheter.
PublicRapidSecurityResponses: Den här listan innehåller släppta snabba säkerhetssvar som för närvarande är tillgängliga för Apple-enheter.
Varje element i listan innehåller ProductVersion
-numret och Build
för operativsystemet, PostingDate
när versionen publicerades, ExpirationDate
och en lista med SupportedDevices
för den versionen. Enhetslistan matchar ProductName
-värdet från enheten som returneras i ett DeviceInformation
-svar, inledande Authenticate
-förfrågan eller i MachineInfo
när enheten försöker registrera.
Sista giltighetsdatum, vanligtvis angivet som 180 dagar efter postningsdatumet, definierar det datum som signeringen av uppdateringen slutar gälla. En uppdatering som har slutat gälla kan inte längre installeras på enheter. När efterföljande uppdateringar släpps kanske föregående uppdateringars giltighetsdatum uppdateras. Om ett giltighetsdatum inte har angetts löper inte uppdateringen ut. En uppdatering löper endast ut när dess sista giltighetsdatum har passerats.
Resurserna är grupperade efter operativsystemsplattform med följande nycklar:
iOS
(som inkluderar iPadOS, tvOS och watchOS)macOS
xrOS
(som är 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"
]
},
Använd listan med produktversioner till att fastställa vilka versioner som är högre än enhetens aktuella operativsystemsversion och är lämpliga för en specifik enhet. Tillhandahåll den listan med versioner till MDM-administratören som möjliga kandidater för operativsystemsuppdatering.
Skicka en statusrapport till MDM-lösningen
För att få uppdateringar för statusobjekt när de ändras måste servern abonnera på varje statusrapport genom att skicka en ManagementStatusSubscriptions
-deklaration till enheten. Enheten skickar sedan en StatusReport
till MDM-lösningen när en ManagementStatusSubscriptions
-deklaration blir aktiv, om statusen för ett abonnerat objekt ändras och var 24:e timme.
För att kunna övervaka operativsystemversioner och programuppdateringsstatus kan MDM-lösningen abonnera på följande statusrapporter:
Statusrapport | Beskrivning |
---|---|
| Operativsystemets byggversion på enheten (till exempel 21E219). |
| Operativsystemsversionen som används på enheten (till exempel 17.4). |
| Operativsystemets bygge och version av snabbt säkerhetssvar som används på enheten (till exempel 20A123a eller 20F75c). |
| Operativsystemets version av snabbt säkerhetssvar som används på enheten (till exempel a). |
| En ordbok som innehåller bygg- och operativsystemsversionerna för programuppdateringen som är väntande på enheten. |
| Programuppdateringens installationsstatus som har följande värden:
|
| En ordbok som innehåller detaljer om orsaken till en väntande programuppdatering. Nyckeln
|
| Detaljer om en misslyckad programuppdatering. Detaljerna omfattar antalet gånger programuppdateringen har misslyckats, tidsstämpel för senaste försöket och orsaken till misslyckandet. |
| Enhetens registrerade betaprogramnamn eller en tom sträng om det inte finns något registrerat betaprogram. |
Utöver de andra rapporterna kan MDM-lösningen också göra softwareupdate.install-reason
tillgänglig för administratörer för supportsyften och för att erbjuda ytterligare insikter om hur en uppdatering utlöstes. Den här ordboken kan användas till att avgöra om en användare själv har inlett uppdateringen, om uppdateringen skedde automatiskt eller om den genomdrevs av en deklaration för genomdrivning av programuppdatering.
Kräva en specifik lägsta programvaruversion under MDM-registrering
Om en enhet stöder denna funktion returnerar den en MDM_CAN_REQUEST_SOFTWARE_UPDATE-nyckel inställd på True i de MachineInfo
-data som den skickar till den inledande HTTP POST-förfrågningen till MDM-lösningen när enheten upptäcker en hanteringskonfiguration i inställningsassistenten. Mer information finns i MachineInfo yaml file på Apples GitHub för enhetshantering.
Dessutom tillhandahåller enheter följande fält i MachineInfo
-data (alla strängar):
Nyckel | Lägsta operativsystem som stöds | Beskrivning | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
VERSION | iOS 17 iPadOS 17 macOS 14 | Byggversionen som är installerad på enheten (till exempel 7A182). | |||||||||
OS_VERSION | iOS 17 iPadOS 17 macOS 14 | Operativsystemsversionen som är installerad på enheten (till exempel 17.0). | |||||||||
SUPPLEMENTAL_BUILD_VERSION | iOS 17 iPadOS 17 macOS 14 | Enhetens version av snabbt säkerhetssvar (om en sådan är tillgänglig). | |||||||||
SUPPLEMENTAL_OS_VERSION_EXTRA | iOS 17 iPadOS 17 macOS 14 | Enhetens versionsextra av snabbt säkerhetssvar (om en sådan är tillgänglig). | |||||||||
SOFTWARE_UPDATE_DEVICE_ID | iOS 17.4 iPadOS 17.4 macOS 14.4 | Enhetens modell-ID som används till att leta efter tillgängliga operativsystemuppdateringar i Apple Software Lookup Service. |
Baserat på den tillhandahållna informationen kan MDM-lösningen avgöra om den ska genomdriva en uppdatering på enheten.
Om en MDM-lösning väljer att inte genomdriva en programuppdatering returnerar den helt enkelt MDM-registreringsprofilen som svar på en HTTP POST-förfrågan som den vanligtvis skulle göra för att tillåta att en MDM-registrering fortsätter.
Om MDM-lösningen väljer att genomdriva en programuppdatering måste den returnera ett HTTP-svar med statuskoden 403 samt inkludera ett JSON- eller XML-objekt i svarets brödtext (HTTP Content-Type-responshuvudet måste vara inställt på
application/json
respektiveapplication/xml
).
När detta felsvar har tagits emot försöker enheten att uppdatera till den angivna versionen. Om uppdateringen slutförs startar enheten om och användaren måste gå igenom inställningsassistenten på nytt. Nästa MachineInfo
-POST-förfrågan från enheten till MDM-lösningen visar den uppdaterade operativsystemversionen och MDM-lösningen kan sedan fortsätta med MDM-registreringen. Om uppdateringen misslyckas visas ett fel för användaren och fjärrhanteringspanelen visas igen i inställningsassistenten.
Schemat för response
definieras i tabellen nedan.
Nyckel | Typ | Krävs | Beskrivning | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Sträng | Ja | Måste vara inställt på | ||||||||
| Sträng | Nej | Beskrivningen av felet. Använd endast för loggningssyften. | ||||||||
| Sträng | Nej | Beskrivningen av felet som är lämpligt att visa för användaren. | ||||||||
| Ordbok | Ja | Ytterligare data specificerar programuppdateringen. |
Ordboksschemat details
definieras här.
Nyckel | Typ | Krävs | Beskrivning | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Sträng | Ja | Operativsystemversionen som enheten måste uppdatera till. | ||||||||
| Sträng | Nej | Byggversionen som enheten måste uppdatera till. | ||||||||
| Ordbok | Nej | Enheten registreras i betaprogrammet och genomdrivning av programuppdateringar till betaprogrammets operativsystemversioner tillåts. Enheten stannar kvar i betaprogrammet efter att den genomdrivna programuppdateringen har utförts. |
Om endast OSVersion
anges kommer en enhet att automatiskt hämta och installera eventuella snabba säkerhetssvar som är tillgängliga för den versionen. Om ett visst bygge eller en tilläggsversion krävs kan en MDM-lösning också välja att specificera BuildVersion
. Om en enhet till exempel måste ha iOS 16.5.1(a) innan registreringen – trots att iOS 16.5.1(c) redan är tillgänglig – måste en MDM-lösning ställa in OSVersion
på iOS 16.5.1 och BuildVersion
på 20F770750b.
Viktigt: I äldre versioner än macOS 15 kan endast släpp från listorna PublicAssetSets
och PublicRapidSecurityResponses
specificeras. I macOS 15 kan även resurser från AssetSets
användas.
MDM-inställningar för programuppdateringar
Deklarationen com.apple.configuration.softwareupdate.settings
(tillgänglig i iOS 18, iPadOS 18 och macOS 15) består av ordböcker som kan användas till att konfigurera olika aspekter av beteendet för programuppdateringar.
Efter att en MDM-lösning har distribuerat olika nycklar till flera deklarationer slår en enhet ihop inställningarna för alla aktiva deklarationer med programuppdateringsinställningar. Om samma nyckel konfigureras av flera deklarationer varierar hopslagningsbeteendet beroende på den enskilda nyckeln i enlighet med tabellen nedan.
Konfigurera automatiska programuppdateringar med MDM
Deklarationen com.apple.configuration.softwareupdate.settings
innehåller en ordbok som definierar beteendet för automatisk programuppdatering på övervakade iPhone-, iPad- och Mac-enheter. Mer information finns i Ordboksnycklar för AutomaticActions.
Så här hanteras snabba säkerhetssvar av MDM
Snabba säkerhetssvar används alltid på den senaste uppdateringen av ett operativsystem vilken blir basversionen för det snabba säkerhetssvaret. Om en iPhone till exempel har operativsystemversionen iOS 17.2 installerad används tilläggsuppdateringen 17.2 (a) om en sådan finns. I iOS 18, iPadOS 18 och macOS 15 har kombinerade uppdateringar gjorts tillgängliga, vilket tillåter att en programuppdatering innehåller alla eventuella tillgängliga snabba säkerhetssvar.
I versioner före iOS 18, iPadOS 18 och macOS 15 kanske en MDM-lösning måste utlösa två programuppdateringar för att säkerställa att en viss tilläggsversion installeras: först måste den uppdatera basversionen för tilläggsuppdateringen om enheten inte redan har den basversionen (till exempel iOS 17.1 till iOS 17.2) och sedan måste den uppdatera basversionen till tilläggsversionen (till exempel iOS 17.2 till iOS 17.2 (a)).
I iOS 18, iPadOS 18 och macOS 15 kan en MDM-lösning specificera antingen:
Operativsystemversionen (som automatiskt installerar tillgängliga snabba säkerhetssvar)
Tilläggsbyggversionen (som leder till att enheten automatiskt utför en nödvändig uppdatering till basversionen som en del av processen)
De båda metoderna gäller för programuppdatering med en genomdrivningskonfiguration och den genomdrivna lägsta versionen under automatisk enhetsregistrering.
Deklarationen com.apple.configuration.softwareupdate.settings
kan också användas till att konfigurera beteendet för snabba säkerhetssvar på övervakade iPhone-, iPad- och Mac-enheter. Mer information finns i RapidSecurityResponse-ordboksnycklar för iOS, iPadOS och macOS.
Fördröja en programuppdatering med MDM
Fördröjningen av en programuppdatering eller -uppgradering från 1 till 90 dagar görs med deklarationen com.apple.configuration.softwareupdate.settings
på övervakade iPhone-, iPad- och Mac-enheter.
En konfigurerad fördröjning definierar hur många dagar en ny version inte erbjuds till användare efter att den har släppts offentligt. Oberoende av en konfigurerad fördröjning kan en MDM-lösning fortfarande genomdriva specifika programuppdateringar, programuppgraderingar eller snabba säkerhetssvar på hanterade enheter. Mer information finns i Deferrals-ordboksnycklar för iOS och iPadOS och Deferrals-ordboksnycklar för macOS.
Obs! Fördröjda programuppdateringar fördröjer även eventuella snabba säkerhetssvar som behöver den versionen.
Genomdriva programuppdateringar med MDM
För att genomdriva en programuppdatering vid en viss tidpunkt på enheter som har registrerats med enhetsregistrering eller automatisk enhetsregistrering kan MDM-lösningen använda deklarationen com.apple.configuration.softwareupdate.enforcement.specific
.
Om en konfiguration specificerar en operativsystem- eller byggversion som är likadan som, eller äldre än, den nuvarande versionen på enheten blir konfigurationen ignorerad.
Om det finns flera konfigurationer, med en nyare operativsystem- eller byggversion än den nuvarande versionen på enheten, bearbetas konfigurationen med tidigast måldatum och -tid först medan de andra stannar kvar i kön. När enheten uppdateras till en ny version blir konfigurationsuppsättningen bearbetad på nytt för att fastställa vilken som hamnar först i kön.
Eventuella tillgängliga snabba säkerhetssvar installeras automatiskt om en MDM-lösning endast definierar TargetOSVersion
. För att sikta in sig på en viss version eller ett snabbt säkerhetssvar kan en MDM-lösning använda nyckeln TargetBuildVersion
utöver att ange bygget inklusive tilläggsversionens ID.
Mer information finns i Ordboksnycklar för genomdrivning av programuppdateringar.
Notiser
Nyckeln Notifications ändrar det förvalda notisbeteendet så att endast en notis visas 1 timme innan tiden för genomdrivningen och nedräkningen för omstart. Mer information finns i Nyckeln Notifications.
Använda bootstrap-token för Mac-datorer med Apple Silicon
Om du vill auktorisera en genomdriven programuppdatering på en övervakad Mac med Apple Silicon kan en MDM-lösning begära och deponera en bootstrap-token. Det möjliggör en helt sömlös program‑uppdaterings‑upplevelse som innebär att användaren slipper interagera som en del av processen. Vid behov använder enheten GetBootstrapTokenRequest
till att hämta en bootstrap-token frånMDM-lösningen.
I det första steget avgör MDM-lösningen om enheten stöder en bootstrap-token genom att använda kommandot SecurityInfo
. Om svaret innehåller BootstrapTokenRequiredForSoftwareUpdate
inställd på sant kan enheten använda en bootstrap-token till att auktorisera en programuppdatering.
MDM-lösningen måste lägga till com.apple.mdm.bootstraptoken
i arrayen ServerCapabilities
i MDM-profilen så att en bootstrap-token kan skapas. Mer information finns i MDM payload på Apple Developer-webbplatsen.
När enheten har tagit emot sin bootstrap-token skapar den en bootstrap-token nästa gång en Secure Token-aktiverad användare loggar in. Sedan kontaktar den kontrollslutpunkten i MDM-lösningen och deponerar denna token med SetBootstrapTokenRequest
. Mer information finns i Set Bootstrap Token på Apple Developer-webbplatsen.
Den mest aktuella schemaspecifikationen finns på Apples GitHub för enhetshantering.