O que é o Serviço de Provisionamento de Dispositivos no Hub IoT do Azure?

O DPS (Serviço de Provisionamento de Dispositivos) no Hub IoT é um serviço auxiliar para Hub IoT que permite o provisionamento Just-In-Time e sem toque no hub IoT correto sem exigir intervenção humana. O DPS permite o provisionamento de milhões de dispositivos de maneira segura e escalonável. Muitas das etapas manuais tradicionalmente envolvidas no provisionamento são automatizadas com o DPS para reduzir o tempo para implantação de dispositivos IoT e reduzir o risco de erro manual.

Como o Serviço de Provisionamento de Dispositivos funciona

O diagrama a seguir descreve o que ocorre nos bastidores para provisionar um dispositivo com DPS.

Diagram that shows how the device, Device Provisioning Service, and IoT Hub work together.

Antes do fluxo de provisionamento de dispositivos começar, há duas etapas manuais a serem preparadas:

  • No lado do dispositivo, o fabricante do dispositivo o prepara para provisionamento pré-configurando o dispositivo com suas credenciais de autenticação e a ID e ponto de extremidade do Serviço de Provisionamento de Dispositivos atribuídos.
  • No lado da nuvem, você ou o fabricante do dispositivo prepara a instância do Serviço de Provisionamento de Dispositivos com registros individuais e grupos de registros que identificam dispositivos válidos e define como eles devem ser provisionados.

Depois que o dispositivo e a nuvem forem configurados para provisionamento, as seguintes etapas serão inicializadas automaticamente assim que o dispositivo for ligado pela primeira vez:

  1. O dispositivo é ligado pela primeira vez, conecta-se ao ponto de extremidade do DPS e apresenta as credenciais de autenticação.
  2. A instância do DPS verifica a identidade do dispositivo em relação à sua lista de registros. Após a identidade do dispositivo ser verificada, o DPS atribui o dispositivo a um hub IoT e o registra no hub.
  3. A instância do DPS recebe a ID do dispositivo e as informações de registro do hub atribuído e passa essas informações de volta para o dispositivo.
  4. O dispositivo usa suas informações de registro para se conectar diretamente ao hub IoT atribuído e se autenticar.
  5. O dispositivo e o hub IoT começam a se comunicar diretamente. A instância do DPS não tem mais nenhuma função como intermediário, a menos que o dispositivo precise ser reprovisionado.

Quando usar o Serviço de Provisionamento de Dispositivos

Há muitos cenários de provisionamento nos quais o DPS é uma excelente opção para obter dispositivos conectados e configurados para o Hub IoT, tais como:

  • Provisionamento de toque zero para uma única solução de IoT sem codificar informações de conexão de Hub IoT de fábrica (configuração inicial)
  • Dispositivos de balanceamento de carga entre vários hubs
  • Conectando dispositivos à solução de IoT do proprietário deles com base nos dados de transação de vendas (multilocação)
  • Conectando dispositivos a uma determinada solução de IoT dependendo do caso de uso (isolamento de solução)
  • Conectar um dispositivo ao hub IoT com a menor latência (fragmentação geográfica)
  • Reprovisionar com base em uma alteração no dispositivo
  • Reverter as chaves usadas pelo dispositivo para se conectar ao IoT Hub (quando não estiver usando certificados X.509 para conectar-se)

Atualmente, não há suporte para o provisionamento de dispositivos IoT Edge aninhados (hierarquias pai/filho) pelo DPS.

Processo de provisionamento

Há duas etapas que ocorrem antes de um provisionamento de dispositivos com DPS:

  • A etapa de fabricação, na qual o dispositivo é criado e preparado na fábrica e
  • A etapa de configuração de nuvem, em que o Serviço de Provisionamento de Dispositivos é configurado para o provisionamento automatizado.

Ambas essas etapas podem ser incorporadas aos processos de fabricação e implantação existentes. O DPS simplifica até mesmo alguns processos de implantação que envolvem trabalho manual para obter informações de conexão para o dispositivo.

