2015年3月7日 星期六

Roundcube 整合 LDAP Addressbook 通訊錄,增加 LINE、Wechat schema

由上次已經有發表一篇 CentOS 6.5 安裝 Roundcube WebMail ,最近開始有時間在著墨在這一塊,並且將 LDAP 也加入整合

 

首先了解 Roundcube Addressbook 支援的類型有 LDAP、SQL、CardDAV

 

此篇主要記錄的是將 Roundcube 加入 LDAP Addressbook

 

 

準備

1. LDAP Server (這邊使用 OpenLDAP)

2. LDAP search user

3. 對 ldap 要有相當理解程度



 

設定 LDAP Addressbook

註: 預設在 defaults.inc.php 就擁有許多範例的設定,當然你也可以選擇註解掉,將設定寫在 config.inc.php

 

step1. 編輯 defaults.inc.php
$ vim /home/roundcube/config/defaults.inc.php

 

step2. 將 Addressbook type 由 sql 改為 ldap
$config['address_book_type'] = 'ldap';

 

step.3 建立一組 Global addressbook
$config['ldap_public']['Global'] = array( 
'name' => 'Global Addressbook',
'hosts' => array('192.168.100.55'),
'port' => 389,
'user_specific' => false,
'base_dn' => 'ou=people,o=global',
'bind_dn' => 'uid=ldapview,ou=server,o=global',
'bind_pass' => 'ldapvw',
'writable' => 'false',
'search_fields' => array('mail','cn','mobile','telephoneNumber'),
'fieldmap' => array(
'name' => 'cn',
'email' => 'mail',
'jobtitle' => 'title',
'phone:work' => 'telephoneNumber',
'phone:mobile' => 'mobile',
'im:skype' => 'skype',
'im:line' => 'line',
'im:wechat' => 'wechat',
),
'scope' => 'sub',
'filter' => 'objectClass=inetOrgPerson',
'fuzzy_search' => true
);

 

參數詳解

'name' => Addressbook 顯示名稱
'hosts' => LDAP主機,可以用 array 來備援多主機
'port' => LDAP port 389 or 636
'use_tls' => 是否使用 TLS,默認為false
'ldap_version' => LDAP版本,默認為v3
'user_specific' => 若設定為 ture,將會使用 IMAP Login 帳號來驗證 DN
'base_dn' => 搜尋的 base 條件
'bind_dn' => 用來 search 的 view account
'bind_pass' => 用來 search 的 view password
'writable' => 預設為不允許回寫 LDAP
'search_fields' => Addressbook 搜尋列可用的條件
'fieldmap' => 要顯示的通訊錄資料,對應到 LDAP 的 schema,支援LDAP:limit 格式來顯示所有筆數
'scope' => 搜尋模式
'filter' => 用來過濾LDAP要撈的資料
'fuzzy_search' => 預設允許搜尋 true

 

從這邊設定好之後,由於php是立即生效,所以你可以在 Roundcube 立馬看到如下結果

2015-03-07_041840

基本上到這邊 LDAP 設定就完成了

但眼尖的人可能會發現到我在即時通訊內加入了 LINE、wechat 的欄位,這是在 Roundcube 內建所沒有的。

要自行新增 schema 顯示在通訊錄,首要條件是你的 LDAP 必須先有這些 schema 可以撈的到

再來就是 Roundcube 增加 schema 的部分

 

step4. 增加 Line 和 wechat schema
$ vim /home/roundcube/program/steps/addressbook/func.inc

在 func.inc 你可以看到 Roundcube 的 schema 都在這邊,熟php的你可以自行新增,甚至任意調整樣式

由於 Roundcube 在這裡就有預設的 即時通訊欄位,只要在子項目在加上 LINE、wechat 即可
'im' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'label' => $RCMAIL->gettext('instantmessenger'), 'subtypes' => array('aim','icq','msn','yahoo','jabber','skype','line','wechat','other'), 'category' => 'main'),

 

最後就會像上圖一樣撈的到 LINE + Wechat 囉

 

到這邊 Roundcube 是不是非常好用呢,身為 IT 你又必須擔心太好用而 Loading 過高,改天再來介紹 Roundcube LB 分散式架構。

 

 

 

參考資料:

LDAP Addressbook Server for Roundcube

LDAP Addressbook Field Mapping

Orignal From: Roundcube 整合 LDAP Addressbook 通訊錄,增加 LINE、Wechat schema

沒有留言:

張貼留言