カテゴリー
プログラム 社内SE

Roundcubeに任意のユーザ名とパスワードでログインするプラグイン

レガシーな意見を振り切れず、わずか20人の小売りの会社にメールサーバを一から構築した。その際、メールの自動フォルダ振り分けができるようdovecotにsieveを追加し、その操作のため、初めてRoundcube環境も構築したのだが、これがどうして、通常のメーラーとしてもなかなか良い。

ただ、Roundcubeのログインがメールアドレスとパスワードでしかできないのが自分の環境的に使いにくい。出来れば、自分で設定したユーザ名とパスワードでログインしたいため、ファイルに設定したユーザ名とパスワードでログインできるようなプラグインを作成してみた。また、20人分の設定も面倒なので、CSVにした一覧から設定ファイルを生成するツールも作成した。

インストール方法

  1. RoundcubeのPluginsフォルダーにGithubからソースをダウンロードする
  2. Roundcubeのconfigにvirtuserpassを設定

Linuxなら以下のような感じです。

cd (Roundcubeをインストールしたフォルダ)/plugins
git clone https://github.com/y-toy/virtuserpass virtuserpass

vim ../config/config.inc.php
---
# "virtuserpass" を $config['plugins'] に追加
$config['plugins'] =  array('virtuserpass');
# もしくはファイルの一番下に以下を追加
# $config['plugins'][] =  'virtuserpass';

設定

“(Roundcubeをインストールしたフォルダ)/plugins/virtuserpass/config”の下に”config.inc.php”を作成し、以下のような設定をします。

// 主な設定
$config['virtuserpass'] = array(
	'taro'=>array('967Joe123','taro@biggy.co.jp','emailPass1234'),
	'ziro'=>array('pass1234','ziro@biggy.co.jp','emailPass5678'),
	'saburo'=>array('1234test','saburo@biggy.co.jp','emailPass7777'),
);

// オプション
$config['virtuserpass_scramble']=false;
$config['virtuserpass_email_scramble']=false;
$config['virtuserpass_allow_email_login']=true;

上の設定では、”taro”、”ziro”、”saburo”が設定してあり、”taro”さんはアカウント”taro”とパスワード”967Joe123″でログインできます。(対応するメールアドレスとパスワードは’taro@biggy.co.jp’と’emailPass1234’。)

$config[‘virtuserpass’]

ログインするアカウントの設定をします。ログインするユーザ名とパスワード、内部で変換されるメールアドレスとパスワードを設定します。

$config['virtuserpass'] = array(
	'ユーザ名' => array('パスワード', 'メールアドレス', 'メールのパスワード'),
	// いくつでも設定できます。
);

$config[‘virtuserpass_scramble’]

trueを設定するとconfigファイルのユーザのパスワードがMD5でハッシュされているものとして扱います。パスワードが外部に漏れない用のセキュリティ考慮です。後から説明するツール”makeConfigFileFromCSV.php”で設定できます。

$config[‘virtuserpass_email_scramble’]

trueを設定するとconfigファイルのメールパスワードが暗号化されているものとして扱います。ないよりましでしょの気休めセキュリティです。後から説明するツール”makeConfigFileFromCSV.php”で設定します。

$config[‘virtuserpass_allow_email_login’]

falseを設定するとメールアドレスを使ったログインが出来なくなります。

ツール

CSVファイルから一括でユーザをconifgに設定できるようにツールも作っています。

使い方

php ./makeConfigFileFromCSV.php csv-file-path [1|0] [1|0] [1|0]

引数 1 :CSVファイルのパス
引数 2 : 1を設定するとログイン時のパスワードがハッシュされて設定されます。
引数 3 : 1を設定するとメールアドレスのパスワードが暗号化されて設定されます。
引数 4 : 0を設定するとメールアドレスでのログインが出来なくなります。

Configファイル生成の仕方

  1. CSVファイルを作成します。CSVファイルは以下の4列で作成してください。ログインユーザ名,ログインパスワード, メールアドレス, メールアドレスのパスワード。このプラグインのconfigフォルダーの下にsample.csvファイルがありますので参考ください。
  2. 下のような感じでこのツールを実行します。このプラグイン用のconfigファイルが作成されます。
cd (Roundcubeをインストールしたフォルダ)/plugins/virtuserpass
php ./makeConfigFileFromCSV.php 作ったCSVファイルのパス 1 1 1

3. 作成したCSVファイルは念のため削除するか、公開されていないフォルダに移動します。