目次
LDAPとは?
LDAPは「Lightweigth Directory Access Protocol」の略で、主にサーバー内のディレクトリアクセス時に利用されるプロトコルです。読み方は「エルダップ」です。
LDAP以前は同様の仕組みに、DAPが利用されていましたが、「Lightweigth」という言葉にも表れているように、DAPの軽量版としてLDAPが登場しました。
LDAPが利用される場面は?
入門編として抑えておくポイントは一般的にLDAPと言う場合はプロトコルの仕組みよりも、LDAPサーバーを指すことが多く、簡易的なデータベースのような使われ方をするということです。
CentOSやDebian等のLinux系OSでLDAPサーバーを構築する場合は、OpenLDAPというサーバーソフトウェアが使われることが多いです。OpenLDAPは一連の機能が含まれたパッケージでインストール可能です。
LDAPの使用例
LDAPは電子的な電話帳やアドレス帳という言われ方もします。こちらも入門編として抑えるポイントです。アドレス帳のように社員名やメールアドレス、電話番号等を追加、削除、更新できます。登録済データの参照もできます。
前述したデータの種類はあくまで例であり、利用目的に合わせてその他多様なデータの管理ができます。まさにデータベースのような利用方法となりますが、この特徴を生かして様々な機能に応用されています。
ログインアカウントの一元管理
アカウント情報の一元管理ができます。例えばコールセンターのような職場では毎日座る場所、利用するパソコンが異なることがあります。
各社員がどのパソコンを使用しても自分のアカウントとパスワードでログインできるようになっている必要がありますが、この仕組みを実現できるのがLDAPです。各パソコンにではなく、LDAPサーバー上にアカウント情報を保存して一元管理しているために可能となります。
プロファイルの取得
LDAPのシステムを使ってログインする場合、ユーザーごとのプロファイルも取得できます。ユーザーごとに使いやすさの基準は違うので、当然デスクトップ上に表示させるショートカットやパソコンの細かいチューニングはそれぞれ異なります。
パソコンへの設定状況はプロファイルに保存されますが、LDAPサーバーを利用していると、このプロファイルも保存され、ログイン時に呼び出せるようになっています。
シングルサインオンの実現
シングルサインオンは一つのアカウントとパスワードの情報で、複数のアプリケーション等にログインできる仕組みです。
サーバー運用においてもWeb、メール、データベースサーバーと各ソフトでログイン認証が必要になります。LDAPを利用すると、これら全てに毎回ログイン情報を入れることなく利用できるようになります。
同じLDAPを連携していれば、物理的に異なるサーバー間でもシングルサインオンが実現可能です。
メールサーバーでの利用
これまで紹介した使用例の派生型のような利用方法ですが、多くのユーザーが共有で利用するメールサーバーシステム等において、LDAPのユーザー情報を参照したうえで利用されるサーバーを振り分けたり、経路を変えたりということも実現可能です。
LDAPのデータベースに登録した情報を、物理的に異なるサーバー間でも参照できるために実現できる利用方法の一つです。
LDAPサーバー間での連携
LDAPサーバーは利用されているソフトウェアが異なっても連携が可能です。Linux系OSでインストールされるLDAPはOpenLDAPが多いですが、他にもeDirectoryやDomino等たくさんの種類があります。
Windows系OSではExchange ServerやActive Directoryがあります。全てではありませんが、APIを利用することで別のLDAPソフト間で連携ができます。
OpenLDAPの設定方法
OpenLDAPは、構築したいサーバー内からOpenLDAPの提供元サイトにアクセスして、インストールする必要があります。
この記事で紹介するダウンロード、設定方法は入門編としてCentOS等のLinux系OSを対象としています。利用しているOSのバージョンや種類によってコマンドの違いやインストール先が異なることがあるのであらかじめご了承ください。
OpenLDAPの用意
はじめにOpenLDAPの提供元サイトにアクセスして、ソースコードをダウンロードします。
.tzgの圧縮ファイルでダウンロードされるので、tarコマンドで展開します。
例) tar xvzf openldap-(OpenLDAPのバージョン名が入ります).tgz
ダウンロードしたディレクトリに移動します。
例) cd openldap-(OpenLDAPのバージョン名が入ります).tgz
LDAPのコンパイル
ダウンロードしたOpenLDAPはインストール・コンパイルする必要があります。
入門編としてコマンドの意味まで理解する必要はありませんが簡単に説明すると、./configureやmake dependのコマンドで依存関係にあるデータをチェックしていきます。チェック結果はMAKEファイルに書き込まれます。
makeコマンドでコンパイルができたら、make installでインストールに進みます。
1
2
3
4
5
6
7
8
9
|
/configure --with-tls -enable-crypt --with-cyrus-sasl -enable-rwm --enable-monitor=no
make depend
make
su
Passowrd: (サーバーのrootパスワード等)
make install
|
.
初期設定
インストールが完了したらLDAPサーバーの初期設定に進みます。設定ファイルは「slapd.conf」という名称で「openldap」ディレクトリ内にあります。
設定ファイル内の「suffix」「rootdn」の部分は、今後運用する企業や組織に合わせた内容を入力します。以下は設定ファイルの入力例です。
なお「rootpw」部分の暗号化されているパスワードは、slappasswdのコマンドで生成します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
include /usr/local/etc/openldap/schema/core.schema
pidfile /usr/local/var/run/slapd.pid
argsfile /usr/local/var/run/slapd.args
database config
rootdn cn=admin,cn=config
access to *
by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage
by * break
database mdb
maxsize 1073741824
suffix "dc=example,dc=jp"
rootdn "cn=Managaer,dc=example,dc=jp"
rootpw {SSHA}(slappasswdコマンドで暗号化されたパスワードを入力)
directory /usr/local/var/openldap-data
index objectClass eq
|
ディレクトリの作成
設定ファイル「slapd.conf」に合わせてディレクトリの移動や作成をしていく必要があります。
openldapのディレクトリを移動します。
cd /usr/local/etc/openldap
設定ディレクトを作成します。
mkdir slapd.d
最後に設定の変換をします。
slaptest -f slapd.conf -F slapd.d -u
LDAPの起動設定
LDAPをsystem.dコマンドで起動できるようにするには、ユニットファイルを作成する必要があります。ファイルは「/usr/lib/systemd/system/slapd.service」に設置します。
ファイルの作成が完了したら設定をリロードで読み込ませ、実際にsystemctlコマンドで起動できるか試してみましょう。
以下はユニットファイルの設定内容です。
1
2
3
4
5
6
7
8
9
10
11
|
[Unit]
Description=OpenLDAP server
After=syslog.target network.target
[Service]
Type=forking
PIDFile=/usr/local/var/run/slapd.pid
ExecStart=/usr/local/libexec/slapd -h "ldap:/// ldapi:///"
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -TERM $MAINPID
[Install]
WantedBy=multi-user.target
|
パケットフィルタリング設定
以下コマンドでLDAPポートの許可設定を行います。いずれのサービスであっても初めて利用する時は起動設定と、ポート設定が必要となります。
ポートの設定方法はいくつかありますが、今回はパケットフィルタリングの設定変更方法で紹介します。
firewall-cmd –add-service=ldap
入門編として挙げておきたい注意点ですが、通信を必要とするサービスの使用時には必ずポートの解放が必要となります。
DITの登録
以下コマンドでLDAPのDITを元に、init.ldifに対してデータ登録を行います。
1
2
3
4
|
ldapadd -x -D "cn=Manager,dc=designet,dc=jp" -W -f init.ldif
Enter LDAP Password: ********
adding new entry "dc=example,dc=jp"
adding new entry "cn=Manager,dc=example,dc=jp"
|
LDAPシステム利用時の注意点
LDAPの仕組みは、Oracle等のRDB(リレーショナルデータベース)のように複雑なデータ処理は不可であり、頻繁な更新が発生するシステムでの利用には向いていません。
またLDAPのログは標準でsyslogに出力されるようになっています。syslogへ出力されるように設定することをおすすめします。必要に応じてLDAP側で出力されるログのレベルも調整してください。
以上が入門編の注意点です。
LDAPで様々な情報を一元管理して便利なシステムを構築しよう!
LDAPはシンプルな情報管理に利用することで、持っているメリットを十分に活かせます。長い間、幅広い環境で利用されている仕組みのため、今回入門編として紹介した以外にもインターネット上に多くの導入事例や参考情報があります。
ぜひLDAPを使いこなせるように入門編以外の内容も学習して、サーバーシステム上での情報の一元管理に活用してみてはいかがでしょうか。
インフラエンジニア専門の転職サイト「FEnetインフラ」
FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。
転職をお考えの方は気軽にご登録・ご相談ください。