LoginSignup
5
5

More than 5 years have passed since last update.

Mac OSXにOpenLDAPを導入・設定する手順 [P1]

Last updated at Posted at 2016-09-26

OpenLDAPの導入

MacはすでにOpenLDAPを含んでいますのでさらに導入するのは必要がありませんが、もうし導入したい場合は先立ってbrewを導入して以下のようにOpenLDAP導入する

  • Brewの導入:http://brew.sh/
  • brew install homebrew/dupes/openldap --with-berkeley-db4

OpenLDAPの設定手順

ldap.conf( /etc/openldap/ldap.conf ) :

LDAPのBASEとURIを定義するところです

#
# LDAP Defaults
#
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
#BASE   dc=example,dc=com
#URI    ldap://ldap.example.com ldap://ldap-master.example.com:666
BASE    dc=localhost
URI     ldap://localhost
#SIZELIMIT      12
#TIMELIMIT      15
#DEREF          never
TLS_REQCERT     demand

slapd.conf ( /etc/openldap/slapd.conf )

まずは必要なスキーマを含めるようにする


include         /private/etc/openldap/schema/core.schema
include         /private/etc/openldap/schema/cosine.schema
include         /private/etc/openldap/schema/nis.schema
include         /private/etc/openldap/schema/inetorgperson.schema

bdpデータベースに応じてのモジュールをコメントアウトする


modulepath      /usr/libexec/openldap
moduleload      back_bdb.la
BDPデータベースに関する設定は以下になります
#######################################################################

# BDB database definitions

#######################################################################
database        bdb
suffix          "dc=localhost"
rootdn          "cn=Manager,dc=localhost"
rootpw          {SSHA}w2PML4P/bcKEiW1YfF8Y0PiJHaCnGAY9
  • rootdnは後ほどよく使われるので覚えておいてください。
  • rootpwは別のターミナルでslappasswdで生成されます。
  • 新パスワードは仮で「admin」にしておく。

LDAPサーバーのデータの保存する場所はdirectoryで指定されます。

directory       /private/var/db/openldap/openldap-data

以上で書いてあるフォルダーへ移動してDBの必要なファイルをdefaultからcopyする


$cp DB_CONFIG.default DB_CONFIG

LDAP操作

設定ファイル句法は正しいかどうかの確認

$sudo slaptest

[bdb_monitor_db_open: monitoring disabled; configure monitor database to enable
config file testing succeeded]がでてくるかもしれませんが無視してもいいです

サーバー起動

% sudo /usr/libexec/slapd -d3

無事に起動できればdn2id.bdbやid2entry.bdbが自動的に生成されましてサビスは上に指定していたURIで動いているはずです。psコマンドで確認できます

#ps -ef | grep slapd

検索

slapdを初めて起動したときの確認


$ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts

登録

構成定義ファイルの拡張子はLDIFです。下の例ではorganization.ldif とする

dn:cn=company,dc=localhost
objectclass:dcObject
objectClass:organization
dc:localhost
o:My_Company
description:Company

ldapaddで登録する

$ldapadd -x -w admin -f organization.ldif -D "cn=Manager,dc=localhost" 

要注意:
- 「admin」は上に述べたrootpwである。
- 「cn=Manager,dc=localhost」は設定ファイルで定義した「rootdn」である。

削除

ldapdelete -x -w admin -D "cn=Manager,dc=localhost" "cn=company,dc=localhost" 
  • 一番目のパラムはrootdnで2番目のパラムは削除したいアイテムです
  • rootpwは最後に入られます

objectClassについて

No オブジェクトクラス名 必須属性名 意味 備考
1 dcObject dc domain component -
2 person sn
3 person cn 人の名前 (common name)

よく遭遇するトラブル

No 区分 メッセージ 対処
1 ldapsearch/add/delete Can't contact LDAP server (-1) 環境変数LDAPCONFで指定されたldap.confのHOST設定は正しくない恐れがある
2 ldapsearch/add/delete SASL(-1): generic failure: GSSAPI Error: Miscellaneous failure (No credentials cache found) -xオプションを付ければ解決
3 ldapsearch/add/delete ldap_delete: Strong(er) authentication required (8) additional info: modifications require authentication -xに加えて、-w secretも付けてみよう。secreteはrootpwの値です
4 ldapsearch/add/delete ldap_delete: Server is unwilling to perform (53) additional info: no global superior knowledge 削除指定したDN名が不明確でrootDNは正しく指定されていない
5 ldapsearch/add/delete ldap_bind: Invalid credentials (49) -D [rootdn]をつけてみましょう。
6 slapcat slap_startup failed OSを再起動したら治られるかも
7 ldapadd additional info: objectClass: value #0 invalid per syntax 必要なschemaファイルがslapd.confでincludeされていない
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5