ページへ戻る

− Links

 印刷 

Gentoo Linuxな生活​/ThunderBirdアドレス帳をLDAPで悩む のバックアップソース(No.2) :: Nest Of Hawk

xpwiki:Gentoo Linuxな生活/ThunderBirdアドレス帳をLDAPで悩む のバックアップソース(No.2)

« Prev[4]  Next »[5]
*Thunderbirdのアドレス帳をLDAP管理したいぜ! [#z8a3cee9]
えとですね、私はMozilla Thunderbirdユーザです。Thunderbirdのアドレス帳は、LDAPに対応しています。しかし、そのままでは制限された情報しか扱うことができません。なぜならば、Thunderbirdのアドレス帳は、独自拡張されたスキーマがありまして。ThunderbirdからExportされたLDIFファイルを見てみればわかりますが、mozillaAbPersonAlphaというObjectClassが使用されています。

このために、このObjectClassを追加し、Thunderbirdのアドレス帳に対応させてみたいと思います。

*LDAPサーバの準備 [#fc8fcd1e]
**スキーマの準備 [#af5be177]
[[mozillaAbPersonAlphaのダウンロードページ>http://sourceforge.net/projects/jabook/files/Schemas/mozillaAbPersonAlpha/mozillaAbPersonAlpha.schema/download]]にアクセスすると、スキーマがダウンロードできます。これを、/etc/openldap/schemaに置いて、/etc/openldap/slapd.confに以下を追加してやるです。
 include         /etc/openldap/schema/mozillaAbPersonAlpha.schema
で、slapdを再起動
 # /etc/init.d/slapd restart
これで、LDAPでThunderbirdのアドレス帳を扱える準備が整いました。

**LDAPにアドレス帳エントリを作成する [#a861a914]
私は、こんなポリシーで行きたいと思います。
 dc=example,dc=com
     |
     +ou=Address+ou=user1
                        |
                        +ou=user2
                        |
                        .
                        .
                        .
トップドメインに、Addressというouを作り、その下に、ユーザ毎のアドレス帳を作成していきます。各ユーザ毎に固有のアドレス帳って作りたいじゃないっすか。なのでこんな感じ。ちなみに、ユーザ1、ユーザ2はou=Peopleに作成したuidエントリと同じユーザ名にするポリシーで行きます。

このため、こんなLDIF(address.ldifとしますね)を作成して
 # Address Oganization Unit
 dn: ou=Address,dc=example,dc=com
 ou: Address
 objectclass: organizationalUnit

 dn: ou=user1,ou=Address,dc=example,dc=com
 ou: user1
 objectclass: organizationalUnit
これを、LDAPに登録してやります。
 # ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f address.ldif
はい、これで完了。phpLDAPadminとか使用してもOKよ。こっちのほうが追加は簡単かな。

*Thunderbirdアドレス帳の準備 [#ic07f9ae]
**アドレス帳のエクスポート [#x047ba99]
Thunderbirdのツール→アドレス帳でアドレス帳開きます。
で、LDAPに登録したいアドレス帳を選択して、アドレス帳側のツール→エクスポートで、LDIF形式を選んでエクスポートしてやりましょう。さて、addressbook.ldifとして出力したと仮定します。

**エクスポートしたアドレス帳を、登録可能な形式に変換する。 [#q5e52ab9]
さて、このアドレス帳ですが、問題が2つあります。
-登録するdnが、今回登録するLDAPデータツリーに合っていない
-日本語がBase64エンコードされている
この2つを変換してやる必要があるとです。dnは、こんな感じにします。
 dn: cn=誰かさん,ou=user1,ou=Address,dc=example,dc=com
cnって、Thunderbirdアドレス帳の表示名ってやつね。

また、日本語は、base64からUTF8に変換してあげる必要があります。私は、このページに添付してあるaddressconv.pl作成して対応しました。このスクリプト、base64ってコマンドが必要なので注意してね。Gentooの場合は、coreutilsに入ってるので問題なし。このスクリプト実行してあげましょうか。ちなみに、使用する場合は、このスクリプトの頭にある、
 $Address = "ou=Address";
 $basedn = "dc=example,dc=com\n";
の行を適当に編集してやって。

 # strings addressbook.ldif >addresbookunix.ldif
 # addressconv.pl addressbookunix.ldif user1 >addresbookconv.ldif
strings打ってるのは、改行コード変換してるから。改行コードはエディタかなんかで適当に変換してやって。

*LDAPに登録するよっ [#b6d964cd]
 # ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f addresbookconv.ldif
さて、エラーなく登録されたかしら。

*Thunderbirdアドレス帳で、LDAPを参照するように設定。 [#e31789f0]
アドレス帳のファイル→新規作成→LDAPディレクトリを選択します。
#ref(ldap.png)
こんな画面になった?これに必要事項をインプット。で、参照可能になりまっす!パスワード聞かれたら、パスワードいれてやって。
*さらに便利な設定 [#te9ac8f4]
登録されたLDAPアドレス帳も、アドレス補間の対象にしたいですよね。と、言う事で、ツール→オプション→編集→アドレス入力。アドレスの自動補完ってところに、LDAPサーバを対象とするように設定できます。これやると、メールの編集でアドレス入力すると、LDAPに登録されているアドレスで補間されて、便利ですよぅ~。


« Prev[4]  Next »[5]