Integration der Benutzerauthentifizierung in Ihre Qodly-Anwendungen

Automatisch übersetzt von Deepl

Im Blog dieser Woche werden wir uns auf das wichtige Thema der Authentifizierung konzentrieren. Zur Veranschaulichung unserer Diskussion werden wir das Beispiel einer Anwendung verwenden, die für die Erstellung der jährlichen Leistungsbeurteilung von Mitarbeitern entwickelt wurde. Diese Anwendung ermöglicht den Benutzern einen sicheren Zugriff auf ihre Konten, indem sie sich mit ihrer E-Mail und ihrem Kennwort authentifizieren.

Anwendung zur Leistungsbeurteilung

Überblick über die Authentifizierung

Die Authentifizierung ist ein Eckpfeiler jeder Webanwendung, da sie sicherstellt, dass nur autorisierte Benutzer auf sensible Informationen zugreifen oder bestimmte Aktionen durchführen können. In unserem Beispiel ist der Login-Prozess einfach, aber effektiv und zeigt, wie 4D Qodly Pro die Authentifizierung sicher und effizient handhabt.

Der Login-Prozess

Das Login-Formular befindet sich auf der „Login“-Seite und besteht aus:

  • Zwei Eingabefelder, die mit der E-Mail-Adresse und dem Passwort der Datenquelle verknüpft sind.
  • Eine Schaltfläche „Anmelden“: löst den Authentifizierungsprozess aus.

This is a login page for a "Performance Review" system. The design is split into two sections:
* Left Side (Red Background)
        Displays the Performance Review title with an icon of a building and a person.

* Right Side (White Background)
        Contains a "Welcome!" message.
        Two input fields for Email and Password, with the password field having an eye icon to toggle visibility.
        A "Forgot your password?" link.
        A red "Sign in" button for user authentication.

In Qodly Studio sind weitere vorgefertigte Formularvorlagen für die Login-Funktionalität im entsprechenden Vorlagenbereich verfügbar. Diese Vorlagen können an die spezifischen Anforderungen Ihrer Anwendung angepasst werden.

Funktion: authentify()

Wenn der Benutzer auf die Schaltfläche „Anmelden“ klickt, wird die Funktion „ds.authentify()“ mit der E-Mail und dem Passwort als Parameter aufgerufen.

The OnClick function in this UI is set up to authenticate a user when they click a button. Here’s how it works:
1. Event Trigger
* The function is executed onClick of the button.
2. Function Call
* Calls an exposed function named ds.authentify, which likely handles authentication.
3. Parameters Passed
* email (Text) → Taken from the page input.
* password (Text) → Also taken from the page input.
* pageName (set to "app") → Likely specifies which page or context the authentication is for.
4. Result Handling
* The function returns a result (Text), which could be used to verify if authentication was successful.

Die Informationen des Benutzers, wie E-Mail und Passwort, werden in der Datenbank in der Tabelle „Employee“ gespeichert. In der Funktion „authentify()“ wird eine einfache Datenbankabfrage durchgeführt, um die Informationen zu überprüfen.

Der folgende Code veranschaulicht diesen Vorgang:

