タグ別アーカイブ: LDAP

[LDAP初心者]パスワードポリシー設定

前回のエントリ追加にて
ディレクトリツリーにユーザを追加することはできました。

そのユーザにパスワードポリシー
(パスワード有効期限、アカウントロックなど。。)
を設定することになりました。

設定する項目は次の項目
■共通設定
・パスワード有効期限(pwdMaxAge)
・パスワード有効期限切れ警告(pwdExpireWarning)
■ユーザ毎に取得する項目
・パスワード変更日時(pwdChangedTime)
・アカウントロック(pwdAccountLockedTime)
・初回パスワード(pwdReset)

上記項目の属性をエントリに追加しようと
探してみましたが、、見つからず。。。

調べてみたところ、
OpenLdapのDefaultでは
パスワードポリシーのオブジェクトクラスは設定されていないため
自分で初期設定ファイル(slapd.conf)に記述を追加しなければ
いけないとのこと。。。

ネットで調べた情報を参考に、
初期設定ファイル(slapd.conf)に下記の記述を追加してOpenLdapを再起動

===========================================================
# schema 追加
include         ../etc/openldap/schema/ppolicy.schema

#index記述の下に
# Password Policy
overlay ppolicy
ppolicy_default “cn=Standard Policy,ou=Policies,dc=my-domain,dc=com”
ppolicy_use_lockout
===========================================================

再起動後、下記のLDIFファイルを作成し
共通パスワードポリシー設定として登録

■ppolicy_ou.ldif
————————————————————————
#top level of organization
dn: ou=Policies,dc=my-domain,dc=com
objectClass: top
objectClass: organizationalUnit
ou: Policies
————————————————————————

■policy.ldif
————————————————————————
dn: cn=Standard Policy,ou=Policies,dc=my-domain,dc=com
objectClass: top
objectClass: device
objectClass: pwdPolicy
cn: Standard Policy
pwdAttribute: userPassword
pwdMaxFailure: 3
pwdMustChange: TRUE
pwdMinLength: 6
pwdInHistory: 1
pwdCheckQuality: 1
pwdMinAge: 0
pwdLockout: TRUE
pwdMaxAge: 2592000
pwdExpireWarning: 86400
pwdReset: TRUE
————————————————————————

登録はエントリ追加と同様にコマンドプロンプトより管理者ユーザで
「ldapadd」コマンドを実行

ldapadd -x -W -D “cn=Manager,dc=my-domain,dc=com” -f ppolicy_ou.ldif
ldapadd -x -W -D “cn=Manager,dc=my-domain,dc=com” -f policy.ldif

パスワードポリシーの共通設定は
正常に登録できました。

 

[LDAP初心者]エントリ追加

GUI操作の管理ツール「LdapAdmin」で
ユーザを追加していこうと思い、
「LdapAdmin」を起動して、接続&管理者ユーザで認証しようとしたところ

”オブジェクトクラスが存在しません。”

のエラーが表示され、接続まではうまくいっているみたいだけど
認証で失敗しているようでした。
(「接続テスト」は成功したので)
OpenLdapサーバを構築している方々のHPを参考にさせて
もらったところ、

先ずは、ディレクトリツリーの基点となるベース DN(suffix)を
登録する必要があるらしく、
下記のように「base.ldif」というLDIFファイルに
ベース DN(suffix)と管理者ユーザのエントリを定義し
登録してみました。

■base.ldif
————————————————————————
dn: dc=my-domain,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
objectClass: domainRelatedObject
objectClass: extensibleObject
o: MateAR.eu Corporation
description: The Example Corporation
dc: my-domain
associatedDomain: my-domain.com

dn: cn=Manager,dc=my-domain,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager
————————————————————————
登録はコマンドプロンプトより管理者ユーザで
「ldapadd」コマンドを実行

ldapadd -x -W -D “cn=Manager,dc=my-domain,dc=com” -f base.ldif

実行すると、パスワードを聞かれるので
管理者ユーザのパスワードを入力
ベース DN(suffix)が登録されたため
「LdapAdmin」で接続&管理者ユーザでの認証ができるようになりました。
ちなみにコマンドプロンプトは
OpenLDAPをインストールした際に、「OpenLDAP Command Line」という
ツール(?)がインストールされており、
実行すると、OpenLDAPの「bin」フォルダのパスに移動した状態で
コマンドプロンプトが起動されます。

