Skip to content

Email Verification #957

@carlobeltrame

Description

@carlobeltrame

max. 5h investieren
wenn möglich durch Carlo, da er sich bereits im Detail damit auseinander gesetzt hat.

Since hitobito can now act as an OAuth 2.0 / OpenID Connect Identity Provider, we should start validating the primary email when it is changed. Otherwise, a malicious user could temporarily change his email to one he doesn't own and impersonate someone else in external services.

While OAuth technically isn't really meant for authentification (but only authorization), it is very common for OAuth client applications to rely on the validity of the email address, since it is the primary exposed identifier of other OAuth services such as the ones from Google and Facebook.

While we are at it, we can also check the spelling of the email address when it is entered, e.g. using a gem. Email spelling validation was implemented in the meantime in #932

Tech-Spec

  • devise :confirmable auf Person hinzufügen
  • Migration gemäss Doku hinzufügen
  • Überprüfen ob allfällige Devise Views noch nötig sind, die von rails generate devise:views people generiert werden können
    • Die neu generierten Views (z.B. das Formular mit dem man sich ein neues Bestätigungs-Mail auslösen kann) anpassen sodass sie im hitobito-Design daherkommen
  • Bestätigung sollte noch nicht ausgelöst werden, wenn die Mailadresse einer Person geändert wird, die kein Login (kein Passwort) hat
  • Beim Passwort-Reset nach Möglichkeit auch gleich die Mailadresse bestätigen
  • Link auf Login-Seite mit dem eine neue Bestätigungs-E-Mail ausgelöst werden kann
  • Nach Bearbeiten der Mailadresse einer Person die ein Login (Passwort) hat eine Flash Message anzeigen, die darüber informiert dass die neue Mailadresse erst nach Bestätigung aktiv wird
  • Bestätigungs-E-Mail anpassen durch Einfügen einer entsprechend benannten View in app/views/devise/mailer
  • In Seeds E-Mail aller geseedeten Personen automatisch auf bestätigt setzen (confirmed_at auf now setzen)
  • Überprüfen dass API-Zugang via Service Tokens und via OAuth weiterhin funktioniert (sollte in den Tests abgedeckt sein, aber man weiss nie)
  • Überprüfen dass das Mail auch übersetzt wird gemäss Sprache die der User im UI hat

Verifizierung nach Passwort-Reset?

Nach dem Passwort-Reset die E-Mail zu bestätigen wurde in heartcombo/devise@052cbef aus devise entfernt, da es potenziell ein Sicherheitsrisiko ist. Aber wenn wir sicherstellen dass nur die Mailadresse bestätigt wird welche den Passwort-Reset bekommen hat, sollte es okay sei, da die beschriebenen Angriffe darauf basieren, die Mailadresse nach dem Senden des Passwort-Reset-Mails zu ändern.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions