Use UUID instead of username to identify users #17

Open
opened 2026-01-30 18:18:42 +00:00 by peio · 0 comments
Owner

Documentation

Prévenir :

  • En mode username
    • possibilité que les usernames changent => pas robuste
    • Il est de la résponsabilité de l'admin de ne pas avoir de username commençant par "app:"
  • En mode uuid
    • les répertoires Dovecot (/srv/mail/) sont moins lisibles

Où ça impacte concrètement

Tu as 3 endroits :

  1. Résolution Keycloak (mailcloak)
  • mode username : lookup par preferred_username / endpoint “users?username=…”
  • mode uuid : lookup direct par sub / endpoint “users/{id}” (ou un claim stable)
  1. Cible d’alias dans la DB
  • target_user (string) = username ou uuid, selon config
  • la colonne peut rester la même (target_user_ref par ex), et tu changes juste l’interprétation
  1. Nom de la mailbox Dovecot
  • ce que Dovecot reçoit comme %u (RCPT final / user) doit matcher ton “user_ref”
  • donc ton socketmap renverra user_ref@<domain_canonique> ou quelque chose qui donne %u = user_ref

Script de migration

  • Après avoir checké que les username <=> UUID sont tous valides
  • Changement dans la DB
  • Renommage des répertoires vmail
### Documentation Prévenir : - En mode username - possibilité que les usernames changent => pas robuste - Il est de la résponsabilité de l'admin de ne pas avoir de username commençant par "app:" - En mode uuid - les répertoires Dovecot (/srv/mail/<uuid>) sont moins lisibles ### Où ça impacte concrètement Tu as 3 endroits : 1. Résolution Keycloak (mailcloak) - mode `username` : lookup par `preferred_username` / endpoint “users?username=…” - mode `uuid` : lookup direct par `sub` / endpoint “users/{id}” (ou un claim stable) 2. Cible d’alias dans la DB - `target_user` (string) = username ou uuid, selon config - la colonne peut rester la même (`target_user_ref` par ex), et tu changes juste l’interprétation 3. Nom de la mailbox Dovecot - ce que Dovecot reçoit comme `%u` (RCPT final / user) doit matcher ton “user_ref” - donc ton socketmap renverra `user_ref@<domain_canonique>` ou quelque chose qui donne `%u = user_ref` ### Script de migration - Après avoir checké que les username <=> UUID sont tous valides - Changement dans la DB - Renommage des répertoires vmail
peio added this to the mailcloak project 2026-01-30 18:18:42 +00:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: peio/mailcloak#17
No description provided.