Clientgruppen

Mit Clientgruppen können Sie eine Clients basierend auf Gemeinsamkeiten gruppieren. Der Hauptzweck von Clientgruppen besteht darin, die Konfiguration von Autorisierung zu vereinfachen. Sie können eine Clientgruppe autorisieren, in einem Themenbereich zu veröffentlichen oder ihn zu abonnieren. Alle Clients in der Clientgruppe sind berechtigt, die Veröffentlichungs- oder Abonnierungsaktion für den Themenbereich auszuführen.

In einem Namespace stellen wir eine Standardclientgruppe mit dem Namen „$all“ bereit. Die Clientgruppe enthält alle Clients im Namespace. Zur Vereinfachung der Tests können Sie $all verwenden, um Berechtigungen zu konfigurieren.

Hinweis

  • Der Clientgruppenname kann 3 bis 50 Zeichen lang sein.
  • Der Name der Clientgruppe kann alphanumerische Zeichen und Bindestriche (-), aber keine Leerzeichen enthalten.
  • Der Name der Clientgruppe muss pro Namespace eindeutig sein.
  • $all ist die Standardclientgruppe, die alle Clients im Namespace enthält. Diese Gruppe kann nicht bearbeitet oder gelöscht werden.

Überlegungen zu Clientgruppen

Sie sollten die Anzahl der Clientgruppen klein halten, damit die Berechtigungen verwaltbar bleiben.

Derzeit werden maximal 10 Clientgruppen pro Namespace unterstützt.

Stellen Sie beim Gruppieren von Clients sicher, dass es einfacher ist, die Gruppe wiederzuverwenden, um für mehrere Themenbereiche zu veröffentlichen bzw. diese zu abonnieren. Zu diesem Zweck ist es wichtig, die End-to-End-Szenarien zu durchdenken, um die Themen zu identifizieren, die jeder Client veröffentlicht oder abonniert.

Es wird empfohlen, die Gemeinsamkeiten zwischen den Szenarien zu ermitteln, um eine zu starke Fragmentierung der Clientgruppen und Themenbereiche zu vermeiden. Legen Sie die Clientattribute generisch genug fest, um eine einfache Gruppierung zu erreichen und hochkomplexe Gruppenabfragen zu vermeiden.

Wie werden Clientgruppenabfragen erstellt?

Zum Einrichten einer Clientgruppe müssen Sie eine Abfrage erstellen, die eine Gruppe von Clients basierend auf ihren Attributwerten filtert.

Dies sind einige Beispielabfragen:

  • (attributes.sensors = "motion" or attributes.sensors = "humidity") or attributes.type = "home-sensors"
  • attributes.sensors IN ["motion", "humidity", "temperature"] und attributes.floor <= 5
  • authenticationName IN ['client1', 'client2']

In Gruppenabfragen sind die folgenden Operanden zulässig:

  • Gleichheitsoperator „=“
  • Klammern „()“ zum Gruppieren von Ausdrücken, um die Reihenfolge der Vorgänge zu steuern
  • Logische Operatoren „und“ , „oder“ , „und“ haben eine höhere Priorität als „oder“
  • Ungleichheitsoperator in zwei Formen: „<>“ und „!=“
  • Kleiner als „<“, größer als „>“, kleiner als oder gleich „<=“, größer als oder gleich „>=“ für Long Integer-Werte
  • „IN“ zum Vergleichen mit einer Gruppe von Werten

Clientgruppen-Beispielschema

{
  "properties": {
    "description": "Description of client group",
    "query": "attributes.b IN ['a', 'b', 'c']"
  }
}

Konfiguration des Azure-Portals

Führen Sie die folgenden Schritte aus, um eine Clientgruppe zu erstellen:

  1. Navigieren Sie im Azure-Portal zu Ihrem Namespace.

  2. Wählen Sie unter „Clientgruppen“ die Option + Clientgruppe aus.

    Screenshot: Hinzufügen einer Clientgruppe.

  3. Fügen Sie eine Clientgruppenabfrage hinzu.

    Screenshot: Clientgruppenkonfiguration.

  4. Klicken Sie auf Erstellen

Azure CLI-Konfiguration

Verwenden Sie die folgenden Befehle zum Erstellen/Anzeigen/Löschen einer Clientgruppe.

Erstellen einer Clientgruppe

az eventgrid namespace client-group create -g myRG --namespace-name myNS -n myCG 

Abrufen einer Clientgruppe

az eventgrid namespace client-group show -g myRG --namespace-name myNS -n myCG

Löschen einer Clientgruppe

az eventgrid namespace client-group delete -g myRG --namespace-name myNS -n myCG

Nächste Schritte