Etapa de fabricação

Esta etapa trata-se do que acontece na linha de produção. As funções envolvidos nesta etapa incluem o designer de silício, o fabricante de silício, o integrador e/ou o fabricante final do dispositivo. Esta etapa envolve a criação do hardware em si.

O DPS não introduz uma nova etapa no processo de fabricação; em vez disso, ele está associado à etapa existente que instala o software inicial e (idealmente) o HSM (módulo de segurança de hardware) no dispositivo. Em vez de criar uma ID de dispositivo nesta etapa, o dispositivo é programado com as informações do serviço de provisionamento, permitindo que ele chame o serviço de provisionamento para obter as informações de conexão/a atribuição de solução IoT quando for ativado.

Também nesta etapa, o fabricante fornece as informações de chave de identificação ao implantador/operador do dispositivo. Fornecer essas informações pode ser algo tão simples quanto confirmar que todos os dispositivos têm um certificado X.509 gerado de um certificado de autenticação fornecido pelo implantador/operador do dispositivo ou pode ser complicado como extrair a parte pública da chave de endosso do TPM de cada dispositivo TPM. Muitos fabricantes de silício oferecem esses serviços.

Etapa de configuração de nuvem

Esta etapa trata da configuração de nuvem para o provisionamento automático adequado. Geralmente, há dois tipos de usuários envolvidos na etapa de configuração de nuvem: alguém que sabe como os dispositivos precisam ser configurados inicialmente (um operador de dispositivo) e outra pessoa que sabe como os dispositivos devem ser divididos entre os Hubs IoT (um operador de solução).

Há uma única configuração inicial do serviço de provisionamento, que é realizada pelo operador de solução. Quando o serviço de provisionamento está configurado, ele não precisa ser modificado, a menos que o caso de uso seja alterado.

Depois que o serviço for configurado para o provisionamento automático, ele deve estar preparado para registrar dispositivo. Esta etapa é realizada pelo operador de dispositivo, que sabe a configuração desejada dos dispositivo e se certifica de que o serviço de provisionamento pode atestar corretamente a identidade de um dispositivo. O operador de dispositivo pega as informações de chave de identificação do fabricante e as adiciona à lista de registro. Pode haver atualizações subsequentes para a lista de registro, tais como novas entradas serem adicionadas ou entradas existentes serem atualizadas com as informações mais recentes sobre os dispositivos.

Registro e provisionamento

Provisionamento significa diversas coisas dependendo do setor no qual o termo é usado. No contexto de provisionamento de dispositivos IoT para a solução de nuvem deles, o provisionamento é um processo de duas partes:

  • A primeira parte é estabelecer a conexão inicial entre o dispositivo e a solução de IoT, registrando o dispositivo.
  • A segunda parte é aplicar a configuração apropriada ao dispositivo com base nos requisitos específicos da solução para a qual ele foi registrado.

Depois que ambas essas etapas forem concluídas, poderemos dizer que o dispositivo foi completamente provisionado. Alguns serviços de nuvem apenas fornecem a primeira etapa do processo de provisionamento, registrando dispositivos no ponto de extremidade da solução IoT, mas não fornecem a configuração inicial. O DPS automatiza as etapas para fornecer uma experiência perfeita de provisionamento para o dispositivo.

Recursos do Serviço de Provisionamento de Dispositivos

