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

O Microsoft Azure fornece um conjunto avançado de serviços de nuvem pública integrados para todas as suas necessidades de soluções de IoT. 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. O diagrama a seguir descreve o que ocorre nos bastidores ao provisionar um dispositivo. A primeira etapa é manual, todas as etapas seguintes são automatizadas.

Diagrama que mostra como o dispositivo, o Serviço de Provisionamento de Dispositivos e Hub IoT funcionam juntos.

Antes do fluxo de provisionamento do dispositivo 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 definem 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. Quando o dispositivo é ligado pela primeira vez, ele se conecta 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. Depois de autenticados, 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 distintas no processo de implantação de um dispositivo no qual o DPS desempenha um papel que pode ser feito de modo independente:

  • 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 se ajustam perfeitamente com os 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 no dispositivo. Em vez de criar uma ID de dispositivo nesta etapa, o dispositivo é programado com as informações do serviço de provisionamento e permite que ele chama o serviço de provisionamento para obter as informações de conexão/a atribuição de solução de IoT do dispositivo quando ele é 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. Esses serviços são oferecidos por muitos fabricantes de silício atualmente.

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 provisionamento que deve ocorrer, que é geralmente é 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 foi configurado para o provisionamento automático, ele deve estar preparado para registrar dispositivos. Esta etapa é feita pelo operador de dispositivo, que sabe a configuração desejada dos dispositivos e é responsável por assegurar que o serviço de provisionamento possa atestar corretamente a identidade do dispositivo quando ele procura pelo respectivo Hub IoT. 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:

  1. A primeira parte é estabelecer a conexão inicial entre o dispositivo e a solução de IoT, registrando o dispositivo.
  2. 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 de solução de 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 estiver conectado, os dados do dispositivo fluirão 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 em uma base por assinatura é 10 Serviços de Provisionamento de Dispositivos por assinatura.

Para obter mais detalhes sobre limites de cota, confira Limites do Serviço de Assinatura do Azure.

Observação

Algumas áreas desse serviço têm limites ajustáveis. Isso está representado nas tabelas abaixo com a coluna Ajustável? . Quando o limite puder ser ajustado, o valor Ajustável? será Sim.

O valor real para o qual um limite pode ser ajustado pode variar conforme a implantação de cada cliente. Várias instâncias do DPS podem ser necessárias para implantações muito grandes.

Se seu negócio exigir o aumento de um limite ajustável ou uma cota acima do limite padrão, é possível solicitar recursos adicionais abrindo um tíquete de suporte. A solicitação de um aumento não garante que ele será concedido, uma vez que ele precisa ser revisado caso a caso. Entre em contato com o suporte da Microsoft o quanto antes durante sua implementação para determinar se sua solicitação pode ser aprovada e planejada adequadamente.

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 Sim
Número máximo de registros 1\.000.000 Sim
Número máximo de inscrições individuais 1\.000.000 Sim
Número máximo de grupos de inscrição (certificado X.509) 100 Sim
Número máximo de grupos de inscrição (chave simétrica) 100 Não
Número máximo de CAs 25 Sim
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 Sim
Registros de dispositivo 1.000/min/serviço Sim
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 obter mais informações, consulte:

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