net-ldapを試してみた
Date:2014-03-05 00:18:10 +0900
Categories: TECHNOLOGY
Categories: TECHNOLOGY
業務で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/](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を直接触ったことがないので参考までに。Tweet