Snabbstart: Publicera och prenumerera på MQTT-meddelanden på Event Grid-namnområdet med Azure-portalen

I den här artikeln använder du Azure-portalen för att utföra följande uppgifter:

  1. Skapa ett Event Grid-namnområde och aktivera MQTT-koordinator
  2. Skapa underresurser som klienter, klientgrupper och ämnesutrymmen
  3. Ge klienter åtkomst till publicering och prenumeration på ämnesutrymmen
  4. Publicera och ta emot meddelanden mellan klienter

Förutsättningar

  • Skapa ett kostnadsfritt Azure-konto Om du inte har en Azure-prenumeration.
  • Läs igenom Event Grid-översikten innan du påbörjar den här självstudien, om du är nybörjare på Azure Event Grid.
  • Kontrollera att port 8883 är öppen i brandväggen. Exemplet i den här självstudien använder MQTT-protokollet, som kommunicerar via port 8883. Den här porten kan blockeras i vissa företags- och utbildningsnätverksmiljöer.
  • Du behöver ett X.509-klientcertifikat för att generera tumavtrycket och autentisera klientanslutningen.

Generera exempelklientcertifikat och tumavtryck

Om du inte redan har ett certifikat kan du skapa ett exempelcertifikat med hjälp av steg CLI. Överväg att installera manuellt för Windows.

Efter en lyckad installation av Step bör du öppna en kommandotolk i användarprofilmappen (Win+R-typ %USERPROFILE%).

  1. Kör följande kommando för att skapa rotcertifikat och mellanliggande certifikat. Kom ihåg lösenordet som måste användas i nästa steg.

    step ca init --deployment-type standalone --name MqttAppSamplesCA --dns localhost --address 127.0.0.1:443 --provisioner MqttAppSamplesCAProvisioner
    
  2. Använd ca-filerna som genereras för att skapa ett certifikat för den första klienten. Se till att använda rätt sökväg för certifikat- och hemlighetsfilerna i kommandot.

    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. Om du vill visa tumavtrycket kör du kommandot Steg.

    step certificate fingerprint client1-authn-ID.pem
    
  4. Skapa nu ett certifikat för den andra klienten.

    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. Om du vill visa tumavtrycket som ska användas med den andra klienten kör du kommandot Steg.

    step certificate fingerprint client2-authn-ID.pem
    

Skapa ett namnområde

  1. Logga in på Azure-portalen.

  2. I sökfältet skriver du Event Grid-namnområden och väljer sedan Event Grid-namnområden i listrutan.

    Screenshot of searching for Event Grid namespace on Azure portal.

  3. På sidan Event Grid-namnområden väljer du + Skapa i verktygsfältet.

  4. Följ dessa steg på sidan Skapa namnområde:

    1. Välj din Azure-prenumerationen.

    2. Välj en befintlig resursgrupp eller välj Skapa ny och ange ett namn för resursgruppen.

    3. Ange ett unikt namn för namnområdet. Namnområdets namn måste vara unikt per region eftersom det representerar en DNS-post. Använd inte det namn som visas på bilden. Skapa i stället ditt eget namn – det måste vara mellan 3 och 50 tecken och innehålla endast värden a-z, A-Z, 0-9 och -.

    4. Välj en plats för Event Grid-namnområdet. För närvarande är Event Grid-namnområdet endast tillgängligt i utvalda regioner.

      Screenshot showing Event Grid namespace create flow basics tab.

  5. Välj Granska + skapa längst ned på sidan.

  6. På fliken Granska + skapasidan Skapa namnområde väljer du Skapa.

    Kommentar

    För att hålla snabbstarten enkel använder du bara sidan Grundläggande för att skapa ett namnområde. Detaljerade anvisningar om hur du konfigurerar nätverk, säkerhet och andra inställningar på andra sidor i guiden finns i Skapa ett namnområde.

  7. När distributionen har slutförts väljer du Gå till resurs för att navigera till sidan Översikt över Event Grid-namnområde för ditt namnområde.

  8. På sidan Översikt ser du att MQTT-koordinatorn är i inaktiverat tillstånd. Om du vill aktivera MQTT-asynkron meddelandekö väljer du länken Inaktiverad . Den omdirigerar dig till sidan Konfiguration.

  9. sidan Konfiguration väljer du alternativet Aktivera MQTT-koordinator och väljer sedan Tillämpa för att tillämpa inställningarna.

    Screenshot showing Event Grid namespace configuration page to enable MQTT.

Skapa klienter

  1. På den vänstra menyn väljer du Klienter i avsnittet MQTT-koordinator .

  2. På sidan Klienter väljer du + Klient i verktygsfältet.

    Screenshot of the Clients page with Add button selected.

  3. På sidan Skapa klient anger du ett namn för klienten. Klientnamn måste vara unika i ett namnområde.

  4. Klientautentiseringsnamnet är som standard klientnamnet. I den här självstudien ändrar du den till client1-authn-ID. Du måste inkludera det här namnet som Username i CONNECT-paketet.

  5. I den här självstudien använder du tumavtrycksbaserad autentisering. Inkludera det första klientcertifikatets tumavtryck i primärt tumavtryck.

    Screenshot of client 1 configuration.

  6. Välj Skapa i verktygsfältet för att skapa en annan klient.

  7. Upprepa stegen ovan för att skapa en andra klient med namnet client2. Ändra autentiseringsnamnet till client2-authn-ID och inkludera det andra klientcertifikatets tumavtryck i primärt tumavtryck.

    Screenshot of client 2 configuration.

    Kommentar

    • För att hålla snabbstarten enkel använder du Tumavtrycksmatchning för autentisering. Detaljerade anvisningar om hur du använder X.509 CA-certifikatkedjan för klientautentisering finns i Klientautentisering med hjälp av certifikatkedjan.
    • Dessutom använder vi standardklientgruppen $all , som innehåller alla klienter i namnområdet för den här övningen. Mer information om hur du skapar anpassade klientgrupper med hjälp av klientattribut finns i klientgrupper.

