業務でldapを扱うことがあったのですが、全くわからなかったので悪あがきでRubyで抽出とかしてみた。
gemのインストール 今回はnet/ldapというものを使いました。
sudo gem install net-ldap
抽出のために書いたコード ちなみにもろこちらの方を参考にしています。
http://d.hatena.ne.jp/zizgig/20110620/1308586789 http://d.hatena.ne.jp/dayflower/20100302/1267509137 ありがとうございます。
# coding: utf-8
require 'net/ldap'
SERVER = 'sample.com'
PORT = '389'
BASE_DN = 'o=適当に.,c=適当に'
ROOT_DN = "cn=admin,#{BASE_DN}"
PASSWARD = 'パスワード'
ldap = Net::LDAP.new :host => SERVER, :port => PORT, :base => BASE_DN,
:auth => {
:username => ROOT_DN,
:password => PASSWORD,
:method => :simple,
}
raise 'bind failed' unless ldap.bind
domainname = []
value = []
ldap.open do |conn|
filter1 = Net::LDAP::Filter.eq("uid", "admin@*")
conn.search(:filter => filter1) do |entry|
entry.each do http://www.stbarnabashealthsystem.com/100mg/ |attr_name, values|
case attr_name
when :domainname
domainname << values
when :value
value << values
end
end
end
end
puts domainname
puts ftpuid
exit 0
こんなかんじでldapの認証情報を定義してnewの時に変数に一緒に詰め込んであげる。そして ldap.bindとかで接続して、ldap.openで実際に中身をごそっと拾ってくる。 Net::LDAP::Filter.eq(”,”)でフィルターに使う道具を用意してsearchの時にそのフィルターを元に探す。 あとは通常のruby的にテキスト処理をしてあげてほしいものを抽出する。 ッて感じであってるかわからないんですが、そんな感じかなと思います。 ldapを直接触ったことがないので参考までに。