Änderungen von Dokument Datenbank-Authentifikator


Von Version 26.1
bearbeitet von MKO
am 20.07.2023, 19:47
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 1.1
bearbeitet von MKO
am 30.05.2023, 12:28
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -1,210 +1,0 @@
1 -Für Verwendung des Datenbank-Authentikators ist mindestens die {{formcycle/}}-Version {{version major="7" minor="4" patch="0"/}} nötig.
2 -
3 -{{content/}}
4 -
5 -
6 -Das kostenpflichtige //Datenbank-Authentikator-Plugin// stellt eine Möglichkeit zur Verfügung eine Anmeldung an einem Formular in Form einer Datenbank-Abfrage durchzuführen. Hierbei kann eine HTML-Seite inkl. Validatoren, Fehlertexten und die eigentliche Anbindung der Datenbank individualisiert werden. Nach dem Absenden der HTML-Seite werden für die Anmeldung die Eingaben der Login-Seite als Platzhalter für die Datenbank-Abfrage bereitgestellt. Auch steht die Möglichkeit zur Verfügung, bei nicht gefundenem Datensatz den "Login" dennoch zu erlauben. Hierbei stehen im Formular dann ausschließlich die Daten aus der Login-Seite zur Verfügung. Ferner ist es möglich eine Login-Sperre zu definieren, welche bei mehrfacher Fehlereingabe den Login anhand eines der Eingabefelder temporär sperrt.
7 -
8 -
9 -== Konfiguration ==
10 -
11 -=== Anmeldeseite ===
12 -
13 -{{figure image="Login_de.png"}}
14 -Konfiguration der Login-Seite
15 -{{/figure}}
16 -
17 -; Seitentitel
18 -: Gibt den HTML-Title an. Es steht die Verwendung von i18n-Variablen zur Verfügung.
19 -
20 -; Seiteninhalt
21 -: Hier kann der HTML-Inhalt der eigentlichen Login-Seite gepflegt werden. Dieser wird beim Ausliefern automatisch in einen HTML-Rahmen und innerhalb eines FORM-Elements gerendert. Hierbei ist zu beachten, dass alle Eingabefelder welche innerhalb der Datenbank-Abfrage verwendet werden sollen ein name-Attribute besitzen um diese mittels Platzhalter referenzieren zu können. Weiterführende Hilfen finden Sie im Kapitel "Konfigurationsmöglichkeiten der Login-Seite".
22 -
23 -; Fehlermeldung bei nicht gefundenem Datensatz
24 -: Ermöglicht die Änderung der Fehlermeldung, wenn bei der Datenbank-Abfrage kein Datensatz gefunden wurde. Es steht die Verwendung von i18n-Variablen zur Verfügung.
25 -
26 -; Fehlermeldung bei gesperrtem Login
27 -: Ermöglicht die Änderung der Fehlermeldung, wenn der Login temporär gesperrt wurde. Es steht die Verwendung von i18n-Variablen zur Verfügung. Ferner wird das Datum, bis wann der Login gesperrt wurde als Variable zur Verfügung gestellt und kann über die [[Java-Message-Formatierung>>https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/MessageFormat.html]] eingefügt und in dessen Ausgabeformat angepasst werden.
28 -
29 -=== Datenbank ===
30 -
31 -{{figure image="DB_de.png"}}
32 -Konfiguration der Datenbank-Anbindung inkl. Abfrage
33 -{{/figure}}
34 -
35 -
36 -; JDBC URL
37 -: Definiert die JDBC URL der anzubindenden Datenbank
38 -
39 -; Benutzername
40 -: Definiert den Benutzernamen für den Login an der Datenbank
41 -
42 -; Passwort
43 -: Definiert das Passwort für den Login an der Datenbank
44 -
45 -; Datenbank-Abfrage
46 -: Definiert die eigentliche Datenbank-Abfrage zur Ermittlung eines Datensatzes basierend auf den Eingaben der Login-Seite. Diese Eingaben stehen über Platzhalter in Form von {{code language="none"}}[%<html-name-attribute>%]{{/code}} zur Verfügung. Sobald eine Datenbank-Zeile bei von dieser Abfrage zurückgegeben wird, gilt der Login als erfolgreich.
47 -
48 -; Erlaube Login ohne gefundenen Datenbank-Eintrag
49 -: Ist diese Option aktiv wird der Login auch ohne gefundenen Datenbank-Eintrag erlaubt. Hierbei stehen ausschließlich lediglich die Daten der Login-Seite als Benuterattribute zur Verfügung.
50 -
51 -=== Login-Sperre ===
52 -
53 -{{figure image="Lock_de.png"}}
54 -Konfiguration der Login-Sperre
55 -{{/figure}}
56 -
57 -; Eingabe-Feld für die Sperr-Identifikation
58 -: Definiert den Namen des HTML-Feldes, welches für die Prüfung der Login-Sperre herangezogen wird. Hierbei werden die fehlgeschlagenen Login-Versuche mit dem Wert dieses Feldes gespeichert und bei Überschreiten einer definierten Anzahl ein Login mit diesem temporär verhindert.
59 -
60 -; Maximale Login-Versuche
61 -: Definiert nach wie vielen fehlerhaften Login-Versuchen mit dem selben Wert dieser temporär gesperrt werden soll.
62 -
63 -; Sperrdauer (in Minuten)
64 -: Definiert die Dauer der temporären Login-Sperre
65 -
66 -; Eingaben beim Auftreten der Login-Sperre deaktivieren
67 -: Ist diese Option aktiviert werden alle Eingabefelder der Login-Seite beim Eintreten der Login-Sperre deaktiviert. Hierbei sind dann keine weiteren Eingaben mehr möglich.
68 -
69 -=== Zuordnung von Benutzerattributen ===
70 -
71 -{{figure image="Attributes_de.png"}}
72 -Zuordnung der Benutzer-Attribute
73 -{{/figure}}
74 -
75 -In dieser Liste wird die Zuordnung der ermittelten Werte zu den Stanard-Benutzerattributen angeboten. Hierbei können sowohl die Werte der Datenbank-Abfrage in Form der Spalten-Namen als auch die Werte der Login-Seite in Form der name-Attribute verwendet werden. Überschneiden sich diese Namen wird der Wert der Datenbank-Abfrage bevorzugt.
76 -
77 -== Konfigurationsmöglichkeiten der Login-Seite ==
78 -
79 -Für die Konfiguration der Login-Seite stehen neben den Standards HTML, JavaScript und CSS auch weitere Möglichkeiten zur Verfügung. So wird hier unter anderem die Bibliothek [[jQuery>>https://jquery.com/]] angeboten. Zu beachten ist, dass die Login-Seite für das Absenden einen submit-Button benötigt und ein Container mit der id "error" für die Anzeige von Fehlernachrichten bei nicht erfolgreichem Login angedacht ist.
80 -
81 -=== Validierung ===
82 -
83 -Für eine Client-seitige Validierung der Eingaben wird standardmäßig die Bibliothek [[Parsley.js>>https://parsleyjs.org]] eingebunden. Dies ermöglicht es mittels Attributen an den Eingabefeldern z.B. deren Ausfüllung zu verpflichten oder auch ein bestimmtes Format zu erzwingt. Hierbei wird der Absende-Button erst bei erfolgreicher Validierung aller Eingabe-Elemente aktiviert. Eine weiterführende Liste der Möglichkeiten von Parsley.js finden Sie in der entsprechenden [[Dokumentation>>https://parsleyjs.org/doc/index.html]].
84 -
85 -=== Weiter Attribute ===
86 -
87 -{{figure image="PW_hidden.png"}}
88 -Passwortfeld mit Anzeige-Option
89 -{{/figure}}
90 -
91 -
92 -{{figure image="PW_show.png"}}
93 -Sichtbares Passwort
94 -{{/figure}}
95 -
96 -Zusätzlich zu der Definition der Validierung stehen noch folgende Plugin-spezifische HTML-Attribute zur Verfügung:
97 -
98 -; data-keep-enabled
99 -: Verhindert das Deaktivieren des Absende-Knopfs bei nicht validen Eingaben und das Deaktivieren einzelner Eingabefeldern bei Auftreten der Login-Sperre.
100 -
101 -; data-show-type
102 -: Ermöglicht es an einem Passwort-Feld einen Input-Typen zu definieren zu welchem mittels eines Auge-Symbols umgeschaltet werden kann. Dies ermöglicht es zu einer lesbaren Darstellungsform der Eingabe umzuschalten.
103 -:
104 -; data-custom-tooltip
105 -: Ermöglicht die Angabe der ID eines HTML-Containers dessen Inhalt als Tooltip für Element mit diesem Attribut verwendet wird.
106 -
107 -=== Styling (CSS) ===
108 -
109 -Das Plugin liefert für das Styling der Login-Seite bereits Standard-Definitionen für das Layout sowie für Eingabe-Elemente, den Login-Button und Fehleranzeigen aus. Diese können innerhalb der Konfiguration der Login-Seite in einem HTML-style-Tag nach Bedarf überschrieben werden. Innerhalb des HTMLs stehen ferner folgende Klassen zur Verfügung:
110 -
111 -; heading
112 -: Definiert einen DIV-Container für die Verwendung als Oberüberschrift.
113 -
114 -; row
115 -: Definiert einen DIV-Container als einzelne Zeile der Login-Seite. Dies ist als Container für das Label, die Beschreibung und den Fehlertext zu einem ebenfalls enthaltenen Eingabefeld vorgesehen.
116 -
117 -; desc
118 -: Definiert einen DIV-Container innerhalb einer Zeile als Beschreibung.
119 -
120 -; errors
121 -: Definiert einen DIV-Container für die Anzeige von Fehlern.
122 -
123 -=== Internationalisierung ===
124 -
125 -In der Konfiguration des Seitentitels, des Seiteninhalts sowie in den Fehlermeldungen können die Mandant-spezifischen I18N-Variablen verwendet werden. Diese sind in Form des Platzhalters {{code language="none"}}[%I18N.<Wert>%]{{/code}} anzugeben und werden entsprechend der Aufruf-Sprache des Formulars ersetzt. Die Pflege dieser Variablen finden Sie [[hier>>Formcycle.UserInterface.FilesAndTemplates.I18nVariables]].
126 -
127 -=== Beispiel-HTML ===
128 -
129 -{{code language="html"}}
130 -<script>
131 - <!-- Setzt das maximal auswählbare Daten des Feldes 'GebDatum' auf das aktuelle Daten -->
132 - $(document).ready(function() {
133 - $('#GebDatum').prop('max', new Date().toLocaleDateString('fr-ca'));
134 - });
135 -</script>
136 -
137 -<!-- Definition eines Headers inkl. einer Grafik -->
138 -<header>
139 - <img alt="XIMA" src="https://www.xima.de/typo3conf/ext/xima_sitepackage/Resources/Public/icons/logo.svg" style="height: 30px;" />
140 -</header>
141 -
142 -<!-- Definition einer Oberüberschrift -->
143 -<div class="heading">
144 - <h2>Anmeldung</h2>
145 - <div>Um sich zu authentifizieren, geben Sie bitte folgende Daten ein:</div>
146 -</div>
147 -
148 -<!-- Definition einer Eingabe-Zeile inkl. Label, Beschreibung und des Containers für Fehlermeldungen -->
149 -<div class="row">
150 -
151 - <!-- Verwendung von I18N-Variablen -->
152 - <label for="KNr">[%I18N.customerNr%]</label>
153 - <div class="desc">[%I18N.customerNr.desc%]</div>
154 -
155 - <!-- Definition des Eingabe-Elements als Passwort-Feld inkl. Validierung auf Ausfüllung, Länge und gegen ein definiertes Pattern. -->
156 - <!-- Ebenso wird die Anzeige des Passworts als Text ermöglicht. Ferner wird der Container für etwaige Validierungsfehler angegeben und ein automatisches Ausfüllen durch den Browser deaktiviert. -->
157 - <input autocomplete="new-password" data-parsley-errors-container="#KNrErrors" data-show-type="text" id="KNr" maxlength="10" minlength="10" name="KNr" pattern="[A-Z][0-9]{9}" required="" type="password" />
158 - <div id="KNrErrors"></div>
159 -</div>
160 -
161 -<div class="row">
162 - <label for="GebDatum">Geburtsdatum</label>
163 - <div class="desc">Bitte geben Sie Ihr Geburtsdatum im Format TT.MM.JJJJ ein.</div>
164 - <input autocomplete="new-password" data-parsley-errors-container="#GebDatumErrors" id="GebDatum" name="GebDatum" placeholder="TT.MM.JJJJ" required="" type="date" />
165 - <div id="GebDatumErrors"></div>
166 -</div>
167 -
168 -<div class="row">
169 - <label for="EMail">E-Mail-Adresse</label>
170 - <div class="desc">Geben Sie hier Ihre E-Mail-Adresse passend zu Ihren Vertragsdaten ein.</div>
171 - <input autocomplete="new-password" data-parsley-errors-container="#EMailErrors" id="EMail" required="" type="email" />
172 - <div id="EMailErrors"></div>
173 -</div>
174 -
175 -<!-- Definition des Containers für Fehlermeldungen bei nicht erfolgreichem Login -->
176 -<div class="errors" id="errors"></div>
177 -
178 -<div class="row">
179 - <!-- Definition des Absende-Buttons -->
180 - <input type="submit" value="Anmelden" />
181 -</div>
182 -
183 -<!-- Definition einer Footers -->
184 -<footer>
185 - <div style="display: inline-block;">
186 - <a href="https://www.xima.de/" target="_blank">XIMA</a>
187 - </div>
188 -</footer>
189 -{{/code}}
190 -
191 -
192 -== Versionshistorie ==
193 -
194 -=== 1.1.0 ===
195 -
196 -* Standard-Validierungs-Events (Parsley) vom Formular entfernt. Diese können damit flexiebler am eigentlichen HTML-Element hinterlegt werden.
197 -* Tippy.js für Tooltips hinzugefügt
198 -* Eingbau eines Mechanismuses der automatisch Tooltips für Elemente erzeugt.
199 -* JavaScript-Callback für das Ausführen von Script vor dem internen hinzugefügt (preInitLoginPage())
200 -* Kleinere Anpassungen am Internationalisierungs-Mechanismus
201 -* Kleinere CSS Anpassungen
202 -
203 -=== 1.0.1 ===
204 -
205 -* Anpassung an der Übergabe der verwendeten Formular-Sprache innerhalb des Authentifikators
206 -* Unterstützung von Mandant-spezifischen Platzhaltern innerhalb der Konfiguration der Login-Seite erweitert
207 -
208 -=== 1.0.0 ===
209 -
210 -* Initialer Release
Attributes_de.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.mko
Größe
... ... @@ -1,1 +1,0 @@
1 -24.8 KB
Inhalt
Attributes_en.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.mko
Größe
... ... @@ -1,1 +1,0 @@
1 -22.2 KB
Inhalt
DB_de.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.mko
Größe
... ... @@ -1,1 +1,0 @@
1 -26.7 KB
Inhalt
DB_en.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.mko
Größe
... ... @@ -1,1 +1,0 @@
1 -25.4 KB
Inhalt
Lock_de.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.mko
Größe
... ... @@ -1,1 +1,0 @@
1 -15.4 KB
Inhalt
Lock_en.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.mko
Größe
... ... @@ -1,1 +1,0 @@
1 -13.4 KB
Inhalt
Login_de.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.mko
Größe
... ... @@ -1,1 +1,0 @@
1 -49.3 KB
Inhalt
Login_en.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.mko
Größe
... ... @@ -1,1 +1,0 @@
1 -45.8 KB
Inhalt
PW_hidden.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.mko
Größe
... ... @@ -1,1 +1,0 @@
1 -1.9 KB
Inhalt
PW_show.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.mko
Größe
... ... @@ -1,1 +1,0 @@
1 -3.0 KB
Inhalt