Condividi tramite


Guida introduttiva: Pubblicare e sottoscrivere messaggi MQTT nello spazio dei nomi di Griglia di eventi con portale di Azure

In questo articolo viene usato il portale di Azure per eseguire le attività seguenti:

  1. Creare uno spazio dei nomi di Griglia di eventi e abilitare il broker MQTT
  2. Creare risorse secondarie, ad esempio client, gruppi client e spazi di argomenti
  3. Concedere ai client l'accesso a spazi di pubblicazione e sottoscrizione agli spazi degli argomenti
  4. Pubblicare e ricevere messaggi tra client

Prerequisiti

  • Creare un account Azure gratuito Se non si ha una sottoscrizione di Azure.
  • Leggere la panoramica di Griglia di eventi prima di iniziare questa esercitazione, se non si ha familiarità con Griglia di eventi di Azure.
  • Assicurarsi che la porta 8883 sia aperta nel firewall. L'esempio in questa esercitazione usa il protocollo MQTT, che comunica sulla porta 8883. Questa porta potrebbe essere bloccata in alcuni ambienti di rete aziendali e didattici.
  • È necessario un certificato client X.509 per generare l'identificazione personale e autenticare la connessione client.

Generare un certificato client di esempio e un'identificazione personale

Se non si ha già un certificato, è possibile creare un certificato di esempio usando l'interfaccia della riga di comando del passaggio. Prendere in considerazione l'installazione manuale per Windows.

Dopo aver completato l'installazione di Step, è necessario aprire un prompt dei comandi nella cartella del profilo utente (tipo Win+R %U edizione Standard RPROFILE%).

  1. Per creare certificati radice e intermedi, eseguire il comando seguente. Ricordare la password, che deve essere usata nel passaggio successivo.

    step ca init --deployment-type standalone --name MqttAppSamplesCA --dns localhost --address 127.0.0.1:443 --provisioner MqttAppSamplesCAProvisioner
    
  2. Usare i file della CA generati per creare un certificato per il primo client. Assicurarsi di usare il percorso corretto per i file di certificato e segreti nel 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. Per visualizzare l'identificazione personale, eseguire il comando Step.

    step certificate fingerprint client1-authn-ID.pem
    
  4. Creare ora un certificato per il secondo client.

    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. Per visualizzare l'identificazione personale da usare con il secondo client, eseguire il comando Step.

    step certificate fingerprint client2-authn-ID.pem
    

Creare uno spazio dei nomi

  1. Accedi al portale di Azure.

  2. Nella barra di ricerca digitare Spazi dei nomi di Griglia di eventi e quindi selezionare Spazi dei nomi di Griglia di eventi nell'elenco a discesa.

    Screenshot of searching for Event Grid namespace on Azure portal.

  3. Nella pagina Spazi dei nomi di Griglia di eventi selezionare + Crea sulla barra degli strumenti.

  4. Nella pagina Crea spazio dei nomi seguire questa procedura:

    1. Selezionare la sottoscrizione di Azure.

    2. Selezionare un gruppo di risorse esistente o selezionare Crea nuovo e immettere un nome per il gruppo di risorse.

    3. Specificare un nome univoco per lo spazio dei nomi. Il nome dello spazio dei nomi deve essere univoco per area perché rappresenta una voce DNS. Non usare il nome visualizzato nell'immagine Creare invece il proprio nome, che deve essere compreso tra 3 e 50 caratteri e contenere solo valori a-z, A-Z, 0-9 e -.

    4. Selezionare un percorso per lo spazio dei nomi di Griglia di eventi. Attualmente, lo spazio dei nomi di Griglia di eventi è disponibile solo nelle aree selezionate.

      Screenshot showing Event Grid namespace create flow basics tab.

  5. Selezionare Rivedi e crea nella parte inferiore della pagina.

  6. Nella scheda Rivedi e crea della pagina Crea spazio dei nomi selezionare Crea.

    Nota

    Per semplificare l'avvio rapido, si userà solo la pagina Informazioni di base per creare uno spazio dei nomi. Per i passaggi dettagliati sulla configurazione di rete, sicurezza e altre impostazioni in altre pagine della procedura guidata, vedere Creare uno spazio dei nomi.

  7. Al termine della distribuzione, selezionare Vai alla risorsa per passare alla pagina Panoramica dello spazio dei nomi di Griglia di eventi per lo spazio dei nomi.

  8. Nella pagina Panoramica si noterà che lo stato del broker MQTT è Disabilitato . Per abilitare il broker MQTT, selezionare il collegamento Disabilitato , verrà reindirizzato alla pagina Configurazione.

  9. Nella pagina Configurazione selezionare l'opzione Abilita broker MQTT e quindi selezionare Applica per applicare le impostazioni.

    Screenshot showing Event Grid namespace configuration page to enable MQTT.

