連載
» 2008年10月28日 00時00分 公開

OpenLDAPで始めるディレクトリサーバ構築(3):OpenLDAPサーバを利用したユーザー認証 (2/3)

[菊池研自,伊藤忠テクノソリューションズ株式会社]

エントリの追加

 ここまでの設定で、OpenLDAPサーバにエントリを登録する準備が整いました。それではここからは、実際にOpenLDAPサーバにエントリを登録していきましょう。

 今回は、以下のようなDIT(図2)に、ユーザーエントリグループエントリを登録していきます。

図2 今回作成するDIT 図2 今回作成するDIT

 今回のエントリ登録には、次のようなldifファイルおよびldif作成用のスクリプトを用います(注4)。

# vi test1.ldif
dn: dc=my-domain,dc=com
objectClass: dcObject
objectClass: organization
dc: my-domain
o: my-domain

dn: cn=Manager,dc=my-domain,dc=com
objectclass: organizationalRole
cn: Manager

dn: ou=People,dc=my-domain,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=my-domain,dc=com
objectClass: organizationalUnit
ou: Group

# ldapadd -x -D cn=Manager,dc=my-domain,dc=com -w secret -f test1.ldif

# vi test2.sh
#!/bin/bash
SUFFIX="dc=my-domain,dc=com"
OU_USERS="ou=People"
OU_GROUPS="ou=Group"
BASE_NUM=1000
MAX_USERS=10
COUNTER=0
while [ $COUNTER -lt $MAX_USERS ]
do
    echo dn: uid=test$BASE_NUM,$OU_USERS,$SUFFIX
    echo uid: test$BASE_NUM
    echo cn: test$BASE_NUM
    echo objectClass: account
    echo objectClass: posixAccount
    echo objectClass: shadowAccount
    echo userPassword: `slappasswd -s test$BASE_NUM`
    echo shadowLastChange: $((`date +%s`/(60*60*24)))
    echo shadowMax: 99999
    echo shadowWarning: 7
    echo loginShell: /bin/bash
    echo uidNumber: $BASE_NUM
    echo gidNumber: $BASE_NUM
    echo homeDirectory: /home/test$BASE_NUM
    echo gecos: test$BASE_NUM; echo

    echo dn: cn=test$BASE_NUM,$OU_GROUPS,$SUFFIX
    echo objectClass: posixGroup
    echo cn: test$BASE_NUM
    echo userPassword: !
    echo gidNumber: $BASE_NUM; echo

    BASE_NUM=`expr $BASE_NUM + 1`
    COUNTER=`expr $COUNTER + 1`
done

# sh test2.sh > test2.ldif
# ldapadd -x -D cn=Manager,dc=my-domain,dc=com -w secret -f test2.ldif

注4:エントリ登録に利用するldifファイルは、文字コードにUTF-8が利用されている必要があります。CentOSではCentOS 4以降、UTF-8がデフォルトの文字コードとして利用されています。また、現在利用している文字コードはecho $LANGで確認できます。


 上記のようにldapaddコマンドを用いてエントリを登録した後は、ldapsearchコマンドでOpenLDAPサーバに登録したエントリが作成されていることを確認しておきましょう。

# ldapsearch -x -h localhost -b dc=my-domain,dc=com
# extended LDIF
#
……[略]……
# numEntries: 24

移行ツールを用いたエントリの追加

 LDAPサーバへのエントリ登録については、これまでに説明したスクリプトなどを用いて新規アカウントを作成する方法のほか、PADLソフトウェアが配布する「MigrationTools」というスクリプトセットを用いて、既存アカウント(/etc/passwdファイルに存在するアカウント情報)を移行することも可能です。

関連リンク:

→ PADL Software
http://www.padl.com/OSS/MigrationTools.html


 CentOSに付属するopenldap-serversパッケージには、Perlで記述されたこの移行スクリプトセットが含まれています。これを利用すると、OpenLDAPサーバのインストール後、すぐに既存アカウントの移行が行えるようになっています。

# rpm -ql openldap-servers | grep migration
/usr/share/doc/openldap-servers-2.3.27/README.migration
/usr/share/doc/openldap-servers-2.3.27/TOOLS.migration
/usr/share/openldap/migration
/usr/share/openldap/migration/README
/usr/share/openldap/migration/migrate_aliases.pl
……[略]……

 なお、MigrationToolsの利用については、以下の記事も参考にしてください。

関連記事:

→ 既存のユーザーアカウントをLDAPサーバに登録するには(Linux Tips)
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/914user2ldap.html


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。