Funzionamento del provisioning in Windows

I pacchetti di provisioning nel client Windows offrono agli amministratori IT un modo semplificato per applicare le impostazioni di configurazione ai dispositivi client Windows. Progettazione configurazione di Windows è uno strumento che semplifica la creazione di un pacchetto di provisioning. I Designer di configurazione di Windows possono essere installati da Microsoft Store.

Pacchetti di provisioning

Un pacchetto di provisioning contiene configurazioni/impostazioni e asset specifici che possono essere forniti tramite un supporto rimovibile o scaricati nel dispositivo.

Per consentire l'aggiunta di più set di impostazioni o configurazioni, i dati di configurazione utilizzati dal motore di provisioning vengono creati da più origini di configurazione costituiti da pacchetti di provisioning separati. Ogni pacchetto di provisioning contiene i dati di provisioning di un'origine diversa.

Un pacchetto di provisioning (.ppkg) è un contenitore per una raccolta di impostazioni di configurazione. Il pacchetto ha il formato seguente:

  • Metadati del pacchetto: i metadati contengono informazioni di base sul pacchetto, ad esempio nome del pacchetto, descrizione, versione, classificazione e così via.

  • Descrittori XML: ogni descrittore definisce un asset di personalizzazione o un'impostazione di configurazione inclusa nel pacchetto.

  • Payload degli asset: payload di un asset di personalizzazione o di un'impostazione di configurazione associata a un'app o a un asset di dati.

È possibile usare i pacchetti di provisioning per il provisioning dei dispositivi di runtime accedendo al pacchetto su un supporto rimovibile collegato al dispositivo, tramite la comunicazione sul campo vicino (NFC) o scaricandolo da una posizione di origine remota.

Precedenza per i pacchetti di provisioning

Quando per il provisioning dei dispositivi sono disponibili più pacchetti, per risolvere i conflitti di impostazione viene utilizzata la combinazione di tipo di proprietario del pacchetto e livello di classificazione del pacchetto definiti nel manifesto del pacchetto. I tipi di proprietario del pacchetto predefiniti sono elencati di seguito, in ordine crescente di precedenza di tipo di proprietario, dal valore più basso a quello più alto:

  1. Microsoft

  2. Fornitore di silicio

  3. OEM

  4. System integrator

  5. Operatore di telefonia mobile

  6. Amministratore IT

L'intervallo di valori valido del livello di classificazione dei pacchetti è da 0 a 99.

Quando vengono rilevati conflitti di impostazione, i valori finali di cui viene eseguito il provisioning sul dispositivo sono determinati dalla precedenza del tipo proprietario e dal livello di classificazione dei pacchetti contenenti le impostazioni. Per i pacchetti con lo stesso tipo di proprietario, è il livello di classificazione del pacchetto a determinare il pacchetto da cui viene eseguito il provisioning dei valori delle impostazioni.

Provisioning XML di Windows

Provisioning XML di Windows è il framework che consente ai componenti Microsoft e OEM di dichiarare le impostazioni configurabili dall'utente finale e l'infrastruttura sul dispositivo per applicare le impostazioni con il contributo minimo da parte del proprietario del componente.

Le impostazioni per ciascun componente possono essere dichiarate all'interno del file manifesto del pacchetto del componente. Queste dichiarazioni vengono trasformate nello schema di impostazioni utilizzato da Progettazione configurazione di Windows per esporre agli utenti le potenziali impostazioni per creare le personalizzazioni nell'immagine o nei pacchetti di provisioning. Progettazione configurazione di Windows converte la configurazione utente, che viene dichiarata tramite i file di risposte del provisioning Windows, nel formato di provisioning sul dispositivo.

Quando il motore di provisioning seleziona una configurazione, l'XML di provisioning di Windows è contenuto all'interno dei dati di provisioning selezionati e viene passato attraverso la gestione configurazione e quindi al CSP del provisioning di Windows. Quest'ultimo applica il provisioning al percorso corretto in modo che possa essere utilizzato dal componente effettivo.

Motore di provisioning

Il motore di provisioning è il componente principale per la gestione del provisioning e della configurazione in fase di esecuzione in un dispositivo che esegue Windows 10/11.

