Supporto del protocollo OMA DM
Il client OMA DM comunica con il server tramite HTTPS e usa Dm Sync (OMA DM v1.2) come payload del messaggio. Questo articolo descrive la funzionalità dm OMA supportata in generale dal client dm. La descrizione completa del protocollo OMA DM v1.2 è disponibile nel sito Web OMA.
Standard OMA DM
La tabella seguente illustra gli standard OMA DM usati da Windows.
Area generale | Standard OMA DM supportato |
---|---|
Trasporto dati e sessione | |
Bootstrap XML | Xml di provisioning client OMA. |
Comandi del protocollo DM | L'elenco seguente mostra i comandi usati dal dispositivo. Per altre informazioni sugli elementi del comando OMA DM, vedere "sito Web OMA" disponibile nel sito Web OMA. Se un elemento XML che non è un comando OMA DM valido si trova in uno degli elementi seguenti, viene restituito il codice di stato 400 per tale elemento: Se nel comando DM non viene specificato alcun CmdID, il client restituisce vuoto nell'elemento status e nel codice di stato 400. Se gli elementi Atomic sono annidati, vengono restituiti i codici di stato seguenti: Per altre informazioni sul comando Atomic, vedere Elementi comuni del protocollo OMA DM. L'esecuzione di un comando Add seguito da Replace nello stesso nodo all'interno di un elemento Atomic non è supportata. LocURI non può iniziare con / .Il tag Meta XML in SyncHdr viene ignorato dal dispositivo. |
Oggetti standard OMA DM | DevInfo |
Sicurezza | |
Nodi | Nell'albero OMA DM si applicano le regole seguenti per il nome del nodo:* ). |
File di provisioning | Il formato XML di provisioning deve essere corretto e seguire la definizione in SyncML Representation Protocol. Se un elemento XML che non è un comando OMA DM valido si trova in SyncBody, viene restituito il codice di stato 400 per tale elemento.
Nota Per rappresentare una stringa Unicode come URI, codificare prima la stringa come UTF-8. Codificare quindi ognuno dei byte UTF-8 usando la codifica URI. |
Supporto WBXML | Windows supporta l'invio e la ricezione di SyncML sia in formato XML che in formato WBXML codificato. Questo supporto a doppio formato è configurabile usando il nodo DEFAULTENCODING con la caratteristica w7 APPLICATION durante la registrazione. Per altre informazioni sulla codifica WBXML, vedere la sezione 8 della specifica SyncML Representation Protocol . |
Gestione di oggetti di grandi dimensioni | In Windows 10 è stato aggiunto il supporto client per il caricamento di oggetti di grandi dimensioni nel server. |
Elementi comuni del protocollo OMA DM
Gli elementi comuni vengono usati da altri tipi di elemento OMA DM. Nella tabella seguente sono elencati gli elementi comuni di OMA DM usati per configurare i dispositivi. Per altre informazioni sugli elementi comuni di OMA DM, vedere "SyncML Representation Protocol Gestione dispositivi Usage" (OMA-SyncML-DMRepPro-V1_1_2-20030613-A) disponibile nel sito Web OMA.
Elemento | Descrizione |
---|---|
Chal | Specifica una richiesta di autenticazione. Il server o il client può inviare una richiesta all'altro se nel messaggio di richiesta originale non sono state fornite credenziali o credenziali insufficienti. |
Cmd | Specifica il nome di un comando OMA DM a cui viene fatto riferimento in un elemento Status. |
CmdID | Specifica l'identificatore univoco per un comando OMA DM. |
CmdRef | Specifica l'ID del comando per cui vengono restituite informazioni sullo stato o sui risultati. Questo elemento accetta il valore dell'elemento CmdID del messaggio di richiesta corrispondente. |
Cred | Specifica le credenziali di autenticazione per l'originatore del messaggio. |
Finale | Indica che il messaggio corrente è l'ultimo messaggio nel pacchetto. |
LocName | Specifica il nome visualizzato negli elementi Destinazione e Origine, usato per inviare un ID utente per l'autenticazione MD5. |
LocURI | Specifica l'indirizzo della destinazione o del percorso di origine. Se l'indirizzo contiene un carattere non alfanumerico, deve essere sottoposto a escape correttamente in base allo standard di codifica URL. |
Msgid | Specifica un identificatore univoco per un messaggio di sessione OMA DM. |
MsgRef | Specifica l'ID del messaggio di richiesta corrispondente. Questo elemento accetta il valore dell'elemento MsgID del messaggio di richiesta. |
RespURI | Specifica l'URI che il destinatario deve usare quando invia una risposta a questo messaggio. |
Sessionid | Specifica l'identificatore della sessione dm OMA associata al messaggio contenitore. Se il server non notifica al dispositivo che supporta una nuova versione (tramite il nodo SyncApplicationVersion nel CSP DMClient), il client restituisce l'ID sessione in formato integer in formato decimale. Se il server supporta la sincronizzazione sessione DM versione 2.0, usata in Windows, il client del dispositivo restituisce 2 byte. |
Source | Specifica l'indirizzo di origine del messaggio. |
SourceRef | Specifica l'origine del messaggio di richiesta corrispondente. Questo elemento accetta il valore dell'elemento Source del messaggio di richiesta e viene restituito nell'elemento Status o Results. |
Target | Specifica l'indirizzo del nodo nell'albero del database che è la destinazione del comando OMA DM. |
TargetRef | Specifica l'indirizzo di destinazione nel messaggio di richiesta corrispondente. Questo elemento accetta il valore dell'elemento Target del messaggio di richiesta e viene restituito nell'elemento Status o Results. |
VerDTD | Specifica l'identificatore della versione principale e secondaria della specifica del protocollo di rappresentazione OMA DM usata per rappresentare il messaggio. |
VerProto | Specifica l'identificatore di versione principale e secondaria della specifica del protocollo OMA DM usata con il messaggio. |
Sessione di gestione dei dispositivi
Una sessione di Gestione dispositivi (DM) è costituita da una serie di comandi scambiati tra un server Dm e un dispositivo client. Il server invia comandi che indicano le operazioni che devono essere eseguite nell'albero di gestione del dispositivo client. Il client risponde inviando comandi contenenti i risultati e le informazioni sullo stato richieste.
Una breve sessione dm può essere riepilogata come segue:
Un server invia un comando Get a un dispositivo client per recuperare il contenuto di uno dei nodi dell'albero di gestione. Il dispositivo esegue l'operazione e risponde con un comando Result che contiene il contenuto richiesto.
Una sessione dm può essere suddivisa in due fasi:
- Fase di installazione: in risposta a un evento trigger, un dispositivo client invia un messaggio di avvio a un server dm. Lo scambio di dispositivi e server richiedeva l'autenticazione e le informazioni sul dispositivo. Questa fase è rappresentata dai passaggi 1, 2 e 3.
- Fase di gestione: il server dm è in controllo. Invia comandi di gestione al dispositivo e il dispositivo risponde. La fase 2 termina quando il server dm interrompe l'invio dei comandi e termina la sessione. Questa fase è rappresentata dai passaggi 3, 4 e 5.
Le informazioni seguenti mostrano la sequenza di eventi durante una tipica sessione dm.
Il client dm viene richiamato per richiamare il server di gestione
Scenario aziendale: la pianificazione delle attività del dispositivo richiama il client dm.Il server MO invia un messaggio di trigger del server per richiamare il client dm.
Il messaggio del trigger include l'ID server e indica al dispositivo client di avviare una sessione con il server. Il dispositivo client autentica il messaggio del trigger e verifica che il server sia autorizzato a comunicare con esso.
Scenario aziendale: all'ora pianificata, il client dm viene richiamato periodicamente per richiamare il server di gestione aziendale tramite HTTPS.Il dispositivo invia un messaggio, tramite una connessione IP, per avviare la sessione.
Questo messaggio include le informazioni e le credenziali del dispositivo. Il client e il server esenziano l'autenticazione reciproca tramite un canale TLS/SSL o a livello di applicazione dm.
Il server dm risponde tramite una connessione IP (HTTPS). Il server invia i comandi di gestione dei dispositivi iniziali, se presenti.
Il dispositivo risponde ai comandi di gestione del server. Questo messaggio include i risultati dell'esecuzione delle operazioni di gestione dei dispositivi specificate.
Il server Dm termina la sessione o invia un altro comando. La sessione dm termina o il passaggio 4 viene ripetuto.
I numeri di passaggio non rappresentano i numeri di identificazione dei messaggi (MsgID). Tutti i messaggi dal server devono avere un MsgID univoco all'interno della sessione, a partire da 1 per il primo messaggio e aumentando di un incremento di 1 per ogni messaggio aggiuntivo. Per altre informazioni sul protocollo MsgID e OMA SyncML, vedere OMA Gestione dispositivi Representation Protocol (DM_RepPro-V1_2-20070209-A).
Durante l'autenticazione reciproca a livello di applicazione OMA DM, se il codice di risposta del dispositivo all'elemento Cred nella richiesta del server è 212, non è necessaria alcuna ulteriore autenticazione per la parte restante della sessione dm. Se si verifica l'autenticazione MD5, è possibile restituire l'elemento Chal
. Il successivo nonce in Chal
deve quindi essere usato per il digest MD5 all'avvio della sessione dm successiva.
Se una richiesta include credenziali e il codice di risposta alla richiesta è 200, le stesse credenziali devono essere inviate all'interno della richiesta successiva. Se l'elemento Chal
è incluso e l'autenticazione MD5 è necessaria, viene creato un nuovo digest usando il nonce successivo tramite l'elemento per la Chal
richiesta successiva.
Per altre informazioni sull'autenticazione client Basic o MD5, Autenticazione server MD5, hash MD5 e nonce MD5, vedere la specifica OMA Gestione dispositivi Security (OMA-TS-DM_Security-V1_2_1-20080617-A), la gestione del codice di risposta per l'autenticazione e gli esempi passo passo nella specifica del protocollo OMA Gestione dispositivi (OMA-TS-DM_Protocol-V1_2_1-20080617-A), disponibile da sito Web OMA.
Configurazione destinata all'utente e configurazione di destinazione del dispositivo
Per i CSP e i criteri che supportano la configurazione per utente, il server MDM può inviare valori di impostazione di destinazione utente al dispositivo a cui un utente registrato tramite MDM è attivamente connesso. Il dispositivo notifica al server lo stato di accesso tramite un avviso del dispositivo (1224) con tipo di avviso = in DM pkg#1.
La parte dei dati di questo avviso potrebbe essere una delle stringhe seguenti:
- Utente: l'utente che ha registrato il dispositivo è attivamente connesso. Il server MDM può inviare la configurazione specifica dell'utente per i CSP/criteri che supportano la configurazione per utente
- Altri: un altro utente esegue l'accesso, ma tale utente non ha un account MDM. Il server può applicare solo la configurazione a livello di dispositivo, ad esempio la configurazione si applica a tutti gli utenti del dispositivo.
- Nessuno: nessun accesso utente attivo. Il server può applicare solo la configurazione a livello di dispositivo e la configurazione disponibile è limitata all'ambiente del dispositivo (nessun accesso utente attivo).
Ecco un esempio di avviso:
<Alert>
<CmdID>1</CmdID>
<Data>1224</Data>
<Item>
<Meta>
<Type xmlns="syncml:metinf">com.microsoft/MDM/LoginStatus</Type>
<Format xmlns="syncml:metinf">chr</Format>
</Meta>
<Data>user</Data>
</Item>
</Alert>
Il server notifica al dispositivo se si tratta di una configurazione di destinazione utente o di destinazione del dispositivo con un prefisso per locURL del nodo di gestione, con ./user
per la configurazione di destinazione dell'utente o ./device
per la configurazione di destinazione del dispositivo. Per impostazione predefinita, se non è disponibile alcun prefisso con ./device
o ./user
, si tratta di una configurazione di destinazione del dispositivo.
Il locURL seguente mostra una configurazione del nodo CSP per utente: ./user/vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/<PackageFamilyName>/StoreInstall
Il locURL seguente mostra una configurazione del nodo CSP per dispositivo: ./device/vendor/MSFT/RemoteWipe/DoWipe
Codici di stato della risposta SyncML
Quando si usa SyncML in OMA DM, vengono restituiti i codici di stato della risposta standard. Nella tabella seguente sono elencati i codici di stato comuni della risposta SyncML che probabilmente verranno visualizzati. Per altre informazioni sui codici di stato della risposta SyncML, vedere la sezione 10 della specifica SyncML Representation Protocol .
Codice di stato | Descrizione |
---|---|
200 | Il comando SyncML è stato completato correttamente. |
202 | Accettato per l'elaborazione. Questo codice indica un'operazione asincrona, ad esempio una richiesta di esecuzione remota di un'applicazione. |
212 | Autenticazione accettata. In genere questo codice viene visualizzato solo in risposta all'elemento SyncHdr (usato per l'autenticazione nello standard OMA-DM). È possibile che questo codice venga visualizzato se si esaminano i log di OMA DM, ma i CSP in genere non generano questo codice. |
214 | Operazione annullata. Il comando SyncML è stato completato correttamente, ma non vengono elaborati altri comandi all'interno della sessione. |
215 | Non eseguito. Un comando non è stato eseguito a causa dell'interazione dell'utente per annullare il comando. |
216 |
Atomic rollback OK. Un comando si trovava all'interno di un Atomic elemento e Atomic non è riuscito. Il rollback di questo comando è stato eseguito correttamente. |
400 | Richiesta non valida. Impossibile eseguire il comando richiesto a causa di una sintassi non valida. I CSP in genere non generano questo errore, ma è possibile che venga visualizzato se syncML non è valido. |
401 | Credenziali non valide. Il comando richiesto non è riuscito perché il richiedente deve fornire l'autenticazione corretta. I CSP in genere non generano questo errore. |
403 | Proibito. Il comando richiesto non è riuscito, ma il destinatario ha compreso il comando richiesto. |
404 | Non trovato. La destinazione richiesta non è stata trovata. Questo codice viene generato se si esegue una query su un nodo che non esiste. |
405 | Comando non consentito. Questo codice di risposta viene generato se si tenta di scrivere in un nodo di sola lettura. |
406 | Funzionalità facoltativa non supportata. Questo codice di risposta viene generato se si tenta di accedere a una proprietà non supportata dal CSP. |
415 | Tipo o formato non supportato. Questo codice di risposta può risultare da errori di analisi o formattazione XML. |
418 | Esiste già. Questo codice di risposta si verifica se si tenta di aggiungere un nodo già esistente. |
425 | Autorizzazione negata. Il comando richiesto non è riuscito perché il mittente non dispone di autorizzazioni di controllo di accesso (ACL) adeguate per il destinatario. Gli errori di accesso negato vengono in genere convertiti in questo codice di risposta. |
500 | Comando non riuscito. Errore generico. Il destinatario ha rilevato una condizione imprevista, che ha impedito di soddisfare la richiesta. Questo codice di risposta si verifica quando la DPU SyncML non è in grado di eseguire il mapping del codice di errore di origine. |
507 |
Atomic Fallito. Una delle operazioni in un Atomic blocco non è riuscita. |
516 |
Atomic rollback non riuscito. Un'operazione Atomic non è riuscita e non è stato eseguito il rollback del comando. |