Utilizzare MDM per rendere obsoleti gli aggiornamenti software dei dispositivi Apple
La gestione dichiarativa dei dispositivi è il futuro della gestione dei dispositivi Apple. Consente al dispositivo di applicare in modo asincrono le impostazioni e segnalare lo stato alla soluzione di gestione dei dispositivi mobili (MDM) senza dover eseguire polling costanti. È ideale per migliorare prestazioni e scalabilità, nonché per adottare un approccio moderno alla gestione degli aggiornamenti software. La gestione dichiarativa dei dispositivi offre la segnalazione proattiva dello stato dei dispositivi, a fronte del cambiamento di valori e configurazioni. In questo modo, una soluzione MDM offre sempre una panoramica aggiornata sui dispositivi, senza dover eseguire query a intervalli regolari.
Invece di inviare un comando per l’aggiornamento software a un dispositivo per avviare l’aggiornamento, una soluzione MDM dichiara lo stato della versione desiderata del sistema operativo e delega al dispositivo stesso l’attività di raggiungere tale stato. Il risultato è una procedura gestita di aggiornamento del software più resiliente e una maggiore trasparenza per gli utenti.
L’importanza di sfruttare le dichiarazioni per l’aggiornamento del software
Ove possibile, le soluzioni MDM dovrebbero sfruttare le dichiarazioni per l’aggiornamento del software. Tuttavia, i comandi e i profili legacy per l’aggiornamento del software continuano a essere disponibili e supportati. Possono funzionare insieme alle dichiarazioni per l’aggiornamento del software, con i seguenti cambiamenti:
Le posticipazioni definite da una dichiarazione hanno la precedenza rispetto a quelle configurate da una restrizione.
Le impostazioni per l’aggiornamento automatico del software su macOS applicate da una dichiarazione hanno la precedenza sulle impostazioni di aggiornamento automatico fornite da un profilo di configurazione.
Quando è presente un aggiornamento software in sospeso configurato utilizzando la gestione dichiarativa dei dispositivi, alcuni comandi MDM non vengono più elaborati dal client e restituiscono errori che indicano che sul dispositivo è presente una dichiarazione attiva, come mostrato nella tabella di seguito:
Comando MDM | Risultato | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Limitato: in macOS, gli aggiornamenti basati sul sistema operativo che non sono gestiti potrebbero venire mostrati nella risposta al comando, ad esempio, in Xcode o negli strumenti a riga di comando. | ||||||||||
| Il dispositivo restituisce un errore | ||||||||||
| Il dispositivo restituisce un array di stato vuoto. |
Utilizzare il servizio di ricerca software Apple
Il servizio di Apple per la ricerca di software (disponibile all’indirizzo https://gdmf.apple.com/v2/pmv) è la risorsa ufficiale per ottenere un elenco di aggiornamenti, upgrade e interventi di sicurezza rapidi pubblicamente disponibili. Consente a una soluzione MDM di proporre query alle versioni non appena vengono pubblicate e di calcolare l’applicabilità per ciascun modello di hardware in modo tempestivo e accurato.
La richiesta JSON contiene tre elenchi di versioni software disponibili.
PublicAssetSets: questo elenco contiene le ultime versioni pubbliche, se gli utenti cercano di effettuare un aggiornamento o upgrade.
AssetSets: questo elenco è un sottoinsieme di PublicAssetSets e contiene tutte le versioni disponibili per le soluzioni MDM, da distribuire su dispositivi supervisionati.
PublicRapidSecurityResponses: questo elenco contiene le versioni di Rapid Security Response momentaneamente disponibili per i dispositivi Apple.
Ciascun elemento nell’elenco contiene il numero di ProductVersion
e Build
del sistema operativo, PostingDate
quando la versione è pubblicata, ExpirationDate
e un elenco di SupportedDevices
per tale versione. L’elenco dei dispositivi corrisponde al valore ProductName
del dispositivo, restituito in una risposta DeviceInformation,
nella richiesta iniziale Authenticate
o in MachineInfo
quando il dispositivo tenta di avviare il processo di registrazione.
La data di scadenza, in genere impostata a 180 giorni dalla data di pubblicazione, definisce la data di scadenza della firma dell’aggiornamento. Un aggiornamento scaduto non può più essere installato sui dispositivi. Quando vengono resi disponibili aggiornamenti consecutivi, le date di scadenza degli aggiornamenti precedenti potrebbero essere aggiornate. Se non viene indicata una data di scadenza, l’aggiornamento non è ancora scaduto. Un aggiornamento è considerato scaduto solo quando dispone di una data di scadenza nel passato.
Le risorse sono raggruppate in base alla piattaforma del sistema operativo utilizzando le seguenti chiavi:
iOS
(inclusi iPadOS, tvOS e watchOS)macOS
xrOS
(ovvero 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"
]
},
Utilizza l’elenco delle versioni di prodotto per determinare quali versioni sono superiori alla versione attuale del sistema operativo del dispositivo e sono applicabili a un dispositivo specifico. Invia l’elenco delle versioni all’amministratore MDM per suggerire alcuni potenziali candidati per l’aggiornamento del sistema operativo.
Inviare un report di stato alla soluzione MDM
Per ricevere aggiornamenti per gli elementi di stato man mano che cambiano, il server deve iscriversi a ciascun report di stato inviando una dichiarazione ManagementStatusSubscriptions
al dispositivo. Il dispositivo invia quindi uno StatusReport
alla soluzione MDM nel momento in cui una dichiarazione ManagementStatusSubscriptions
diventa attiva, se lo stato di un’elemento a cui è stata effettuata l’iscrizione cambia e ogni 24 ore.
Con l’obiettivo di monitorare lo stato delle versioni del sistema operativo e degli aggiornamenti software, la soluzione MDM potrebbe iscriversi ai seguenti report di stato:
Report di stato | Descrizione |
---|---|
| La versione della build del sistema operativo installato sul dispositivo (ad esempio, 21E219). |
| La versione del sistema operativo in uso sul dispositivo (ad esempio, 17.4). |
| La build del sistema operativo e le versioni degli interventi di sicurezza rapidi in uso sul dispositivo (ad esempio 20A123a o 20F75c). |
| La versione dell’intervento di sicurezza rapido in uso sul dispositivo (ad esempio, a). |
| Un dizionario che contiene la build e le versioni del sistema operativo dell’aggiornamento software in sospeso sul dispositivo. |
| Lo stato di installazione dell’aggiornamento software, al quale corrispondono i seguenti valori:
|
| Un dizionario che contiene le informazioni dettagliate sulle ragioni di un aggiornamento software in sospeso. Alla chiave
|
| Informazioni relative alla mancata installazione dell’aggiornamento software, quali il numero di volte in cui l’aggiornamento software non è riuscito, la data e l’ora dell’ultimo aggiornamento non riuscito e le relative ragioni. |
| Il nome del programma beta a cui è registrato il dispositivo oppure una stringa vuota se non è registrato ad alcun programma beta. |
In aggiunta agli altri report, con le soluzioni MDM è possibile mettere a disposizione softwareupdate.install-reason
agli amministratori per offrire loro supporto e ulteriori informazioni sulla modalità di attivazione di un aggiornamento. Questo dizionario può essere utilizzato per determinare se l’aggiornamento è stato avviato dall’utente stesso, se è stato installato automaticamente oppure è stato forzato da una dichiarazione per la forzatura di un aggiornamento software.
Richiedere una versione software minima durante la registrazione MDM
Se un dispositivo supporta questa funzionalità, restituisce una chiave MDM_CAN_REQUEST_SOFTWARE_UPDATE, impostata su True, nei dati MachineInfo
che invia nella richiesta HTTP POST iniziale alla soluzione MDM, quando il dispositivo rileva una configurazione di gestione in Installazione Assistita. Per ulteriori informazioni, consulta il file yaml MachineInfo repository GitHub sulla gestione dei dispositivi Apple.
Inoltre, i dispositivi offrono i seguenti campi nei dati MachineInfo
(tutte le stringhe):
Chiave | Sistemi operativi minimi supportati | Descrizione | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
VERSION | iOS 17 iPadOS 17 macOS 14 | La versione della build installata sul dispositivo (ad esempio, 7A182). | |||||||||
OS_VERSION | iOS 17 iPadOS 17 macOS 14 | La versione del sistema operativo installata sul dispositivo (ad esempio, 17.0). | |||||||||
VERSIONE BUILD INTEGRATIVA | iOS 17 iPadOS 17 macOS 14 | La versione dell’intervento di sicurezza rapido (se uno è disponibile). | |||||||||
SUPPLEMENTAL_OS_VERSION_EXTRA | iOS 17 iPadOS 17 macOS 14 | La versione dell’intervento di sicurezza rapido (se uno è disponibile). | |||||||||
SOFTWARE_UPDATE_DEVICE_ID | iOS 17.4 iPadOS 17.4 macOS 14.4 | L’identificativo del modello del dispositivo utilizzato per cercare gli aggiornamenti del sistema operativo disponibili nel Servizio di ricerca software Apple. |
Sulla base delle informazioni fornite, la soluzione MDM può decidere di forzare o meno l’aggiornamento del dispositivo.
Se una soluzione MDM sceglie di non forzare un aggiornamento software, in risposta alla richiesta HTTP POST restituisce il profilo di registrazione MDM, come farebbe normalmente per consentire alla registrazione MDM di proseguire.
Se la soluzione MDM sceglie di forzare un aggiornamento software, deve restituire una risposta HTTP contenente il codice di stato 403 e includere un oggetto JSON o XML nel corpo della risposta (l’intestazione della risposta HTTP Content-Type deve essere impostata rispettivamente su
application/json
o suapplication/xml
).
Dopo aver ricevuto questa risposta di errore, il dispositivo prova a effettuare l’aggiornamento alla versione specificata. Se l’aggiornamento va a buon fine, il dispositivo viene riavviato e l’utente deve eseguire nuovamente Impostazione Assistita. La successiva richiesta POST MachineInfo
dal dispositivo alla soluzione MDM mostra la versione aggiornata del sistema operativo e la soluzione MDM può quindi procedere alla registrazione MDM. Se l’aggiornamento non va a buon fine, l’utente visualizza un errore e il pannello “Gestione remota” viene mostrato nuovamente in Impostazione Assistita.
Lo schema di risposta
è definito nella tabella di seguito.
Chiave | Tipo | Richiesta | Descrizione | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| String | Sì | Deve essere impostata su | ||||||||
| String | No | La descrizione dell’errore. Viene utilizzata soltanto per accedere. | ||||||||
| String | No | La descrizione dell’errore adatta per essere mostrata all’utente. | ||||||||
| Dizionario | Sì | Dati aggiuntivi che specificano l’aggiornamento software. |
Qui è definito lo schema del dizionario details
.
Chiave | Tipo | Richiesta | Descrizione | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| String | Sì | La versione del sistema operativo a cui è necessario aggiornare il dispositivo. | ||||||||
| String | No | La versione build di destinazione a cui è necessario aggiornare il dispositivo. | ||||||||
| Dizionario | No | Il dispositivo viene registrato nel programma beta, permettendo l’esecuzione forzata degli aggiornamenti software nelle versioni del sistema operativo del programma beta. Il dispositivo rimane nel programma beta al termine dell’esecuzione forzata dell’aggiornamento software. |
Se è specificata soltanto la OSVersion
, il dispositivo scarica e installa tutti gli aggiornamenti rapidi di sicurezza disponibili per la versione specificata. Nel caso in cui sia necessaria una build specifica o una versione supplementare, una soluzione MDM può anche specificare facoltativamente la BuildVersion
. Ad esempio, per richiedere a un dispositivo di eseguire iOS 16.5.1(a) prima della registrazione, sebbene iOS 16.5.1(c) sia già disponibile, una soluzione MDM deve impostare OSVersion
su iOS 16.5.1 e BuildVersion
su 20F770750b.
Importante: Prima di macOS 15, era possibile specificare soltanto le release appartenenti agli elenchi PublicAssetSets
e PublicRapidSecurityResponses
. In macOS 15, possono essere utilizzati anche gli asset di AssetSets
.
Impostazioni MDM per gli aggiornamenti software
La dichiarazione com.apple.configuration.softwareupdate.settings
(disponibile in iOS 18, iPadOS 18 e macOS 15) è composta da dizionari che possono essere utilizzati per configurare vari aspetti del comportamento dell’aggiornamento software.
Dopo che una soluzione MDM avrà distribuito varie chiavi su più dichiarazioni, un dispositivo unisce le impostazioni di tutte le dichiarazioni delle impostazioni degli aggiornamenti software attivi. Se la stessa chiave è stata configurata da più dichiarazioni, il comportamento di unione dipende dalla singola chiave ed è illustrato nella tabella di seguito.
Configurare gli aggiornamenti software automatici con MDM
La dichiarazione com.apple.configuration.softwareupdate.settings
offre un dizionario per perfezionare il comportamento dell’aggiornamento software automatico su iPhone, iPad e Mac supervisionati. Per ulteriori informazioni, consulta Chiavi del dizionario AutomaticActions.
In che modo MDM gestisce gli interventi di sicurezza rapidi
Gli interventi di sicurezza rapidi riguardano sempre l’ultimo aggiornamento di un sistema operativo, che diventa la versione di base dell’intervento di sicurezza rapido. Ad esempio, se la versione del sistema operativo installato su iPhone è iOS 17.2, verrà applicato l’aggiornamento supplementare 17.2 (a), se disponibile. In iOS 18, iPadOS 18 e macOS 15, sono stati resi disponibili aggiornamenti combinati, che consentono a un aggiornamento software di includere tutti gli interventi di sicurezza rapidi.
Prima di iOS 18, iPadOS 18 e macOS 15, era possibile che una soluzione MDM dovesse attivare due aggiornamenti software per garantire la presenza di una specifica versione supplementare: innanzitutto, doveva aggiornare il dispositivo alla versione di base dell’aggiornamento supplementare, se non era già installata (ad esempio, da iOS 17.1 a iOS 17.2); quindi doveva aggiornare la versione di base a quella supplementare (ad esempio da iOS 17.2 a iOS 17.2 (a)).
In iOS 18, iPadOS 18 e macOS 15, una soluzione MDM può specificare:
La versione del sistema operativo (che installa automaticamente gli interventi di sicurezza rapidi disponibili).
La versione della build supplementare, che porta il dispositivo a eseguire automaticamente un aggiornamento necessario della versione di base, come parte della procedura.
Questi due approcci si applicano alla configurazione per forzare l’aggiornamento software e alla versione minima implementata durante la registrazione automatica dei dispositivi.
La dichiarazione com.apple.configuration.softwareupdate.settings
può essere utilizzata anche per configurare il comportamento dell’intervento di sicurezza rapido su un iPhone, un iPad o un Mac supervisionati. Per ulteriori informazioni, consulta Chiavi del dizionario RapidSecurityResponse per iOS, iPadOS e macOS.
Posticipare un aggiornamento software con MDM
Con la dichiarazione com.apple.configuration.softwareupdate.settings
è possibile posticipare un aggiornamento o un upgrade del software da 1 a 90 giorni su iPhone, iPad e Mac supervisionati.
Una posticipazione configurata definisce per quanti giorni una versione non viene offerta agli utenti dopo che è diventata disponibile pubblicamente. A prescindere da una posticipazione configurata, una soluzione MDM può comunque forzare uno specifico aggiornamento software, un upgrade o un intervento di sicurezza rapido sui dispositivi gestiti. Per ulteriori informazioni, consulta Le chiavi del dizionario Deferrals per iOS e iPadOS e Chiavi del dizionario Deferrals per macOS.
Nota: ritardare gli aggiornamenti software comporta anche la posticipazione degli interventi rapidi di sicurezza dipendenti da quella determinata versione.
Forzare gli aggiornamenti software con MDM
Per forzare un aggiornamento software entro un determinato orario utilizzando la registrazione dei dispositivi o la registrazione automatica dei dispositivi, le soluzioni MDM possono applicare la dichiarazione com.apple.configuration.softwareupdate.enforcement.specific
.
Se il sistema operativo o la versione della build specificati nella configurazione sono equivalenti o precedenti rispetto alla versione corrente, la configurazione viene ignorata.
Se sono presenti più configurazioni con un sistema operativo o una versione della build più recente rispetto a quella installata sul dispositivo, viene elaborata prima la configurazione con la data e l’ora più recenti, mentre tutte le altre rimangono in coda. Quando il dispositivo viene aggiornato a una nuova versione, il gruppo di configurazioni viene nuovamente elaborato per determinare la prossima che sarà installata.
Tutti gli interventi di sicurezza rapidi disponibili vengono installati automaticamente se nella soluzione MDM è definita soltanto la TargetOSVersion
. Per installare una versione o un intervento rapido di sicurezza specifici, oltre a specificare la build con l’identificativo della versione supplementare, una soluzione MDM può utilizzare la chiave TargetBuildVersion
.
Per ulteriori informazioni, consulta Chiavi del dizionario per imporre aggiornamenti software.
Notifiche
La chiave Notifications modifica il comportamento di default delle notifiche, in modo da mostrare soltanto una notifica un’ora prima dell’orario previsto per l’implementazione e del conto alla rovescia per il riavvio. Per ulteriori informazioni, consulta Chiave Notifications.
Utilizzare il token Bootstrap per i Mac con chip Apple
Per autorizzare un aggiornamento software che è stato forzato su un Mac supervisionato con chip Apple, una soluzione MDM può richiedere ed archiviare un token Bootstrap. Questo consente di ottenere un’esperienza di aggiornamento software assolutamente fluida, senza richiedere alcuna interazione da parte dell’utente. Ove necessario, il dispositivo utilizza GetBootstrapTokenRequest
per recuperare il token Bootstrap dalla soluzione MDM.
Nel primo passaggio, la soluzione MDM determina se il dispositivo supporta un token Bootstrap con il comando SecurityInfo
. Se la risposta include un BootstrapTokenRequiredForSoftwareUpdate
impostato su True, il dispositivo può utilizzare un token Bootstrap per autorizzare un aggiornamento software.
Per ottenere la creazione di un token Bootstrap, la soluzione MDM deve aggiungere com.apple.mdm.bootstraptoken
all’array ServerCapabilities
nel profilo MDM. Per ulteriori informazioni, consulta MDM payload sul sito web Apple Developer.
Dopo che il dispositivo avrà ricevuto il token Bootstrap, la prossima volta che un utente abilitato con token Secure esegue l’accesso creerà un token Bootstrap. Quindi contatterà l’endpoint di verifica della soluzione MDM e archivierà il token utilizzando una SetBootstrapTokenRequest
. Per ulteriori informazioni, consulta Set Bootstrap Token sul sito web Apple Developer.
Per le specifiche dello schema più recenti, consulta il repository GitHub sulla gestione dei dispositivi Apple.