Il motore di provisioning offre le seguenti funzionalità:

  • Il provisioning della configurazione in qualsiasi momento quando il dispositivo è in esecuzione inclusi primo avvio e configurazione o configurazione guidata. Inoltre può essere esteso ad altri punti durante il runtime del dispositivo.
  • Lettura e combinazione di impostazioni da più origini di configurazione che possono essere aggiunte a un'immagine da Microsoft, dall'OEM o da System integrator oppure aggiunti dagli amministratori IT o della formazione oppure dagli utenti al dispositivo in fase di runtime. Le origini della configurazione possono essere integrate nell'immagine oppure dai pacchetti di provisioning aggiunti al dispositivo.
  • Risposta a trigger o eventi e avvio di una fase di provisioning.
  • Autenticazione dei pacchetti di provisioning.
  • Selezione di un set di configurazione in base la fase e di un set di chiavi, ad esempio SIM, MCC/MNC, intervallo IMSI e così via, che eseguono il mapping a una specifica configurazione che poi viene passata all'infrastruttura di gestione della configurazione da applicare.
  • Utilizzo della configurazione guidata e dell'interfaccia utente del pannello di controllo per consentire la selezione della configurazione da parte dell'utente quando non è possibile determinare una corrispondenza specifica.

Gestione della configurazione

Configuration Manager offre il modo unificato di gestire i dispositivi Windows 10/11. La configurazione viene eseguita principalmente tramite i protocolli Gestione dei dispositivi OMA (Open Mobile Alliance) e CP (Client Provisioning). La gestione della configurazione gestisce e analizza queste richieste di protocollo da diversi canali e le passa ai provider del servizio di configurazione (CSP, Configuration Service Provider) per eseguire le richieste e le impostazioni di gestione specifiche.

Il motore di provisioning si basa su una gestione della configurazione per tutta l'elaborazione e l'applicazione effettive di una configurazione scelta. Il motore di provisioning determina la fase di provisioning e, in base a un set di chiavi, stabilisce il set di configurazione da inviare alla gestione della configurazione. A sua volta, la gestione della configurazione analizza e chiama i CSP per l'impostazione da applicare.

Al di sotto della gestione della configurazione vi sono i CSP. Ogni sezione della configurazione viene convertita in un particolare CSP per gestire l'interpretazione in un'azione sul dispositivo. Ciascun CSP traduce le istruzioni nella configurazione e chiama le API e i componenti appropriati per eseguire le azioni di provisioning richieste.

Gestione dei criteri e delle risorse

I componenti di gestione dei criteri, delle risorse e del contesto gestiscono la registrazione e l'annullamento della registrazione dei dispositivi negli ambienti aziendali. Il processo di registrazione in un'organizzazione è essenzialmente il provisioning dei criteri di configurazione e gestione dei dispositivi che l'azienda desidera applicare nel dispositivo. Tale operazione in genere viene eseguita tramite l'iscrizione esplicita del dispositivo al server di gestione dei dispositivi di un'azienda mediante una connessione di rete. In questo modo l'utente la possibilità di accedere alle risorse dell'azienda attraverso il dispositivo, e l'organizzazione ha a disposizione un mezzo per gestire e controllare l'accesso e il dispositivo stesso.

Di seguito sono indicate le principali differenze tra la registrazione dell'organizzazione e la configurazione eseguita dal motore di provisioning:

  • La registrazione impone sul dispositivo un set di criteri limitato e controllato sui quali è possibile che l'utente non disponga del controllo. Il motore di provisioning espone un set più esteso di impostazioni che configurano un maggior numero di aspetti del dispositivo e che in genere possono essere regolate dall'utente.
  • La gestione dei criteri gestisce le impostazioni dei criteri da più entità ed esegue una selezione dell'impostazione in base alla priorità delle entità. Il motore di provisioning applica le impostazioni e non offre un mezzo per definire la priorità delle impostazioni da origini diverse. Il provisioning più specifico è l'ultimo applicato e quello che viene utilizzato.
  • Le singole impostazioni dei criteri applicate da diverse entità di registrazione vengono archiviate in modo da poter essere rimosse in seguito durante l'annullamento della registrazione. Ciò consente all'utente di rimuovere il criterio aziendale e riportare il dispositivo a uno stato senza limitazioni aziendali e dati sensibili. Il motore di provisioning non gestisce le singole impostazioni di provisioning o un mezzo per eseguire il rollback di tutte le impostazioni applicate.