O DPS tem muitos recursos que o tornam ideal para provisionar dispositivos.

  • Suporte a atestado protegido tanto para identidades baseadas em X.509 quanto para aquelas baseadas em TPM.
  • A lista de registro que contém o registro completo de dispositivos/grupos de dispositivos que podem, em algum ponto, ser registrados. A lista de registro contém informações sobre a configuração desejada do dispositivo após ele ser registrado e ele pode ser atualizado a qualquer momento.
  • Várias políticas de alocação para controlar como o DPS atribui dispositivos para Hubs IoT para dar suporte a seus cenários: Latência mais baixa, distribuição uniformemente ponderada (padrão) e configuração estática. A latência é determinada usando o mesmo método que o Gerenciador de Tráfego. A alocação personalizada, que permite implementar suas políticas de alocação por meio de webhooks hospedados no Azure Functions, também tem suporte.
  • Logs de monitoramento e de diagnóstico para verificar se tudo está funcionando corretamente.
  • O suporte a vários hubs permite que o DPS atribua dispositivos a mais de um hub IoT. O DPS pode se comunicar com hubs entre várias assinaturas do Azure.
  • O suporte entre regiões permite que o DPS atribua dispositivos a hubs IoT em outras regiões.
  • A criptografia de dados em repouso permite que os dados do DPS sejam criptografados e descriptografados de maneira transparente usando a criptografia AES de 256 bits, uma das codificações de bloco mais fortes disponíveis, e é compatível com o FIPS 140-2.

Você pode aprender mais sobre os conceitos e recursos envolvidos no provisionamento de dispositivos examinando ao artigo terminologia de DPS junto com os outros artigos conceituais na mesma seção.

Suporte de multiplaforma

Assim como todos os serviços de Internet das Coisas do Azure, o DPS funciona em multiplataforma com vários sistemas operacionais. O Azure oferece SDKs de software livre em várias linguagens para facilitar a conexão de dispositivos e gerenciar o serviço. O DPS dá suporte aos seguintes protocolos para conectar dispositivos:

  • HTTPS
  • AMQP
  • AMQP sobre websockets
  • MQTT
  • MQTT sobre websockets

O DPS dá suporte apenas a conexões HTTPS para operações de serviço.

Regiões

O DPS está disponível em muitas regiões. A lista de regiões com suporte para todos os serviços está disponível em Regiões do Azure. É possível verificar a disponibilidade do Serviço de Provisionamento de Dispositivos, na página Status do Azure.

Para resiliência e confiabilidade, recomendamos implantar em uma das regiões que dão suporte a Zonas de Disponibilidade.

Consideração sobre residência de dados

O Serviço de Provisionamento de Dispositivos armazena dados do cliente. Por padrão, os dados do cliente são replicados para uma região secundária para dar suporte a cenários de recuperação de desastre. Para implantações no sudeste da Ásia e no sul do Brasil, os clientes podem optar por manter seus dados somente dentro dessa região desabilitando a recuperação de desastre. Para saber mais, confira Replicação entre regiões no Azure.

O DPS usa o mesmo ponto de extremidade de provisionamento de dispositivos para todas as instâncias do serviço de provisionamento e executa o balanceamento de carga de tráfego no ponto de extremidade de serviço mais próximo disponível. Como resultado, os segredos de autenticação podem ser transferidos temporariamente para fora da região em que a instância do DPS foi inicialmente criada. No entanto, depois que o dispositivo está conectado, os dados do dispositivo fluem diretamente para a região original da instância do DPS. Para garantir que seus dados não deixem a região original ou secundária, use um ponto de extremidade privado. Para saber como configurar pontos de extremidade privados, consulte Suporte do DPS para redes virtuais.

Cotas e limites

Cada assinatura do Azure tem limites de cota em vigor que podem afetar o escopo de sua solução de IoT. O limite atual é de 10 instâncias do serviço de provisionamento de dispositivos por assinatura.

Para obter mais informações sobre limites de cota, confira Limites do serviço de assinatura do Azure.

A tabela a seguir lista os limites que se aplicam aos recursos do Serviço de Provisionamento de Dispositivos no Hub IoT do Azure.

Recurso Limite Ajustável?
Máximo de serviços de provisionamento de dispositivos por assinatura do Azure 10 Não
Número máximo de registros 1\.000.000 Não
Número máximo de inscrições individuais 1\.000.000 Não
Número máximo de grupos de inscrição (certificado X.509) 100 Não
Número máximo de grupos de inscrição (chave simétrica) 100 Não
Número máximo de CAs 25 Não
Número máximo de hubs IoT vinculados 50 Não
Tamanho máximo da mensagem 96 KB Não

Dica

