Gastbenutzer
Siehe auch: Benutzer
Wozu dienen Gastbenutzer?
Typischerweise werden Konten für Gastbenutzer automatisch angelegt (s. Gastbenutzer anlegen), um über die Lobster Data Platform einen möglichst niedrigschwelligen inhaltlich und ggf. zeitlich begrenzten Zugriff ohne Authentifizierung auf ausgewählte Inhalte oder Funktionen bereitzustellen.
Im Bereich der Logistik kommen Konten für Gastbenutzer besonders häufig für die Sendungsverfolgung durch (End-)Empfänger in Spiel, die zu diesem Zweck nicht unmittelbar als Benutzer der Lobster Data Platform "veranlagt" werden sollen.
Der Menüeintrag Gastbenutzer ist im Hauptmenü über den Menüknoten "Verwaltung/Konten" zu finden, sofern ausreichende Berechtigungen vorliegen.
Er öffnet per Standard eine Übersicht für den Entitätstyp "Gastbenutzer" (GuestUser), der auch als Gastbenutzerkonto bezeichnet wird.
View-Name: de.lobster.scm.base.security.guest::GuestUser|listDetailsWindow
Menüknotenname: admin/accounts/guestUserOverview
Den Zugriff auf Gastbenutzer regeln die Berechtigungen für den Knoten "Verwaltung/Konten/Gastbenutzer" (administration/accounts/guestUser).
Der Menüeintrag Gastbenutzer erscheint nur, wenn die Berechtigung "Anzeigen" (show) für Gastbenutzer vorliegt.
Für den Zugriff auf Gastbenutzer sind im Allgemeinen Besitzereinschränkungen für die Firma der Session zu berücksichtigen.
Die Berechtigungen der Rolle der Session sind daher nur in Bezug auf Gastbenutzer anwendbar, für die die Firma der Session als "Besitzer" gilt oder Empfänger von entsprechenden Firmenfreigaben ist.
Ein Gastbenutzerkonto ermöglicht den Aufbau einer Lobster Data Platform-Sitzung ohne explizite Authentifizierung. Es gilt dann innerhalb der Sitzung als Benutzer der Session.
►HINWEIS◄ Wenn Gastbenutzer Schreibzugriffe auf Entitäten ausführen, wird im Feld "Ersteller" (creatorId) bzw. "Zuletzt geändert von" (lastModifierId) der negative Wert der "ID" (id) des Kontos eingetragen, um Referenzen auf Gastbenutzer und Benutzer unterscheiden zu können.
ACHTUNG
Gastbenutzer sind ein potenzielles Sicherheitsrisiko, da sie einerseits den Zugang zur Lobster Data Platform ohne explizite Authentifizierung ermöglichen und andererseits typischerweise automatisiert und ohne Freigabe durch einen Administrator "bereitgestellt" werden sollen.
Der "ungeprüfte" Zugriff sollte daher mit den folgenden Methoden streng kontrolliert werden:
Gastbenutzer sollten nur Zugriff auf hoch-restriktive Rollen erhalten, die nur den minimalen Umfang an Berechtigungen für den spezifischen Einsatzzweck zugestehen.
Soweit erforderlich können spezifische funktionale Einschränkungen für Gastbenutzer durch die Auswertung einer Typprüfung für den Benutzer der Session (z. B. in Zuordnungskriterien oder Ereignisbehandlungen) konfiguriert werden.
Die Nutzung von Gastbenutzerkonten kann und sollte über spezifische Eigenschaften (s. u.) zeitlich oder auf eine maximale Anzahl von Anmeldungen begrenzt werden.
Durch die Definition spezifischer Gastbenutzer-Restriktionen kann der Zugriff auf einzelne Entitäten für individuelle Konten präziser gesteuert werden als das für Benutzer möglich ist (s. Gastbenutzer anlegen).
Die folgende Tabelle listet wesentliche systematische Unterschiede für Gastbenutzer und Benutzer auf:
Betreff |
||
Identifikation |
"ID" (id) / "Login-Token" (loginToken) |
"ID" (id) / "Benutzername" (username) |
Referenzen in Entitätsattributen |
negativer Wert der "ID" (id) |
"ID" (id) |
Kontaktdetails |
nur "E-Mail Adresse" (emailAddress) |
komplette Adresse (s. Adressen) |
Authentifizierung |
nicht erforderlich |
erforderlich |
eindeutige "Rolle" (role) als Pflichtfeld |
Auswahl beim Login, wenn Zuordnung mehrdeutig |
|
eindeutige "Firma" (company) als Pflichtfeld |
Auswahl beim Login, wenn Zuordnung mehrdeutig |
|
Laufzeit des Kontos |
optional begrenzt per "Gültig bis" (validTo) |
unbegrenzt (nur Passwort-Ablaufdatum) |
Erlaubte Logins |
optional begrenzt per "Erlaubte Login" (maxLogins) |
unbegrenzt |
|
|
|
|
|
|
Eigene Daten |
|
|
individuelle |
|
|
Die interaktive Verwaltung für Gastbenutzer stützt sich per Standard auf eine kombinierte Ansicht (listDetailsWindow), die über den Menüeintrag Gastbenutzer im Hauptmenü geöffnet werden kann.
Der folgende Sreenshot zeigt das Standard-Ribbon (für eine Rolle mit allen relevanten Berechtigungen), darunter die Standard-Erfassungsmaske mit den Details des im Listenbereich (ganz unten) ausgewählten Gastbenutzers.
Besonderheiten im Ribbon
Neben den generischen Ribbon Buttons ( Neu , Löschen , usw.) enthält die im Screenshot sichtbare Hauptkategorie ("Allgemein") auch spezifische Ribbon Buttons für Gastbenutzer :
Unterkategorie |
Ribbon Button |
Beschreibung |
Eigene Daten |
|
Der Ribbon Button Bearbeiten (in der Unterkategorie Eigene Daten) öffnet einen einfachen XML-Editor, über den benutzerdefinierte Inhalte für ein im Listenbereich ausgewähltes Gastbenutzerkonto im Feld "Eigene Daten" (customData) eingesehen oder bearbeitet werden können.
Im Beispiel enthält das Feld "Eigene Daten" (customData) ein "Client-Objekt" mit zwei Feldern, von denen eines (randomToken) eine per Zufälliges Text-Token-Wertauflöser "gewürfelte" Zeichenfolge enthält, während das andere (created) den Zeitpunkt als "Datum mit Uhrzeit" fixiert, an dem diese Zeichenfolge erstellt wurde. Typischerweise werden solche Inhalte automatisch bereitgestellt, häufig von einen Mechanismus, der auch das gesamte Gastbenutzerkonto automatisch anlegt. |
Anmeldungen |
|
Der Ribbon Button Anzeigen öffnet ein modales Vollbild-Fenster (s. Anmeldungsverlauf) innerhalb der aktuellen View, das die Historie der Anmeldungen eines im Listenbereich ausgewählten Gastbenutzers auflistet. |
Inhalte der Standarderfassungsmaske
Die per Standard für Gastbenutzer angebotene Erfassungsmaske bildet die für direkte interaktive Pflege relevanten Inhalte der Datenstruktur für Gastbenutzer über Formularelemente ab.
Feld |
Datenfeldpfad |
Beispielwerte |
Inhalt |
Aktiv |
active |
$true (Boolean) |
Das Kennzeichen Aktiv muss gesetzt sein, damit ein Gastbenutzerkonto zum Anmelden einer Sitzung genutzt werden kann. |
Login-Token |
loginToken |
"b017f3e8-ec62-4e2b-be24-2bcac7e8d49e" |
Die als Login-Token zugewiesene Zeichenfolge wird typischerweise zufällig erzeugt. Im Kontext der Erfassungsmaske ermöglich dies der Button mit dem Schlüssel-Symbol (Tooltip: "Generieren") rechts neben dem Eingabefeld auf Anfrage. Wahlweise kann auch eine Zeichenfolge direkt eingegeben werden, anstatt ein Login-Token zu generieren. Beim Klick auf "Speichern" prüft das System, ob der angegebene Login-Token eindeutig ist, und verweigert das Aktualisieren oder Ändern eines Gastbenutzerkontos falls die Zeichenfolge bereits in Gebrauch ist. Soll ein neues Gastbenutzerkonto als Kopie eines bestehenden erstellt werden, muss also vor dem Speichern der kopierte Login-Token ersetzt werden. Der Login Token (Pflichtfeld) ist der Schlüssel, der Gastbenutzer beim Anmelden einer Sitzung identifiziert. Sofern er nicht beim Starten des Clients per URL-Parameter (loginToken) bereitgestellt wird, muss er in der Login-Maske für Gastbenutzer als "Login Schlüssel" eingegeben oder eingefügt werden. |
Firma |
company |
"ZWORX Ltd.", "Versteckte Firma" |
Einfachauswahl für die vordefinierte Firma der Session für jedes folgende Login mit dem Login-Token. |
►HINWEIS◄ Die Beschriftung "Versteckte Firma" erscheint für Firmen, die bereits zugewiesen sind und deshalb im Kontext der aktuellen Sitzung zwar entfernt aber danach nicht wieder ausgewählt werden könnten. ►WICHTIG◄ Ein Gastbenutzerkonto, das sich auf eine "Versteckte Firma" bezieht, kann zwar geändert aber nicht erstellt werden. Dies ist vor allem beim Kopieren eines bestehenden Gastbenutzerkontos relevant. Ggf. müssen alle versteckten Firmen entfernt werden, damit das kopierte Gastbenutzerkonto gespeichert werden kann. Für den Zugriff auf Firmen/Mandanten für die Firma-Auswahl für Gastbenutzer sind per Standard folgende Szenarien zu unterscheiden:
|
|||
Rolle |
role |
"Guest", "Versteckte Rolle" |
Einfachauswahl für die Rolle der Session für jedes folgende Login mit dem Login-Token. |
►HINWEIS◄ die Beschriftung "Versteckte Rolle" erscheint für Rollen, die bereits zugewiesen sind und deshalb im Kontext der aktuellen Sitzung zwar entfernt aber danach nicht wieder ausgewählt werden könnten. Dies betrifft alle Rollen, auf die mit der Rolle der Session kein Zugriff besteht. ►WICHTIG◄ Ein Gastbenutzerkonto, das sich auf eine "Versteckte Rolle" bezieht, kann zwar geändert aber nicht erstellt werden. Dies ist vor allem beim Kopieren eines bestehenden Gastbenutzerkontos relevant. Ggf. müssen alle versteckten Rollen entfernt werden, damit das kopierte Gastbenutzerkonto gespeichert werden kann. |
|||
Sprache |
locale |
"Deutsch" (de) |
Einfachauswahl für die Aktuelle Sprache für jedes folgende Login mit dem Login-Token. |
E-Mail-Adresse |
emailAddress |
"mika.spilikins@doma.in" |
Pflichtfeld für die Angabe einer Zeichenfolge, deren Plausibilität als E-Mail-Adresse nicht durch Validierer überprüft wird. ►HINWEIS◄ Typischerweise werden Gastbenutzer per Automatisierung angelegt (s. Gastbenutzer anlegen), wobei der Login-Token erzeugt und beim Erstellen des Kontos an die angegebene E-Mail-Adresse bereitgestellt wird. |
Erlaubte Logins |
maxLogins |
5 |
Das Feld Erlaubte Logins definiert, wie oft das Gastbenutzerkonto maximal verwendet werden kann, um eine Sitzung anzumelden. Die Anzahl 0, wird als "unbeschränkt" interpretiert. |
Anzahl Logins |
loginCount |
3 |
Das schreibgeschützte Feld Anzahl Logins zeigt die bereits ausgeführten ("verbrauchten") Anmeldungen für das Gastbenutzerkonto an. Anmeldungen sind nur erlaubt, solange die Anzahl Logins den Grenzwert (>0) für Erlaubte Logins noch nicht erreicht hat. bei Bedarf kann dieses Limit auch nachträglich angepasst werden. |
Max. gleichzeitige Sitzungen |
maxConcurrentSessions |
1 |
Diese Einstellung legt fest, wie viele Lobster Data Platform -Sitzungen ein Gastbenutzer gleichzeitig nutzen darf. Beim jedem Anmeldeversuch wird diese Beschränkung überprüft. Überschreitet ein Benutzer mit einer zusätzlichen Sitzung das persönliche Limit, dann wird die Anmeldung der neuen Sitzung nur vollzogen, wenn der Benutzer zustimmt, dafür eine bestehende Sitzung abzumelden. ►HINWEIS◄ Die Eingabe ist auf Werte >0 beschränkt. Der Standardwert lautet 1. |
Gültig bis |
validTo |
22.05.2025 22:00 (UTC) |
Im Feld Gültig bis kann die Nutzungsdauer des Gastbenutzerkontos zeitlich befristet werden, indem ein absoluter Zeitpunkt als "Datum mit Uhrzeit" (DateTime) festgelegt wird, nach dem für den Login Token keine erneute Anmeldung zulässig sein soll. Ohne Angaben in diesem Feld, kann der Login Token ohne zeitliche Beschränkung für Anmeldungen genutzt werden. |
Anmelden als Gastbenutzer
Typischerweise erhalten Gastbenutzer Zugang zur Lobster Data Platform über E-Mails mit einem Link, der den Login Token als URL-Parameter beinhaltet, und z. B. so aussehen könnte:
https://platform.doma.in?loginToken=b017f3e8-ec62-4e2b-be24-2bcac7e8d49e
Alternativ kann ein Gastbenutzer-Login aber auch interaktiv ausgeführt werden:
Ausgehend von der Standard-Anmeldung (für Benutzer), muss über das Zahnrad-Symbol (rechts oben) ein Kontextmenü geöffnet werden. Das Auswählen des Menüeintrags Gast-Login, wechselt zum Login für Gastbenutzer (s. unten). Umgekehrt ermöglicht dasselbe Kontextmenü auch den Wechsel zurück zum Login für Benutzer. |
|
Für das Login für Gastbenutzer wird nur der Login Schlüssel benötigt, der zum Anmelden in das betreffenden Textfeld eingegeben oder eingefügt werden muss. Dei eingegebene Zeichenfolge muss exakt (unter Berücksichtigung der Groß-/Kleinschreibung) mit dem Wert im Feld "Login Token" für ein aktives Gastbenutzerkonto übereinstimmen, damit die Anmeldung funktionieren kann. Ob sie zugelassen wird, kann von weiteren Einstellungen für das Konto (s. Tabelle oben) abhängen. |
|
Konfigurationsbeispiel
In einer beispielhaften Konfiguration sollen Gastbenutzer verwendet werden, um einen eingeschränkten Lesezugriff auf bestimmte Sendungen zu ermöglichen. Dabei sollen folgende Restriktionen individuell je Gastbenutzerkonto "parametriert" werden können:
Einerseits sollen nur Sendungen in einem bestimmten Zeithorizont vor dem aktuellen Zeitpunkt Änderungen angezeigt werden.
Andererseits soll eine Filterbedingung für den Wert eines Textattributs "Werk" angegeben werden können, das die "Zuständigkeit" des Gastbenutzers für die Sendung abgrenzt.
Weitere Einschränkungen für die Sichtbarkeit von Sendungen ergeben sich aus dem Kontext der im Gastbenutzerkonto zugewiesenen Firma über Besitz, Beteiligung bzw. Effektive Freigaben.
Den betreffenden Gastbenutzern wird eine Rolle zugewiesen, die ausschließlich die folgenden Berechtigung zugesteht:
Geschäftsobjekte / Sendungen / Lesen
Geschäftsobjekte / Sendungen / Details anzeigen
Außerdem wird eine spezielle Sendungsübersicht eingerichtet (s. Eigene Übersichten), deren Bedingung die genannten Parameter für das jeweilige Gastbenutzerkonto berücksichtigen muss. Diese Parameter werden zu diesem Zweck als "Eigene Daten" im Gastbenutzerkonto hinterlegt und dazu in einem Portal erfasst, das ausgehend von der Gastbenutzerübersicht mit einer Einfachauswahl für einen bestimmten Gastbenutzer per Ribbon-Button (Befehl "Portale > Portal öffnen") geöffnet werden kann:
Beim Öffnen des Portals werden die Daten des ausgewählten Gastbenutzers automatisch übergeben, wenn das Formulardesign einen Container mit dem Datenfeld "loadedItem" enthält. Hier enthält dieser Container die Elemente ID (Datenfeld: id), Login-Token (loginToken) und E-Mail (emailAddress).
Unterhalb kann ein Filter für das Werk (Datenfeld: PLANT_FILTER) per Auswahlfeld/Combobox (mit den Schlüsselwerten A120, A121, A125, A127 und A12_) ausgewählt werden. Der gewählte Wert wird in der Bedingung für das Textattribut "Werk" (t_PLANT.value.text) der Eigenen Übersicht per LIKE verglichen.
Daneben muss ein Datumswert für ab Stichtag (Datenfeld: MINDATE) ausgewählt werden, der den Zeithorizont rückwärts abgrenzt und in der Bedingung der Eigenen Übersicht per "größer oder gleich" mit dem Änderungsdatum (lastModified) verglichen wird.
Die Filterkriterien sind in einem Container "filters" (nicht sichtbar im Screenshot) zusammengefasst, der einen einfachen Zugriff auf die Kombination in der weiteren Konfiguration ermöglicht (s. unten).
Beim Klick auf den Button Freigabe erstellen wird per Verhalten ein Eigenes Aktionsevent "Gastbenutzer - Daten setzen" (SET_GUEST_USER_DATA) ausgelöst, auf das die folgende Ereignisbehandlung "lauscht":
Da das Auslösende Ereignis ausschließlich aus dem Portal ausgelöst werden kann, beschränkt sich die Prüfende Regel hier auf ein Sub-Kriterium, das den Kontext für den Zugriff auf die Funktion abgrenzt (Firmenregel, Rollenregel).
Sämtliche Aktionen sollen im Kontext des ausgewählten Gastbenutzerkontos ausgeführt werden. Dieser wird hier innerhalb einer Ausführen mit Aktion über die Variable "formData" (Typ "Client Objekt") erst aus den Daten des Portals ermittelt. Hierzu wird der Container "loadedItem", der die Auswahl repräsentiert an einen Eingabeobjekt (Typsicher) Wertauflöser weitergegeben, der dann das Gastbenutzerkonto-Objekt zurückgibt.
Per Setze Wert Aktion erfolgt schließlich die Zuweisung an das Objekt-Feld "Eigene Daten" (customData) des Gastbenutzerkontos. Der Container "filters" aus der Variablen "formData" beinhaltet die Einstellungen aus dem Portal.
Die Änderungen später speichern Aktion sorgt dafür, dass Änderung für das Objekt gespeichert wird, obwohl es nur über Ausführen mit hinzugezogen wurde.
Das Ergebnis für eine konkrete Zuweisung kann dann z. B. über den "Eigene Daten > Bearbeiten" Button in der Gastbenutzer-Übersicht überprüft werden:
In der Bedingung für die Eigene Übersicht "Sendungsübersicht (Gastbenutzer)" werden die Filterkriterien dann wie folgt eingebunden:
Das Textattribut "Werk" (t_PLANT.value.Text) wird per LIKE mit der Auswahl für "Werk"(PLANT_FILTER) verglichen.
Dazu wird zunächst der Benutzer der Session identifiziert und anschließend per Eingabeobjekt (Typsicher) dessen Gastbenutzerkonto gelesen.
Dessen Objekt-Feld "Eigene Daten" (customData) liefert das per Portal generierte Objekt (object) mit den Feldern (property) PLANT_FILTER (string) und MINDATE (DateTime).
Im Bild greift der Objekt-Feld Wertauflöser auf PLANT_FILTER zu, um den gespeicherten Vergleichswert zu lesen.
Der Zugriff auf MINDATE für den Abgleich mit dem lastModified-Zeitstempel (unten) erfolgt analog zu dieser Vorgehensweise.
Beispiele aus der Anwendung:
Beispielansicht für einen Gastbenutzer, der Daten für alle Werke der Gruppe "A-12" (Filter: [Werk] LIKE 'A12_') sehen darf, die nach dem 01.06.2019 geändert wurden.
Dagegen erhält ein Gastbenutzer z. B. das folgende Ergebnis, wenn er nur Werk "A-12-0" sehen darf, aber dafür Sendungen mit Änderungsdatum seit 01.01.2018: