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 fazer as seguintes tarefas:
- Criar um namespace da Grade de Eventos e habilitar o agente MQTT
- Criar sub-recursos, como clientes, grupos de clientes e espaços de tópicos
- Permitir aos clientes acesso para publicação ou assinatura em espaços de tópicos
- Publicar e receber mensagens entre clientes
Pré-requisitos
- Se você não tem uma assinatura do Azure, crie uma conta gratuita do Azure.
- Se você não estiver familiarizado com Grade de Eventos do Azure, leia a visão geral da Grade de Eventos antes de iniciar esse tutorial.
- Verifique se a porta 8883 está aberta no firewall. A amostra deste tutorial usa o protocolo MQTT, que se comunica pela porta 8883. Essa porta poderá ser bloqueada em alguns ambientes de rede corporativos e educacionais.
- Você precisa ter um certificado de cliente X.509 para gerar a impressão digital e autenticar a conexão do cliente.
Gerar um exemplo de certificado do cliente e impressão digital
Caso ainda não tenha um certificado, crie um exemplo de certificado usando a CLI do Step. Considere a possibilidade de instalação manual para o Windows.
Após uma instalação bem-sucedida da Etapa, você deve abrir um prompt de comando na pasta de perfil do usuário (pressione Win+R e digite %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 AC gerados para criar um certificado para o cliente. Certifique-se de usar o caminho correto para os arquivos de certificados e segredos 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 ver a impressão digital, execute o comando do 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 exibir a impressão digital a ser usada com o segundo cliente, execute o comando Etapa.
step certificate fingerprint client2-authn-ID.pem
Criar um namespace
Entre no Portal do Azure.
Na barra de pesquisa, digite Namespaces da Grade de Eventos e selecione Namespaces da 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 sua assinatura do Azure.
Selecione um grupo de recursos existente ou a opção Criar e insira um nome para o grupo de recursos.
Forneça um nome exclusivo para o namespace. O nome do namespace precisa ser exclusivo por região porque representa uma entrada DNS. Não use o nome mostrado na imagem. Em vez disso, crie seu próprio nome: ele deve ter entre 3 e 50 caracteres e conter apenas valores a-z, A-Z, 0-9 e
-
.Selecione um local para o namespace da Grade de Eventos. Atualmente, o namespace da Grade de Eventos só está disponível em regiões selecionadas.
Selecione Revisar + criar na parte inferior da página.
Na guia Revisar + criar da página Criar namespace, selecione Criar.
Observação
Para simplificar o Guia de Início Rápido, você usará apenas a página Informações Básicas para criar um namespace. Para ver etapas detalhadas sobre como definir as configurações de rede, de segurança e outras em outras páginas do assistente, consulte Criar um namespace.
Depois que a implantação for realizada com sucesso, selecione Ir para o recurso para navegar até a página Visão geral do Namespace da Grade de Eventos do namespace.
Na página de visão geral, você verá que o Agente MQTT está no estado Desabilitado. Para habilitar o Agente MQTT, selecione o link Desabilitado; ele redirecionará você para a página Configuração.
Na página Configuração, selecione a opção Habilitar Agente MQTT e selecione Aplicar para aplicar as configurações.
Criar clientes
No menu à esquerda, selecione Clientes na seção do Agente MQTT.
Na página Clientes, selecione + Cliente na barra de ferramentas.
Na página Criar cliente, insira um Nome para o cliente. Os nomes dos clientes precisam ser exclusivos em um namespace.
O nome de autenticação do cliente usa o nome do cliente como padrão. Para esse tutorial, altere-o para
client1-authn-ID
. Você precisa incluir esse nome comoUsername
no pacote CONNECT.Usaremos a autenticação baseada em impressão digital para esse tutorial. 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.
Agora, repita as etapas acima para criar um segundo cliente nomeado
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.Observação
- Para simplificar o Guia de Início Rápido, você usará a correspondência de impressão digital para autenticação. Para ver etapas detalhadas sobre como usar a cadeia de Certificados de Autoridade de Certificação X.509 para a autenticação do cliente, confira Autenticação do cliente usando a cadeia de certificados.
- Além disso, usamos o grupo de clientes
$all
padrão, que inclui todos os clientes no namespace desse exercício. Para saber mais sobre como criar grupos de clientes personalizados usando atributos de cliente, confira Grupos de clientes.
Criar espaços de tópicos
No menu à esquerda, selecione Espaços de tópico na seção do Agente MQTT.
Na página Espaços de tópicos, selecione + Espaço de tópico na barra de ferramentas.
Forneça um nome para o espaço do tópico na página Criar espaço de tópico.
Selecione + Adicionar modelo de tópico.
Insira
contosotopics/topic1
para o modelo de tópico e selecione Criar para criar o espaço de tópico.
Como configurar o controle de acesso usando as associações de permissão
No menu à esquerda, selecione Associações de permissão na seção do Agente MQTT.
Na página Associações de permissão, selecione + Associaçã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.
Para o Nome do espaço de tópico, selecione o espaço de tópico que você criou na etapa anterior.
Conceda a permissão de Editor ao grupo de clientes no espaço de tópico.
Selecione Criar para criar a associação de permissão.
Crie mais uma associação de permissão (
contososubscriberbinding
) selecionando + Associação de permissão na barra de ferramentas.Forneça um nome e conceda ao assinante do grupo de clientes $all acesso ao ContosoTopicSpace conforme mostrado.
Selecione Criar para criar a associação de permissão.
Como conectar os clientes ao Namespace da EG usando o aplicativo MQTTX
Para publicar/assinar mensagens MQTT, você pode usar uma das suas ferramentas favoritas. Para fins de demonstração, a publicação/assinatura é mostrada com o aplicativo MQTTX, que pode ser baixado em https://mqttx.app/.
Configure o client1 com
O Nome como
client1
(esse valor pode ser qualquer coisa)A ID do cliente como
client1-session1
(a ID do cliente no pacote CONNECT é usada para identificar a ID da sessão para a conexão do cliente)O Nome de usuário como
client1-authn-ID
. Esse valor deve corresponder ao valor do Nome de Autenticação do Cliente especificado quando você 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 do MQTT na página Visão geral do namespace.
Atualizar a porta para 8883.
Alterne o SSL/TLS para ATIVADO.
Alterne o SSL Seguro para ATIVADO, 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 mantida com os valores padrão predefinidos.
Selecione Conectar para conectar o cliente ao agente MQTT.
Repita as etapas acima para conectar o segundo cliente client2, com informações de autenticação correspondentes, conforme mostrado.
Publicação/assinatura com o aplicativo MQTTX
Depois de conectar os clientes, para o client2, selecione o botão +Nova Assinatura.
Adicione
contosotopics/topic1
como tópico e selecione Confirmar. Mantenha os outros campos com os valores padrão existentes.Selecione client1 no trilho esquerdo.
Para client1, na parte superior da caixa de redação da mensagem, digite
contosotopics/topic1
como o tópico no qual publicar.Redija uma mensagem. Você pode usar qualquer formato ou um JSON, conforme mostrado.
Selecione o botão Enviar.
A mensagem será vista como Publicada no cliente 1.
Alterne para client2. Confirme se o cliente2 recebeu a mensagem.