Compartilhar via


Guia de Início Rápido: Publicar e assinar mensagens MQTT no Namespace da Grade de Eventos com o portal do Azure

Neste início rápido, você usará o portal do Azure para criar um namespace da Grade de Eventos com o agente MQTT habilitado, criar sub-recursos, como clientes, grupos de clientes e espaços de tópicos, conceder aos clientes acesso para publicar e assinar espaços de tópicos e, em seguida, 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 pode ser bloqueada em alguns ambientes de rede corporativa e educacional.
  • 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%).

  1. 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
    
  2. 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
    
  3. Para ver a impressão digital, execute o comando do Step.

    step certificate fingerprint client1-authn-ID.pem
    
  4. 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
    
  5. 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

  1. Entre no Portal do Azure.

  2. Na barra de pesquisa, digite Namespaces da Grade de Eventos e selecione Namespaces da Grade de Eventos na lista suspensa.

    Captura de tela da pesquisa de namespaces da Grade de Eventos no portal do Azure.

  3. Na página Namespaces da Grade de Eventos, selecione + Criar na barra de ferramentas.

  4. Na página Criar namespace, siga estas etapas:

    1. Selecione sua assinatura do Azure.

    2. Selecione um grupo de recursos existente ou a opção Criar e insira um nome para o grupo de recursos.

    3. 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 -.

    4. 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.

      Captura de tela que mostra a guia Informações básicas do fluxo de criação de namespace da Grade de Eventos.

  5. Selecione Revisar + criar na parte inferior da página.

  6. 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.

  7. 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.

  8. 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.

  9. Na página Configuração, selecione a opção Habilitar Agente MQTT e selecione Aplicar para aplicar as configurações.

    Captura de tela que mostra a página Configuração de namespace da Grade de Eventos usada para habilitar o MQTT.

Criar clientes

  1. No menu à esquerda, selecione Clientes na seção do Agente MQTT.

  2. Na página Clientes, selecione + Cliente na barra de ferramentas.

    Captura de tela da página Clientes com o botão Adicionar selecionado.

  3. Na página Criar cliente, insira um Nome para o cliente. Os nomes dos clientes precisam ser exclusivos em um namespace.

  4. 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 como Username no pacote CONNECT.

  5. 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.

    Captura de tela da configuração do cliente 1.

  6. Selecione Criar na barra de ferramentas para criar outro cliente.

  7. Agora, repita as etapas acima para criar um segundo cliente nomeado client2. Altere o nome da autenticação para client2-authn-ID e inclua a impressão digital do segundo certificado de cliente na Impressão digital primária.

    Captura de tela da configuração do cliente 2.

    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

  1. No menu à esquerda, selecione Espaços de tópico na seção do Agente MQTT.

  2. Na página Espaços de tópicos, selecione + Espaço de tópico na barra de ferramentas.

    Captura de tela da página Espaços de Tópicos com o botão criar selecionado.

  3. Forneça um nome para o espaço do tópico na página Criar espaço de tópico.

    Captura de tela de Criar espaço de tópico com o nome.

  4. Insira contosotopics/topic1 para o modelo de tópico e selecione Criar para criar o espaço de tópico.

    Captura de tela da configuração do espaço de tópico.

Como configurar o controle de acesso usando as associações de permissão

  1. No menu à esquerda, selecione Associações de permissão na seção do Agente MQTT.

  2. Na página Associações de permissão, selecione + Associação de permissão na barra de ferramentas.

    Captura de tela mostrando a página de associações de permissões com o botão Criar selecionado.

  3. Configure a associação de permissão da seguinte maneira:

    1. Forneça um nome para a associação de permissão. Por exemplo, contosopublisherbinding.

    2. Para nome do grupo de clientes, selecione $all.

    3. Para o Nome do espaço de tópico, selecione o espaço de tópico que você criou na etapa anterior.

    4. Conceda a permissão de Editor ao grupo de clientes no espaço de tópico.

      Captura de tela que mostra a criação da primeira associação de permissão.

  4. Selecione Criar para criar a associação de permissão.

  5. Crie mais uma associação de permissão (contososubscriberbinding) selecionando + Associação de permissão na barra de ferramentas.

  6. Forneça um nome e conceda ao assinante do grupo de clientes $all acesso ao ContosoTopicSpace conforme mostrado.

    Captura de tela que mostra a criação da segunda associação de permissão.

  7. Selecione Criar para criar a associação de permissão.

Como conectar os clientes ao Namespace da EG usando o aplicativo MQTTX

  1. 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/.

  2. Selecione + na barra de navegação à esquerda.

  3. 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.

  4. Atualize o nome do host do MQTT na página Visão geral do namespace.

    Captura de tela que mostra a página Visão geral do namespace da Grade de Eventos, que traz o nome do host do MQTT.

  5. Atualizar a porta para 8883.

  6. Alterne o SSL/TLS para ATIVADO.

  7. Alterne o SSL Seguro para ATIVADO, para garantir a validação do certificado de serviço.

  8. Selecione Certificado como AC ou certificados autoassinados.

  9. Forneça o caminho para o arquivo de certificado do cliente.

  10. Forneça o caminho para o arquivo de chave do cliente.

  11. O restante das configurações pode ser mantida com os valores padrão predefinidos.

    Captura de tela que mostra a primeira parte da configuração do cliente 1 no aplicativo MQTTX.

  12. Selecione Conectar para conectar o cliente ao agente MQTT.

  13. Repita as etapas acima para conectar o segundo cliente client2, com informações de autenticação correspondentes, conforme mostrado.

    Captura de tela que mostra a primeira parte da configuração do cliente 2 no aplicativo MQTTX.

    Captura de tela que mostra a segunda parte da configuração do cliente 2 no aplicativo MQTTX.

Publicação/assinatura com o aplicativo MQTTX

  1. Depois de conectar os clientes, para o client2, selecione o botão +Nova Assinatura.

  2. Adicione contosotopics/topic1 como tópico e selecione Confirmar. Mantenha os outros campos com os valores padrão existentes.

    Captura de tela que mostra a configuração do tópico de assinatura no aplicativo MQTTX.

  3. Selecione client1 no trilho esquerdo.

  4. Para client1, na parte superior da caixa de redação da mensagem, digite contosotopics/topic1 como o tópico no qual publicar.

  5. Redija uma mensagem. Você pode usar qualquer formato ou um JSON, conforme mostrado.

  6. Selecione o botão Enviar.

    Captura de tela que mostra a publicação da mensagem no tópico no aplicativo MQTTX.

  7. A mensagem será vista como Publicada no cliente 1.

    Captura de tela que mostra a mensagem publicada no tópico no aplicativo MQTTX.

  8. Alterne para client2. Confirme se o cliente2 recebeu a mensagem.

    Captura de tela que mostra a mensagem recebida pelo cliente assinante no aplicativo MQTTX.