Skapa ämnesutrymmen

  1. På den vänstra menyn väljer du Ämnesutrymmen i avsnittet MQTT-koordinator.

  2. På sidan Ämnesutrymmen väljer du + Ämnesutrymme i verktygsfältet.

    Screenshot of Topic spaces page with create button selected.

  3. Ange ett namn för ämnesutrymmet på sidan Skapa ämnesutrymme .

  4. Välj + Lägg till ämnesmall.

    Screenshot of Create topic space with the name.

  5. Ange contosotopics/topic1 för ämnesmallen och välj sedan Skapa för att skapa ämnesutrymmet.

    Screenshot of topic space configuration.

Konfigurera åtkomstkontroll med hjälp av behörighetsbindningar

  1. På den vänstra menyn väljer du Behörighetsbindningar i avsnittet MQTT-koordinator .

  2. På sidan Behörighetsbindningar väljer du + Behörighetsbindning i verktygsfältet.

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

  3. Konfigurera behörighetsbindningen på följande sätt:

    1. Ange ett namn för behörighetsbindningen. Exempel: contosopublisherbinding

    2. Som klientgruppsnamn väljer du $all.

    3. Som Namn på ämnesutrymme väljer du det ämnesutrymme som du skapade i föregående steg.

    4. Ge publisher-behörigheten till klientgruppen för ämnesutrymmet.

      Screenshot showing creation of first permission binding.

  4. Välj Skapa för att skapa behörighetsbindningen.

  5. Skapa ytterligare en behörighetsbindning (contososubscriberbinding) genom att välja + Behörighetsbindning i verktygsfältet.

  6. Ange ett namn och ge $all klientgruppen Prenumerant åtkomst till ContosoTopicSpace enligt bilden.

    Screenshot showing creation of second permission binding.

  7. Välj Skapa för att skapa behörighetsbindningen.

Anslut klienterna till EG-namnområdet med hjälp av MQTTX-appen

  1. För att publicera/prenumerera på MQTT-meddelanden kan du använda något av dina favoritverktyg. I demonstrationssyfte visas publicera/prenumerera med MQTTX-appen, som kan laddas ned från https://mqttx.app/.

    Screenshot showing MQTTX app left rail to add new client.

  2. Konfigurera client1 med

    • Namn som (det här värdet kan vara vad som client1 helst)

    • Klient-ID som client1-session1 (klient-ID i CONNECT-paketet används för att identifiera sessions-ID för klientanslutningen)

    • Användarnamn som client1-authn-ID. Det här värdet måste matcha värdet för det klientautentiseringsnamn som du angav när du skapade klienten i Azure-portalen.

      Viktigt!

      Användarnamnet måste matcha klientautentiseringsnamnet i klientmetadata.

  3. Uppdatera värdnamnet till MQTT-värdnamnet från sidan Översikt i namnområdet.

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

  4. Uppdatera porten till 8883.

  5. Växla SSL/TLS till PÅ.

  6. Växla SSL Secure till PÅ för att säkerställa verifiering av tjänstcertifikat.

  7. Välj Certifikat som självsignerat.

  8. Ange sökvägen för klientcertifikatfilen.

  9. Ange sökvägen för klientnyckelfilen.

  10. Resten av inställningarna kan lämnas med fördefinierade standardvärden.

    Screenshot showing client 1 configuration part 1 on MQTTX app.

  11. Välj Anslut för att ansluta klienten till MQTT-asynkron meddelandekö.

  12. Upprepa stegen ovan för att ansluta den andra klientklienten2 med motsvarande autentiseringsinformation som visas.

    Screenshot showing client 2 configuration part 1 on MQTTX app.

    Screenshot showing client 2 configuration part 2 on MQTTX app.

Publicera/prenumerera med MQTTX-appen

  1. När du har anslutit klienterna väljer du knappen + Ny prenumeration för client2.

  2. Lägg till contosotopics/topic1 som ämne och välj Bekräfta. Du kan lämna de andra fälten med befintliga standardvärden.

    Screenshot showing subscription topic configuration on MQTTX app.

  3. Välj client1 i vänster järnvägsspår.

  4. För client1 skriver du som det ämne som ska publiceras ovanpå meddelanderutan contosotopics/topic1 .

  5. Skriv ett meddelande. Du kan använda valfritt format eller JSON som du ser.

  6. Välj knappen Skicka.

    Screenshot showing message publishing on the topic in MQTTX app.

  7. Meddelandet bör ses som publicerat i klient 1.

    Screenshot showing message published on the topic in MQTTX app.

  8. Växla till client2. Bekräfta att client2 tog emot meddelandet.

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

Nästa steg