Quais opções existem para alterar os nomes de usuários de forma transparente no Webmail?

7

Atualmente, temos um sistema de POP / IMAP / Webmail totalmente funcional (usando Dovecot e Roundcube) que é uma torre brilhante de perfeição em seu design pretendido. Temos milhares de clientes que pertencem a um domínio "padrão" (vamos chamá-lo de ourdomain.com) e logar com sucesso com um nome de usuário e senha. Nós temos mais alguns milhares de pessoas que possuem domínios que hospedamos, e eles logam com sucesso com seu endereço de e-mail completo e senha (chame-o customerdomain.com). Tem sido assim desde os anos 90, com muita configuração de clientes entrincheirados.

O problema agora é que as pessoas estão acostumadas a fazer login em formulários da web com um endereço de e-mail completo, pessoas que usam ourdomain.com precisam ser lembradas de entrar no webmail usando somente o nome de usuário. Esta é uma chamada que nosso departamento de suporte técnico recebe várias vezes por semana (e até eu sou culpado de fazer isso, eu simplesmente não chamo de suporte técnico sobre isso), e provavelmente deveria ser eliminado com algum tipo de solução de software.

Então, como podemos fazer com que o Roundcube ou o Dovecot reconheçam "[email protected]" como "username", sem precisar alterar o nome de usuário real de todos em nosso sistema? Mas somente faça isso se o domínio for "ourdomain.com" e não "customerdomain.com". Lembre-se de que qualquer código personalizado que fizermos precisará ser reimplementado toda vez que fizermos atualizações de segurança, e consideraríamos essa opção como a última opção possível.

TL; DR:

Precisamos dessa lógica:

if $email contains @ourdomain.com
{
    remove @ourdomain.com;
    submit to roundcube;
} else {
    submit to roundcube;
}
    
por Ernie 25.11.2014 / 20:16

2 respostas

5

Esse problema pode ser resolvido em roundcube, dovecot ou em seu backend de nome de usuário.

  1. O Roundcube tem a opção de auto anexar partes do domínio se nenhum domínio for fornecido (conforme proposto por Kondybas ). Mas não será muito útil no seu caso. É claro que você pode fazer o patch do roundcube (com linguagem PHP) para adicionar sua lógica.

  2. O Dovecot tem a opção de eliminar domínio (conforme proposto em A pesquisa de usuários do Dovecot falha ao usar o nome de usuário @ formato de domínio ), mas não pode fazer decodificação condicional (por exemplo, strip domain if domain = @ ourdomain.com). É claro que você pode fazer o patch dovecot (com linguagem C) para adicionar sua lógica.

  3. O backend de nome de usuário também é uma opção. Você não fornece o backend que você usa (SQL, LDAP, mecanismo personalizado). Posso imaginar que você tenha uma coluna de nome de usuário com dois formatos com e sem domínio . Agora, você pode converter todos os nomes de usuário sem domínio para se tornar username @ ourdomain. Você pode combinar esse processo com a opção 1 (roundcube auto append domain) para que o nome de usuário e o nome de usuário @ ourdomain possam fazer login.

por 26.11.2014 / 04:09
3

RoundCube tem uma opção chamada 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'] = '';

Se você usou o subdiretório (como ourdomain.tld/roundcube ), defina essa opção como

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

Se você usou subdomínios (como mail.domain.tld ), defina essa opção como

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

Quando o usuário fornecer seu e-mail completo como login, esse e-mail será usado sem alterações. Se a parte do domínio for omitida, RoundCube usará o domínio da URL para conclusão. Além disso, há várias opções na configuração do roundcube.

    
por 25.11.2014 / 21:21