Zum Hauptinhalt springen

Login eines*einer Anwender*in

Die folgende Sequenz zeigt die erfolgreichen Pfade beim Login via Google oder TOTP, Fehlerfälle werden in der Gesamtübersicht nicht gezeigt

Der Login teilt sich dabei in die Ermittlung und Validierung der Identität (via Google SSO oder TOTP) und darauf folgend das Zusammensetzen der zugeordneten Kontexte und den jeweiligen Rechte.

Identitätsnachweis mittels Google SSO

Die Identifikation mittels Google SSO ist die sicherste Methode Authentifizierungsmethode. Dabei ist die Anmeldung durch die Konfiguration im Google SSO Projekt auf die @volteuropa.org Adresse beschränkt.

Der im Frontend erhaltene Identity-Token von Google wird im Backend geprüft um eine Manipulation auszuschließen. Anhand der im validen Token enthaltenen E-Mail Adresse wird die entsprechende Person durch im person-service hinterlegten E-Mail Adressen ermittelt. Dabei wird bei keinen oder nicht eindeutigen Ergebnissen die Anmeldung abgebrochen.

Identitätsnachweis mittels TOTP

Die Anmeldung via TOTP ist die alternative Authentifizierungsmethode neben dem Google SSO. Da hier keine so eindeutige Identifikation wie bei Google SSO angenommen werden kann, ist die aus diesem Login resultierende Authorisierung geschwächt. Die aus der Anmeldung resultierende Session wird entsprechend markiert und ist trotz erteilter Rechte nur für wenige Aktionen zulässig.

Die Identifikation wird in zwei Schritten umgesetzt: Zunächst wird eine E-Mail Adresse angegeben - sofern diese vorhanden ist, wird ein TOTP generiert und an diese E-Mail verschickt. Im zweiten Teil wird die E-Mail Adresse und die zugesandte PIN eingegeben. Sofern die angaben korrekt und nicht veraltet sind, wird wieder versucht eine eindeutige Person zu ermitteln.

Ermitteln der zugewiesenen Kontexte und Rechte

Es gibt zwei Quellen für Kontexte und Rechte. Primär erhalten Mitglieder ihre natürlichen Kontexte durch die Verbände, denen ihre Mitgliedschaft zugeordnet ist; entsprechend wird dazu der member-service angefragt. Mitglieder haben in ihren natürlichen Kontexten grundlegende Rechte wie z.B. Auflisten aller Mitglieder, die ebenfalls dem Verband zugeordnet sind und Anzeige deren Name. Weiter Kontexte ergeben sich aus den der Person zugeordneten Rollen; hier liefert der association-service die Information in welchen Verbänden die Person welche Rolle inne hat.

Anschießend wird pro Verband ermittelt ob natürliche Rechte oder anhand von Rollen weitere Rechte zugewiesen werden. Jeder Rolle ist dafür abhängig von den Attributen des Verbands (rechtlicher Verband ja/nein, Ebene des Verbands regional/lokal/national) eine Liste an Rechten zugeordnet. Demnach können die mit eienr Rolle einhergehenden Rechte nicht für einen Verband speziell, sondern nur pro Attribut-Set konfiguriert werden.

Der hier beschriebene Algorithmus wird sowohl beim Login als auch bei jedem folgenden Erneuern des JWT ausgeführt. Da die Logik nicht direkt angesprochen werden kann, wird an dieser Stelle als Identifikation eine aktive Session vorausgesetzt und keine weitere Identitätsüberprüfung durchgeführt.