In Windows 10, l'applicazione dei criteri e della registrazione tramite il provisioning è necessaria per supportare i casi in cui un'azienda o un istituto didattico non dispone di un server di gestione dei dispositivi per la gestione completa del dispositivo. Il motore di provisioning supporta la registrazione e i criteri di provisioning tramite la configurazione e si integra con il criterio e i componenti di gestione delle risorse esistenti in modo diretto o tramite la gestione della configurazione.

Trigger e fasi

I trigger sono eventi del ciclo di vita del sistema che avviano una fase di provisioning. Alcuni esempi di trigger sono: avvio, configurazione guidata, modifica SIM, aggiunta di un utente, aggiunta di un amministratore, accesso utente, l'aggiornamento del dispositivo e diversi trigger manuali (ad esempio la distribuzione tramite USB o avviata da un allegato di posta elettronica o dall'unità flash USB).

Quando si verifica un trigger, viene avviato il provisioning per una particolare fase del provisioning. Le fasi sono raggruppate in set in base all'ambito delle impostazioni:

  • Statico: esecuzione della prima fase per il provisioning, per applicare le impostazioni di configurazione al sistema per impostare la configurazione guidata o applicare le impostazioni a livello di dispositivo che non possono essere eseguite quando viene creata l'immagine.
  • Sistema: eseguire durante la configurazione guidata e configurare le impostazioni a livello di sistema.
  • UICC: esecuzione delle fasi UICC per ogni nuovo UICC in un dispositivo, per gestire la configurazione e la personalizzazione in base all'identità della scheda UICC o SIM. In tal modo vengono abilitati gli scenari di configurazione di runtime in cui un OEM può gestire un'immagine che può essere configurata per più operatori.
  • Aggiorna: viene eseguito dopo un aggiornamento per applicare potenziali modifiche di impostazioni aggiornate.
  • Utente: viene eseguito durante la prima esecuzione di un account utente per configurare le impostazioni per utente.

Provisioning dei dispositivi durante la configurazione guidata

Il motore di provisioning applica sempre i pacchetti di provisioning persistenti nella cartella C:\Recovery\Customizations della partizione del sistema operativo. Quando il motore di provisioning applica i pacchetti di provisioning nella cartella %ProgramData%\Microsoft\Provisioning, determinate applicazioni di impostazioni di runtime, come l'impostazione per installare e configurare le app di Windows, possono essere estese dopo il passaggio di configurazione guidata ed essere elaborate continuamente in background quando nel dispositivo viene visualizzato il desktop. Le impostazioni per configurare i criteri e determinate configurazioni di sistema fondamentali devono sempre essere completate prima del primo punto in cui devono essere applicate.

Gli utenti dei dispositivi possono applicare un pacchetto di provisioning da un'origine remota quando il dispositivo avvia per la prima volta la configurazione guidata. Il provisioning del dispositivo durante la configurazione guidata viene attivato solo dopo che sono stati configurati la lingua, le impostazioni locali, il fuso orario e altre impostazioni nella prima pagina dell'interfaccia utente della configurazione guidata. Quando il provisioning del dispositivo è attivato, nella pagina di configurazione guidata viene visualizzata l'interfaccia utente di provisioning. Questa consente agli utenti di selezionare un pacchetto di provisioning acquisito da un'origine remota, ad esempio un NFC o un supporto rimovibile.

La tabella seguente mostra in che modo è possibile avviare il provisioning del dispositivo quando un utente avvia per la prima volta la configurazione guidata.

Recapito dei pacchetti Metodo di avvio Dispositivo supportato
Supporti rimovibili - Unità USB o scheda
SD (i pacchetti devono essere posizionati nella radice del supporto)
Cinque tocchi veloci sulla chiave di Windows per avviare l'interfaccia utente di provisioning Tutti i dispositivi Windows
Da un dispositivo amministratore a un tag
NFC o NFC da computer a computer (il dispositivo amministratore deve eseguire un'app in grado di trasferire il pacchetto tramite NFC)
Cinque tocchi veloci sulla chiave di Windows per avviare l'interfaccia utente di provisioning Dispositivi Windows IoT Core

Il motore di provisioning copia sempre i pacchetti di provisioning acquisiti nella cartella %ProgramData%\Microsoft\Provisioning prima di elaborarli durante la configurazione guidata. Il motore di provisioning applica sempre i pacchetti di provisioning incorporati nell'immagine di Windows installata durante il passaggio di configurazione guidata di installazione di Windows, a prescindere dal fatto che il pacchetto sia firmato e attendibile. Quando il motore di provisioning applica un pacchetto di provisioning crittografato in un dispositivo utente finale durante la configurazione guidata, gli utenti innanzitutto fornire una password valida per decrittografare il pacchetto. Il motore di provisioning controlla anche se un pacchetto di provisioning è firmato e attendibile. In caso contrario, l'utente dovrà fornire il consenso prima che il pacchetto venga applicato al dispositivo.

Quando il motore di provisioning applica i pacchetti di provisioning durante la configurazione guidata, vengono applicate solo le impostazioni di runtime dal pacchetto al dispositivo. Le impostazioni di runtime possono essere impostazioni di configurazione a livello di sistema, tra cui criteri di sicurezza, installazione/disinstallazione di app di Windows, configurazione di rete, bootstrap della registrazione MDM, provisioning delle risorse di file, configurazione di account e dominio, aggiornamento dell'edizione di Windows e altro. Il motore di provisioning, inoltre, controlla le impostazioni di configurazione nel dispositivo, ad esempio area geografica o impostazioni locali oppure la scheda SIM e applica le impostazioni per più varianti con condizioni corrispondenti.

Provisioning dei dispositivi in fase di runtime

In fase di runtime, i pacchetti di provisioning autonomi possono essere applicati mediante l'avvio utente. La tabella seguente mostra quando è possibile avviare il provisioning in fase di runtime.

Recapito dei pacchetti Metodo di avvio Dispositivo supportato
Supporti rimovibili - Unità USB o scheda
SD (i pacchetti devono essere posizionati nella radice del supporto)
Impostazioni>Account>Accedi all'azienda o all'istituto di istruzione>Aggiungi o rimuovi un pacchetto di provisioning Tutti i dispositivi Windows
Download da una connessione di rete e copia in una cartella locale Fare doppio clic sul file package Client Windows per dispositivi con edizioni desktop
Dal dispositivo di un amministratore collegato al dispositivo di destinazione tramite tethering USB Trascinare e rilasciare il file del pacchetto nel dispositivo di destinazione Dispositivi Windows IoT Core

Quando si applicano i pacchetti di provisioning da un supporto rimovibile collegato al dispositivo, l'interfaccia utente Impostazioni consente la visualizzazione del contenuto di un pacchetto prima di selezionare il pacchetto per il provisioning. Per ridurre al minimo il rischio di spamming del dispositivo mediante l'applicazione di pacchetti di provisioning da origini sconosciute, è possibile firmare e crittografare un pacchetto di provisioning. I partner possono inoltre impostare criteri per limitare l'applicazione di pacchetti di provisioning in fase di runtime del dispositivo. L'applicazione di pacchetti di provisioning in fase di runtime del dispositivo richiede privilegi di amministratore. Se il pacchetto non viene firmato o considerato attendibile, un utente dovrà fornire il consenso prima che il pacchetto venga applicato al dispositivo. Se il pacchetto è crittografato, è necessaria una password valida per decrittografare il pacchetto prima che possa essere applicato al dispositivo.

Quando si applicano più pacchetti di provisioning a un dispositivo, il motore di provisioning risolve le impostazioni con valori di configurazione in conflitto valutando la classificazione del pacchetto tramite la combinazione di tipo di proprietario del pacchetto e livello di classificazione del pacchetto definita nei metadati del pacchetto. Un'impostazione di configurazione applicata da un pacchetto di provisioning con la classificazione di pacchetto più alta sarà il valore finale applicato al dispositivo.

Dopo che un pacchetto di provisioning autonomo viene applicato al dispositivo, il pacchetto viene mantenuto nella cartella %ProgramData%\Microsoft\Provisioning del dispositivo. I pacchetti di provisioning possono essere rimossi da un amministratore mediante Aggiungi o rimuovi un pacchetto di provisioning, disponibile in Impostazioni>Account>Accedi all'azienda o all'istituto di istruzione.