Partilhar 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ê usa o portal do Azure para criar um namespace de Grade de Eventos com o agente MQTT habilitado, 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 e, em seguida, 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%).

  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 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
    
  3. Para visualizar a impressão digital, execute o comando 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 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

  1. Inicie sessão no portal do Azure.

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

    Captura de ecrã a mostrar a pesquisa de espaço de nomes da Grelha 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 a subscrição do Azure.

    2. Selecione um grupo de recursos existente ou selecione Criar novo e insira um nome para o grupo de recursos.

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

    4. Selecione um local para o namespace Grade de Eventos. Atualmente, o namespace Grade de Eventos está disponível apenas em regiões selecionadas.

      Captura de tela mostrando a guia Noções básicas de criação de namespace da Grade de Eventos.

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

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

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

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

  9. Na página Configuração , selecione a opção Ativar broker MQTT e, em seguida, selecione Aplicar para aplicar as configurações.

    Captura de tela mostrando a página de configuração do namespace Event Grid para habilitar o MQTT.

Criar clientes

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

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

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

  3. Na página Criar cliente, insira um nome para o cliente. Os nomes de cliente devem ser exclusivos em um namespace.

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

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

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

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

  7. Repita as etapas acima para criar um segundo cliente chamado 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.

    Screenshot da configuração do cliente 2.

    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

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

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

    Captura de ecrã da página Espaços temáticos com o botão Criar selecionado.

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

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

  4. Insira contosotopics/topic1 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 do tópico.

Configurando o controle de acesso usando associações de permissão

  1. No menu à esquerda, selecione Ligações de permissão na seção Broker MQTT.

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

    Captura de tela que mostra a página Ligações de permissão 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. Em Nome do espaço de tópico, selecione o espaço de tópico criado na etapa anterior.

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

      Captura de tela mostrando 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 vinculação de permissão (contososubscriberbinding) selecionando + Vinculação de permissão na barra de ferramentas.

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

    Captura de tela mostrando a criação da segunda vinculação de permissão.

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

Conectando os clientes ao EG Namespace usando o aplicativo MQTTX

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

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

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

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

    Captura de tela mostrando a página de visão geral do namespace Event Grid, que tem o nome do host MQTT.

  5. Atualize a porta para 8883.

  6. Alterne SSL/TLS para ON.

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

  8. Selecione Certificado como CA 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 deixado com valores padrão predefinidos.

    Captura de tela mostrando a parte 1 de configuração do cliente 1 no aplicativo MQTTX.

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

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

    Captura de tela mostrando a parte 1 da configuração do cliente 2 no aplicativo MQTTX.

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

Publicar/assinar usando o aplicativo MQTTX

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

  2. Adicionar contosotopics/topic1 como tópico e selecione Confirmar. Você pode deixar os outros campos com valores padrão existentes.

    Captura de tela mostrando 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 composição da mensagem, digite contosotopics/topic1 como o tópico a ser publicado.

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

  6. Selecione o botão Enviar .

    Captura de tela mostrando a publicação de mensagens sobre o tópico no aplicativo MQTTX.

  7. A mensagem deve ser vista como publicada no cliente 1.

    Captura de tela mostrando a mensagem publicada sobre o tópico no aplicativo MQTTX.

  8. Mude para client2. Confirme se client2 recebeu a mensagem.

    Captura de tela mostrando a mensagem recebida pelo cliente de assinatura no aplicativo MQTTX.