ADサーバーとの認証
ふと思い立って調べてみたら、昔かなり苦労してできなった社内のADサーバーでユーザー認証ができた。集中力の差だろうか...。
前はLDAPをいじくってあーだこーだやってできなかったけど、シンプルにするのがコツだったようなのでメモ。何か社内認証が必要なところで使えるような気がするのでメモ。
あと、Base指定が他のサンプルを参考にしたけど、うちのAD環境は少し違ったようなので社内ポータルの設定を見て解析してみました。
require 'rubygems' require 'net/ldap' require 'kconv' require 'pp' host = "adsv01.test-inc.local" port = "389" #ポート番号 domain = "test-inc.local" base = 'OU=All-Users,DC=test-inc,DC=local' user = "1234" pass = "hogehogehoge" conn = Net::LDAP.new( :host => host, :port => port, :auth => { :method => :simple, :username => "#{user}@#{domain}", :password => pass } ) raise 'Auth Fail!' unless conn.bind entries = Hash.new conn.open { |ldap| filter = Net::LDAP::Filter.eq('samaccountname', "#{user}") ldap.search( :filter => filter, :base=> base ) do |entry| entry.each do |field, value| entries[field] = value end end } p entries[:mail] pp entries