後は、ベース DN(suffix)の下にグループを作成したりユーザを作成したり
作りたいディレクトリツリーに合わせて作成していくことになります。

「LdapAdmin」のGUI操作でエントリを作っていくか
今回追加したように、作成したいエントリをLDIFファイルに記述し
「ldapadd」コマンドで追加していきます。

LDIFファイルの記述方法を理解できたら
「ldapadd」コマンドでの追加がいいかなと思いました。

次回はパスワードポリシーの設定について
書いてみたいと思います。

[LDAP認証初心者]LDAP管理ツール

前回、テスト環境用のOpenLDAPサーバを立ち上げ
ディレクトリツリーにテストユーザを追加していこうと思いましたが

OpenLDAPにはGUIで操作できる管理ツールが用意されたいないため
エントリの登録,検索など、コマンドラインで入力しないといけないのは大変なので
GUIの管理ツールを探してみました。

■LdapAdmin

http://www.ldapadmin.org/

EXEファイルがダウンロードできるので
インストールなしで、そのまま起動して使用できます。

ディレクトリエントリを登録した後の画面がこんな感じ
ldapAdmin

エントリの登録も結構、簡単にできました。
ただ、LDAPのプロトコルをまだよくわかっていないため
どのような項目を登録すればいいのかは勉強しながら登録していく
必要がありましたが。。

他にも
■LDAP Broser/Editor
■JXplorer

というGUI管理ツールがあるようです。
「LDAP Broser/Editor」が使いやすいと書かれている方が
多かったような気がします。

次回はいよいよユーザを追加していきたいと思います。

[LDAP認証初心者]OpenLDAPインストール

LDAP認証のテスト環境ということで
自分のPC(Window7)にOpenLDAPをインストールすることになりました。

1.SourceForgeさんのサイトより「OpenLDAP for Windows」を
ダウンロードしてインストール

http://sourceforge.jp/projects/sfnet_openldapwindows/

2.LDAP初期設定ファイルを自分が構築したいディレクトリエントリに合わせて変更
C:\OpenLDAP\etc\openldap\slapd.conf

========================================================
database bdb
suffix  “dc=my-domain,dc=com”
rootdn  “cn=Manager,dc=my-domain,dc=com”
rootpw  {SSHA}ELYEVFER2s6yqWugfOzoIpJZJ09cO6dN
========================================================
suffix ・・・ディレクトリツリーのルート
rootdn・・・管理者ユーザDN
rootpw・・・管理者パスワード(上記は暗号化されたパスワード)

今回は、管理者パスワードだけわりやすくするために
暗号化されていないテキスト文字に変更しました。

3.OpenLDAP起動
スタートメニューより「Start LDAP Server」を起動
DOS窓が開いてなんとか起動できたようです。

LDAP起動

ちなみに、LDAPを終了する時は、Ctrl+C を押すと下記のように
「バッチジョブを終了しますか?(Y/N)」と聞いてくるので「Y」でEnterキーを押すと
終了します。
ldap終了

次回は、ディレクトリツリーにユーザ追加をしていきたいと思います。

[LDAP認証初心者]LDAPとは・・・?

C#にてLDAP認証を実装することになり
テスト環境のLDAPサーバも構築しないといけなくなり、
今までLDAPについては認証をするものということくらいか
知らなかったので、先ずはLDAPとは何かについて調べてみました。

■LDAP(Lightweight Directory Access Protocol)
ディレクトリ・サービスに接続するために使用されるプロトコルの一つ

■ディレクトリ・サービス
コンピュータネットワーク上にあるユーザ情報、マシン名などの資源を管理するサービス
ユーザ名などのキーとなる値から様々な情報を検索することが可能

・ディレクトリーサービスとして代表的なものとして
DNS(Domain Name Syetem),オープンソースのOpenLDAP,
MicrosoftのWindows2000以降のサーバ製品に標準搭載されているActive Directory

・ディレクトリサービスは特殊なデータベースを用いるため、一般的なデータベースとは
異なった特徴がある

読み取りが高速
分散型の情報格納モデル
高度な検索機能を持つ

 

本番環境では、NECのESD(EnterpriseDirectoryServer)を使用するということでしたが
テスト環境ではオープンソースのOpenLDAPを使用して構築することになりました。

次回は、OpenLDAPでのLDAPサーバ構築について書いてみたいと思います。
(サーバ構築が順調に進んでいれば。。)