【徹底解説】ディレクトリ認証とは?LDAPを例に仕組みをエンジニア目線で分かりやすく解説

認証・認可

こんにちは、イケメンエンジニアです。

大手通信業界でWebアプリケーションを開発している現役エンジニアとして、 企業向けシステムの認証基盤設計に関わることが多いのですが、 その中でも頻出なのが「ディレクトリ認証」です。

BtoB向けの案件や社内システム開発、副業案件でも 「LDAP連携できますか?」 「Active Directoryと統合できますか?」 という質問はよくあります。

今回は、 ディレクトリ認証の仕組みを、LDAP(Lightweight Directory Access Protocol)を例に詳しく解説します。


1. ディレクトリ認証とは?

ディレクトリ認証とは、 ユーザー情報を中央のディレクトリサーバーで一元管理し、そこに問い合わせて認証する方式です。

ローカル認証(アプリDBで管理)とは異なり、 ユーザー情報はアプリではなく“外部のディレクトリ”にあります。

イメージ

ユーザー
   ↓
アプリケーション
   ↓
ディレクトリサーバー(LDAP)
   ↓
認証結果を返す
  

アプリは「本人確認」を自分でやらず、 ディレクトリに委任します。


2. LDAPとは?

LDAP(Lightweight Directory Access Protocol)とは、 ディレクトリサービスにアクセスするためのプロトコルです。

企業環境では、 Active Directory(AD)の内部でもLDAPが使われています。

LDAPの役割

  • ユーザー検索
  • パスワード照合
  • グループ情報取得
  • 組織情報取得

つまりLDAPは「ユーザー情報の電話帳」にアクセスする仕組みです。


3. LDAPのデータ構造(ここが重要)

LDAPは「階層構造」でデータを管理します。

例:ドメイン構造

dc=example,dc=com
 ├── ou=users
 │     ├── uid=tanaka
 │     ├── uid=suzuki
 └── ou=groups
       ├── cn=admins
       ├── cn=sales
  

用語解説

  • dc:Domain Component
  • ou:Organizational Unit
  • uid:User ID
  • cn:Common Name

LDAPはこの「ツリー構造」でユーザーを管理します。


4. LDAP認証の具体的な処理フロー

Step1:ユーザーがログイン

ユーザーがID・パスワードを入力。

Step2:アプリがLDAPに接続

アプリはLDAPサーバーへ接続します。

ldap://ldap.example.com
  

Step3:ユーザー検索

IDを元にLDAPで検索。

(base=ou=users,dc=example,dc=com)
(filter=(uid=tanaka))
  

Step4:Bind(バインド)

検索で取得したDN(Distinguished Name)と 入力されたパスワードで「bind」します。

bindが成功すれば認証成功。

ここがLDAP認証の核心です。


5. ローカル認証との違い

項目ローカル認証ディレクトリ認証
ユーザー管理アプリDBLDAPサーバー
SSO不可可能(社内)
組織連携弱い強い

6. ディレクトリ認証のメリット

  • ユーザー管理の一元化
  • 退職時のアカウント削除が容易
  • グループ連携が可能
  • 社内SSOと統合可能

企業向けシステムでは非常に強力です。


7. デメリットと注意点

  • 構築・運用が重い
  • インターネット公開用途には向かない
  • ネットワーク依存
  • 接続タイムアウト問題

SaaS向けでは、LDAP単体よりOIDCやSAML連携が主流です。


8. 実務での使われ方

ケース① 社内システム

社内ポータル、勤怠管理、VPNなど。

ケース② BtoB製品の企業連携

企業のActive Directoryと連携。


9. まとめ|ディレクトリ認証を理解すると設計力が上がる

ディレクトリ認証は、 「ユーザー管理の外部化」という発想です。

ローカル認証しか知らないエンジニアと、 LDAPやADを理解しているエンジニアでは、 BtoB案件での設計力に大きな差が出ます。

次回は、LDAPのセキュリティ設計(LDAPS・TLS・バインド方式)や、 AD連携の具体例をさらに深掘りします。

コメント

タイトルとURLをコピーしました