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 artigo, você usa o portal do Azure para fazer as seguintes tarefas:

  1. Criar um namespace da Grade de Eventos e habilitar o agente MQTT
  2. Criar sub-recursos, como clientes, grupos de clientes e espaços de tópicos
  3. Permitir aos clientes acesso para publicação ou assinatura em espaços de tópicos
  4. 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%).

  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.

    Screenshot of searching for Event Grid namespace on Azure portal.

  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.

      Screenshot showing Event Grid namespace create flow basics tab.

  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.

    Screenshot showing Event Grid namespace configuration page to enable 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.

    Screenshot of the Clients page with Add button selected.

  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.

    Screenshot of client 1 configuration.

  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.

    Screenshot of client 2 configuration.

    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.

    Screenshot of Topic spaces page with create button selected.

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

  4. Selecione + Adicionar modelo de tópico.

    Screenshot of Create topic space with the name.

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

    Screenshot of topic space configuration.

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.

    Screenshot that shows the Permission bindings page with the Create button selected.

  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.

      Screenshot showing creation of first permission binding.

  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.

    Screenshot showing creation of second permission binding.

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

    Screenshot showing MQTTX app left rail to add new client.

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

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

    Screenshot showing Event Grid namespace overview page, which has MQTT hostname.

  4. Atualizar a porta para 8883.

  5. Alterne o SSL/TLS para ATIVADO.

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

  7. Selecione Certificado como Autoassinado.

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

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

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

    Screenshot showing client 1 configuration part 1 on MQTTX app.

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

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

    Screenshot showing client 2 configuration part 1 on MQTTX app.

    Screenshot showing client 2 configuration part 2 on MQTTX app.

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.

    Screenshot showing subscription topic configuration on MQTTX app.

  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.

    Screenshot showing message publishing on the topic in MQTTX app.

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

    Screenshot showing message published on the topic in MQTTX app.

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

    Screenshot showing the message received by the subscribing client on MQTTX app.

Próximas etapas