|
1: 2011-01-10 (月) 21:43:12 maruo |
| + | *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に変換してあげる必要があります。私は、これ作成して対応しました。このスクリプト、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ディレクトリを選択します。 |
| + | こんな画面になった?これに必要事項をインプット。で、参照可能になりまっす!パスワード聞かれたら、パスワードいれてやって。 |
| + | *さらに便利な設定 [#te9ac8f4] |
| + | 登録されたLDAPアドレス帳も、アドレス補間の対象にしたいですよね。と、言う事で、ツール→オプション→編集→アドレス入力。アドレスの自動補完ってところに、LDAPサーバを対象とするように設定できます。これやると、メールの編集でアドレス入力すると、LDAPに登録されているアドレスで補間されて、便利ですよぅ~。 |