Azure IoT Central ist Microsoft’s Plattform-as-a-Service-Angebot, um schnell und einfach IoT-Lösungen bereitzustellen ohne dabei Cloud-Expertenwissen zu benötigen (mehr dazu in unserem Einstiegsblogpost). In der Praxis war dies bisher allerdings nur sinnvoll für den Betreiber einer Maschine oder Anlage möglich. Für Maschinen- und Anlagenbauer hingegen, welche eine IoT-Lösung für mehrere Kunden innerhalb einer IoT Central-Anwendung anbieten wollten, gab es bisher keine sinnvolle Möglichkeit, dies umzusetzen. Die fehlende Möglichkeit, die Hoheit über Geräte und deren Daten weiter zu strukturieren und fein granularer innerhalb einer IoT Central-Anwendung zu berechtigen, war ein Blocker für solch ein Szenario mit verschiedenen Kunden. Diese Lücke wurde durch die Einführung von sogenannten Organisationen geschlossen.
Um einen ersten Eindruck von Organisationen in IoT Central zu vermitteln, wird in diesem Blogbeitrag die grundsätzliche Funktionsweise und der Aufbau von Organisationen vorgestellt und unsere Erfahrungen und Erkenntnisse geteilt.
Organisationen in a Nutshell
Eine einzelne Organisation bildet einen logischen Container für Devices, Device Gruppen, Dashboards, User etc. Organisationen werden hierarchisch angeordnet, sodass die Organisationshierarchie definiert, wer was darf.
Dieses Feature kann nicht nur von Lösungsanbietern mit mehreren Kunden genutzt werden (wie z.B. dem Maschinen- und Anlagenbauer) sondern auch für beispielsweise Produktionsfirmen mit Fabriken an verschiedenen Standorten oder auch für die Abgrenzung verschiedener Entwicklungsumgebungen.
In all diesen Szenarien konnte die Abgrenzung verschiedener Einheiten bisher nur durch separate IoT Central-Anwendungen abgebildet werden. Dies war nicht nur mit einem höheren Administrationsaufwand verbunden sondern brachte auch für Nutzer als Teil mehrerer Accounts nur wenig Freude.
Mit der Fähigkeit Multi-Mandanten-Szenarien durch Organisationen abzubilden, macht IoT Central also einen großen Sprung nach vorne auf dem Weg, auch für größere IoT-Szenarien interessant zu werden.
Hands on Details
Schauen wir uns ein Beispiel näher an: Die Produktionsfirma AIT Manufacturing hat Fabriken an mehreren Standorten in verschiedenen Ländern und möchte eine IoT-Lösung einführen, um ihre Produktion zu überwachen. Die Maschinen- und Anlagen in den jeweiligen Fabriken sind mit IoT-Devices verbunden, die die Daten der Maschinen einsammeln und zur Weiterverarbeitung bereitstellen. Während übergeordnete Admins Zugriff auf alle Devices haben, dürfen Mitarbeiter der jeweiligen Fabriken nur Zugriff auf ihre eigenen Devices und deren Daten haben.
Abbildung 1 zeigt wie dieses Szenario unter Verwendung von Organisationen in IoT Central abgebildet werden kann, wobei jeder Knoten in der Abbildung eine Organisation innerhalb einer IoT Central-Anwendung darstellt.
Abbildung 1: Organisationsbaum am Beispiel von AIT Manufacturing
Durch diese Darstellung können grundsätzliche Eigenschaften einer Organisationshierarchie anschaulich erläutert werden:
- Alle Organisationen befinden sich innerhalb einer IoT Central-Anwendung, wobei die Wurzelorganisation immer denselben Namen wie die Anwendung selbst besitzt und beim Erstellen automatisch mitangelegt wird. Damit hat eine IoT Central-Anwendung immer mindestens eine Organisation (im Beispiel AIT Manufacturing).
- Eine Organisation kann mehrere Kind-Organisationen besitzen, jedoch nur eine Eltern-Organisation.
- Die Hierarchie verwendet Vererbung. Dies bedeutet, dass alle Nutzer einer übergeordneten Organisation auch Zugriff auf die untergeordneten Organisationen haben. Im Beispiel haben also übergeordnete Admins, welche als Nutzer für die Wurzelorganisation AIT Manufacuring eingetragen sind, auch Zugriff auf alle anderen Organisationen. Geschwisterorganisationen, welche sich auf derselben Ebene befinden wie z.B. Stuttgart und Berlin, haben keinen Zugriff auf den jeweils anderen.
- Benutzer können mehreren Organisationen zugeordnet sein. Dabei bestimmt wie bisher die zugeordnete Rolle, welche Aktionen innerhalb einer Organisation ausgeführt werden können.
- Bestimmte Elemente in IoT Central gehören zu genau einer Organisation. Dies umfasst Devices, Device Gruppen, Dashboards, Analysen und Jobs. Nur Personen, welche der Organisation angehören und die entsprechende Rolle haben, können also auf die jeweiligen Elemente zugreifen.
- Device Templates werden nicht einer bestimmten Organisation zugeordnet. Hat ein Benutzer also in irgendeiner Organisation die Berechtigung auf Device Templates zuzugreifen, gilt dieser Zugriff für alle Device Templates, welche in der Anwendung angelegt sind.
- Es sind maximal 200 Organisationen innerhalb einer IoT Central-Anwendung erlaubt, d.h. die maximale Anzahl an Knoten im Baum beträgt 200.
- Unterhalb der Wurzelorganisation dürfen maximal 5 Ebenen existieren.
Die Administrationsoberfläche in IoT Central für das beschriebene Beispiel ist in Abbildung 2 dargestellt. Dort können dann auch weitere Organisationen hinzugefügt, bestehende entfernt oder aber auch im Baum umorganisiert werden. D.h. die Hierarchie kann auch nach dem initialen Anlegen komplett verändert werden. Dies ist in der Praxis mit Vorsicht zu genießen, da aufgrund der beschriebenen Vererbung bei unüberlegtem Verschieben von Knoten Benutzer potentiell ungewollt Zugriff auf Devices bekommen.
Abbildung 2: Administrationsoberfläche für Organisationen in IoT Central
Die Nutzerverwaltung für das Ganze ist sehr simpel gehalten: eine flache Liste, die einen Eintrag pro User, Rolle und Organisation enthält, zeigt alle Nutzer (vgl. Abbildung 3).
Abbildung 3: Nutzerverwaltung in IoT Central
Alle anderen Ansichten, die man bereits kennt wie z.B. die Device-Liste, sind nun ebenfalls um die Organisationszuweisung erweitert. Sichtbar sind dann Elemente, die in den berechtigten Organisationen vorhanden sind, wobei in den meisten Ansichten auch gefiltert werden kann.
Fazit
Erste Schritte mit IoT Central Organisationen sind schnell und einfach machbar ohne dass ein hoher Einarbeitungsaufwand erforderlich ist. Microsoft hat es damit also geschafft, das bestehende Konzept unter Verwendung von Rollen so zu erweitern, dass Multi-Mandanten-Szenarien innerhalb einer IoT Central-Anwendung abgebildet werden können und gleichzeitig die gewohnte User Experience zu behalten.
An einigen Stellen holpert das Ganze jedoch noch. So ist z.B. die Nutzerverwaltung für größere Anwendungsszenarien noch nicht ausgereift. Die flache Benutzerliste besitzt aktuell keine Filter- und Sortiermöglichkeiten, sodass es in größeren Szenarien schnell unübersichtlich und schwer handhabbar wird. Außerdem existiert aktuell noch keine Möglichkeit, mehrere User oder Rollen auf einmal zuweisen zu können, sodass für größere Szenarien vermehrt Fleißarbeit an dieser Stelle notwendig wird. Darüber hinaus kann die fehlende Zuordnung von Device Templates zu Organisationen je nach Anwendungsszenario zum Problem werden. Hier wäre es wünschenswert, wenn sich auch die Device Templates inkl. ihrem Lebenszyklus in der Organisationsstruktur wiederfinden würden.
Organisationen stehen noch am Anfang ihrer Entwicklung, sind aber durchaus bereits jetzt einsetzbar und machen IoT Central somit zu einer validen Basis für den Aufbau eigener IoT-Lösungen. In Verbindung mit AIT Smart Edge erlangt der Betreiber einer IoT-Lösung die Fähigkeit, sowohl die Daten als auch die Geräte selbst sowie die auf den Geräten laufenden Workloads für mehrere Mandanten an zentraler Stelle zu verwalten. Durch AIT Smart Edge behält sich der Betreiber dabei die Offenheit, Daten von seinen Maschinen und Anlagen auch für andere Cloud- und Backendsysteme wie z.B. Azure IoT Hub, AWS oder Adamos bereitstellen zu können oder zusätzliche Logiken auf den Edge-Devices ausführen zu lassen. Haben auch Sie Interesse am leichtgewichtigen Aufbau eigener IoT-Lösungen, dann kontaktieren Sie uns.