Microsoft Power Pages ist ein integraler Bestandteil der Microsoft Power Platform, die wir im ersten Teil kennengelernt haben. Power Pages erlaubt das Erstellen dynamischer, sicherer und datengesteuerter Websites. Dabei kommen solche Seiten oft ohne komplexe Programmierung aus und können zudem externe Daten einbinden. Wir zeigen, wie sich dabei sichere Zugriffe realisieren lassen und wie Dataverse und externe Quellen zum schnellen Aufbau von Webseiten zum Einsatz kommen.
Power Pages als webbasierte Plattform für die Entwicklung von Websites hat Jahre vor sich hingedämmert, bevor es aktuell immer populärer wird. Ursprünglich nur in Dynamics CRM angesiedelt, erhielt Power Pages in der Power-Plattform den Status eines eigenständigen Produkts. Der Zweck ist dabei gleich geblieben: Inhalte aus Microsoft Dataverse ins Internet transportieren und dort anonym oder authentifiziert zur Verfügung stellen. Der Charme liegt darin, dass die benötigen Daten oftmals schon in Dataverse vorhanden sind oder sich über virtuelle Tabellen einfach in dieses importieren lassen.
Zugriffsbasierte Lizenzierung
Power Pages hat eine eigene Lizenzierung und unterscheidet zwischen internen und externen Besuchern. Extern bedeutet, dass der Zugriff über das Internet von Personen erfolgt, die nicht zur Organisation des Erstellers des Portals gehören. Diese User unterliegen verschiedenen Lizenzpaketen, je nachdem, ob der Zugriff auf das Portal anonym erfolgt oder nicht. Es ist dabei möglich, den anonymen Zugriff zu verweigern und nur authentifiziert zugreifen zu lassen. Das ist in der Praxis durchaus üblich, denn es spart Geld.
Erfolgt der Zugriff authentifiziert aus den Mandaten des Erstellers, ist dafür wiederum eine separate Lizenz erforderlich. Diese ist zudem häufig notwendig, um Daten in einer eigenen modellgesteuerten App zu verwalten. Sollten Sie eine "Dynamics 365 Customer Engagement"-Lizenz besitzen, reicht diese in diesem Fall aus, eine "Microsoft 365 Power App"-Lizenz jedoch nicht.
Power Pages als webbasierte Plattform für die Entwicklung von Websites hat Jahre vor sich hingedämmert, bevor es aktuell immer populärer wird. Ursprünglich nur in Dynamics CRM angesiedelt, erhielt Power Pages in der Power-Plattform den Status eines eigenständigen Produkts. Der Zweck ist dabei gleich geblieben: Inhalte aus Microsoft Dataverse ins Internet transportieren und dort anonym oder authentifiziert zur Verfügung stellen. Der Charme liegt darin, dass die benötigen Daten oftmals schon in Dataverse vorhanden sind oder sich über virtuelle Tabellen einfach in dieses importieren lassen.
Zugriffsbasierte Lizenzierung
Power Pages hat eine eigene Lizenzierung und unterscheidet zwischen internen und externen Besuchern. Extern bedeutet, dass der Zugriff über das Internet von Personen erfolgt, die nicht zur Organisation des Erstellers des Portals gehören. Diese User unterliegen verschiedenen Lizenzpaketen, je nachdem, ob der Zugriff auf das Portal anonym erfolgt oder nicht. Es ist dabei möglich, den anonymen Zugriff zu verweigern und nur authentifiziert zugreifen zu lassen. Das ist in der Praxis durchaus üblich, denn es spart Geld.
Erfolgt der Zugriff authentifiziert aus den Mandaten des Erstellers, ist dafür wiederum eine separate Lizenz erforderlich. Diese ist zudem häufig notwendig, um Daten in einer eigenen modellgesteuerten App zu verwalten. Sollten Sie eine "Dynamics 365 Customer Engagement"-Lizenz besitzen, reicht diese in diesem Fall aus, eine "Microsoft 365 Power App"-Lizenz jedoch nicht.
Security basiert auf Azure
Power Pages basiert auf der Power-Plattform und damit auf Microsoft Azure. Somit lassen sich in Power Pages Azure-Module wie zum Beispiel eine Web Applicaton Firewall (WAF), ein Schutz vor DDOS und weitere Netzwerkfunktionen nutzen. Diese Dienste verwaltet dabei Microsoft, der Admin muss sich darum nicht kümmern. Ein Power-Pages-Portal kann entweder den Zustand "Entwicklung" oder "Produktion" aufweisen. Viele Funktionen stehen nur zur Verfügung, wenn das Portal sich in der Produktion befindet. Auch wichtig: Erstellen Sie eine Power-Plattform-Umgebung, müssen Sie für die Datenbank einen regionalen Speicherort angeben. Wählen Sie dabei Europa aus, ist sichergestellt, dass alle Daten tatsächlich in Europa bleiben.
Die Sicherheitsmechanismen von Power Pages sind tief in die Architektur integriert, um den Schutz sensibler Daten zu gewährleisten. Dabei benutzt das Werkzeug eine eigene Sicherheitsschicht. Die in Dataverse vorhandene Sicherheit mit Business-Units und Rollen geht von einem vollständig authentifizierten Ansatz aus. Dies ist in Power Pages nicht der Fall, weswegen das Tool die Sicherheit selbst verwaltet. Dabei nutzt es Webrollen, die definieren, was in einer Dataverse-Tabelle (in Power Pages „Liste“ genannt) erlaubt ist. Diese Rollen weisen Sie den Benutzern zu – vorhandene Sicherheitseinstellungen in Dataverse werden dabei ignoriert.
Der Namensraum eines Power-Pages-Portals ist immer "https://<subdomain>. powerappsportals.com". Damit ist das Portal automatisch mit SSL gesichert, wobei die gesamte Verwaltung Microsoft übernimmt. Sie können dem Portal eine eigene Domain zuordnen, wobei Sie sich um die Zertifikatverwaltung dann selbst kümmern müssen. Das ganze Portal ist von Haus aus responsive. Außerdem lässt sich das Portal sogar als Progressive Web App (PWA) nutzen und dergestalt mehrfach verwenden – als traditionelle Web-App und gleichzeitig als App für mobile Geräte.
Daten mit dem Designstudio verwalten
Power Pages hat einen modularen Aufbau, der eine nahtlose Integration zwischen Frontend und Backend ermöglicht. Zentral ist dabei das benutzerfreundliche Designstudio, das Drag-and-Drop-Funktionalitäten bietet und es Anwendern erlaubt, Webseiten ohne tiefgreifende Programmierkenntnisse zu gestalten. Immer wenn Sie ein Power-Pages-Portal erstellen und das erste Mal darauf zugreifen, landen Sie im Designstudio. In diesem können Sie nicht nur Designs gestalten, sondern auch die Sitemap anpassen, Rechte vergeben und vieles mehr.
Immer wenn Sie eine Änderung im Designstudio vornehmen, erfolgen auch Anpassungen im darunterliegenden Dataverse. Damit Sie diese Änderungen aber in der Vorschau und natürlich auch später live sehen, müssen Sie diese synchronisieren. Für die Synchronisierung gibt es oben rechts eine Schaltfläche, deren Aktivierung nach einer kurzen Verzögerung die vorgenommenen Anpassungen aus dem Browser in das Dataverse schreibt. Diesen Button müssen Sie auch klicken, wenn Sie Änderungen im Dataverse direkt vorgenommen haben und diese im Designstudio oder der Vorschau anzeigen lassen wollen.
Über Dataverse ist es auch möglich, externe Datenquellen zu integrieren. So erlauben virtuelle Tabellen das Verzahnen mit externen Daten [1]. Diese werden dabei aus den entfernten Systemen nach Dataverse kopiert und dort wie eine normale Dataverse-Tabelle behandelt. So ist es zum Beispiel möglich, Daten aus einer SAP-Installation zu nutzen. Power Pages kann diese Daten sowohl verarbeiten als auch nach SAP zurückschreiben. Da dies aber in der Regel keine gute Idee ist, sollten Sie die neuen Daten in einer benutzerdefinierten Tabelle in Dataverse speichern und von dort weiter verarbeiten.
Natürlich lassen sich auch PowerBI-Dashboards und Canvas Power Apps einbinden. Beachten Sie dazu aber die notwendigen Lizenzen. Verfügen Sie über diese, steigern die genannten Technologien die Effizienz noch einmal beträchtlich. Zur Automatisierung von Geschäftsprozessen dient Power Automate. Es erlaubt, Power Automate Flows zu starten, wenn sich Daten im Dataverse ändern. Dies ist in Power Pages nicht enthalten, denn Daten können auf viele Arten im Dataverse geändert werden. Beachten Sie hier wieder die Lizenzierung für den Fall, dass anonyme Benutzer Daten im Portal anpassen. Auf der anderen Seite gibt es eine direkte Power-Pages-Integration in Power Automate. So ist es zum Beispiel umsetzbar, dass über eine Schaltfläche im Power-Pages-Portal via Power Automate eine E-Mail versendet wird. In dem Fall müssen Sie den Flow einzeln lizenzieren.
Mit der modellgetriebenen Management-App verwalten Sie alle Aspekte eines Portals. Denn nicht nur die dargestellten Daten liegen in Dataverse, auch das Portal selbst. Dies umfasst sämtlichen Quellcodes, Bilder et cetera. Das heißt für viele Einstellungen, dass es keine Rolle spielt, ob Sie die Daten im Designstudio verwalten oder in der Management-App. Wobei Änderungen über die Management-App oftmals schneller sind. Vergessen Sie nicht, Änderungen in der Management-App im Designstudio zu synchronisieren. Die App wird automatisch installiert und ist unter "https://make.powerapps.com" bei "Apps" im Tab "Für mich freigegeben" zu finden.
Liquid [2] erlaubt, Inhalte aus Dataverse dynamisch zu behandeln. Natürlich ist im Portal auch JavaScript möglich, doch damit ist ein Zugriff auf Dataverse-Daten sehr komplex. Erfolgreich ist in der Regel eine Kombination aus Liquid und JavaScript: Liquid extrahiert und filtert die Daten aus dem Dataverse und JavaScript kümmert sich um die Präsentation.
Benutzer einladen
Um Besucher mit authentifiziertem Zugriff hinzuzufügen, haben Sie mehrere Möglichkeiten. Die einfachste, von Microsoft allerdings als veraltet markierte Möglichkeit, ist die Kontakttabelle von Dataverse. Jedem Kontakt können Sie einen Loginnamen und ein Passwort zuweisen und diesen anschließend einladen. Natürlich sollten Sie dem Kontakt noch die entsprechenden Webrollen zuweisen. Für beide Aufgaben steht ein spezielles Formular bereit.
Alternativ integrieren Sie User aus Entra ID, Azure B2C, Microsoft Entra External ID oder jedem anderen Provider, der OAuth verwendet. Bis auf Entra ID, dessen Integration schon vorhanden ist, müssen Sie jeden Provider händisch konfigurieren. Beachten Sie dabei, dass die volle Funktionalität nur im Zustand "Produktion" zur Verfügung steht.
Schneller Start
Um Power Pages zu testen, gehen Sie zu "https://make.powerpages.microsoft.com" und melden sich mit Ihrer Entra-ID an. Achten Sie darauf, dass Sie sich in der richtigen Umgebung befinden – für das Ausprobieren ist auch "Entwicklung" geeignet. Für ein neues Portal können Sie entweder mit Copilot Ihre Anforderungen beschreiben oder Sie arbeiten mit einer Vorlage. Das Erstellen mit Copilot funktioniert recht gut, doch für diesen Workshop starten wir mit einer leeren Vorlage, was uns erlaubt, möglichst viel anzupassen. Beachten Sie, dass ein Portal im Entwicklermodus nur eine begrenzte Lebensdauer hat. Überführen Sie es nicht in den Livemodus, löscht Microsoft es nach einiger Zeit.
Nach der Auswahl der Vorlage müssen Sie dem Portal einen Namen und eine URL geben. Zwar lässt sich beides später ändern, aber Sie sollten schon jetzt eine prägnante Angabe machen. In der Management-App werden nämlich alle Portale gleichzeitig verwaltet. Haben Sie dort mehrere Portale mit wenig aussagekräftigen Namen, wird es sehr schnell unübersichtlich. Anschließend erscheint als Erstes das Designstudio. Sie können sofort loslegen, neue Seiten erstellen, ein Design anpassen, Listen freigeben und vieles mehr.
Bild 1: Im Designstudio hilft Copilot beim Anlegen eines Portals.
Mit Templates arbeiten
Portalseiten bestehen aus verschiedenen Komponenten. So ist es möglich, mit Page- und Webtemplates für einen Typ von Seiten ein einheitliches Design zu erstellen und dieses immer wieder zu verwenden. Diese Vorlagen können Sie allerdings nicht im Designstudio editieren, sondern nur in der Management-App beziehungswiese in Visual Studio Code – die Management-App bietet dafür eine entsprechende Integration. Wenn Sie ein Webtemplate editieren, zeigt sich der entsprechende Dialog zum Öffnen in Visual Studio Code. Dies ist dem Editieren in Dataverse in jedem Fall vorzuziehen. Beachten Sie dabei, dass eine Änderung an einem Template alle Seiten betrifft, die auf dieser Vorlage basieren. Im Code finden Sie Inhalte, die in geschweifte Klammern und Prozentzeichen eingeschlossen sind – dies ist Liquid. Microsoft erweitert dabei den Sprachstandard um Dataverse-spezifische Befehle.
Schnell kommt auch der Wunsch auf, Tabellen im Portal verfügbar zu machen. Gehen Sie dazu auf eine Seite im Designstudio und fügen Sie der Seite eine Komponente vom Typ "Liste" hinzu. Sie müssen jetzt auswählen, welche Tabelle welche Ansicht erhält. Das erledigen Sie über eine bereits vorhandene Ansicht – Sie müssen keine neue erstellen. Oftmals empfiehlt es sich aber im Vorfeld bereits eine eigene Ansicht für ein Portal zu erstellen. Das Steuerelement zur Listendarstellung entsteht umgehend, darin sehen Sie allerdings nichts außer generische Beispieldaten. Bevor Sie nun rechts oben haben die Schaltfläche "Vorschau" aufrufen, klicken Sie rechts daneben auf "Synchronisieren".
Bild 2: Im Listenformular erscheint die Vorschau erst nach einem Klick auf die Schaltfläche "Synchronisieren" oben rechts.
Berechtigungen für Daten vergeben
Erscheint anschließend die Vorschau, finden Sie allerdings auch dort in der Liste keine Einträge, selbst wenn Sie Besitzer der Daten oder Administrator sind. Da, wie zuvor erwähnt, das Dataverse-Sicherheitsmodell in einem Power-Pages-Portal keine Relevanz hat, müssen Sie die Rechte separat vergeben. Klicken Sie dazu im Designstudio in die neu erstellte Liste und dann auf "Neue Berechtigung". Relevant sind in dem erscheinenden Pop-up-Menü "Zugriffstyp", "Berechtigt für" und "Rollen". Die effektiven Rechte berechnen sich aus einer Kombination dieser drei Einstellungen. Über den Zugriffstyp legen Sie fest, welche Datensätze der Benutzer sehen darf. Bei "Global" sind dies alle Datensätze, völlig unabhängig davon, wem diese in Dataverse gehören. Die Alternative dazu sind entweder die Daten, die dem aufrufenden Besucher in der Tabelle gehören, oder solche, die in einer Beziehung mit dem User stehen. So ist es denkbar, in einer Tabelle eine Spalte zu erzeugen, die eine Beziehung zur Kontakttabelle hat. Jeder Datensatz, der in der Zelle als Kontakt den aufrufenden Besucher aufweist, wird diesem angezeigt.
Die Einstellung "Berechtigung" ist selbsterklärend, da es die gleiche ist wie in Dataverse. Wichtiger sind die Rollen: Klicken Sie auf "Rollen hinzufügen", stehen drei zur Auswahl. Diese sind vordefiniert und den jeweiligen Benutzergruppen automatisch zugewiesen. Das heißt zum Beispiel, dass jeder authentifizierte Besucher automatisch die gleichnamige Rolle erhält. Mit dieser Rolle, dem globalen Zugriff sowie der Berechtigung "Lesen", kann der authentifizierte Besucher auf alle Datensätze der ausgewählten Tabelle zugreifen. Diese Rechte gelten nicht für die ausgewählte Seite, sondern zentral für die Liste. Da die Rechte adaptiv sind, ist hier Sorgfalt geboten. Erst wenn Sie alle Berechtigungen konfiguriert haben und der Login passt, sehen Sie die Daten auch in der Vorschau.
Sollen jetzt noch Daten bearbeitet werden können, ist ein Formular erforderlich. Dazu legen Sie zuerst in der linken Leiste des Designstudios eine neue Seite an und fügen ein Formular hinzu, indem Sie auf die Tabelle verweisen und ein vorhandenes Formular auswählen. Unter "Daten" legen Sie fest, welchen Zweck das Formular erfüllt – beispielsweise Daten ändern oder neue anlegen. Das Formular kann dabei keine höheren Rechte haben, als in der Tabelle über die Webrollen eingeräumt. Rechnen Sie zudem damit, dass das Synchronisieren von Rechten etwas dauert.
Rufen Sie die neue Seite mit dem Formular auf, sehen Sie nichts, denn das System weiß ja nicht, welchen Datensatz Sie haben möchten. Gehen Sie dazu wieder auf die Seite, die die Liste darstellt und klicken Sie auf das Steuerelement der Liste. Wählen Sie dann "Liste bearbeiten" und im folgenden Dialog "Aktionen". Dort können Sie dann für die jeweilige Aktion ein vorhandenes Formular auswählen. Haben Sie dies abgeschlossen, erscheint in der Liste eine neue Spalte mit einem Aktionsmenü.
Fazit
Power-Pages-Portale sind ein einfacher, preiswerter und schneller Weg der Datenverarbeitung im Dataverse. Einfache Portale lassen sich ohne Code schnell bereitstellen, für komplexe Anforderungen steht eine leistungsstarke Programmierung zur Verfügung. Zudem stehen für Dataverse-Daten verschiedene Sicherheitsmechanismen bereit. Sollte mehr Leistung notwendig sein, ist dies Dank Azure kein Problem.