Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Email Verification #957

Closed
12 tasks done
carlobeltrame opened this issue May 19, 2020 · 3 comments · Fixed by #1586
Closed
12 tasks done

Email Verification #957

carlobeltrame opened this issue May 19, 2020 · 3 comments · Fixed by #1586

Comments

@carlobeltrame
Copy link
Member

carlobeltrame commented May 19, 2020

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.

@carlobeltrame
Copy link
Member Author

Schätzung (4h):

@carlobeltrame carlobeltrame changed the title Email Verification Email Verification (4h) Aug 11, 2020
@chrusu
Copy link
Contributor

chrusu commented Sep 30, 2021

Email anpassen (1h)

@chrusu
Copy link
Contributor

chrusu commented Dec 9, 2021

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants