| ●openldapでMSアドレス帳を作成 |
openldapが正常に動作するように
「UNIXしま専科 OpenLDAPのインストール」
のように構築を終わらせている状態にします。
【今回の構造】
/dc=testdom,dc=jp
|-- cn=Manager,dc=testdom,dc=jp
`-- ou=address,dc=testdom,dc=jp
|--uid=yamada,ou=address,dc=testdom,dc=jp
|--uid=xxxxx,ou=address,dc=testdom,dc=jp
|--・・・
というツリー構造にします。
uid=yamada,ou=address,dc=testdom,dc=jp
がアドレス帳の個々のエントリーとなります。
MSアドレス帳にはopenldapでデフォルトで用意されている
スキーマでは対応しきれない属性があります
| 部署: ビジネスWebページ: 自宅Webページ: メモ: 会議サーバー: デジタルID: IP電話: |
department(OUで代用できる) url homeURL comment conferenceInformation userCertificate IPPhone |
などです。これらのフィールドに値を入力して
アドレスブックに表示できるようにするには以下の作業をします。
1.スキーマファイルを作成
# vi /etc/openldap/schema/extension.schema
attributetype ( 1.3.6.1.4.1.4203.666.100.121
NAME ( 'rdn' )
SUP name )
attributetype ( 1.3.6.1.4.1.4203.666.100.122
NAME ( 'otherFacsimiletelephoneNumber' )
SUP telephoneNumber )
attributetype ( 1.3.6.1.4.1.4203.666.100.123
NAME ( 'IPPhone' )
SUP telephoneNumber )
# This attribute handles MS/Outlook and Netscape Communicator
attributetype ( 1.3.6.1.4.1.4203.666.100.124
NAME ( 'URL' 'homeUrl' )
SUP name )
attributetype ( 1.3.6.1.4.1.4203.666.100.125
NAME ( 'comment' )
SUP name )
attributetype ( 1.3.6.1.4.1.4203.666.100.126
NAME ( 'conferenceInformation' )
SUP name )
attributetype ( 1.3.6.1.4.1.4203.666.100.127
NAME ( 'reports' )
SUP manager )
objectclass ( 1.3.6.1.4.1.4203.666.100.1
NAME 'officePerson'
DESC 'Office employee or computer user'
SUP inetOrgPerson
STRUCTURAL
MAY ( c $
rdn $
otherFacsimiletelephoneNumber $
IPPhone $
URL $
comment $
reports $
conferenceInformation )
) |
| include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/extension.schema allow bind_v2 schemacheck off pidfile /var/run/slapd.pid argsfile /var/run/slapd.args access to * by * read database bdb suffix "dc=testdom,dc=jp" rootdn "cn=Manager,dc=testdom,dc=jp" rootpw secret directory /var/lib/ldap index objectClass eq,pres index cn,sn,givenName,mail pres |
インデックスの部分は
index objectClass eq,pres
index
cn,sn,givenName,mail
eq,pres,sub
としておく。
| indexを設定は効率良くデータを検索できるようにするためです。 特に大規模でよく検索される部分などはインデックス化しておきましょう。 indexは、 pres:存在 eq:等価性 sub:部分文字列 から指定します 例えば、cn属性にindexを設定する場合は、 index cn pres,eq,sub と指定します。 indexの設定を変更したら、indexの再構築を行ってください。 slapindex -v -b o=example,c=JP -f slapd.conf |
3.デーモンの再起動
# /etc/init.d/ldap restart
これでMSアドレス帳の設定は終了なので次からは
実際のエントリーを作成していきます。
まだトップツリーを作成していない場合は下記のように作成する。
●トップツリーの作成
# ldapadd -x -D "cn=Manager,dc=testdom,dc=jp" -w secret -f top.ldif
|
# Organization For Example Corporation dn: dc=testdom,dc=jp objectClass: dcObject objectClass: organization dc: testdom o: testdom description: testdom test # Organizational Role for Directory Manager dn: cn=Manager,dc=testdom,dc=jp objectClass: organizationalRole cn:Manager description: Direcotry Manager |
| # Address Oganization Unit dn: ou=Address,dc=testdom,dc=jp ou: Address objectclass: organizationalUnit |
| dn: uid=person000001,ou=address,dc=testdom,dc=jp objectclass: inetorgPerson objectclass: officePerson #MSの拡張部分を表示させる場合は必要 mail: tarou.yamada@test.com uid: person000001 cn: Tarou Yamada givenName: 太郎 sn: 山田 title:部長 o:松戸テクニカル 株式会社 システム開発部門 統合企画課 physicalDeliveryOfficeName: 松戸オフィス URL: http://www.xyz.jp/ (officePersonスキーマ必要) comment: 2005年8月中途入社 (officePersonスキーマ必要) #conferenceInformation:(officePersonスキーマ必要) #userCertificate: #manager: (officePersonスキーマ必要) #reports: (officePersonスキーマ必要) postalAddress: 1-2-3-4 l: 松戸市松戸 st: 千葉県 postalcode: 123-4567 c: Japan #homePostalAddress: telephoneNumber: 047-123-4567 facsimileTelephoneNumber: 047-123-9876 #homePhone: #otherFacsimiletelephoneNumber:(officePersonスキーマ必要) mobile: 080-1234-5678 #pager: IPPhone: 050-1234-5678(officePersonスキーマ必要) |
| ldap_initialize( <DEFAULT> ) add objectclass: inetorgPerson officePerson add mail: tarou.yamada@test.com add uid: person000001 add cn: NOT ASCII (13 bytes) add givenName: NOT ASCII (6 bytes) add sn: NOT ASCII (6 bytes) add title: NOT ASCII (6 bytes) add o: NOT ASCII (40 bytes) add physicalDeliveryOfficeName: NOT ASCII (18 bytes) add URL: http://www.xyz.jp/ add comment: NOT ASCII (23 bytes) add postalAddress: 1-2-3-4 add l: NOT ASCII (15 bytes) add st: NOT ASCII (9 bytes) add postalcode: 123-4567 add c: Japan add telephoneNumber: 047-123-4567 add facsimileTelephoneNumber: 047-123-9876 add mobile: 080-1234-5678 add IPPhone: 050-1234-5678 adding new entry "uid=person000001,ou=address,dc=testdom,dc=jp" modify complete |
| # extended LDIF # # LDAPv3 # base <ou=address,dc=testdom,dc=jp> with scope sub # filter: cn=*yamada* # requesting: ALL # # person000001, address, testdom.jp dn: uid=person000001,ou=address,dc=testdom,dc=jp objectClass: inetOrgPerson objectClass: officePerson mail: tarou.yamada@test.com uid: person000001 title:: 6YOo6ZW3 o:: 44K344K544OG44Og6ZaL55m66YOo6ZaAIOe1seWQiOS8geeUu+iqsg== physicalDeliveryOfficeName:: 5p2+5oi444Kq44OV44Kj44K5 URL: http://www.xyz.jp/ comment:: MjAwNeW5tDjmnIjkuK3pgJTlhaXnpL4= postalAddress: 1-2-3-4 l:: 5p2+5oi45biC5p2+5oi4 st:: 5Y2D6JGJ55yM postalCode: 123-4567 c: Japan telephoneNumber: 047-123-4567 facsimileTelephoneNumber: 047-123-9876 mobile: 080-1234-5678 IPPhone: 050-1234-5678 givenName:: 5aSq6YOO sn:: 5bGx55Sw cn: Tarou Yamada # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1 |
【アドレス帳から検索】
必要な情報 ldapserverのホスト名(or IPaddress)
リスンポート:389
検索するツリー:ou=address,dc=testdom,dc=jp
ぐらいが必要な情報です。
1.アドレス帳に設定
「ファイル名を指定して実行」→「wab」
2.ldapクライアントの設定
キャプチャー画面のとおり
図1.wab.exeが起動
図2.ディレクトリアカウントの追加
図3.作成したアカウントの詳細設定
3.検索
キャプチャー画面のとおり
図4.検索画面
図5.検索結果 概要
図6.検索結果 名前
図7.検索結果 自宅
図8.検索結果 勤務先
図9.検索結果 その他
各属性名がアドレス帳のどこに来るか確認してください。
OutlookなどからだけでなくThunderbirdからでもldapクライアントの
設定を行うことでアドレス帳は参照できます。
ThunderbirdなどからではMozilla用の属性もスキーマファイルを作成することで
勤務先の電話番号やニックネームなどを表示可能です。
ただ、こういった拡張はクライアントを統一した環境でないと
意味がなくなるのでデファクトな使用方法で特別に
スキーマを作ったりしない方がスマートだと考えます。
後このままだと登録が誰でもできるわけではなく管理者しか行うことができません。
企業としてオフィシャルな社員名簿のように使用することで
相当メリットは発揮されると思います。
そういった場合はスキルをもったシステム管理部門が登録更新作業を行うので
コマンドラインからの変更でも問題ないでしょう。
エントリーの登録はとりあえず最初は何万人もいる場合は
スクリプトで現状の名簿データをうまく
ldifファイルに変換して登録しましょう。
その後のメンテナンスはldapbrowserなどで行うことで
GUIベースでかなり簡単に行えます。
全てのMSアドレス帳とNSアドレス帳の属性については
http://www.linux.com/howtos/LDAP-Implementation-HOWTO/schemas.shtml
を参考にすると完璧に作りこむことができます。
スキーマファイルの作り方がわからない場合は
openldapのサイトに乗っているのでそちらを参考にしましょう。