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.

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.
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.
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.
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
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.
Erzeugen Sie den CODESYS-MQTT Client.
Das Erstellungsformular für einen MQTT-Client sieht im Azure Portal wie folgt aus:

Nach der Auswahl der Thumbprint-Authentifizierungsmethode erscheint folgender Abschnitt:

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
Groupvom TypStringerstellt und der WertMyGroupgesetzt. 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.
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:

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
Groupverwendet und auf den WertMyGroupgeprü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.
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:

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
permittedheiß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.
Definieren Sie die Berechtigungen der Client Group und des Topic Spaces.
Ein Erstellungsformular eines Topic Spaces sieht im Azure Portal wie folgt aus:

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
MyClientGroupverknü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
MyTopicSpaceverknü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.