Entdecken Sie hier, wie Sie in Web-Prozessen Ihre Ressourcen (Daten + Geschäftslogik) vor böswilligen Zugriffen und vor unbefugten Benutzern schützen können … mit einem Klick.
Setzen Sie im Entwicklungsmodus die Eigenschaft Zugriff standardmäßig einschränken auf FALSE, um sich auf Ihre Code-Organisation, das Datenmodell, die Architektur der Qodly-Seiten und die Tests zu konzentrieren … ohne jegliche Einschränkung bei der Verwendung von Daten oder dem Aufruf von Funktionen.
Wenn Sie bereit sind, Benutzerprofile zu implementieren, setzen Sie einfach die Eigenschaft Zugriff standardmäßig einschränken auf TRUE, um sicherzustellen, dass niemand auf Ihre Daten und Geschäftslogik zugreifen kann, ohne explizit autorisiert zu sein.
Erinnerung
Seit 4D 20 bietet 4D ein leistungsfähiges und vollständig anpassbares System zum Schutz der Ressourcen (Daten + Geschäftslogik) vor unbefugten Benutzern.
Dieses System bietet eine anpassbare Granularität und basiert auf dem Vorhandensein von Berechtigungen in der Sitzung. Privilegien müssen in der Datei roles.json eingerichtet werden und berechtigen zur Ausführung bestimmter Aktionen (Lesen, Erstellen, …) auf bestimmten Ressourcen (Datenklassen, Attribute, Funktionen).
Privilegien gelten für Web-Prozesse, die skalierbare Web-Sessions verwenden, z.B.: REST-Anfragen, Remote-Datenspeicher, Qodly-Apps.
Wenn dem Benutzer der Zugang zur Anwendung gewährt wird, muss die Authentifizierungsimplementierung die entsprechenden Berechtigungen in die Sitzung aufnehmen.
Wenn die Anwendung dann eine Web-Anfrage erhält, wird das Vorhandensein von Berechtigungen in der Sitzung kontrolliert. Nur autorisierte Aktionen können durchgeführt werden.
Ein Berechtigungsfehler wird ausgelöst, wenn die Aktion auf die Ressource nicht erlaubt ist.
die Eigenschaft Zugriff standardmäßig einschränken
Mit 4D21 ist eine neue boolesche Eigenschaft in der Datei roles.json verfügbar: restrictedByDefault.
Sie ermöglicht es, das Standardverhalten in Bezug auf Web-Zugriffe auf die folgenden Ressourcen festzulegen:
- den Datenspeicher
- eine Datenklasse
- ein Attribut
- eine Funktion einer Datenmodellklasse
- eine Singleton-Funktion
Dies wirkt sich nur auf Ressourcen aus, für die keine Berechtigungen eingerichtet wurden.
Wenn FALSE: die Ressourcen sind standardmäßig zugänglich
Wenn Sie keine Berechtigungen einrichten, sind alle Ihre Ressourcen in Bezug auf jede Aktion Create, Read, Update… zugänglich.
Wenn Sie Berechtigungen einrichten, bleiben alle Ihre Ressourcen, die nicht von den Berechtigungen betroffen sind, zugänglich.
Wenn TRUE: der Zugriff auf die Ressourcen ist standardmäßig eingeschränkt
Wenn Sie keine Berechtigungen einrichten, ist nichts in Ihren Ressourcen zugänglich.
Wenn Sie Berechtigungen einrichten, bleiben alle Ihre Ressourcen, die nicht an den Berechtigungen beteiligt sind, UNzugänglich.
Die Qodly-Schnittstelle für Rollen und Berechtigungen
Vielleicht haben Sie bereits die Qodly-Studio-Schnittstelle für Rollen und Berechtigungen verwendet. Sie bietet ein benutzerfreundliches UI, um die Berechtigungen für Ihre Anwendung einzurichten. Diese Benutzeroberfläche bietet nun die Möglichkeit, die Eigenschaft Zugriff standardmäßig einschränken zu aktualisieren.

mit früheren 4D Versionen
Wenn Ihre Anwendung mit einer früheren 4D Version läuft, ist es äquivalent, wenn restrictedByDefault auf FALSE gesetzt ist. Sie können ein ähnliches Maß an Sicherheit erreichen, indem Sie ein „all“ -Privileg einrichten, das Ihnen erlaubt, alle Aktionen auf dem Datenspeicher auszuführen.
Und geben Sie dieses „all“- Privileg niemals an einen Benutzer.

Starten eines neuen Projekts
Wenn Sie ein neues Projekt erstellen, wird die Datei roles.json so eingerichtet, wie sie ist:

Da restrictedByDefault auf False gesetzt ist, hilft dies beim Start einer neuen Entwicklung. Sie können sich auf Ihren Code, das Design von Formularen, Funktionsaufrufe und den Zugriff auf Ihre Daten konzentrieren, ohne daran gehindert zu werden.
Beste Praxis
Um optimale Sicherheit zu gewährleisten, empfehlen wirbei der Implementierung von Benutzerprofilen , die Eigenschaft restrictedByDefault auf True zu setzen und die Berechtigungen so einzurichten, dass Folgendes gewährleistet ist:
–Ihre Ressourcen sind vor böswilligen Zugriffen von außen geschützt
–jeder Benutzer darf nur autorisierte Aktionen mit zulässigen Daten durchführen
Beispiel
Im folgenden Beispiel ist das Datenmodell wie folgt:

In der Datei roles.json:

also:
– es ist nicht möglich, auf die SecretInfos-Datenklasse zuzugreifen (Lesen, Erstellen, Aktualisieren, …)
– das viewPeople-Recht ist erforderlich, um die People-Dataklasse zu lesen, andere Aktionen auf die People-Dataklasse werden nicht gewährt
Die beigefügte HDI demonstriert dies.
Warten Sie nicht damit, Berechtigungen einzurichten, um Ihre Anwendung und Ihre Daten zu schützen und gleichzeitig genaue und angemessene Benutzerprofile zu handhaben.
