LDAPとは?ディレクトリサービスのスタンダードプロトコルについてわかりやすく解説
ネットワーク関連の情報を調べていると「LDAP」という言葉が出てきます。
普段からネットワークエンジニアとして働いている人は良いですが、そうでない人からすると馴染みが無いでしょう。
今回は、このLDAPについて見ていきます。
LDAPとは
LDAPとは、ディレクトリサービスの一つであり、汎用性が高くデファクトスタンダードとして用いられているプロトコルです。
「エルダップ」と読みます。
ディレクトリサービスは別名でネームサービスとも言いますが、その名の通り「名前」を管理し検索・認証機能などを提供するするサービスです。
ディレクトリサービスでは、ある名前とともにそれに紐付いた属性情報をひとかたまりとして保存し、名前や属性によってすぐにその情報を引くことができます。
例えば、ユーザーIDとともにパスワードやユーザーのアクセス権限などの情報を1エントリとして保存し、参照できるようにします。
データベースに似た概念であり、実際に実装によってはデータベースと重なる部分が大きいのですが、ディレクトリサービスは一般的にユーザー管理に広く用いられます。
ただし、データベースと大きく違う点として
・大量のデータアクセスに対応していない(トランザクション処理が無いため)
・複数の項目を同時に更新するなど複雑な処理に向いていない
という特徴があるため、データベースで利用される製品とは明確に分かれます。
このディレクトリサービスの中でよく使われるプロトコルが、LDAPです。
プロトコルは、通信をする際のルールのことで、他にも
・HTTP
・FTP
などがあります。
よく使われるLDAP実装
LDAPはプロトコルの名前なので、実際にエンジニアが操作するのは、LDAPプロトコルを使ったソフトウェアとなります。
そこで、以下によく使われる代表的なLDAP実装を紹介します。
OpenLDAP
最も代表的なLDAP実装は、オープンソースで開発されているOpenLDAPでしょう。
Linux/Unix系OSにおける事実上標準のLDAP実装であり、サーバーエンジニアならば触った経験がある人が多いかと思います。
OpenLDAPのLDAP実装としての特徴は、歴史が長くユーザー数も情報量も多いことと、とにかく何でもできる高機能さです。
LDAPの標準であるOpenLDAPで実現できないことがほとんどないため、他のソフトウェアを選ぶ動機があまり発生せず、OpenLDAPがこれほどまでに使われているというわけです。
一方で設定などが複雑だったり使い方が難しい点もありますが、ネットに情報が多いため学ぶには困りませんし、LPICでもOpenLDAPの設定に関する問題が多く出題されるなど、Linux系サーバーエンジニアにとって必修の知識となっています。
Active Directory
Windows Server管理者にとって最も身近なLDAP実装は、Microsoftが開発しているActive Directoryではないでしょうか。
Windows 2000 ServerからActive Directory実装が組み込まれており、以降のサーバー用Windowsで利用することができます。
もともとActive Directoryはサーバー版Windowsをオンプレミスで運用するための実装ですが、最近ではクラウドサービスとしてAzure Active Directoryも提供しています。
MicrosoftのAzureアカウントがあれば他のMicrosoftサービスと横断的にActive Directoryを利用することができ、オンプレミスのActive Directoryを置き換えるようにじわじわとシェアを伸ばしています。
その他
サーバーエンジニアには馴染みの深いサーバー・インフラ系の有名企業は自社を冠したLDAP実装を提供しています。
例えばOracle Internet Directory(オラクル)、Sun Java System Directory Server、Sun OpenDS(サンマイクロシステムズ)、Tivoli Directory Server(IBM)などです。
NECや富士通なども提供していますが、いずれもあまりシェアは高くありません。
LDAP認証とは
LDAPプロトコルを用いた認証方法がLDAP認証です。
LDAP認証では、認証用のLDAPサーバーを用意し、あらかじめサーバー側にユーザーのアカウントを登録しておきます。
そしてユーザーのアカウントを用いてログインするなど、アカウントにアクセスするときにLDAPサーバーへ認証を行います。
LDAPはディレクトリサービスであるため、全てのアカウント情報やアカウントに紐付いた属性情報などはLDAPサーバー上にあります。
そのため、機密情報をクライアントや多用途のサーバーから完全に切り離すことができ、また後述しますが複数のサーバーをまたいだ認証であるシングルサインオンを実現できるなど、企業などのユーザー管理としてLDAP認証はセキュリティ面でも利便性でもメリットが大きく、非常に利用価値の高いものです。
LDAPの必要性
しかし、LDAPを導入しなくても素朴なログインシステムなどでアカウントによるアクセス制御は現に行えていると思います。
では、LDAPを導入する必要性とは何なのでしょうか?
シングルサインオンの実現
他の認証サービスでは実現が難しい、LDAPの必要性として真っ先に挙げられるのは、シングルサインオンでしょう。
シングルサインオンとは、一つのアカウントによるログイン状態を、一連の関連サービスにまたがって維持する技術のことです。
例えば業務システムとしてサービスA・B・Cが稼働していて、同じ社員アカウントでそれぞれのサービスにアクセスしたいとします。
サービスA・B・Cが全て同一サーバー内で稼働していればいいですが、別々のサーバーで提供しているとすると、サーバーをまたいだ認証をどのように行うかということが問題になります。
サービスAで作成した業務データを、同じアカウントの権限でスムーズにサービスBへ持ち込めないのでは業務に支障を来してしまうことでしょう。
ここで実現したいことこそがシングルサインオンであり、シングルサインオンを実現する手段として最もメジャーなのがLDAP認証なのです。
レプリケーション
認証システムの可用性は言うまでもなく重要ですので、冗長化しなければなりません。
また、認証サーバーは少なくともアカウントIDとパスワード・権限情報などの重要なデータを抱えていますので、バックアップもしなければなりません。
サーバー障害やデータ損傷が発生したからしばらくログインなどができなくなった、とあれば大問題です。
そこでこれらへの対策ですが、LDAPならばレプリケーションによってサーバーも認証データも両方とも簡単に冗長化することができます。
LDAPのレプリケーションは基本的に、LDAPのディレクトリをそのまま複製します。
ディレクトリサービスのデータのみをバックアップするイメージではなく、ディレクトリを構成するインフラ自体を冗長化するイメージです。
ですから、アカウント情報などのデータのバックアップと、LDAPのインフラの可用性を高める対策を同時に行えます。
シングルサインオンに用いるディレクトリサービスの可用性やデータの保全は非常に重要ですから、LDAPのレプリケーション機能でこれらの対策が簡単に行えることは極めて大きなメリットです。
レプリケーションが簡単だからLDAPを採用しているというシステム管理者も多いでしょう。
クラウド型SSOサービスという選択肢
このように有用なLDAPですが、いくらコストに見合った価値が得られることがわかっていても、オンプレミスで導入するためのコストが許容できない場合もあるでしょう。
また、例えばOpenLDAPは多機能な分だけ管理や設定が難しく、十分なスキルを持ったエンジニアの確保もまた難しい課題です。
そこで、近年ではMicrosoftのAzure Active Directoryをはじめとして、クラウド型のシングルサインオンサービスが各社から提供されています。
クラウド型のシングルサインオンサービスならば、インフラの導入コストや管理のための各種コストを一切払うことなく、月額料金だけでLDAPだけでなく周辺機能を全て含んだシングルサインオンの管理サービスを利用できます。
もちろん、セキュリティ対策やインフラの冗長化などはプロに丸々任せられることになりますので、自社で高性能なインフラや優秀なエンジニアを用意できない中小企業にこそ有用です。
LDAPは導入などが難しそうだしコストが捻出できないから縁がないと思っている企業にこそ、クラウド型のサービスを現実的な選択肢として提案したいと思います。
LDAPのこれから
LDAPは非常に歴史の古いサービスですが、現在でも重要な役割を担い続けています。
そのため、LDAPは時代に合わせて進化を続けており、特にセキュリティに関しては重要なアップデートを行い、高い安全性を確保しています。
例えば、元々のLDAPはクライアントとサーバー間の暗号化について規定がありませんでしたが、最近ではLDAPS(LDAP over SSL/TLS)が標準となっており、自動的に暗号化しSSLトンネリングで通信が行われます。
LDAPSではSSL/TLSによる公開鍵認証を経ることにより、外部からの盗聴による漏洩対策はもちろん中間者攻撃(Man-in-the-Middle Attack, MITM)への対策も可能になり、セキュリティ面で大幅に信頼性が高まりました。
各LDAP実装も今時の利用形態に合わせて、貪欲に新機能を取り入れてアップデートを重ねています。
クラウド型シングルサインオンサービスの流行からも、LDAPがメインストリームで必要とされ続けている表れの一つといえるでしょう。
オンプレミスのサービスとして存続するか、それともクラウド型に一本化されていくのかはわかりませんが、いずれにしてもLDAPが今後もディレクトリサービスの代表として広く使われていくことは間違いないでしょう。
セキュリティ相談ならAMELAに
今回は、LDAPについて見てきました。
企業の規模が大きくなればなるほど、ディレクトリサービスを利用する必要性は高くなります。
特に、昨今のテレワークの導入で、セキュリティには高い注目が集まっています。
最適なセキュリティ対策がわからなければ、思い切ってテレワークを導入する・・・ということは難しいでしょう。
そんな時は、是非AMELAにご相談下さい。
現状にあった最適なご提案をさせていただきます。