ページへ戻る

− Links

 印刷 

Gentoo Linuxな生活​/ThunderBirdアドレス帳をLDAPで悩む :: Nest Of Hawk

xpwiki:Gentoo Linuxな生活/ThunderBirdアドレス帳をLDAPで悩む

ページ内コンテンツ
  • Thunderbirdのアドレス帳をLDAP管理したいぜ!
  • LDAPサーバの準備
    • スキーマの準備
    • LDAPにアドレス帳エントリを作成する
  • Thunderbirdアドレス帳の準備
    • アドレス帳のエクスポート
    • エクスポートしたアドレス帳を、登録可能な形式に変換する。
  • LDAPに登録するよっ
  • Thunderbirdアドレス帳で、LDAPを参照するように設定。
  • さらに便利な設定

Thunderbirdのアドレス帳をLDAP管理したいぜ! anchor.png[1]

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

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

Page Top

LDAPサーバの準備 anchor.png[2]

Page Top

スキーマの準備 anchor.png[3]

mozillaAbPersonAlphaのダウンロードページ[4]にアクセスすると、スキーマがダウンロードできます。これを、/etc/openldap/schemaに置いて、/etc/openldap/slapd.confに以下を追加してやるです。

include         /etc/openldap/schema/mozillaAbPersonAlpha.schema

で、slapdを再起動

# /etc/init.d/slapd restart

これで、LDAPでThunderbirdのアドレス帳を扱える準備が整いました。

Page Top

LDAPにアドレス帳エントリを作成する anchor.png[5]

私は、こんなポリシーで行きたいと思います。

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よ。こっちのほうが追加は簡単かな。

Page Top

Thunderbirdアドレス帳の準備 anchor.png[6]

Page Top

アドレス帳のエクスポート anchor.png[7]

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

Page Top

エクスポートしたアドレス帳を、登録可能な形式に変換する。 anchor.png[8]

さて、このアドレス帳ですが、問題が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打ってるのは、改行コード変換してるから。改行コードはエディタかなんかで適当に変換してやって。

Page Top

LDAPに登録するよっ anchor.png[9]

# ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f addresbookconv.ldif

さて、エラーなく登録されたかしら。

Page Top

Thunderbirdアドレス帳で、LDAPを参照するように設定。 anchor.png[10]

アドレス帳のファイル→新規作成→LDAPディレクトリを選択します。

ldap.png

こんな画面になった?これに必要事項をインプット。で、参照可能になりまっす!パスワード聞かれたら、パスワードいれてやって。

Page Top

さらに便利な設定 anchor.png[11]

登録されたLDAPアドレス帳も、アドレス補間の対象にしたいですよね。と、言う事で、ツール→オプション→編集→アドレス入力。アドレスの自動補完ってところに、LDAPサーバを対象とするように設定できます。これやると、メールの編集でアドレス入力すると、LDAPに登録されているアドレスで補間されて、便利ですよぅ~。


Last-modified: 2011-01-17 (月) 00:37:15 (JST) (4847d) by maruo