LDAPとは?初心者でも理解できるLDAP入門レベルの内容をご紹介
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を運営しているネプラス株式会社はサービス開始から10年以上
『エンジニアの生涯価値の向上』をミッションに掲げ、
多くのインフラエンジニア・ネットワークエンジニアの就業を支援してきました。
ネプラス株式会社はこんな会社です
秋葉原オフィスにはネプラス株式会社をはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
インフラ業界に特化
ネットワーク・サーバー・データベース等、ITインフラ業界に特化。Cisco Systemsプレミアパートナーをはじめ各種ベンダーのパートナー企業です。
業界を知り尽くしているからこそ大手の取引先企業、経験豊富なエンジニアに選ばれています。
-
正社員なのにフリーランスのような働き方
正社員の方でも希望を聞いたうえでプロジェクトをアサインさせていただいており、フリーランスのような働き方が可能。帰社日もありません。
プロジェクト終了後もすぐに次の案件をご紹介させていただきますのでご安心ください。
-
大手直取引の高額案件
案件のほとんどが大手SIerやエンドユーザーからの直取引のためエンジニアの皆様へに高く還元できています。
Ciscoをはじめ、Juniper、Azure、Linux、AWS等インフラに特化した常時300件以上の案件があります。
-
スキルアップ支援
不要なコストを削減し、その分エンジニアの方へのスキルアップ支援(ネットワーク機器貸出、合格時の受験費用支給など)や給与で還元しています。
受験費用例)CCNP,CCIE:6-20万円、JNCIS:3-4万円、AWS:1-3万円など
※業務に関連する一定の資格のみ。各種条件がありますので詳しくは担当者へにお尋ねください。
-
現給与を保証します!※
前職の給与保証しており、昨年度は100%の方が給与アップを実現。収入面の不安がある方でも安心して入社していただけます。
※適用にはインフラエンジニアの業務経験1年以上、等一定の条件がございます。
-
インセンティブ制度
ネットワーク機器の販売・レンタル事業等、売上に貢献いただいた方にはインセンティブをお支払いしています。
取引先企業とエンジニア側、双方にメリットがあり大変好評をいただいています。
-
社会保険・福利厚生
社員の方は、社会保険を完備。健康保険は業界内で最も評価の高い「関東ITソフトウェア健康保険組合」です。
さらに様々なサービスをお得に利用できるベネフィットステーションにも加入いただきます。
-
東証プライム上場企業グループ
ネプラスは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
ネプラス株式会社に興味を持った方へ
ネプラス株式会社では、インフラエンジニアを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
オンライン面接も随時受付中。ぜひお気軽にご応募ください。
新着案件New Job
-
【高額年収】/【CCNA取得者歓迎】/ネットワークの構築/BIG-IP/東京都千代田区/【WEB面談可】/在宅ワーク/20代~30代の方活躍中
年収540万~540万円東京都千代田区(神保町駅) -
東京都中央区/【WEB面談可/インフラサーバ経験者/20~40代の方活躍中】/在宅ワーク
年収600万~600万円東京都中央区(小伝馬町駅) -
【高額年収】/インフラ構築支援/東京都港区/【WEB面談可/インフラサーバ経験者/20~40代の方活躍中】/在宅ワーク
年収960万~960万円東京都港区(新橋駅) -
ガバナンス推進、セキュリティ基盤支援/東京都港区/【WEB面談可】/在宅ワーク/20代~40代の方活躍中
年収780万~780万円東京都港区(新橋駅) -
カー用品販売会社の情報システム運用/東京都千代田区/【WEB面談可/インフラサーバ経験者/20~40代の方活躍中】/テレワーク
年収576万~576万円東京都千代田区(水道橋駅) -
ネットワーク構築、検証/東京都渋谷区/【WEB面談可】/テレワーク/20代~40代の方活躍中
年収540万~540万円東京都渋谷区(渋谷駅)