Creare client

  1. Nel menu a sinistra selezionare Client nella sezione broker MQTT.

  2. Nella pagina Client selezionare + Client sulla barra degli strumenti.

    Screenshot of the Clients page with Add button selected.

  3. Nella pagina Crea client immettere un nome per il client. I nomi dei client devono essere univoci in uno spazio dei nomi.

  4. Per impostazione predefinita, il nome dell'autenticazione client è impostato sul nome del client. Per questa esercitazione, modificarlo in client1-authn-ID. È necessario includere questo nome come Username nel pacchetto CONNECT.

  5. In questa esercitazione si usa l'autenticazione basata sull'identificazione personale. Includere l'identificazione personale del primo certificato client nell'identificazione personale primaria.

    Screenshot of client 1 configuration.

  6. Selezionare Crea sulla barra degli strumenti per creare un altro client.

  7. Ripetere i passaggi precedenti per creare un secondo client denominato client2. Modificare il nome dell'autenticazione in client2-authn-ID e includere l'identificazione personale del secondo certificato client nell'identificazione personale primaria.

    Screenshot of client 2 configuration.

    Nota

    • Per semplificare l'avvio rapido, si userà la corrispondenza identificazione personale per l'autenticazione. Per i passaggi dettagliati sull'uso della catena di certificati della CA X.509 per l'autenticazione client, vedere Autenticazione client tramite catena di certificati.
    • Viene inoltre usato il gruppo client predefinito $all , che include tutti i client nello spazio dei nomi per questo esercizio. Per altre informazioni sulla creazione di gruppi client personalizzati tramite attributi client, vedere Gruppi client.

Creare spazi argomento

  1. Nel menu a sinistra selezionare Spazi argomento nella sezione broker MQTT.

  2. Nella pagina Spazi argomento selezionare + Spazio argomento sulla barra degli strumenti.

    Screenshot of Topic spaces page with create button selected.

  3. Specificare un nome per lo spazio dell'argomento nella pagina Crea spazio argomenti.

  4. Selezionare + Aggiungi modello di argomento.

    Screenshot of Create topic space with the name.

  5. Immettere contosotopics/topic1 per il modello di argomento e quindi selezionare Crea per creare lo spazio dell'argomento.

    Screenshot of topic space configuration.

Configurazione del controllo di accesso tramite associazioni di autorizzazioni

  1. Nel menu a sinistra selezionare Associazioni di autorizzazioni nella sezione broker MQTT.

  2. Nella pagina Associazioni autorizzazioni selezionare + Binding di autorizzazioni sulla barra degli strumenti.

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

  3. Configurare l'associazione di autorizzazioni come indicato di seguito:

    1. Specificare un nome per l'associazione di autorizzazioni. Ad esempio: contosopublisherbinding.

    2. Per nome del gruppo client selezionare $all.

    3. Per Nome spazio argomento selezionare lo spazio dell'argomento creato nel passaggio precedente.

    4. Concedere all'autore l'autorizzazione al gruppo client nello spazio dell'argomento.

      Screenshot showing creation of first permission binding.

  4. Selezionare Crea per creare l'associazione di autorizzazioni.

  5. Creare un'altra associazione di autorizzazioni (contososubscriberbinding) selezionando + Associazione di autorizzazioni sulla barra degli strumenti.

  6. Specificare un nome e assegnare $all'accesso al Sottoscrittore del gruppo client a ContosoTopicSpace, come illustrato.

    Screenshot showing creation of second permission binding.

  7. Selezionare Crea per creare l'associazione di autorizzazioni.

Connessione i client allo spazio dei nomi EG usando l'app MQTTX

  1. Per i messaggi MQTT di pubblicazione/sottoscrizione, è possibile usare uno degli strumenti preferiti. A scopo dimostrativo, la pubblicazione/sottoscrizione viene visualizzata usando l'app MQTTX, che può essere scaricata da https://mqttx.app/.

    Screenshot showing MQTTX app left rail to add new client.

  2. Configurare client1 con

    • Nome come client1 (questo valore può essere qualsiasi elemento)

    • ID client come client1-session1 (ID client nel pacchetto CONNECT viene usato per identificare l'ID sessione per la connessione client)

    • Nome utente come client1-authn-ID. Questo valore deve corrispondere al valore di Nome autenticazione client specificato al momento della creazione del client nel portale di Azure.

      Importante

      Il nome utente deve corrispondere al nome di autenticazione client nei metadati client.

  3. Aggiornare il nome host al nome host MQTT dalla pagina Panoramica dello spazio dei nomi.

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

  4. Aggiornare la porta a 8883.

  5. Attivare o disattivare SSL/TLS .

  6. Attivare o disattivare SSL Secure su ON per garantire la convalida del certificato del servizio.

  7. Selezionare Certificato autofirmato.

  8. Specificare il percorso del file di certificato client.

  9. Specificare il percorso del file di chiave client.

  10. Le altre impostazioni possono essere lasciate con valori predefiniti.

    Screenshot showing client 1 configuration part 1 on MQTTX app.

  11. Selezionare Connessione per connettere il client al broker MQTT.

  12. Ripetere i passaggi precedenti per connettere il secondo client client2, con le informazioni di autenticazione corrispondenti, come illustrato.

    Screenshot showing client 2 configuration part 1 on MQTTX app.

    Screenshot showing client 2 configuration part 2 on MQTTX app.

Pubblicare/sottoscrivere con l'app MQTTX

  1. Dopo aver connesso i client, per client2, selezionare il pulsante + Nuova sottoscrizione .

  2. Aggiungi contosotopics/topic1 come argomento e seleziona Conferma. È possibile lasciare gli altri campi con i valori predefiniti esistenti.

    Screenshot showing subscription topic configuration on MQTTX app.

  3. Selezionare client1 nella barra sinistra.

  4. Per client1, nella parte superiore della casella di composizione del messaggio, digitare contosotopics/topic1 come argomento in cui eseguire la pubblicazione.

  5. Comporre un messaggio. È possibile usare qualsiasi formato o JSON, come illustrato.

  6. Selezionare il pulsante Invia.

    Screenshot showing message publishing on the topic in MQTTX app.

  7. Il messaggio deve essere visualizzato come pubblicato nel client 1.

    Screenshot showing message published on the topic in MQTTX app.

  8. Passare a client2. Verificare che client2 abbia ricevuto il messaggio.

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

Passaggi successivi