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

O DPS (Serviço de Provisionamento de Dispositivos) do Hub IoT é um serviço auxiliar para o Hub IoT que permite o provisionamento zero-touch, just-in-time para o hub IoT certo sem a necessidade de intervenção humana. O DPS permite o provisionamento de milhões de dispositivos de forma segura e escalável. Muitas das etapas manuais tradicionalmente envolvidas no provisionamento são automatizadas com DPS para reduzir o tempo de implantação de dispositivos IoT e diminuir o risco de erro manual.

Como funciona o Serviço de Provisionamento de Dispositivos

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

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

Antes do início do fluxo de provisionamento do dispositivo, há duas etapas manuais para preparar:

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

Depois que o dispositivo e a nuvem estiverem configurados para provisionamento, as etapas a seguir serão iniciadas automaticamente assim que o dispositivo for ligado pela primeira vez:

  1. O dispositivo liga pela primeira vez e, em seguida, liga-se ao ponto de extremidade DPS e apresenta-lhe credenciais de autenticação.
  2. A instância do DPS verifica a identidade do dispositivo em relação à sua lista de registros. Depois que a identidade do dispositivo é verificada, o DPS atribui o dispositivo a um hub IoT e o registra no hub.
  3. A instância DPS recebe o 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 autenticar.
  5. O dispositivo e o hub IoT começam a se comunicar diretamente. A instância do DPS não tem mais função como intermediário, a menos que o dispositivo precise ser reprovisionado.

Quando utilizar o Serviço de Aprovisionamento de Dispositivos

Há muitos cenários de provisionamento nos quais o DPS é uma excelente opção para conectar e configurar dispositivos ao Hub IoT, como:

  • Aprovisionamento sem toques numa solução de IoT única sem codificar informações de ligação do Hub IoT na fábrica de (configuração inicial)
  • Dispositivos de balanceamento de carga em vários hubs
  • Conectando dispositivos à solução de IoT do proprietário com base em dados de transações de vendas (multilocação)
  • Ligação de dispositivos a uma solução de IoT específica, consoante o caso de utilização (isolamento da solução)
  • Ligação de um dispositivo ao hub IoT com a latência mais baixa (fragmentação geográfica)
  • Reaprovisionamento com base numa alteração no dispositivo
  • Implementar as chaves utilizadas pelo dispositivo para estabelecer ligação ao Hub IoT (quando não utilizar certificados x.509 para ligar)

Atualmente, o provisionamento de dispositivos IoT Edge aninhados (hierarquias pai/filho) não é suportado pelo DPS.

Processo de aprovisionamento

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

  • O passo de fabrico no qual o dispositivo é criado e preparado na fábrica, e
  • O passo de configuração da cloud no qual o Serviço de Aprovisionamento de Dispositivos é configurado para o aprovisionamento automatizado.

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

Passo de fabrico

Este passo envolve o que acontece na linha de fabrico. As funções envolvidas neste passo incluem o designer de silício, o fabricante de silício, o integrador e/ou o fabricante final do dispositivo. Este passo está relacionado com a criação do próprio hardware.

O DPS não introduz uma nova etapa no processo de fabricação; em vez disso, ele se liga à etapa existente que instala o software inicial e (idealmente) o módulo de segurança de hardware (HSM) no dispositivo. Em vez de criar um 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 suas informações de conexão/atribuição de solução IoT quando estiver ligado.

Também neste passo, o fabricante fornece informações sobre a chave de identificação ao implementador/operador do dispositivo. O fornecimento dessas informações pode ser tão simples como confirmar que todos os dispositivos têm um certificado X.509 gerado a partir de um certificado de assinatura fornecido pelo implementador/operador do dispositivo ou tão complicado como extrair a parte pública de uma chave de endossamento TPM de cada dispositivo TPM. Muitos fabricantes de silício oferecem esses serviços.

Passo de configuração da cloud

Este passo diz respeito à configuração da cloud para o aprovisionamento automático adequado. Geralmente, existem dois tipos de utilizadores envolvidos no passo de configuração da cloud: alguém que saiba como os dispositivos têm de ser inicialmente configurados (um operador do dispositivo) e alguém que saiba como os dispositivos devem ser divididos entre os hubs IoT (um operador da solução).

Há uma configuração inicial única do serviço de provisionamento, que o operador da solução geralmente manipula. Depois que o serviço de provisionamento estiver configurado, ele não precisará ser modificado, a menos que o caso de uso seja alterado.

Depois que o serviço é configurado para provisionamento automático, ele deve estar preparado para registrar dispositivos. Esta etapa é feita pelo operador do dispositivo, que conhece a configuração desejada dos dispositivos e garante que o serviço de provisionamento possa atestar corretamente a identidade de um dispositivo. O operador do dispositivo utiliza as informações da chave de identificação do fabricante e adiciona-as à lista de inscrição. Podem existir atualizações subsequentes à lista de inscrição à medida que são adicionadas novas entradas ou que as entradas existentes são atualizadas com as informações mais recentes sobre os dispositivos.

Registo e aprovisionamento

Aprovisionamento tem significados diferentes consoante a indústria em que o termo é utilizado. No contexto do aprovisionamento de dispositivos IoT na respetiva solução de cloud, o aprovisionamento é um processo composto por duas partes:

  • A primeira parte consiste em estabelecer a ligação inicial entre o dispositivo e a solução de IoT ao registar o dispositivo.
  • A segunda parte consiste em aplicar a configuração adequada ao dispositivo com base nos requisitos específicos da solução na qual foi registado.

Após a conclusão desses dois passos, podemos afirmar que o dispositivo foi totalmente aprovisionado. Alguns serviços de nuvem fornecem apenas 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 ambas as etapas para fornecer uma experiência de provisionamento perfeita para o dispositivo.

