active_ldap-Gem in Rails 2.1 0

Posted by fwoeck
on Friday, October 24

Das LDAP-Gem in Rails 2.1 einzubinden ist etwas tricky – man muss die Library separat angeben:

config.gem "activeldap", :lib => "active_ldap"

Siehe auch: activeldap in Rails verwenden

ActiveLdap in Rails verwenden 0

Posted by fwoeck
on Thursday, August 28

ActiveLdap integriert ein LdapVerzeichnis, indem es ActiveRecord-ähnliche Modelle einführt:

1. Installiere ActiveLdap und ruby-ldap

su -
gem install activeldap
wget http://switch.dl.sourceforge.net/sourceforge/ruby-ldap/ruby-ldap-0.9.7.tar.gz
tar xzf ruby-ldap-0.9.7.tar.gz
cd ruby-ldap-0.9.7
ruby extconf.rb
make
make install

2. Erstelle ein File ldap.yml in ./config/

development:
    host: ldap.bm.net
    port: 389
    base: o=bm,c=net
    password:

test:
    host: ldap.bm.net
    port: 389
    base: o=bm,c=net
    password:

production:
    host: ldap.bm.net
    port: 389
    base: o=bm,c=net
    password:

3. Änderungen in environment.rb

require 'rubygems'
require 'active_ldap'

...

ldap_path = File.join(RAILS_ROOT,"config","ldap.yml")
ldap_config = YAML.load(File.read(ldap_path))[RAILS_ENV]
ActiveLdap::Base.establish_connection(ldap_config)

4. Erstelle das Modell LdapUser in ldap_user.rb

class LdapUser < ActiveLdap::Base
  ldap_mapping :dn_attribute => "uid", :prefix => "ou=users" 

end

5. Anwendungsbeispiele

$ script/console

>> LdapUser.find(:first).cn
=> "Anton Mayer" 

>> LdapUser.find('ab').cn
=> "Arthur Brauer" 

>> LdapUser.find(:attribute => 'mail', :value => 'thats.me@bm.net')
=> #<LdapUser objectClass:<top, person, organizationalPerson, inetOrgPerson>, ...

>> LdapUser.find(:all).map {|l| [l.uid, l.cn] }
=> [["am", "Anton Mayer"], ["an", "Anne Nauer"], ["ab", "Arthur Brauer"], ...

Siehe auch: active_ldap in Rails 2.1