Prise en charge du protocole OMA DM
Le client OMA DM communique avec le serveur via HTTPS et utilise DM Sync (OMA DM v1.2) comme charge utile du message. Cet article décrit les fonctionnalités OMA DM que le client DM prend en charge en général. La description complète du protocole OMA DM v1.2 est disponible sur le site web d’OMA.
Normes OMA DM
Le tableau suivant présente les normes OMA DM que Windows utilise.
Zone générale | Norme OMA DM prise en charge |
---|---|
Transport de données et session | |
Xml d’amorçage | CODE XML d’approvisionnement du client OMA. |
Commandes de protocole DM | La liste suivante présente les commandes utilisées par l’appareil. Pour plus d’informations sur les éléments de commande OMA DM, consultez « site web OMA » disponible sur le site web d’OMA. Si un élément XML qui n’est pas une commande DM OMA valide se trouve sous l’un des éléments suivants, le code status 400 est retourné pour cet élément : Si aucun CmdID n’est fourni dans la commande DM, le client retourne vide dans l’élément status et le code status 400. Si les éléments Atomic sont imbriqués, les codes status suivants sont retournés : Pour plus d’informations sur la commande Atomic, consultez Éléments communs du protocole DM OMA. L’exécution d’une commande Add suivie de Replace sur le même nœud au sein d’un élément Atomic n’est pas prise en charge. LocURI ne peut pas commencer par / .La balise Meta XML dans SyncHdr est ignorée par l’appareil. |
Objets standard DM OMA | Devinfo |
Sécurité | |
Nœuds | Dans l’arborescence DM OMA, les règles suivantes s’appliquent au nom du nœud :* ). |
Provisionnement des fichiers | Le code XML d’approvisionnement doit être bien formé et suivre la définition dans Le protocole de représentation SyncML. Si un élément XML qui n’est pas une commande DM OMA valide se trouve sous SyncBody, le code status 400 est retourné pour cet élément.
Remarque Pour représenter une chaîne Unicode en tant qu’URI, commencez par encoder la chaîne en UTF-8. Codez ensuite chacun des octets UTF-8 à l’aide de l’encodage URI. |
Prise en charge de WBXML | Windows prend en charge l’envoi et la réception de SyncML au format XML et au format WBXML encodé. Cette prise en charge double format est configurable à l’aide du nœud DEFAULTENCODING sous la caractéristique w7 APPLICATION lors de l’inscription. Pour plus d’informations sur l’encodage WBXML, consultez la section 8 de la spécification du protocole de représentation SyncML . |
Gestion des objets volumineux | Dans Windows 10, la prise en charge du client pour le chargement d’objets volumineux sur le serveur a été ajoutée. |
Éléments communs du protocole DM OMA
Les éléments communs sont utilisés par d’autres types d’éléments DM OMA. Le tableau suivant répertorie les éléments communs OMA DM utilisés pour configurer les appareils. Pour plus d’informations sur les éléments communs d’OMA DM, consultez « SyncML Representation Protocol Gestion des appareils Usage » (OMA-SyncML-DMRepPro-V1_1_2-20030613-A) disponible sur le site web OMA.
Élément | Description |
---|---|
Chal | Spécifie un défi d’authentification. Le serveur ou le client peut envoyer un défi à l’autre si aucune information d’identification ou informations d’identification inadéquates n’a été donnée dans le message de demande d’origine. |
Cmd | Spécifie le nom d’une commande DM OMA référencée dans un élément Status. |
CmdID | Spécifie l’identificateur unique d’une commande DM OMA. |
CmdRef | Spécifie l’ID de la commande pour laquelle les informations de status ou de résultats sont retournées. Cet élément prend la valeur de l’élément CmdID du message de demande correspondant. |
Cred | Spécifie les informations d’identification d’authentification pour l’expéditeur du message. |
Final | Indique que le message actuel est le dernier message du package. |
LocName | Spécifie le nom d’affichage dans les éléments Target et Source, utilisés pour envoyer un ID utilisateur pour l’authentification MD5. |
LocURI | Spécifie l’adresse de l’emplacement cible ou source. Si l’adresse contient un caractère non alphanumérique, elle doit être correctement placée dans une séquence d’échappement conformément à la norme d’encodage d’URL. |
MsgID | Spécifie un identificateur unique pour un message de session DM OMA. |
MsgRef | Spécifie l’ID du message de demande correspondant. Cet élément prend la valeur de l’élément MsgID du message de requête. |
RespURI | Spécifie l’URI que le destinataire doit utiliser lors de l’envoi d’une réponse à ce message. |
Sessionid | Spécifie l’identificateur de la session DM OMA associée au message contenant. Si le serveur n’informe pas l’appareil qu’il prend en charge une nouvelle version (par le biais du nœud SyncApplicationVersion dans le csp DMClient), le client retourne sessionID en entier au format décimal. Si le serveur prend en charge la synchronisation de session DM version 2.0, qui est utilisée dans Windows, le client d’appareil retourne 2 octets. |
Source | Spécifie l’adresse source du message. |
SourceRef | Spécifie la source du message de demande correspondant. Cet élément prend la valeur de l’élément Source du message de requête et est retourné dans l’élément Status ou Results. |
Target | Spécifie l’adresse du nœud dans l’arborescence DM qui est la cible de la commande DM OMA. |
TargetRef | Spécifie l’adresse cible dans le message de demande correspondant. Cet élément prend la valeur de l’élément Target du message de demande et est retourné dans l’élément Status ou Results. |
VerDTD | Spécifie l’identificateur de version principale et mineure de la spécification du protocole de représentation DM OMA utilisée pour représenter le message. |
VerProto | Spécifie l’identificateur de version principale et mineure de la spécification du protocole DM OMA utilisée avec le message. |
Session de gestion des appareils
Une session Gestion des appareils (DM) se compose d’une série de commandes échangées entre un serveur DM et un appareil client. Le serveur envoie des commandes indiquant les opérations qui doivent être effectuées sur l’arborescence de gestion de l’appareil client. Le client répond en envoyant des commandes qui contiennent les résultats et toutes les informations status demandées.
Une session DM courte peut être résumée comme suit :
Un serveur envoie une commande Get à un appareil client pour récupérer le contenu de l’un des nœuds de l’arborescence de gestion. L’appareil effectue l’opération et répond avec une commande Result qui contient le contenu demandé.
Une session DM peut être divisée en deux phases :
- Phase d’installation : en réponse à un événement déclencheur, un appareil client envoie un message d’initialisation à un serveur DM. L’échange d’appareils et de serveurs avait besoin d’une authentification et d’informations sur l’appareil. Cette phase est représentée par les étapes 1, 2 et 3.
- Phase de gestion : le serveur DM est sous contrôle. Il envoie des commandes de gestion à l’appareil et l’appareil répond. La phase 2 se termine lorsque le serveur DM cesse d’envoyer des commandes et met fin à la session. Cette phase est représentée par les étapes 3, 4 et 5.
Les informations suivantes montrent la séquence d’événements au cours d’une session DM classique.
Le client DM est appelé pour rappeler le serveur d’administration
Scénario d’entreprise : la planification des tâches de l’appareil appelle le client DM.Le serveur MO envoie un message de déclencheur de serveur pour appeler le client DM.
Le message de déclencheur inclut l’ID du serveur et indique à l’appareil client de lancer une session avec le serveur. L’appareil client authentifie le message déclencheur et vérifie que le serveur est autorisé à communiquer avec lui.
Scénario d’entreprise : à l’heure planifiée, le client DM est appelé régulièrement pour rappeler le serveur d’administration d’entreprise via HTTPS.L’appareil envoie un message, via une connexion IP, pour lancer la session.
Ce message inclut des informations d’identification et des informations d’identification sur l’appareil. Le client et le serveur effectuent une authentification mutuelle sur un canal TLS/SSL ou au niveau de l’application DM.
Le serveur DM répond via une connexion IP (HTTPS). Le serveur envoie les commandes de gestion des appareils initiales, le cas échéant.
L’appareil répond aux commandes de gestion du serveur. Ce message inclut les résultats de l’exécution des opérations de gestion des appareils spécifiées.
Le serveur DM met fin à la session ou envoie une autre commande. La session DM se termine ou l’étape 4 est répétée.
Les numéros d’étape ne représentent pas les numéros d’identification des messages (MsgID). Tous les messages du serveur doivent avoir un MsgID unique dans la session, commençant à 1 pour le premier message et augmentant d’un incrément de 1 pour chaque message supplémentaire. Pour plus d’informations sur MsgID et le protocole OMA SyncML, consultez OMA Gestion des appareils Representation Protocol (DM_RepPro-V1_2-20070209-A).
Lors de l’authentification mutuelle au niveau de l’application OMA DM, si le code de réponse de l’appareil à l’élément Cred dans la demande de serveur est 212, aucune authentification supplémentaire n’est nécessaire pour le reste de la session DM. Si l’authentification MD5 se produit, l’élément Chal
peut être retourné. Ensuite, le nonce Chal
suivant doit être utilisé pour la synthèse MD5 lorsque la session DM suivante est démarrée.
Si une demande inclut des informations d’identification et que le code de réponse à la demande est 200, les mêmes informations d’identification doivent être envoyées dans la requête suivante. Si l’élément Chal
est inclus et que l’authentification MD5 est requise, une nouvelle synthèse est créée en utilisant le nonce suivant via l’élément pour la Chal
requête suivante.
Pour plus d’informations sur l’authentification cliente De base ou MD5, Authentification du serveur MD5, hachage MD5 et nonce MD5. Consultez la spécification OMA Gestion des appareils Security (OMA-TS-DM_Security-V1_2_1-20080617-A), la gestion du code de réponse d’authentification et les exemples pas à pas dans spécification du protocole OMA Gestion des appareils (OMA-TS-DM_Protocol-V1_2_1-20080617-A), disponibles à partir du site web de l’OMA.
Configuration ciblée par l’utilisateur et la configuration ciblée par l’appareil
Pour les csp et les stratégies qui prennent en charge la configuration par utilisateur, le serveur MDM peut envoyer des valeurs de paramètres ciblés à l’utilisateur à l’appareil auquel un utilisateur inscrit à GPM est activement connecté. L’appareil avertit le serveur de l’status de connexion via une alerte d’appareil (1224) avec le type d’alerte = dans DM pkg#1.
La partie données de cette alerte peut être l’une des chaînes suivantes :
- Utilisateur : l’utilisateur qui a inscrit l’appareil est activement connecté. Le serveur GPM peut envoyer une configuration spécifique à l’utilisateur pour les csp/stratégies qui prennent en charge la configuration par utilisateur
- Autres : un autre utilisateur se connecte, mais cet utilisateur n’a pas de compte GPM. Le serveur peut uniquement appliquer une configuration à l’échelle de l’appareil, par exemple, la configuration s’applique à tous les utilisateurs de l’appareil.
- Aucun : aucun utilisateur actif ne se connecte. Le serveur peut uniquement appliquer la configuration à l’échelle de l’appareil et la configuration disponible est limitée à l’environnement de l’appareil (aucun utilisateur actif ne se connecte).
Voici un exemple d’alerte :
<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>
Le serveur avertit l’appareil s’il s’agit d’une configuration ciblée par l’utilisateur ou l’appareil par un préfixe de LocURL du nœud de gestion, avec ./user
pour une configuration ciblée sur l’utilisateur ou ./device
pour une configuration ciblée sur l’appareil. Par défaut, s’il n’y a pas de préfixe avec ./device
ou ./user
, il s’agit d’une configuration ciblée sur l’appareil.
Le LocURL suivant affiche une configuration de nœud CSP par utilisateur : ./user/vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/<PackageFamilyName>/StoreInstall
Le LocURL suivant montre une configuration de nœud CSP par appareil : ./device/vendor/MSFT/RemoteWipe/DoWipe
Codes de status de réponse SyncML
Lors de l’utilisation de SyncML dans OMA DM, des codes status de réponse standard sont retournés. Le tableau suivant répertorie les codes de réponse SyncML courants status que vous êtes susceptible de voir. Pour plus d’informations sur les codes de status de réponse SyncML, consultez la section 10 de la spécification du protocole de représentation SyncML.
Code d’état | Description |
---|---|
200 | La commande SyncML s’est terminée avec succès. |
202 | Accepté pour traitement. Ce code désigne une opération asynchrone, telle qu’une demande d’exécution à distance d’une application. |
212 | Authentification acceptée. Normalement, vous voyez uniquement ce code en réponse à l’élément SyncHdr (utilisé pour l’authentification dans la norme OMA-DM). Vous pouvez voir ce code si vous examinez les journaux DM OMA, mais les fournisseurs de services cloud ne génèrent généralement pas ce code. |
214 | Opération annulée. La commande SyncML s’est terminée correctement, mais aucune autre commande n’est traitée dans la session. |
215 | Non exécuté. Une commande n’a pas été exécutée suite à l’interaction de l’utilisateur pour annuler la commande. |
216 |
Atomic restaurer OK. Une commande se trouvait à l’intérieur d’un Atomic élément et Atomic a échoué. Cette commande a été restaurée avec succès. |
400 | Requête incorrecte. Impossible d’exécuter la commande demandée en raison d’une syntaxe incorrecte. Les fournisseurs de services cloud ne génèrent généralement pas cette erreur, mais vous pouvez la voir si votre SyncML est mal formé. |
401 | Informations d’identification non valides. Échec de la commande demandée, car le demandeur doit fournir une authentification appropriée. Les fournisseurs de services cloud ne génèrent généralement pas cette erreur. |
403 | Interdit. La commande demandée a échoué, mais le destinataire a compris la commande demandée. |
404 | Introuvable. La cible demandée est introuvable. Ce code est généré si vous interrogez un nœud qui n’existe pas. |
405 | Commande non autorisée. Ce code de réponse est généré si vous essayez d’écrire dans un nœud en lecture seule. |
406 | Fonctionnalité facultative non prise en charge. Ce code de réponse est généré si vous essayez d’accéder à une propriété que le fournisseur csp ne prend pas en charge. |
415 | Type ou format non pris en charge. Ce code de réponse peut résulter d’erreurs d’analyse ou de mise en forme XML. |
418 | Existe déjà. Ce code de réponse se produit si vous tentez d’ajouter un nœud qui existe déjà. |
425 | Autorisation refusée. La commande demandée a échoué, car l’expéditeur ne dispose pas des autorisations de contrôle d’accès (ACL) adéquates sur le destinataire. Les erreurs « Accès refusé » sont généralement traduites en ce code de réponse. |
500 | Échec de la commande. Échec générique. Le destinataire a rencontré une condition inattendue, ce qui l’a empêché de répondre à la demande. Ce code de réponse se produit lorsque le DPU SyncML ne peut pas mapper le code d’erreur d’origine. |
507 |
Atomic Échoué. L’une des opérations d’un Atomic bloc a échoué. |
516 |
Atomic Échec de la restauration. Une Atomic opération a échoué et la commande n’a pas été restaurée avec succès. |
Articles connexes
Informations de référence sur les fournisseurs de services de configuration