1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275
|
Ruby/LDAP -- A Ruby extension library for LDAP
Copyright (C) 2000-2004 Takaaki Tateishi <ttate@users.sourceforge.net>
Copyright (C) 2005-2006 Ian Macdonald <ian@caliban.org>
Copyright (C) 2009 Alexey Chebotar <alexey.chebotar@gmail.com>
-------------------------------------------------------------------------------
DESCRIPTION
Ruby/LDAP is a Ruby extension library that provides an interface to the LDAP
API as described in RFC1823.
-------------------------------------------------------------------------------
REQUIREMENT
* Ruby 1.8.x or 1.9.x
* OpenLDAP, Netscape SDK, Windows 2003 or Windows XP
-------------------------------------------------------------------------------
PORTS
* FreeBSD ("Akinori -Aki- MUSHA" <knu@idaemons.org>)
* Debian (Akira Yamada <akira@ruby-lang.org>)
-------------------------------------------------------------------------------
BUILDING
extconf.rb will try to use the OpenLDAP 2 or Netscape SDK libraries and guess
paths to some header files and libraries from the position of ldap.h. If you'd
like to see the available options for extconf.rb, run it with '--help' option.
$ ruby extconf.rb [--with-openldap1|--with-openldap2|--with-netscape|--with-wldap32]
$ make
This will create ldap.so, which you can either manually copy into place or
install with:
$ make install
If you're building the software on Windows, you may need to use nmake instead
of make.
-------------------------------------------------------------------------------
LICENSE
See COPYING.
-------------------------------------------------------------------------------
AVAILABLE CLASSES and METHODS
LDAP::LDAP_VERSION
LDAP::LDAP_MAX_VERSION
LDAP::VERSION
LDAP::MAJOR_VERSION
LDAP::MINOR_VERSION
LDAP::LDAP_PORT
LDAP::LDAPS_PORT
LDAP::LDAP_API_INFO_VERSION
LDAP::LDAP_VENDOR_NAME
LDAP::LDAP_VENDOR_VERSION
LDAP::LDAP_API_VERSION
LDAP.err2string(errcode)
LDAP.dn2ufn(dn)
LDAP.mod(mod_op, mod_type, mod_vals) (= LDAP::Mod.new)
LDAP.hash2mods(mod_op, hash)
LDAP.entry2hash(entry) (= entry.to_hash)
LDAP::Conn.new(host = "localhost", port = LDAP::LDAP_PORT)
: conn (raise LDAP::Error)
LDAP::Conn.open(host = "localhost", port = LDAP::LDAP_PORT)
: conn (raise LDAP::Error)
LDAP::Conn#simple_bind(dn = nil, password = nil) { ... }
: conn (raise LDAP::ResultError)
LDAP::Conn#bind(dn = nil, password = nil,
method = LDAP::LDAP_AUTH_SIMPLE) {|conn| ... }
(raise LDAP::ResultError)
LDAP::Conn#bind(dn = nil, password = nil,
method = LDAP::LDAP_AUTH_SIMPLE) : conn
(raise LDAP::ResultError)
LDAP::Conn#sasl_bind(dn = nil, mech = nil, cred = nil,
sctrls=nil, cctrls=nil) {|conn| ... }
(raise LDAP::ResultError)
LDAP::Conn#sasl_bind(dn = nil, mech = nil, cred = nil,
sctrls=nil, cctrls=nil) : conn
(raise LDAP::ResultError)
LDAP::Conn#bound? : true || false
LDAP::Conn#unbind() (raise LDAP::ResultError)
LDAP::Conn#start_tls
LDAP::Conn#perror(str)
LDAP::Conn#result2error(ldap_msg) : errcode
LDAP::Conn#err2string(errcode) : errmsg
LDAP::Conn#get_errno : errcode [if available]
LDAP::Conn#search(basedn, scope, filter, attrs = nil, attrsonly = false,
sec = 0, usec = 0,
s_attr = nil, s_proc = nil) {|entry| ... }
: conn (raise LDAP::ResultError)
LDAP::Conn#search2(basedn, scope, filter, attrs = nil, attrsonly = false,
sec = 0, usec = 0,
s_attr = nil, s_proc = nil) {|entry_as_hash| ... }
: conn (if a block is given) /
Array of Hash (if no block is given)
(raise LDAP::ResultError)
LDAP::Conn#search_ext(basedn, scope, filter, attrs = nil,
attrsonly = false, serverctrls, clientctrls,
sec = 0, usec = 0,
s_attr = nil, s_proc = nil) {|entry| ... }
: conn (raise LDAP::ResultError)
LDAP::Conn#search_ext2(basedn, scope, filter, attrs = nil,
attrsonly = false,
serverctrls, clientctrls, sec = 0, usec = 0,
s_attr = nil, s_proc = nil) {|entry_as_hash| ... }
: conn (if a block is given) /
Array of Hash (if no block is given)
(raise LDAP::ResultError)
LDAP::Conn#add(dn, ldap_mods) : self (raise LDAP::ResultError)
LDAP::Conn#add_ext(dn, ldap_mods, serverctrls, clientctrls)
: self (raise LDAP::ResultError)
LDAP::Conn#modify(dn, ldap_mods) : self (raise LDAP::ResultError)
LDAP::Conn#modify_ext(dn, ldap_mods, serverctrls, clientctrls)
: self (raise LDAP::ResultError)
LDAP::Conn#modrdn(olddn, newdn, delete) : self (raise LDAP::ResultError)
LDAP::Conn#delete(dn) : self (raise LDAP::ResultError)
LDAP::Conn#delete(dn, serverctrls, clientctrls) : self
(raise LDAP::ResultError)
LDAP::Conn#compare(dn, attr, val) : self
LDAP::Conn#compare_ext(dn, attr, val, serverctrls, clientctrls) : self
LDAP::Conn#set_option(opt, data) : self (raise LDAP::ResultError)
LDAP::Conn#get_option(opt) : data (raise LDAP::ResultError)
LDAP::Conn#schema(base = nil, attrs = nil,
sec = 0, usec = 0) : LDAP::Schema
LDAP::Conn#root_dse(attrs = nil, sec = 0, usec = 0) : Array of Hash
LDAP::SSLConn.new(host = 'localhost', port = LDAP_PORT,
start_tls = false, sctrls=nil, cctrls=nil)
: conn (raise LDAP::Error)
LDAP::Mod.new(mod_op, mod_type, mod_vals) : ldap_mod
LDAP::Mod#inspect : String
LDAP::Mod#mod_op : mod_op
LDAP::Mod#mod_type : mod_type
LDAP::Mod#mod_vals : mod_vals
LDAP::Mod#mod_op=(mod_op)
LDAP::Mod#mod_type=(mod_type)
LDAP::Mod#mod_vals=(mod_vals)
LDAP::Entry#get_dn : dn
LDAP::Entry#get_values : vals
LDAP::Entry#get_attributes : attrs
LDAP::Entry#dn (= get_dn)
LDAP::Entry#vals (= get_values)
LDAP::Entry#[] (= get_values)
LDAP::Entry#attrs (= get_attributes)
LDAP::Entry#to_hash : Hash
LDAP::Entry#inspect : String
LDAP::Control.new : LDAP::Control
LDAP::Control#oid : String
LDAP::Control#oid=(oid) : oid
LDAP::Control#critical : true || false
LDAP::Control#critical? : true || false
LDAP::Control#critical=(crit) : crit
LDAP::Control#value : String
LDAP::Control#value=(val) : val
LDAP::Control#inspect : String
SSLConn is a subclass of Conn, so its objects have access to the same methods
as Conn objects.
In ldap/schema.rb:
LDAP::Conn#schema(attrs = nil, sec = 0, usec = 0) : schema
LDAP::Schema#must(oc) : attributes
LDAP::Schema#may(oc) : attributes
LDAP::Schema#names(attr) : names
LDAP::Schema#sup(oc) : object class
In ldap/control.rb:
LDAP::Control.encode(array) : String
LDAP::Control#decode : Array
In ldap/ldif.rb:
LDAP::Entry#to_ldif : LDAP::LDIF::Entry
LDAP::Entry#to_s : Alias of LDAP::Entry#to_ldif
LDAP::Mod#to_ldif(dn) : LDAP::LDIF::Mod
LDAP::Mod#to_s(dn) : Alias of LDAP::Mod#to_ldif
LDAP::Record.new(dn, change_type, attrs, mods=nil, ctrls=nil)
LDAP::Record#send(conn) : self
LDAP::Record#clean : self
LDAP::LDIF.mods_to_ldif( dn, *mods )
LDAP::LDIF.parse_entry(lines) : LDAP::Record (raise LDAP::LDIFError)
LDAP::LDIF.parse_file(file, sort=false)
: self (if a block is given) /
Array (if no block is given)
See also test/*.rb for examples.
-------------------------------------------------------------------------------
REFERENCES
* T. Howes, M. Smith (University of Michigan): RFC1823, The LDAP Application
Program Interface, August 1995
* T. Howes (University of Michigan): RFC1960, A String Representation of LDAP
Search Filters, June 1996
* M. Wahl, Critical Angle Inc, T. Hows, Netscape Communications Gorp., S.
Kille, Isode Limited: Lightweight Directory Access Protocol (v3), December
1997
* M. Wahl, Critical Angle Inc., A. Coulbeck, Isode Inc., T. Howes, Netscape
Communications Corp., S. Kille, Isode Limited: December 1997
* M .Wahl, Critical Angle Inc., S. Kille, Isode Ltd., T. Howes, Netscape
Communications Corp.: Lightweight Directory Access Protocol (v3): UTF-8
String Representation of Distinguished Names, December 1997
* T. Howes, Netscape Communications Gorp.: The String Representation of LDAP
Search Filters, December 1997
* F. Yergeau (Alis Technologies): RFC2279, UTF-8, a transformation format of
ISO 10646, October 1998
* Netscape Communications Corp.: Netscape Directory SDK
* C. Weider, A. Herron, A. Anantha, T. Howes: RFC2696, LDAP Control
Extension for Simple Paged Results Manipulation, September 1999
* Luiz Ernesto Pinheiro Malere: LDAP Linux HOWTO, February 2000
* G. Good: RFC2849, The LDAP Data Interchange Format (LDIF) - Technical
Specification, June 2000.
* Tim Howes, Mark Smith: Understanding and Deploying LDAP Directory Servers
* The OpenLDAP Project: OpenLDAP 2.2 Administrator's Guide, February 2004
Here are some URLs that contain useful information about LDAP:
* University of Michigan
http://www.umich.edu/~dirsvcs/ldap/
* OpenLDAP Project
http://www.openldap.org/
* Netscape Communications
http://developer.netscape.com/docs/manuals/communicator/ldap45.htm
* Netscape Directory SDK
https://wiki.mozilla.org/Directory
* Active Directory Service Interfaces Overview
http://www.microsoft.com/windows2000/techinfo/howitworks/activedirectory/
adsilinks.asp
* LDAP schema repository
http://www.hklc.com/ldapschema/
http://ldap.hklc.com/
* Object Identifiers Registry
http://www.alvestrand.no/harald/objectid/
-------------------------------------------------------------------------------
THANKS
This list maybe not correct. If you notice mistakes of this list, please point out.
* Adam Doligalski
* Akinori MUSHA
* Akira Yamada
* Andrew Broman
* Anthony M. Martinez
* Antonio Terceiro
* Aprotim Sanyal
* Brian Leake
* Chris Scharf
* David Campbell
* Francesco Malvezzi
* Hadmut Danisch
* Hiroki Najima
* Jan Mikkelsen
* Kouhei Sutou
* Marek Veber
* Mark Kittisopikul
* Michael Granger
* Milos Jakubicek
* Pirmin Kalberer
* Radek Hnilica
* S. Potter
* SUENAGA Hiroki
* Tilo Sloboda
* Usa Nakamura
* Yuri Arabadji
* Yuuzou Gotou
* atsu@@metallic.co.jp
* bbense
* bidon
|