Guia de início rápido: publicar e assinar mensagens MQTT no namespace da grade de eventos com o portal do Azure
Neste artigo, você usa o portal do Azure para executar as seguintes tarefas:
- Criar um namespace de Grade de Eventos e habilitar o broker MQTT
- Criar subrecursos, como clientes, grupos de clientes e espaços de tópicos
- Conceder aos clientes acesso para publicar e assinar espaços de tópicos
- Publicar e receber mensagens entre clientes
Pré-requisitos
- Criar uma conta gratuita do Azure Se você não tiver uma assinatura do Azure.
- Leia a visão geral da Grade de Eventos antes de iniciar este tutorial, se você for novo na Grade de Eventos do Azure.
- Verifique se a porta 8883 está aberta no firewall. O exemplo neste tutorial usa o protocolo MQTT, que se comunica pela porta 8883. Essa porta pode estar bloqueada em alguns ambientes de rede corporativa e educacional.
- Você precisa de um certificado de cliente X.509 para gerar a impressão digital e autenticar a conexão do cliente.
Gerar certificado de cliente de exemplo e impressão digital
Se você ainda não tiver um certificado, poderá criar um certificado de exemplo usando a etapa CLI. Considere instalar manualmente para Windows.
Após uma instalação bem-sucedida do Step, você deve abrir um prompt de comando na pasta de perfil de usuário (Win+R tipo %USERPROFILE%).
Para criar certificados raiz e intermediários, execute o seguinte comando. Lembre-se da senha, que precisa ser usada na próxima etapa.
step ca init --deployment-type standalone --name MqttAppSamplesCA --dns localhost --address 127.0.0.1:443 --provisioner MqttAppSamplesCAProvisioner
Use os arquivos de autoridade de certificação gerados para criar um certificado para o primeiro cliente. Certifique-se de usar o caminho correto para os arquivos cert e secrets no comando.
step certificate create client1-authn-ID client1-authn-ID.pem client1-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
Para visualizar a impressão digital, execute o comando Step.
step certificate fingerprint client1-authn-ID.pem
Agora, crie um certificado para o segundo cliente.
step certificate create client2-authn-ID client2-authn-ID.pem client2-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
Para visualizar a impressão digital a ser usada com o segundo cliente, execute o comando Step.
step certificate fingerprint client2-authn-ID.pem
Criar um espaço de nomes
Inicie sessão no portal do Azure.
Na barra de pesquisa, digite Namespaces de Grade de Eventos e selecione Namespaces de Grade de Eventos na lista suspensa.
Na página Namespaces da Grade de Eventos, selecione + Criar na barra de ferramentas.
Na página Criar namespace, siga estas etapas:
Selecione a subscrição do Azure.
Selecione um grupo de recursos existente ou selecione Criar novo e insira um nome para o grupo de recursos.
Forneça um nome exclusivo para o namespace. O nome do namespace deve ser exclusivo por região porque representa uma entrada DNS. Não utilize o nome apresentado na imagem. Em vez disso, crie seu próprio nome - ele deve ter entre 3-50 caracteres e conter apenas os valores a-z, A-Z, 0-9 e
-
.Selecione um local para o namespace Grade de Eventos. Atualmente, o namespace Grade de Eventos está disponível apenas em regiões selecionadas.
Selecione Rever + criar na parte inferior da página.
Na guia Revisão + criação da página Criar namespace, selecione Criar.
Nota
Para manter o QuickStart simples, você usará apenas a página Noções básicas para criar um namespace. Para obter etapas detalhadas sobre como configurar a rede, a segurança e outras configurações em outras páginas do assistente, consulte Criar um namespace.
Depois que a implantação for bem-sucedida, selecione Ir para o recurso para navegar até a página Visão geral do namespace da grade de eventos do seu namespace.
Na página Visão geral, você vê que o broker MQTT está no estado Desabilitado . Para habilitar o broker MQTT, selecione o link Desativado , ele irá redirecioná-lo para a página Configuração.
Na página Configuração , selecione a opção Ativar broker MQTT e, em seguida, selecione Aplicar para aplicar as configurações.
Criar clientes
No menu à esquerda, selecione Clientes na seção do broker MQTT.
Na página Clientes, selecione + Cliente na barra de ferramentas.
Na página Criar cliente, insira um nome para o cliente. Os nomes de cliente devem ser exclusivos em um namespace.
O nome de autenticação do cliente é padronizado para o nome do cliente. Para este tutorial, altere-o para
client1-authn-ID
. Você precisa incluir esse nome comoUsername
no pacote CONNECT.Neste tutorial, você usa a autenticação baseada em impressão digital. Inclua a impressão digital do primeiro certificado de cliente na impressão digital primária.
Selecione Criar na barra de ferramentas para criar outro cliente.
Repita as etapas acima para criar um segundo cliente chamado
client2
. Altere o nome da autenticação paraclient2-authn-ID
e inclua a impressão digital do segundo certificado de cliente na impressão digital primária.Nota
- Para manter o QuickStart simples, você usará a correspondência de impressão digital para autenticação. Para obter etapas detalhadas sobre como usar a cadeia de certificados de CA X.509 para autenticação de cliente, consulte Autenticação de cliente usando cadeia de certificados.
- Além disso, usamos o grupo de clientes padrão
$all
, que inclui todos os clientes no namespace para este exercício. Para saber mais sobre como criar grupos de clientes personalizados usando atributos de cliente, consulte Grupos de clientes.
Criar espaços de tópico
No menu à esquerda, selecione Espaços de tópico na seção do broker MQTT.
Na página Espaços de tópico, selecione + Espaço de tópico na barra de ferramentas.
Forneça um nome para o espaço de tópico, na página Criar espaço de tópico.
Selecione + Adicionar modelo de tópico.
Insira
contosotopics/topic1
o modelo de tópico e selecione Criar para criar o espaço de tópico.
Configurando o controle de acesso usando associações de permissão
No menu à esquerda, selecione Ligações de permissão na seção Broker MQTT.
Na página Ligações de permissão, selecione + Vinculação de permissão na barra de ferramentas.
Configure a associação de permissão da seguinte maneira:
Forneça um nome para a associação de permissão. Por exemplo,
contosopublisherbinding
.Para Nome do grupo de clientes, selecione $all.
Em Nome do espaço de tópico, selecione o espaço de tópico criado na etapa anterior.
Conceda a permissão do Editor ao grupo de clientes no espaço do tópico.
Selecione Criar para criar a associação de permissão.
Crie mais uma vinculação de permissão (
contososubscriberbinding
) selecionando + Vinculação de permissão na barra de ferramentas.Forneça um nome e conceda $all grupo de clientes Subscriber acesso ao ContosoTopicSpace, conforme mostrado.
Selecione Criar para criar a associação de permissão.
Conectando os clientes ao EG Namespace usando o aplicativo MQTTX
Para publicar / assinar mensagens MQTT, você pode usar qualquer uma de suas ferramentas favoritas. Para fins de demonstração, publicar / assinar é mostrado usando o aplicativo MQTTX, que pode ser baixado de https://mqttx.app/.
Configurar client1 com
Nome como
client1
(este valor pode ser qualquer coisa)ID do cliente como
client1-session1
(ID do cliente no pacote CONNECT é usada para identificar o ID da sessão para a conexão do cliente)Nome de usuário como
client1-authn-ID
. Esse valor deve corresponder ao valor de Nome de Autenticação do Cliente que você especificou quando criou o cliente no portal do Azure.Importante
O nome de usuário deve corresponder ao nome de autenticação do cliente nos metadados do cliente.
Atualize o nome do host para MQTT hostname na página Visão geral do namespace.
Atualize a porta para 8883.
Alterne SSL/TLS para ON.
Alterne SSL Secure para ON, para garantir a validação do certificado de serviço.
Selecione Certificado como Autoassinado.
Forneça o caminho para o arquivo de certificado do cliente.
Forneça o caminho para o arquivo de chave do cliente.
O restante das configurações pode ser deixado com valores padrão predefinidos.
Selecione Conectar para conectar o cliente ao broker MQTT.
Repita as etapas acima para conectar o segundo cliente cliente2, com as informações de autenticação correspondentes, conforme mostrado.
Publicar/assinar usando o aplicativo MQTTX
Depois de conectar os clientes, para client2, selecione o botão + Nova assinatura .
Adicionar
contosotopics/topic1
como tópico e selecione Confirmar. Você pode deixar os outros campos com valores padrão existentes.Selecione client1 no trilho esquerdo.
Para client1, na parte superior da caixa de composição da mensagem, digite
contosotopics/topic1
como o tópico a ser publicado.Escreva uma mensagem. Você pode usar qualquer formato ou um JSON, conforme mostrado.
Selecione o botão Enviar .
A mensagem deve ser vista como publicada no cliente 1.
Mude para client2. Confirme se client2 recebeu a mensagem.