Skip to main content

Konfiguration von Microsoft Azure

Hinweis

Für die Konfiguration von Azure benötigen Sie einen Account. Weiter Informationen dazu finden Sie auf der Seite von Microsoft.

Alle Module werden als Resources bezeichnet.

Übersicht : Aufbau eines Azure Event Grids

Hinweis

Nachfolgendes Diagramm ist eine unvollständige Sicht auf die reale Azure-Architektur rund um das Event Grid. Die vereinfachte Darstellung fokussiert sich auf die relevanten Elemente für die MQTT-Kommunikation zwischen Clients über das Event Grid.

Die einzelnen Elemente werden in nachfolgenden Abschnitten näher erklärt. Das Event Grid besteht aus einer Menge konkreter Event Grid Namespaces.

_example_img_azure_1.png

Allgemeine Vorbereitung

Damit Sie das Event Grid nutzen können, müssen in Ihrem Azure-Account folgende Ressourcen vorhanden sein:

  • Eine gültiges Abonnement (Subscription)

  • Eine Ressourcengruppe (Resource Group)

Diese beiden zwingend erforderlichen Ressourcen werden primär für die Organisation und Abrechnung benötigt.

Hinweis

Sie finden weiterführende Informationen zu Ressourcen, Komponenten dieser Ressourcen und deren Konfiguration im Microsoft Azure Portal.

Erzeugen eines Event Grid Namespaces

Die nachfolgenden Schritte sind auf die Nutzung eines CODESYS-MQTT Clients zugeschnitten und stellen ein konsistentes, lauffähiges Beispiel dar.

Für weitere Informationen siehe: Quickstart von Microsoft.

  1. Legen Sie eine "Event Grid Namespace"-Ressource an.

    Für weitere Informationen siehe: Hilfeseite von Microsoft Azure.

    Diese Ressource beinhaltet die gesamte zu nutzende Funktionalität und fasst die wichtigsten, allgemeinen Einstellungen zusammen.

  2. Aktivieren Sie den MQTT Broker.

    Eine Microsoft-seitige Identitätsverwaltung per Microsoft Entra ist nicht erforderlich.

    Für weitere Informationen zu aktuellen Einschränkungen und Fähigkeiten des MQTT Brokers in Azure Event Grid siehe: Hilfeseite von Microsoft Azure.

  3. Kopieren Sie sich in der Registerkarten Overview den MQTT Hostnamen. Diese Information wird zu einem späteren Zeitpunkt benötigt.

    Es handelt sich dabei um die URL des MQTT Brokers innerhalb dieses Event Grid Namespaces, mit dem sich Clients verbinden können.

Erzeugen eines MQTT Clients

  1. Definieren Sie MQTT Clients, die sich mit dem Broker verbinden dürfen, für den MQTT Broker des angelegten Event Grid Namespaces.

    Für weitere Informationen zum Anlegen von MQTT Clients siehe: Hilfeseiten von Microsoft Azure.

  2. Erzeugen Sie den CODESYS-MQTT Client.

    Das Erstellungsformular für einen MQTT-Client sieht im Azure Portal wie folgt aus:

    _example_img_azure_2.png

    Nach der Auswahl der Thumbprint-Authentifizierungsmethode erscheint folgender Abschnitt:

    _example_img_azure_3.png
  3. Konfigurieren Sie den Client entsprechend nachfolgender Informationen:

    Parameter

    Beispielwert

    Beschreibung

    Client Name

    CODESYS MQTT Client

    Der Client-Name kann frei gewählt werden und muss eindeutig innerhalb eines Event Grid Namespaces sein.

    Dieser Name ist nicht mit der Client ID eines MQTT-Clients verknüpft.

    Client Description

    My CODESYS PLC

    Eine optionale Beschreibung, beispielsweise zur leichteren Identifikation eines Clients für einen Event Grid Administrator.

    Client Authentification Name

    my-auth-name

    Mit diesem Wert wird der Client beim Verbindungsaufbau authentifiziert.

    Wichtig

    Der hier gesetzte Wert wird später bei der Parametrisierung des CODESYS-MQTT-Clients benötigt.

    Der Wert kann nach der Erstellung der Client-Identität im Event Grid nicht mehr verändert werden.

    Dieser Authentifizierungsname kann, muss aber nicht zwingend mit der Client ID eines MQTT-Clients oder einem Feld eines Client-Zertifikats übereinstimmen, um zu funktionieren.

    Der Client muss beim Verbindungsaufbau einen Client Authentication Name als MQTT-Username senden. Dadurch kann das eingehende Zertifikat der Identität des Clients zugeordnet werden. Diese Identität wird für die Authentifizierung verwendet.

    Client Certificate AuthentificationValidation Scheme

    Thumbprint Match

    Bei einer "Thumbprint Match"-Authentifizierung wird der Fingerabdruck (Thumbprint) aus einem Client-Zertifikat gelesen, das während des TLS-Handshakes zwischen Client und Server ausgetauscht wird. Wenn der Fingerabdruck aus dem Zertifikat mit dem im Event Grid hinterlegten Fingerabdruck für diese Client-Identität übereinstimmt, so gilt die Authentifizierung als erfolgreich.

    Tipp

    Für weitere Informationen zur Authentifizierungmethoden siehe Hilfeseiten von Microsoft Azure.

    Primary Thumbprint

    <HEX-String>

    Der Fingerabdruck (Thumbprint) eines Zertifikats. Dieses Feld sowie der sekundäre Fingerabdruck (Secondary Thumbprint) können bei der Erstellung der Client-Identität zunächst leer gelassen werden. Der Wert des Fingerabdrucks ist ein HEX-String.

    Wichtig

    Für ein Zertifikat kann der Fingerabdruck mit mehreren Algorithmen sichtbar gemacht werden, die gegebenenfalls unterschiedlich lange HEX-Strings erzeugen. Azure unterstützt mehrere Fingerabdruckformate.

    Connection Status

    Enabled

    Mit diesem Schalter kann die Client-Idendität aktiviert/deaktiviert werden, um eine Verbindung dieses Clients zum Event Grid MQTT Broker zu erlauben oder zu verweigern.

    Client Attributes

    Attribute (
        Key: Group
        Type: String
        Value: MyGroup
    )

    Client-Attribute sind Metadaten zu einer Client-Identität, die für die Gruppierung zu Client Groups verwendet werden können. In diesem Beispiel wird ein Attribut mit dem Namen Group vom Typ String erstellt und der Wert MyGroup gesetzt. Damit kann dieser Client später durch eine Abfrage (Query) identifiziert werden.