exposed Function authentify($email: Text; $password: Text) : Text
$employee :=This.Employee.query("Email = :1"; $email).first()
If ($employee#Null)
If (Verify password hash($password; $employee.Password))
Session.setPrivileges("Benutzer")
Web Form .setMessage("Authentifizierung erfolgreich")
Else
Web Form .setError("Authentifizierung fehlgeschlagen")
End if
Else
Web Form .setError("Authentifizierung fehlgeschlagen")
End if

Verwalten von Benutzerprivilegien

Vor der Authentifizierung eines Benutzers ist es wichtig, den Zugriff auf sensible Daten und Funktionen zu beschränken. Diese Sicherheit wird durch die Verwaltung von Berechtigungen gewährleistet.

Zunächst gibt es ein Privileg mit der Bezeichnung „none“, das alle Rechte für die Datenquelle (ds) besitzt und damit einen umfassenden Zugriff auf die Datenbank gewährleistet. Dieses Privileg wird keinem Benutzer zugewiesen, so dass eine sichere Umgebung gewährleistet ist. Wenn einem Privileg Rechte gewährt werden, werden sie automatisch allen anderen entzogen, wodurch das System effektiv gesichert wird.

This screenshot shows a privilege management interface where a set of permissions are assigned to a data source (ds).
Read: Allowed
Create: Allowed
Update: Allowed
Delete: Allowed
Execute: Allowed

Dann haben wir ein Privileg namens „authentifizieren“ hinzugefügt. Das Recht „promote“ wird der Funktion „ds.authentify()“ zugewiesen. Das bedeutet, dass bei jedem Aufruf dieser Funktion das Privileg „authentify“ automatisch angewendet wird.

Anschließend stellen wir sicher, dass die erforderlichen Berechtigungen für die Authentifizierung zu den entsprechenden Datenklassen oder Funktionen hinzugefügt werden. In unserem Beispiel weisen wir der Datenklasse „Employee“ die Berechtigungen „Read“ und „Execute“ zu.

Assigned permissions to ds.authentify
Read: Enabled
Create: Disabled
Update: Disabled
Delete: Disabled
Execute: Disabled
Promote: Enabled

Assigned permissions to Employee
Read: Enabled
Create: Disabled
Update: Disabled
Delete: Disabled
Execute: Enabled
Promote: Disabled

Schließlich aktivieren wir die Option„Anmeldung erzwingen„. Mit dieser Option können Sie die Anzahl der geöffneten Websitzungen, die 4D Client Lizenzen erfordern, kontrollieren. Sie können den Benutzer auch jederzeit abmelden, um die Anzahl der verbleibenden Lizenzen zu verringern.

Dieses mehrstufige Berechtigungssystem hilft, unbefugten Zugriff zu verhindern und den sicheren Betrieb der Anwendung zu gewährleisten.

Weitere Informationen finden Sie in unserem Blog-Beitrag: Erzwungenes Login wird Standard für alle REST Auth.

Hinzufügen einer Abmeldefunktion

Um die Benutzerfreundlichkeit und die Sicherheit zu verbessern, ist es wichtig, eine Abmeldeoption bereitzustellen. In unserem Beispiel:

  • Ein Logout-Button wird in der oberen rechten Ecke der „Main“-Seite platziert.
  • Die Aktion „Abmelden“ wird zu dieser Schaltfläche im Ereignis „Bei Klick“ hinzugefügt.

Assigned permissions to ds.authentify
Read: Enabled
Create: Disabled
Update: Disabled
Delete: Disabled
Execute: Disabled
Promote: Enabled

Assigned permissions to Employee
Read: Enabled
Create: Disabled
Update: Disabled
Delete: Disabled
Execute: Enabled
Promote: Disabled

So können Benutzer ihre Sitzung sicher beenden, wobei alle aktiven Berechtigungen gelöscht und sensible Daten geschützt werden.

Nächste Schritte

Authentifizierung und Berechtigungsverwaltung sind für die Entwicklung sicherer Webanwendungen von grundlegender Bedeutung. Um die Möglichkeiten der Authentifizierung und Rechteverwaltung weiter zu erforschen, lesen Sie die folgenden Ressourcen:

Wir ermutigen Sie, diese Konzepte in Ihren eigenen Anwendungen zu implementieren. Haben Sie Fragen oder Anregungen? Beteiligen Sie sich an der Diskussion im Forum oder teilen Sie Ihr Feedback in den Kommentaren unten mit. Bleiben Sie dran für den nächsten Artikel in unserer Serie!

Vanessa Talbot
Product Owner - Vanessa Talbot kam im Juni 2014 zum 4D Programmteam. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Seit ihrer Ankunft hat sie an der Definition der wichtigsten Funktionen in 4D gearbeitet. Sie hat an den meisten der neuen Funktionen für präemptives Multi-Threading gearbeitet und auch an einem sehr komplexen Thema: der neuen Architektur für erstellte Anwendungen. Vanessa hat einen Abschluss von der Telecom Saint-Etienne. Sie begann ihre Karriere am Criminal Research Institute als Entwicklerin für die audiovisuelle Abteilung. Sie hat auch in den Bereichen Medien und Medizin als Expertin für technischen Support, Produktion und die Dokumentation neuer Funktionen gearbeitet.