Funcionalidades do Serviço de Aprovisionamento de Dispositivos

O DPS tem muitos recursos, tornando-o ideal para provisionamento de dispositivos.

  • Suporte de atestado seguro para identidades baseadas em X.509 e TPM.
  • Lista de inscrição que contém o registo completo de dispositivos/grupos de dispositivos que podem ser registados em qualquer momento. A lista de inscrição contém informações sobre a configuração pretendida do dispositivo, depois de ser registado, e pode ser atualizada em qualquer altura.
  • Várias políticas de alocação para controlar como o DPS atribui dispositivos a hubs IoT em suporte aos seus cenários: menor latência, distribuição ponderada uniformemente (padrão) e configuração estática. A latência é determinada usando o mesmo método do Gerenciador de Tráfego. A alocação personalizada, que permite implementar suas próprias políticas de alocação por meio de webhooks hospedados no Azure Functions, também é suportada.
  • Monitorização e registo de diagnóstico para garantir que tudo está a funcionar corretamente.
  • O suporte a vários hubs permite que o DPS atribua dispositivos a mais de um hub IoT. O DPS pode conversar com hubs em 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 para dados em repouso permite que os dados no DPS sejam criptografados e descriptografados de forma transparente usando criptografia AES de 256 bits, uma das cifras de bloco mais fortes disponíveis, e é compatível com FIPS 140-2.

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

Suporte para várias plataformas

Assim como todos os serviços do Azure IoT, o DPS funciona entre plataformas com vários sistemas operacionais. O Azure oferece SDKs de código aberto em vários idiomas para facilitar a conexão de dispositivos e o gerenciamento do serviço. O DPS suporta os seguintes protocolos para conectar dispositivos:

  • HTTPS
  • AMQP
  • AMQP através de sockets web
  • MQTT
  • MQTT através de sockets web

O DPS suporta apenas 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. Pode verificar a disponibilidade do Serviço de Aprovisionamento de Dispositivos na página Estado do Azure.

Para maior resiliência e confiabilidade, recomendamos a implantação em uma das regiões que oferecem suporte a zonas de disponibilidade.

Consideração da 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 desastres. Para implantações no Sudeste Asiático e no Sul do Brasil, os clientes podem optar por manter seus dados apenas dentro dessa região, desativando a recuperação de desastres. Para obter mais informações, consulte Replicação entre regiões no Azure.

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

Quotas e Limites

Cada subscrição do Azure possui limites de quota predefinidos que podem afetar o âmbito da 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, consulte 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 Dispositivo do 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 inscrições 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 autoridades competentes 25 Não
Número máximo de hubs IoT vinculados 50 Não
Tamanho máximo da mensagem 96 KB Não

Gorjeta

Se o limite rígido de grupos de inscrição de chave simétrica for um problema de bloqueio, recomenda-se usar inscrições individuais como uma solução alternativa.

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

Tarifa Valor por unidade Ajustável?
Operações 1.000/min/serviço Não
Registos de dispositivos 1.000/min/serviço Não
Operação de sondagem de dispositivos 5/10 seg/dispositivo Não

Operações de serviço faturáveis e preços

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

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

API Operação Faturável?
API do dispositivo Pesquisa de status de registro de dispositivo Não
API do dispositivo Pesquisa de status da operação Não
API do dispositivo Registrar dispositivo Sim
API de Serviço DPS (estado de registro) Eliminar Sim
API de Serviço DPS (estado de registro) Obter Sim
API de Serviço DPS (estado de registro) Consulta Sim
API de Serviço DPS (grupo de inscrição) Criar ou atualizar Sim
API de Serviço DPS (grupo de inscrição) Eliminar Sim
API de Serviço DPS (grupo de inscrição) Obter Sim
API de Serviço DPS (grupo de inscrição) Obter Mecanismo de Atestado Sim
API de Serviço DPS (grupo de inscrição) Consulta Sim
API de Serviço DPS (grupo de inscrição) Executar operação em massa Sim
API de Serviço DPS (inscrição individual) Criar ou atualizar Sim
API de Serviço DPS (inscrição individual) Eliminar Sim
API de Serviço DPS (inscrição individual) Obter Sim
API de Serviço DPS (inscrição individual) Obter Mecanismo de Atestado Sim
API de Serviço DPS (inscrição individual) Consulta Sim
API de Serviço DPS (inscrição individual) Executar operação em massa Sim
API de certificado DPS Criar ou atualizar Não
API de certificado DPS Eliminar Não
API de certificado DPS Gerar código de verificação Não
API de certificado DPS Obter Não
API de certificado DPS Lista Não
API de certificado DPS Verificar certificado Não
API de recursos do IoT DPS Verificar a disponibilidade do nome do serviço de provisionamento Não
API de recursos do IoT DPS Criar ou atualizar Não
API de recursos do IoT DPS Eliminar Não
API de recursos do IoT DPS Obter Não
API de recursos do IoT DPS Obter o resultado da operação Não
API de recursos do IoT DPS Lista por grupo de recursos Não
API de recursos do IoT DPS Lista por Subscrição Não
API de recursos do IoT DPS Lista por chaves Não
API de recursos do IoT DPS Listar chaves para o nome da chave Não
API de recursos do IoT DPS Listar SKUs válidos Não
API de recursos do IoT DPS Atualização Não

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

Nota

O provisionamento de dispositivos de borda aninhados (hierarquias pai/filho) não é suportado atualmente pelo DPS.

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

Próximos passos

Agora já tem uma descrição geral do aprovisionamento de dispositivos IoT no Azure. O passo seguinte é experimentar um cenário de IoT ponto a ponto.

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

Criar e provisionar um dispositivo simulado