Erzeugen einer Client Group

Eine Client Group ist eine Gruppe von Clients, für die beispielsweise gemeinsame Richtlinien oder Berechtigungen gelten sollen.

  1. Erzeugen Sie eine Client Group

    Für weitere Informationen siehe: Hilfeseite von Microsoft Azure.

    Es muss mindestens eine Gruppe erstellt werden.

    Das Erstellungsformular einer Client-Gruppe sieht im Azure Portal wie folgt aus:

    _example_img_azure_4.png
  2. Konfigurieren Sie die Client Group entsprechend nachfolgender Informationen:

    Parameter

    Beispielwert

    Beschreibung

    Group Name

    MyClientGroup

    Ein frei wählbarer Gruppenname, der später für die Verknüpfung dieser Client Group verwendet wird.

    Query

    attributes.Group = "MyGroup"

    Eine Abfrage, um Clients anhand von Merkmalen zu gruppieren.

    Für Informationen, wie die Queries aufgebaut sein müssen, siehe: Hilfeseiten von Microsoft Azure.

    Im Beispielwert wird das zuvor bei der Client-Erstellung definierte Attribut Group verwendet und auf den Wert MyGroup geprüft. Wenn im vorherigen Schritt nur ein Client angelegt wurde, dann wird er der Einzige sein, der dieser Client Group zugewiesen wird.

    Description

    My Clients

    Eine optionale Beschreibung als Hilfe für Administratoren.

Erzeugen eines Topic Spaces

Ein Topic Space ist eine Sammlung von MQTT Topic Templates. Hier werden Topics definiert, für die Sie in der Zugriffsberechtigungskonfiguration gesammelt Berechtigungen vergeben.

  1. Erzeugen Sie ein Topic Space.

    Für weitere Informationen siehe: Hilfeseite von Microsoft Azure.

    Ein Erstellungsformular eines Topic Spaces sieht im Azure Portal wie folgt aus:

    _example_img_azure_5.png
  2. Konfigurieren Sie das Topic Space entsprechend nachfolgender Informationen:

    Parameter

    Beispielwert

    Beschreibung

    Name

    MyTopicSpace

    Ein frei wählbarer Name, der später für die Verknüpfung dieses Topic Spaces verwendet wird.

    Topic templates

    permitted/#

    In den Topic Templates können Wildcards (#, +) und Variablen verwendet werden.

    Für weitere Informationen siehe: Hilfeseiten von Microsoft Azure.

    Im Beispielwert wird jedes beliebige Topic (auch beliebig verschachtelt) diesem Topic Space zugeordnet, solange die Wurzel der Topic-Hierarchie permitted heißt.

Definition von Berechtigungen

Berechtigungen werden für eine Kombination von Client-Gruppen und Topic Spaces vergeben. Es gibt zwei Arten von setzbaren Berechtigungen (Permissions):

  • Subscriber: Alle Clients der angegebenen Client Group sind berechtigt Nachrichten von einem Topic zu lesen, das dem angegeben Topic Space zugeordnet ist.

  • Publisher: Alle Clients der angegebenen Client Group sind berechtigt Nachrichten auf einem Topic zu schreiben, das dem angegebenen Topic Space zugeordnet ist.

  1. Definieren Sie die Berechtigungen der Client Group und des Topic Spaces.

    Ein Erstellungsformular eines Topic Spaces sieht im Azure Portal wie folgt aus:

    _example_img_azure_6.png
  2. Konfigurieren Sie die Berechtigungen entsprechend nachfolgender Informationen:

    Parameter

    Beispielwert

    Beschreibung

    Name

    MySubscriberPermission / MyPublisherPermission

    Ein frei wählbarer, einzigartiger Name.

    Client Group Name

    MyClientGroup

    Eine Referenz auf eine bestehende Client-Gruppe. Der Beispielwert MyClientGroup verknüpft die zuvor angelegte Client Group mit dieser Berechtigung. Damit erhalten alle Clients dieser Gruppe einen entsprechenden Zugriff auf den definierten Topic Space (Topic Space Name).

    Topic Space Name

    MyTopicSpace

    Eine Referenz auf einen bestehenden Topic Space. Der Beispielwert MyTopicSpace verknüpft den zuvor angelegten Topic Space mit dieser Berechtigung. Damit erhalten alle Clients der angegebenen Client-Gruppe (Client Group Name) eine Berechtigung für die dem hier angegebenen Topic Space zugeordneten Topics.

    Permission

    Subscriber /Publisher

    Eine Lese- oder Schreibberechtigung wird für die Clients auf dem Topic Space vergeben.

Damit ist die Konfiguration auf Azure-Seite vorerst abgeschlossen.