Suporte ao protocolo OMA DM

O OMA DMClient se comunica com o servidor por HTTPS e usa o DM Sync (OMA DM v1.2) como o conteúdo da mensagem. Este artigo descreve a funcionalidade do OMA DM compatível com o DMClient em geral. A descrição completa do protocolo OMA DM v1.2 pode ser encontrada no site do OMA.

Padrões do OMA DM

A tabela a seguir mostra os padrões do OMA DM usados pelo Windows.

Área geral Padrão OMA DM com suporte
Transporte e sessão de dados
  • Sessão remota de HTTPS DM iniciada pelo cliente via TLS/SSL.
  • Sessão remota de HTTPS DM via TLS/SSL.
  • Notificação de início do servidor DM remoto usando o Serviço de Mensagens Curtas (SMS) WAP. Não usado pelo gerenciamento empresarial.
  • Inicialização remota usando WAP Push over SMS. Não usado pelo gerenciamento empresarial.
  • XML de inicialização XML de provisionamento do cliente OMA.
    Comandos do protocolo DM A lista a seguir mostra os comandos usados pelo dispositivo. Para obter mais informações sobre os elementos de comando do OMA DM, consulte o "site do OMA" disponível no site do OMA.
  • Adicionar (Adicionar Implícito com suporte)
  • Alerta (alerta DM): o alerta genérico (1226) é usado pelo cliente de gerenciamento empresarial quando o usuário dispara uma ação de cancelamento de registro do MDM do dispositivo ou quando um CSP conclui algumas ações assíncronas. O alerta do dispositivo (1224) é usado para notificar o servidor de algum evento disparado pelo dispositivo.
  • Atômico: não há suporte para a execução de um comando Adicionar seguido de Substituir no mesmo nó dentro de um elemento atômico. Os comandos Nested Atomic e Get não são permitidos e geram o código de erro 500.
  • Excluir: Remove um nó da árvore DM e toda a subárvore abaixo desse nó, se houver um
  • Exec: invoca um executável no dispositivo cliente
  • Get: Recupera dados do dispositivo cliente; para nós interiores, os nomes dos nós secundários no elemento Data são retornados no formato codificado por URI
  • Substituir: substitui os dados no dispositivo cliente
  • Resultado: retorna os resultados dos dados de um comando Get para o servidor DM
  • Sequência: Especifica a ordem na qual um grupo de comandos deve ser processado
  • Status: indica o status de conclusão (sucesso ou falha) de uma operação

    Se um elemento XML que não é um comando OMA DM válido estiver sob um dos seguintes elementos, o código de status 400 será retornado para esse elemento:
  • SyncBody
  • Atômico
  • Sequência

    Se nenhum CmdID for fornecido no comando DM, o cliente retornará em branco no elemento status e o código de status 400.

    Se os elementos atômicos estiverem aninhados, os seguintes códigos de status serão retornados:
  • O comando Atomic aninhado retorna 500.
  • O comando Atomic pai retorna 507.

    Para obter mais informações sobre o comando Atômico, consulte Elementos comuns do protocolo OMA DM.
    Não há suporte para a execução de um comando Adicionar seguido de Substituir no mesmo nó dentro de um elemento Atômico.

    LocURI não pode começar com /.

    A marca Meta XML em SyncHdr é ignorada pelo dispositivo.
  • Objetos padrão do OMA DM DevInfo
  • DevDetail
  • Objetos de conta do OMA DM DMS (OMA DM versão 1.2)
  • Segurança
  • Autenticar notificação de início do servidor DM Mensagem SMS (não usada pelo gerenciamento empresarial)
  • Autenticação básica da camada de aplicativo e cliente MD5
  • Autenticar o servidor com a credencial MD5 no nível do aplicativo
  • Integridade de dados e autenticação com HMAC no nível do aplicativo
  • Autenticação de cliente/servidor baseada em certificado de nível TLS/SSL, criptografia e verificação de integridade de dados da marca
  • Nós Na árvore OMA DM, as seguintes regras se aplicam ao nome do nó:
  • "." pode fazer parte do nome do nó.
  • O nome do nó não pode estar vazio.
  • O nome do nó não pode ser apenas o caractere asterisco (*).
  • Provisioning Files O XML de provisionamento deve ser 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 de status 400 será retornado para esse elemento.
    Observação
    Para representar uma cadeia de caracteres Unicode como um URI, primeiro codifique a cadeia de caracteres como UTF-8. Codifique cada um dos bytes UTF-8 usando a codificação URI.
    Suporte a WBXML O Windows dá suporte ao envio e recebimento de SyncML no formato XML e no formato WBXML codificado. Esse suporte a formato duplo é configurável usando o nó DEFAULTENCODING na 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 do Protocolo de Representação SyncML .
    Manuseio 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 do OMA DM usados para configurar os dispositivos. Para obter mais informações sobre elementos comuns do OMA DM, consulte "SyncML Representation Protocol Gerenciamento de Dispositivos Usage" (OMA-SyncML-DMRepPro-V1_1_2-20030613-A) disponível no site do OMA.

    Elemento Descrição
    Chal Especifica um desafio de autenticação. O servidor ou cliente poderá enviar um desafio ao outro se nenhuma credencial ou credenciais inadequadas tiverem sido fornecidas 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 de um comando do OMA DM.
    CmdRef Especifica a ID do comando para o qual as informações de status ou resultados estão sendo retornadas. Esse elemento assume o valor do elemento CmdID da mensagem de solicitação correspondente.
    Cred Especifica a credencial de autenticação para o originador da mensagem.
    Final Indica que a mensagem atual é a última mensagem no pacote.
    LocName Especifica o nome de exibição nos elementos Destino e Origem, usados para enviar um 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 OMA DM.
    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 a essa mensagem.
    SessionID Especifica o identificador da sessão OMA DM associado à mensagem recipiente. Se o servidor não notificar o dispositivo de que dá suporte a uma nova versão (por meio do nó SyncApplicationVersion no CSP DMClient), o cliente retornará a SessionID em número inteiro em formato decimal. Se o servidor der suporte à 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 usa o valor do elemento Source da mensagem de solicitação e é retornado no elemento Status ou Results.
    Target Especifica o endereço do nó na Árvore 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 do elemento Target da mensagem de solicitação e é retornado no elemento Status ou Results.
    VerDTD Especifica o identificador de versão principal e secundária da especificação de protocolo de representação OMA DM usada para representar a mensagem.
    VerProto Especifica o identificador de versão principal e secundária 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 indicando as operações que devem ser executadas na árvore de gerenciamento do dispositivo cliente. O cliente responde enviando comandos que contêm os resultados e qualquer informação de status solicitada.

    Uma curta sessão de DM pode ser resumida como:

    Um servidor envia um comando Get a um dispositivo cliente para recuperar o conteúdo de um dos nós da árvore de gerenciamento. O dispositivo realiza 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:

    1. Fase de configuração: Em resposta a um evento de acionamento, um dispositivo cliente envia uma mensagem inicial para um servidor DM. O dispositivo e o servidor trocam as informações necessárias de autenticação e dispositivo. Essa fase é representada pelas etapas 1, 2 e 3.
    2. 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 para de enviar 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 típica de DM.

    1. DMClient é invocado para retornar ao servidor de gerenciamento

      Cenário corporativo - A programação de tarefas do dispositivo invoca o DMClient.

      O servidor MO envia uma mensagem de gatilho do servidor para invocar o DMClient.

      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 corporativo – no horário agendado, o DMClient é invocado periodicamente para retornar ao servidor de gerenciamento corporativo por HTTPS.

    2. O dispositivo envia uma mensagem, por uma conexão IP, para iniciar a sessão.

      Essa mensagem inclui informações e credenciais do dispositivo. O cliente e o servidor fazem autenticação mútua por meio de um canal TLS/SSL ou no nível do aplicativo DM.

    3. O servidor DM responde por meio de uma conexão IP (HTTPS). O servidor envia comandos iniciais de gerenciamento de dispositivo, se houver.

    4. O dispositivo responde aos comandos de gerenciamento do servidor. Esta mensagem inclui os resultados da execução das operações de gerenciamento de dispositivo especificadas.

    5. O servidor DM encerra a sessão ou envia outro comando. A sessão DM termina ou a Etapa 4 é repetida.

    Os números das etapas não representam números de identificação da 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 em um incremento de 1 para cada mensagem extra. Para obter mais informações sobre o MsgID e o protocolo SyncML do OMA, consulte Protocolo de representação do OMA Gerenciamento de Dispositivos (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 para o elemento Cred na solicitação do servidor for 212, nenhuma autenticação adicional será necessária para o restante da sessão DM. Se a autenticação MD5 ocorrer, o Chal elemento poderá ser retornado. Em seguida, o próximo nonce de entrada Chal deve ser usado para o resumo 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 for incluído e a autenticação MD5 for necessária, um novo resumo será criado usando o próximo nonce por meio do elemento para a Chal próxima solicitação.

    Para obter mais informações sobre autenticação de cliente Básica ou MD5, autenticação de servidor MD5, hash MD5 e nonce MD5, consulte a Especificação de Segurança do OMA Gerenciamento de Dispositivos (OMA-TS-DM_Security-V1_2_1-20080617-A), manipulação 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 do OMA.

    Configuração direcionada ao usuário vs. configuração direcionada ao dispositivo

    Para CSPs e políticas que dão suporte à configuração por usuário, o servidor MDM pode enviar valores de configuração direcionada ao usuário para o dispositivo em que um usuário registrado no MDM está conectado ativamente. O dispositivo notifica o servidor sobre o 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 pode enviar configurações específicas do usuário para CSPs/políticas que dão suporte à configuração por 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 no dispositivo.
    • Nenhum: nenhuma entrada de usuário ativo. O servidor só pode aplicar a configuração em todo o dispositivo, e a configuração disponível é restrita ao ambiente do dispositivo (nenhuma entrada de usuário ativo).

    Veja 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 é 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 não houver prefixo com ./device ou ./user, é uma configuração direcionada ao dispositivo.

    O LocURL a seguir mostra uma configuração de nó CSP por usuário: ./user/vendor/MSFT/EnterpriseModernAppManagement/AppInstallation/<PackageFamilyName>/StoreInstall

    O LocURL a seguir mostra uma configuração de nó CSP por dispositivo: ./device/vendor/MSFT/RemoteWipe/DoWipe

    Códigos de status de resposta do SyncML

    Ao usar o SyncML no OMA DM, há códigos de status de resposta padrão retornados. A tabela a seguir lista os códigos de status de resposta SyncML comuns que você provavelmente verá. Para obter mais informações sobre códigos de status de resposta do SyncML, consulte a seção 10 da especificação do Protocolo de Representação do 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 examinar os logs do OMA DM, mas os CSPs normalmente não geram esse código.
    214 Operação cancelada. O comando SyncML foi concluído com êxito, mas nenhum outro comando é processado 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. Este comando foi revertido com êxito.
    400 Solicitação inválida. O comando solicitado não pôde ser executado devido à sintaxe malformada. Os CSPs geralmente não geram esse erro, no entanto, você poderá vê-lo se o 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 compreendeu 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 é gerado se você tentar gravar em um nó somente leitura.
    406 Recurso opcional não suportado. Esse código de resposta será gerado se você tentar acessar uma propriedade incompatível com o CSP.
    415 Tipo ou formato incompatível. Esse código de resposta pode resultar de erros de formatação ou análise 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 permissões de controle de acesso (ACL) adequadas no destinatário. Erros de "Acesso negado" geralmente são traduzidos para este código de resposta.
    500 Falha no comando. Falha genérica. O destinatário encontrou uma condição inesperada, 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 na reversão. Uma Atomic operação falhou e o comando não foi revertido com êxito.

    Referência de provedor de serviços de configuração