「LDAP より SAML / OIDC の方が高セキュリティである」という言い方を見かけることがあります。しかし、この理解はかなり雑です。LDAP、SAML、OIDC は、同じ目的の認証方式を横並びにしたものではありません。
LDAP は、ディレクトリ情報へアクセスするためのプロトコルです。ユーザーやグループ、属性を検索し、Bind によって資格情報を確認する用途で使われます。一方、SAML と OIDC は、IdP で行われた認証結果をアプリケーションへ連携するための仕組みです。
つまり、LDAP と SAML / OIDC の違いは、単純な新旧や強弱ではありません。どのレイヤで本人確認を行い、どこへ認証結果を渡し、どこで認可し、どのように監査するかという設計の違いです。この記事では、LDAP、SAML、OIDC を目的、適用範囲、実装責任、運用負荷の観点から確認します。
書籍
認証と認可 Keycloak 入門 第2版
Keycloak、SSO、OAuth、OpenID Connect、認証・認可の設計を確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
まず役割を分ける
LDAP、SAML、OIDC は、どれも認証や ID 管理の文脈で出てきます。しかし、同じ部品ではありません。LDAP はディレクトリに問い合わせるためのプロトコルであり、SAML / OIDC は認証結果をサービスへ渡すための連携プロトコルです。
| 方式 | 主な役割 | 典型的な利用先 | 注意点 |
|---|---|---|---|
| LDAP | ディレクトリ検索、ユーザー属性取得、Bind による認証確認 | Linux、ネットワーク機器、社内システム、ミドルウェア | TLS、Bind 権限、検索範囲、ACL、監査が重要 |
| SAML | IdP と SP の間で認証結果を Assertion として連携する | SaaS、企業向け Web アプリ、組織間 SSO | 署名検証、Audience、期限、属性マッピングが重要 |
| OIDC | OAuth 2.0 を土台に ID Token と Claims を扱う | Web アプリ、モバイルアプリ、API 連携 | Issuer、Audience、Nonce、Redirect URI、Token 検証が重要 |
この表だけでも分かるように、LDAP と SAML / OIDC は置き換え関係というより、使う場所が違います。実際の環境では、IdP の裏側で LDAP を参照し、アプリケーションには SAML / OIDC で認証結果を渡す構成も普通にあります。
SAML / OIDC は認証結果の連携手段
SAML は、IdP で認証されたユーザーの情報を XML ベースの Assertion として SP に渡します。OIDC は OAuth 2.0 を土台に、ID Token や Claims を使って認証結果とユーザー情報を渡します。
ここで重要なのは、SAML / OIDC を使えばアプリケーションが自動的に安全になるわけではないことです。アプリケーション側で Assertion や ID Token の検証、ユーザー紐付け、認可、セッション管理を誤れば、SAML / OIDC を使っていても危険な構成になります。
- SAML Assertion の署名を正しく検証しているか
- Issuer と Audience を確認しているか
- OIDC の ID Token、Nonce、Redirect URI を正しく扱っているか
- 認証と認可を混同していないか
- アプリケーション側のセッション管理が適切か
LDAP は古い認証方式ではない
LDAP は「古い認証方式」というより、ディレクトリ情報へアクセスするためのプロトコルです。ユーザー DN を検索し、その DN で Bind して資格情報を確認し、必要に応じてグループや属性を取得します。
アプリケーション -> LDAP サーバー
1. ユーザーを検索する
2. ユーザー DN を特定する
3. Bind で資格情報を確認する
4. グループや属性を取得して認可に使うLDAP が危険になるのは、LDAP という名前のせいではありません。平文通信、過剰な Bind 権限、広すぎる検索範囲、弱いパスワードポリシー、監査不足、アカウントロック不足がある場合に危険になります。
逆に、LDAPS や StartTLS、適切な ACL、最小権限の Bind アカウント、監査ログ、ロックアウト、パスワードポリシーを組み合わせれば、LDAP は現在でも堅牢なディレクトリ基盤として使えます。
SAML / OIDC が高セキュリティに見える理由
SAML / OIDC が高セキュリティに見えるのは、プロトコル単体というより、IdP 側に認証機能を集約しやすいからです。MFA、条件付きアクセス、リスクベース認証、認証ログ、SSO を IdP 側でまとめて扱えることは大きな利点です。
- MFA を導入しやすい
- SSO によってログイン経路を集約できる
- 認証ログを一元化しやすい
- 条件付きアクセスやリスクベース認証を適用しやすい
- アプリケーション側にパスワードを持たせずに済む
ただし、これは IdP の設計、設定、運用、監査が適切である場合の話です。IdP 側の設定ミスは複数サービスへ波及します。便利な集約点は、同時に大きな影響点にもなります。
目的が違うものを比較してはいけない
LDAP と SAML / OIDC は、どちらも認証に関係します。しかし、目的が違います。LDAP は、ディレクトリ内のユーザーやグループを参照し、内部システムや管理レイヤで資格情報を確認する用途に向いています。SAML / OIDC は、Web アプリケーションや SaaS に対して、IdP の認証結果を渡す用途に向いています。
たとえば、Linux ログイン、ネットワーク機器、ミドルウェア、社内運用ツール、古い業務システムでは LDAP が自然なことがあります。一方、SaaS、ブラウザ前提の Web アプリ、組織間 SSO、外部サービス連携では SAML / OIDC が自然です。
| 用途 | 向きやすい方式 | 理由 |
|---|---|---|
| Linux やネットワーク機器のログイン | LDAP | ディレクトリ参照と Bind による確認が扱いやすい |
| SaaS への SSO | SAML / OIDC | IdP の認証結果をサービスへ渡しやすい |
| Web アプリのログイン統合 | OIDC | ID Token と Claims をアプリ側で扱いやすい |
| 企業間の認証連携 | SAML | エンタープライズ SSO の実績が多い |
| 非ブラウザ系クライアント | LDAP や個別認証が残りやすい | SAML / OIDC のリダイレクトフローを扱えないことがある |
SAML / OIDC は実装と運用が重い
SAML / OIDC は便利ですが、実装と運用は軽くありません。特に古い製品や中途半端な対応のアプリケーションでは、設定項目の意味が分かりにくかったり、属性マッピングやログアウトが期待通りに動かなかったりします。
- メタデータや証明書の管理が必要になる
- 属性マッピングやグループ連携が製品ごとに異なる
- ログアウトの挙動が期待通りにならないことがある
- CLI、WebDAV、メール、VPN など非ブラウザ系クライアントでは扱いにくい
- IdP 側の設定変更が複数サービスへ波及する
Nextcloud のように、ブラウザでは SAML 認証が成立しても、WebDAV クライアントが SAML のログインフローを扱えないケースがあります。この場合、SSO とアプリパスワード、LDAP、ローカル認証をどう併用するかまで設計しなければなりません。
本質はプロトコル名ではなく設計と運用
認証の安全性は、プロトコル名だけでは決まりません。どこで本人確認を行い、どこで認可を行い、どこでセッションを管理し、どのログを監査するかで決まります。
- 通信が暗号化されているか
- 資格情報や Token の有効期限が適切か
- MFA や条件付きアクセスを必要な範囲に適用しているか
- アプリケーション側の認可が正しく実装されているか
- ログと監査が追えるか
- IdP 停止時や LDAP 停止時の影響範囲が分かっているか
SAML / OIDC も LDAP も、設計と運用次第で安全にも危険にもなります。セキュリティの高さは、方式の名前ではなく、責任分界、設定、実装、可視化、監査体制の全体で決まります。
まとめ
LDAP より SAML / OIDC の方が高セキュリティである、という単純な理解は危険です。LDAP はディレクトリ情報へアクセスするためのプロトコルであり、SAML / OIDC は IdP の認証結果をアプリケーションへ連携するための仕組みです。
SAML / OIDC は SSO、MFA、条件付きアクセス、認証ログの集約に強みがあります。一方で、LDAP はシステム管理レイヤ、内部システム、ネットワーク機器、ミドルウェアの認証や属性参照で自然に使える場面があります。
認証方式は流行や印象で選ぶものではありません。対象システム、利用者、アクセス経路、認可、セッション、監査、障害時の影響を含めて、適材適所で設計する必要があります。
参考情報
参考:
関連する記事
あわせて読みたい:

