The InspIRCd Project
Home | Developers | Wiki | Forums | Bug Tracker | SVN | Download | Blog | Stats

Modules/ldapoper

From the makers of InspIRCd.

Jump to: navigation, search
Development Development Material - Information posted here is for developer reference only. This material is subject to possible change and will be technical in nature.

ldapoper module (InspIRCd-ldapoper version)

1.0 Documentation 1.1 Documentation 1.2 Documentation
Description
This module allows you to authenticate irc operators using an LDAP server (Lightweight Directory Access Protocol), and is customizable to work with the majority of LDAP setups including Windows 2000 (and later) Active Directory. This module is available in 1.2 releases only.
Configuration Tags
To use this module you must define a tag as shown below:
<ldapoper baserdn="ou=People,dc=brainbox,dc=cc"
          server="ldap://brainwave.brainbox.cc"
          searchscope="subtree"
          binddn="cn=Manager,dc=brainbox,dc=cc"
          bindauth="mysecretpass">

The variables in the tag have the following meanings:

  • baserdn indicates the base Distinguished Name to search in for users.
  • server indicates the LDAP server to connect to. The ldap:// style scheme before the hostname proper is MANDITORY.
  • searchscope indicates the depth of search to perform. The default is 'subtree', supported types are 'subtree', 'base' and 'onelevel'.
  • binddn and bindauth indicate the Distinguished Name to bind to for searching, and the password for the distinguished name. Some LDAP servers will allow anonymous searching in which case these two values do not need defining, otherwise they should be set similar to the examples above.

To define an oper who authenticates against LDAP, his/her oper block must be defined as in the example shown below:

<oper name="someoper" password="uid=opers_ldap_uid" host="*@*" type="NetAdmin" hash="ldap">

The ldap value in the hash field indicates that this oper uses LDAP for username lookups. The actual password is of course not stored in the oper block, instead, the password field contains a query string which is used to match this oper against the entries in the LDAP server. In this example, we are using a query that matches the 'uid' field against the literal string 'opers_ldap_uid'. If the query given returns true, the distinguished name that is returned is bound against, using the /OPER password provided by the potential oper. Upon success, the oper privileges are granted. The usage of the password field for storing an LDAP query means that you can give your oper a different oper username to the username in the LDAP server, increasing the security of your system a little by not revealing posix usernames to potential attackers.

Additional Modes
This module does not implement any extra user or channel modes.
Additional Commands
This module adds no extra commands.
Special Notes
When a user is authenticated, the SASL LDAP bind type is used, which in short means the authentication is left to the LDAP server, allowing support for practically any authentication method you may be using internally.
Extra ModuleThis module is an 'extra' module. This means that by default it is not compiled when you type make to build your IRCd. To enable this module follow these steps.
Dependencies
Personal tools
head
Navigation
head
head
head
head
 
head
head
Toolbox
head
head