Welche Optionen gibt es, um Benutzernamen in Webmail transparent zu ändern?

7

Derzeit verfügen wir über ein voll funktionsfähiges POP / IMAP / Webmail-System (mit Dovecot und Roundcube), das in seinem beabsichtigten Design ein glänzender Turm der Perfektion ist. Wir haben Tausende von Kunden, die zu einer "Standard" -Domain gehören (ich nenne sie ourdomain.com) und sich erfolgreich mit einem Benutzernamen und einem Passwort anmelden. Wir haben einige Tausend weitere, die Domains besitzen, die wir hosten, und die sich erfolgreich mit ihrer vollständigen E-Mail-Adresse und ihrem Passwort anmelden (nennen Sie es customerdomain.com). Dies ist seit den 1990er Jahren so, mit vielen fest verwurzelten Kundenkonfigurationen.

Das Problem ist nun, dass Benutzer daran gewöhnt sind, sich bei Webformularen mit einer vollständigen E-Mail-Adresse anzumelden . Benutzer , die ourdomain.com verwenden, müssen daran erinnert werden, sich nur mit ihrem Benutzernamen bei Webmail anzumelden . Dies ist ein Anruf, den unsere Abteilung für technischen Support mehrmals pro Woche erhält (und selbst ich bin schuld daran, ich rufe einfach nicht den technischen Support an) und sollte wahrscheinlich mit einer Art Softwarelösung beseitigt werden.

Wie können wir also entweder Roundcube oder Dovecot dazu bringen, "[email protected]" stattdessen als "username" zu erkennen, ohne den tatsächlichen Benutzernamen aller in unserem System ändern zu müssen? Aber nur tun, wenn die Domäne „ourdomain.com“ und nicht „customerdomain.com“. Beachten Sie, dass jede benutzerdefinierte Codierung, die wir durchführen, jedes Mal neu implementiert werden muss, wenn wir Sicherheitsupgrades durchführen, und wir würden diese Option nur als die letztmögliche Wahl betrachten.

TL; DR:

Wir brauchen diese Logik:

if $email contains @ourdomain.com
{
    remove @ourdomain.com;
    submit to roundcube;
} else {
    submit to roundcube;
}
Ernie
quelle
Jep. Lösung ist auch da.
Andrew Schulman
2
Nein, es ist kein Betrug. Ich habe diese Frage gesehen, bevor ich sie gestellt habe. Es ist eigentlich die umgekehrte Situation. Das Anmelden nur mit dem Benutzernamen der E-Mail-Adresse ist kein Problem - wenn die Adresse [email protected] vorhanden ist. Wenn es sich um [email protected] handelt, müssen sie die vollständige E-Mail-Adresse verwenden. Kunden sollten sich entweder mit Benutzername = Benutzer oder Benutzername = [email protected] anmelden können.
Ernie

Antworten:

5

Dieses Problem kann entweder in Roundcube, Dovecot oder Ihrem Benutzernamen-Backend behoben werden.

  1. Roundcube hat die Option, Domain-Teile automatisch anzuhängen, wenn keine Domain bereitgestellt wird (wie von Kondybas vorgeschlagen ). Aber es wird in Ihrem Fall nicht allzu nützlich sein. Natürlich können Sie Roundcube (mit PHP-Sprache) patchen, um Ihre Logik hinzuzufügen.

  2. Dovecot hat die Option, die Domain zu entfernen (wie in der Dovecot-Benutzersuche vorgeschlagen, schlägt fehl, wenn das Format "Benutzername @ Domain" verwendet wird ), kann jedoch kein bedingtes Strippen durchführen (z. B. Domain entfernen, wenn Domain = @ ourdomain.com). Natürlich können Sie Dovecot (mit der Sprache C) patchen, um Ihre Logik hinzuzufügen.

  3. Benutzername-Backend ist ebenfalls eine Option. Sie geben nicht das Backend an, das Sie verwenden (entweder SQL, LDAP, benutzerdefinierte Engine). Ich kann mir vorstellen, dass Sie eine Benutzernamensspalte haben, die zwei Formate mit und ohne Domain hat . Jetzt können Sie alle Benutzernamen konvertieren, ohne dass die Domain zu Benutzername @ unsererDomäne wird. Sie können diesen Vorgang mit Option 1 (Roundcube Domain automatisch anhängen) kombinieren, sodass sich entweder Benutzername und Benutzername @ ourdomain anmelden können.

masegaloeh
quelle
1
Option Nummer drei ist eine, die ich noch nie in Betracht gezogen hatte, danke. Das Ändern der Software an unsere Anforderungen könnte auch technisch eine Option sein, aber die Notwendigkeit häufiger Sicherheitsupdates macht solche Dinge zu einem großen Problem. Das Hinzufügen von Benutzern mit demselben Postfach ist eine weitaus elegantere Lösung.
Ernie
3

RoundCube habe eine Option namens username_domain

// Automatically add this domain to user names for login
// Only for IMAP servers that require full e-mail addresses for login
// Specify an array with 'host' => 'domain' values to support multiple hosts
// Supported replacement variables:
// %h - user's IMAP hostname
// %n - hostname ($_SERVER['SERVER_NAME'])
// %t - hostname without the first part
// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
// %z - IMAP domain (IMAP hostname without the first part)
// For example %n = mail.domain.tld, %t = domain.tld
$config['username_domain'] = '';

Wenn Sie ein Unterverzeichnis (wie ourdomain.tld/roundcube) verwendet haben, setzen Sie diese Option auf

$config['username_domain'] = '%n';

Wenn Sie Subdomains (wie mail.domain.tld) verwendet haben, setzen Sie diese Option auf

$config['username_domain'] = '%t';

Wenn der Benutzer seine vollständige E-Mail-Adresse als Login angibt, wird diese E-Mail-Adresse ohne Änderungen verwendet. Wenn der Domain-Teil weggelassen wird, RoundCubewird die URL-Domain zum Abschluss verwendet. Außerdem gibt es in der Konfiguration des Roundcube eine Reihe netter Optionen.

Kondybas
quelle
1
Nein, das ist rückwärts. Kunden , die unsere Domain verwenden Sie nicht schließen das @ ourdomain.com Teil, sie melden Sie sich einfach mit „myuser“. Kunden mit Hosting für virtuelle Domains geben ihre vollständige E-Mail-Adresse an.
Ernie