このページは

まだ書いている途中です.気が向き次第付け足していきます.
ってか誰か書いてもいいよ~w
参考にしようと思ったら途中だったのでpachikiが勝手に書き足します:)

LDAPとは

エルダップ:Lightweight Directory Access Protocolとはネットワークを利用するユーザなどを管理するディレクトリ型データベースにアクセスするためのプロトコルである.ちなみにDAP(Directory Access Protocol)と呼ばれる,ITU-TのX.500シリーズが規定している分散ディレクトリーサービスプロトコルがあり,その簡略化版がLDAPである.

何ができるか

一つのユーザIDに対してメールアドレスやパスワードを登録しておけばその情報を元に様々なサービスを受けることができ,管理側もサービスごとに必要な設定を省けるため,管理が容易になる.

主に,

  • WebサービスでのID
  • メールでのアドレス帳,ID
  • メーリングリストでのID
  • SAMBAでのID
  • 無線LNAの認証
  • アドレス帳とし,個人情報のデータベース

    などに応用される.どれもユーザ単位はもちろん,グループ単位での設定が可能である.また,個人情報のように他人には公開してはならない情報は,アクセス制御をかけることもできる.

なぜLDAPか

各種サービスごとにパスワードを設定した方が流失の際に安全かのように思えるが,サービスごとにパスワードを用意すれば忘れることを恐れたメモをとってしまうことがある.一つのパスワードであればそれを防ぐことができる.

また,Unixでは従来からNISがあったが,各種サービスの拡張を行うにはNISを軸に,各サービス側で属性を補完して構築してきたが,昨今のようにユーザ要求が多種多様にわたり,新たなサービスも毎日のように生まれている状況では無理が生じてきた.

LDAPはUnixはもちろん,WindowsやMacOSなど様々なプラットフォームで利用できる.キャッシュ対応やマルチバイトにも対応していることも大きなメリットである.

ディレクトリ型データベース

ディレクトリとはファイルシステムの木構造を想像しがちだが,元来の英単語の意味は

Directory: 特定地区などの 住所氏名録,商工人名録

である.電話帳はTelephone Directoryである.

電話帳は人名などをキーに電話番号や住所を探し出すが,ディレクトリサービスはこのキーを元に付随情報を検索するということを行う.LDAPのPはプロトコルであることからもわかるように,LDAPはデータベースでなく,アクセスするための方法である.データベースには一般的に,リレーショナルデータベースを利用している.ただ,アクセスする方法がSQLではなく,LDAPである,というのが違いである.

ディレクトリエントリ

属性の定義

オブジェクトクラス

スキーマ

サーバ設定

slapd.conf

設定確認

サービスの操作

データベース運用

記述方法と初期データベースの登録

データの追加(コマンド)

データの修正(コマンド)

データの追加と修正(LDAPブラウザ)

セキュリティ設定

各種サービスとの連携

Apache

samba

mailman

pptp + Radius

サービスの安定化

複製サーバの構築

データベースバックアップ

トラブル対応

ログによるエラー解析

参考文献

以下テンポラリー

LDAPのattribute

属性タイプ 呼び名 役割
dn Distinguished Name( 識別名) エントリの場所を示す.全レコードで一意になる
dc Domain Component( ドメイン構成要素) ドメインの全体名
ou Organizational Unit( 組織単位) フォルダのようにそれ以下の項目をまとめる
objectClass オブジェクトクラス 属するクラス
sn Sur Name( 性) 姓名の性
gn Given Name( 名) 姓名の名
cn Common Nmae( 一般名称) グループ名やLDAP の管理のためだけのアカウントなどに用いる
gecos フルネーム 一般的にはユーザのフルネームを記載する
uid UserID(ユーザ名) ログイン名としても利用される.一意のほうが管理しやすい
uidNumber ユーザ番号 ユーザごと一意なユーザ番号
gidNumber グループ番号 グループごと一意なグループ番号
description 説明 そのエントリに対する説明を記載する
userPassword Unix パスワード ユーザのパスワードを記載する

アクセス権の設定

  • slapd.confに記載
    access to <アクセス制御対象>
    by <アクセスを許可する対象> <アクセス許可レベル>
    by <アクセスを許可する対象> <アクセス許可レベル>
    ...
    
  • < アクセス制御対象> は対象となる属性
  • < アクセスを許可する対象>
    設定 対象
    * すべて
    anonymous 匿名ユーザ
    users 認証を行なったユーザ
    self ユーザ自身
    dn=”regex” 正規表現”regex”に一致したユーザ
  • < アクセス許可レベル>
    設定 許可の内容
    none アクセス権なし
    auth バインド(接続)可能
    compare 比較可能
    search 検索フィルタ実行可能
    read 検索・読み込み可能
    write 更新可能
  • HTML
  • PDF
RSS2.0 RSS1.0 Atom1.0