Suporte ao protocolo OMA DM
O cliente DM OMA se comunica com o servidor por https e usa a DM sync (DM do OMA v1.2) como o conteúdo da mensagem. Este artigo descreve a funcionalidade de DM OMA que o cliente DM dá suporte em geral. A descrição completa do protocolo OMA DM v1.2 pode ser encontrada no site do OMA.
Padrões de DM OMA
A tabela a seguir mostra os padrões de DM OMA que o Windows usa.
Área geral | Padrão de DM OMA com suporte |
---|---|
Transporte e sessão de dados | |
Bootstrap XML | XML de provisionamento de cliente OMA. |
Comandos de protocolo DM | A lista a seguir mostra os comandos usados pelo dispositivo. Para obter mais informações sobre os elementos de comando OMA DM, consulte "site OMA" disponível no site da OMA. Se um elemento XML que não é um comando OMA DM válido estiver sob um dos seguintes elementos, o código status 400 será retornado para esse elemento: Se nenhum CmdID for fornecido no comando DM, o cliente retornará em branco no elemento status e no código status 400. Se os elementos atômicos estiverem aninhados, os seguintes códigos status serão retornados: Para obter mais informações sobre o comando Atomic, consulte Elementos comuns do protocolo OMA DM. Não há suporte para executar um comando Add seguido de Substituir no mesmo nó dentro de um elemento Atomic. O LocURI não pode começar com / .A marca Meta XML no SyncHdr é ignorada pelo dispositivo. |
Objetos padrão OMA DM | DevInfo |
Segurança | |
Nós | Na árvore DM OMA, as seguintes regras se aplicam ao nome do nó:* ). |
Provisionamento de arquivos | O provisionamento do XML deve estar bem formado e seguir a definição no Protocolo de Representação SyncML. Se um elemento XML que não é um comando OMA DM válido estiver em SyncBody, o código status 400 será retornado para esse elemento.
Observação Para representar uma cadeia de caracteres Unicode como um URI, primeiro codifica a cadeia de caracteres como UTF-8. Em seguida, codifica cada um dos bytes UTF-8 usando a codificação de URI. |
Suporte ao WBXML | O Windows dá suporte ao envio e ao recebimento de SyncML no formato XML e no formato WBXML codificado. Esse suporte de formato duplo é configurável usando o nó DEFAULTENCODING sob a característica w7 APPLICATION durante o registro. Para obter mais informações sobre a codificação WBXML, consulte a seção 8 da especificação Protocolo de Representação SyncML . |
Manipulação de objetos grandes | No Windows 10, o suporte ao cliente para carregar objetos grandes no servidor foi adicionado. |
Elementos comuns do protocolo OMA DM
Elementos comuns são usados por outros tipos de elemento OMA DM. A tabela a seguir lista os elementos comuns de DM OMA usados para configurar os dispositivos. Para obter mais informações sobre elementos comuns do DM OMA, consulte "Protocolo de Representação SyncML Gerenciamento de Dispositivos Use" (OMA-SyncML-DMRepPro-V1_1_2-20030613-A) disponível no site da OMA.
Elemento | Descrição |
---|---|
Chal | Especifica um desafio de autenticação. O servidor ou cliente pode enviar um desafio para o outro se nenhuma credenciais ou credenciais inadequadas tiverem sido dadas na mensagem de solicitação original. |
Cmd | Especifica o nome de um comando OMA DM referenciado em um elemento Status. |
CmdID | Especifica o identificador exclusivo para um comando DM OMA. |
CmdRef | Especifica a ID do comando para o qual status ou informações de resultados estão sendo retornadas. Esse elemento usa o valor do elemento CmdID da mensagem de solicitação correspondente. |
Cred | Especifica a credencial de autenticação para o criador da mensagem. |
Final | Indica que a mensagem atual é a última mensagem no pacote. |
LocName | Especifica o nome de exibição nos elementos Target e Source, usados para enviar uma ID de usuário para autenticação MD5. |
LocURI | Especifica o endereço do local de destino ou de origem. Se o endereço contiver um caractere não alfanumérico, ele deverá ser escapado corretamente de acordo com o padrão de codificação de URL. |
MsgID | Especifica um identificador exclusivo para uma mensagem de sessão de DM OMA. |
MsgRef | Especifica a ID da mensagem de solicitação correspondente. Esse elemento usa o valor do elemento MsgID da mensagem de solicitação. |
RespURI | Especifica o URI que o destinatário deve usar ao enviar uma resposta para essa mensagem. |
Sessionid | Especifica o identificador da sessão de DM OMA associada à mensagem que contém. Se o servidor não notificar o dispositivo que ele dá suporte a uma nova versão (por meio do nó SyncApplicationVersion no CSP DMClient), o cliente retornará o SessionID em inteiro no formato decimal. Se o servidor for compatível com a sincronização de sessão DM versão 2.0, que é usada no Windows, o cliente do dispositivo retornará 2 bytes. |
Origem | Especifica o endereço de origem da mensagem. |
SourceRef | Especifica a origem da mensagem de solicitação correspondente. Esse elemento pega o valor do elemento Fonte da mensagem de solicitação e é retornado no elemento Status ou Resultados. |
Target | Especifica o endereço do nó na Árvore de DM que é o destino do comando OMA DM. |
TargetRef | Especifica o endereço de destino na mensagem de solicitação correspondente. Esse elemento usa o valor da mensagem de solicitação Elemento Destino e é retornado no elemento Status ou Resultados. |
VerDTD | Especifica o identificador de versão principal e menor da especificação de protocolo de representação de DM OMA usada para representar a mensagem. |
VerProto | Especifica o identificador de versão principal e menor da especificação de protocolo OMA DM usada com a mensagem. |
Sessão de gerenciamento de dispositivo
Uma sessão de Gerenciamento de Dispositivos (DM) consiste em uma série de comandos trocados entre um servidor DM e um dispositivo cliente. O servidor envia comandos que indicam operações que devem ser executadas na árvore de gerenciamento do dispositivo cliente. O cliente responde enviando comandos que contêm os resultados e quaisquer informações de status solicitadas.
Uma sessão de DM curta pode ser resumida como:
Um servidor envia um comando Get para um dispositivo cliente para recuperar o conteúdo de um dos nós da árvore de gerenciamento. O dispositivo executa a operação e responde com um comando Result que contém o conteúdo solicitado.
Uma sessão de DM pode ser dividida em duas fases:
- Fase de instalação: em resposta a um evento de gatilho, um dispositivo cliente envia uma mensagem de iniciação para um servidor DM. A troca de dispositivos e servidores precisava de autenticação e informações de dispositivo. Essa fase é representada pelas etapas 1, 2 e 3.
- Fase de gerenciamento: o servidor DM está no controle. Ele envia comandos de gerenciamento para o dispositivo e o dispositivo responde. A fase 2 termina quando o servidor DM interrompe o envio de comandos e encerra a sessão. Essa fase é representada pelas etapas 3, 4 e 5.
As informações a seguir mostram a sequência de eventos durante uma sessão de DM típica.
O cliente DM é invocado para chamar de volta para o servidor de gerenciamento
Cenário empresarial – O agendamento de tarefas do dispositivo invoca o cliente DM.O servidor MO envia uma mensagem de gatilho do servidor para invocar o cliente DM.
A mensagem de gatilho inclui a ID do servidor e informa ao dispositivo cliente para iniciar uma sessão com o servidor. O dispositivo cliente autentica a mensagem de gatilho e verifica se o servidor está autorizado a se comunicar com ele.
Cenário empresarial – Na hora agendada, o cliente DM é invocado periodicamente para chamar de volta para o servidor de gerenciamento empresarial por HTTPS.O dispositivo envia uma mensagem, por meio de uma conexão IP, para iniciar a sessão.
Esta mensagem inclui informações e credenciais do dispositivo. O cliente e o servidor fazem autenticação mútua em um canal TLS/SSL ou no nível do aplicativo DM.
O servidor DM responde por meio de uma conexão IP (HTTPS). O servidor envia comandos iniciais de gerenciamento de dispositivos, se houver.
O dispositivo responde aos comandos de gerenciamento de servidor. Esta mensagem inclui os resultados da execução das operações de gerenciamento de dispositivo especificadas.
O servidor DM encerra a sessão ou envia outro comando. A sessão DM termina ou a Etapa 4 é repetida.
Os números da etapa não representam números de identificação de mensagem (MsgID). Todas as mensagens do servidor devem ter um MsgID exclusivo dentro da sessão, começando em 1 para a primeira mensagem e aumentando por um incremento de 1 para cada mensagem extra. Para obter mais informações sobre o protocolo MsgID e OMA SyncML, consulte Protocolo de Representação de Gerenciamento de Dispositivos OMA (DM_RepPro-V1_2-20070209-A).
Durante a autenticação mútua no nível do aplicativo OMA DM, se o código de resposta do dispositivo ao elemento Cred na solicitação do servidor for 212, nenhuma autenticação adicional será necessária para o restante da sessão de DM. Se ocorrer a autenticação MD5, o Chal
elemento poderá ser retornado. Em seguida, o próximo nó em Chal
deve ser usado para o digestão MD5 quando a próxima sessão de DM for iniciada.
Se uma solicitação incluir credenciais e o código de resposta à solicitação for 200, a mesma credencial deverá ser enviada na próxima solicitação. Se o Chal
elemento estiver incluído e a autenticação MD5 for necessária, um novo digesto será criado usando o próximo nó por meio do elemento para a Chal
próxima solicitação.
Para obter mais informações sobre a autenticação do cliente Basic ou MD5, a autenticação do servidor MD5, o hash MD5 e o nó MD5, consulte a especificação OMA Gerenciamento de Dispositivos Security (OMA-TS-DM_Security-V1_2_1-20080617-A), tratamento de código de resposta de autenticação e exemplos passo a passo no OMA Gerenciamento de Dispositivos Especificação de protocolo (OMA-TS-DM_Protocol-V1_2_1-20080617-A), disponível no site da OMA.
Configuração de destino do usuário versus dispositivo
Para CSPs e políticas compatíveis por configuração de usuário, o servidor MDM pode enviar valores de configuração direcionados ao usuário para o dispositivo no qual um usuário registrado em MDM está conectado ativamente. O dispositivo notifica o servidor do status de entrada por meio de um alerta de dispositivo (1224) com tipo de alerta = em DM pkg#1.
A parte de dados desse alerta pode ser uma das seguintes cadeias de caracteres:
- Usuário: o usuário que registrou o dispositivo está conectado ativamente. O servidor MDM poderia enviar configuração específica do usuário para CSPs/políticas que dão suporte por configuração de usuário
- Outros: outro usuário entra, mas esse usuário não tem uma conta MDM. O servidor só pode aplicar a configuração em todo o dispositivo, por exemplo, a configuração se aplica a todos os usuários do dispositivo.
- Nenhum: nenhum usuário ativo entra. O servidor só pode aplicar a configuração em todo o dispositivo e a configuração disponível é restrita ao ambiente do dispositivo (nenhum usuário ativo entra).
Aqui está um exemplo de alerta:
<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>
O servidor notifica o dispositivo se ele é uma configuração direcionada ao usuário ou direcionada ao dispositivo por um prefixo para o LocURL do nó de gerenciamento, com ./user
para configuração direcionada ao usuário ou ./device
para configuração direcionada ao dispositivo. Por padrão, se nenhum prefixo com ./device
ou ./user
, é uma configuração direcionada ao dispositivo.
O seguinte LocURL mostra uma configuração de nó CSP por usuário: ./user/vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/<PackageFamilyName>/StoreInstall
O seguinte LocURL mostra uma configuração de nó CSP por dispositivo: ./device/vendor/MSFT/RemoteWipe/DoWipe
Códigos de status de resposta SyncML
Ao usar SyncML no DM OMA, há códigos de status de resposta padrão que são retornados. A tabela a seguir lista os códigos comuns de resposta SyncML status que você provavelmente verá. Para obter mais informações sobre códigos status de resposta SyncML, consulte a seção 10 da especificação Protocolo de Representação SyncML.
Código de status | Descrição |
---|---|
200 | O comando SyncML foi concluído com êxito. |
202 | Aceito para processamento. Esse código denota uma operação assíncrona, como uma solicitação para executar uma execução remota de um aplicativo. |
212 | Autenticação aceita. Normalmente, você só vê esse código em resposta ao elemento SyncHdr (usado para autenticação no padrão OMA-DM). Você poderá ver esse código se olhar para os logs de DM do OMA, mas os CSPs normalmente não geram esse código. |
214 | Operação cancelada. O comando SyncML foi concluído com êxito, mas não há mais comandos processados na sessão. |
215 | Não executado. Um comando não foi executado como resultado da interação do usuário para cancelar o comando. |
216 |
Atomic reverter OK. Um comando estava dentro de um Atomic elemento e Atomic falhou. Esse comando foi revertido com êxito. |
400 | Solicitação incorreta. O comando solicitado não pôde ser executado devido à sintaxe malformada. Os CSPs geralmente não geram esse erro, no entanto, você pode vê-lo se seu SyncML estiver malformado. |
401 | Credenciais inválidas. O comando solicitado falhou porque o solicitante deve fornecer a autenticação adequada. Os CSPs geralmente não geram esse erro. |
403 | Proibido. O comando solicitado falhou, mas o destinatário entendeu o comando solicitado. |
404 | Não encontrado. O destino solicitado não foi encontrado. Esse código será gerado se você consultar um nó que não existe. |
405 | Comando não permitido. Esse código de resposta será gerado se você tentar gravar em um nó somente leitura. |
406 | Recurso opcional não com suporte. Esse código de resposta será gerado se você tentar acessar uma propriedade que o CSP não dá suporte. |
415 | Tipo ou formato sem suporte. Esse código de resposta pode resultar de erros de análise ou formatação de XML. |
418 | Já existe. Esse código de resposta ocorrerá se você tentar adicionar um nó que já existe. |
425 | Permissão negada. O comando solicitado falhou porque o remetente não tem acl (permissões de controle de acesso) adequadas no destinatário. Os erros de "acesso negado" geralmente são traduzidos para esse código de resposta. |
500 | Falha no comando. Falha genérica. O destinatário encontrou uma condição inesperada, o que o impediu de atender à solicitação. Esse código de resposta ocorre quando a DPU SyncML não pode mapear o código de erro de origem. |
507 |
Atomic Falhou. Uma das operações em um Atomic bloco falhou. |
516 |
Atomic falha ao reverter. Uma Atomic operação falhou e o comando não foi revertido com êxito. |