Se o limite rígido em grupos de inscrição de chaves simétricas for um problema de bloqueio, é recomendável usar as inscrições individuais como solução alternativa.

O Serviço de Provisionamento de Dispositivos tem os seguintes limites de taxa.

Tarifa Valor por unidade Ajustável?
Operations 1.000/min/serviço Não
Registros de dispositivo 1.000/min/serviço Não
Operação de sondagem de dispositivo 5/10 s/dispositivo Não

Operações de serviço cobradas e preços

Cada chamada à API no DPS é cobrada como uma operação. Isso inclui todas as APIs de serviço e a API de registro do dispositivo.

As tabelas a seguir mostram o status atual de cobrança de cada operação da API do serviço DPS. Para saber mais sobre o preço do DPS, selecione Tabela de preços na parte superior da página Preços do Hub IoT do Azure. Em seguida, selecione a guia Serviço de Provisionamento de Dispositivos no Hub IoT, a moeda e a região do serviço.

API Operação Cobrado?
API do dispositivo Pesquisa de status do registro do dispositivo No
API do dispositivo Pesquisa de status da operação No
API do dispositivo Registrar dispositivo Yes
API do Serviço DPS (estado de registro) Delete (excluir) Yes
API do Serviço DPS (estado de registro) Get Yes
API do Serviço DPS (estado de registro) Consulta Yes
API do Serviço DPS (grupo de inscrição) Criar ou Atualizar Yes
API do Serviço DPS (grupo de inscrição) Delete (excluir) Yes
API do Serviço DPS (grupo de inscrição) Get Yes
API do Serviço DPS (grupo de inscrição) Mecanismo de obtenção de atestado Yes
API do Serviço DPS (grupo de inscrição) Consulta Yes
API do Serviço DPS (grupo de inscrição) Executar operação em massa Yes
API do Serviço DPS (inscrição individual) Criar ou Atualizar Yes
API do Serviço DPS (inscrição individual) Delete (excluir) Yes
API do Serviço DPS (inscrição individual) Get Yes
API do Serviço DPS (inscrição individual) Mecanismo de obtenção de atestado Yes
API do Serviço DPS (inscrição individual) Consulta Yes
API do Serviço DPS (inscrição individual) Executar operação em massa Yes
API de Certificado DPS Criar ou Atualizar No
API de Certificado DPS Delete (excluir) No
API de Certificado DPS Gerar código de verificação No
API de Certificado DPS Get No
API de Certificado DPS Lista No
API de Certificado DPS Verificar o certificado No
API de Recurso de DPS em IoT Verificar a disponibilidade do nome do serviço de provisionamento No
API de Recurso de DPS em IoT Criar ou Atualizar No
API de Recurso de DPS em IoT Delete (excluir) No
API de Recurso de DPS em IoT Get No
API de Recurso de DPS em IoT Obtém o resultado da operação No
API de Recurso de DPS em IoT Listar por Grupo de Recursos No
API de Recurso de DPS em IoT Listar por Assinatura No
API de Recurso de DPS em IoT Listar por chaves No
API de Recurso de DPS em IoT Listar chaves para o nome da chave No
API de Recurso de DPS em IoT Listar SKUs válidos No
API de Recurso de DPS em IoT Atualização No

O DPS automatiza o provisionamento de dispositivos com o Hub IoT do Azure. Saiba mais sobre o Hub IoT.

Observação

Atualmente, não há suporte para o provisionamento de dispositivos de borda aninhada (hierarquias pai/filho) pelo DPS.

Os aplicativos do IoT Central usam uma instância de DPS interna para gerenciar conexões de dispositivo. Para saber mais, veja Como os dispositivos se conectam ao IoT Central.

Próximas etapas

Agora você tem uma visão geral do provisionamento de dispositivos IoT no Azure. A próxima etapa é testar um cenário de IoT de ponta a ponta.

Configurar o Serviço de Provisionamento de Dispositivos no Hub IoT com o portal do Azure

Criar e provisionar um dispositivo simulado