へっぽこネットワークエンジニアのにっき

しあわせになりたい。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Net::LDAPをつかってみる

相変わらず自分用覚書。

最近Perlで遊んでますが、レベルは初級レベルですよ。って先に言っておく。
そういうわけで、もっとスマートに書けるよ、って言うのであればご指摘おば。

参考は以下

Perl 覚書 - jordan_beth の日記

Net::LDAP
Net::LDAP (CPAN)

スキーマは便宜上以下のものとする

dc=hoge,dc=co,dc=jp
    |____ou=People
        |----uid:ユニークなID(例えば社員番号とかね)
        |----cn:氏名
        |----mail:メールアドレス
        |____userPassword:パスワード


Net::LDAPのインストールは省略

引数にuidを入力して、該当するuidの情報を取得するサンプル。

LDAPサーバの anonymous bindが有効になっていることが前提として
anonymousでldapsearchをする。

anonymous_search.pl

#! /usr/bin/perl

use strict;
use warnings;
use Net::LDAP;

#
#LDAP Server Configuration
#
my $ldapserver ='localhost';
my $basedn ="ou=People,dc=hoge,dc=co,dc=jp";
my $ldap = Net::LDAP->new($ldapserver) or die "$@";

my $uid = shift;

#LDAP user search
$ldap->bind;
my $msg = $ldap->search(
base => "$basedn",
filter =>"(uid=$uid)",
);

$msg->code && die $msg->error;

foreach my $entry ($msg->all_entries) {
print $entry->get_value('uid')."\n";
print $entry->get_value('cn')."\n";
print $entry->get_value('mail')."\n";
print $entry->get_value('userPassword')."\n";
}

#スキーマ情報を全て出す場合は以下でいいみたい
#foreach my $entry ($msg->entries) { $entry->dump; }

$ldap->unbind;

exit 0;




./anonymous_search.pl [引数にuid]



匿名認証でパスワードが見れるってドウなのよ、っていうのがありますんで
slapd.confに以下のACLを追加

access to attrs=userPassword
by anonymous auth
by self read
by dn="cn=Manager,dc=hoge,dc=co,dc=jp" read
by * none



この後実行すると、userPasswordの行は

Use of uninitialized value in concatenation (.) or string at ./anonymous_search.pl line 29, line 225.
となります。匿名では見れないので、エラーが返ってきます。
見せたくないなら、そもそもコードに書かなきゃいいじゃん、って言うのもあるんですが、
ACL前後でパスワードが見れないかの確認のため実施。
ログを見てみる

centos1 slapd[2252]: conn=15 fd=12 ACCEPT from IP=127.0.0.1:36452 (IP=0.0.0.0:389)
centos1 slapd[2252]: conn=15 op=0 BIND dn="" method=128
centos1 slapd[2252]: conn=15 op=0 RESULT tag=97 err=0 text=
centos1 slapd[2252]: conn=15 op=1 SRCH base="ou=People,dc=hoge,dc=co,dc=jp" scope=2 deref=2 filter="(uid=[uid])"
centos1 slapd[2252]: conn=15 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
centos1 slapd[2252]: conn=15 op=2 UNBIND
centos1 slapd[2252]: conn=15 fd=12 closed

スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://heppokone.blog27.fc2.com/tb.php/445-e7e54a70
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。