This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
ldap_integration [2009/08/20 08:34] 172.26.0.166 |
ldap_integration [2012/02/06 08:43] (current) aorth [Apache Authentication] |
||
|---|---|---|---|
| Line 2: | Line 2: | ||
| ILRI uses an Active Directory server for user authentication, | ILRI uses an Active Directory server for user authentication, | ||
| + | |||
| + | ===== Implementation ===== | ||
| + | |||
| + | Active Directory integration will work if we use Likewise-Open. | ||
| + | * HPC must have the correct time (AD authenticates via Kerberos, which is heavily sensitive to time) | ||
| + | * HPC must be able to access AD on several TCP ports (kerberos, LDAP, etc) | ||
| + | |||
| + | ===== Notes ===== | ||
| + | ===== Apache Authentication ===== | ||
| + | It's possible to use Basic authentication via Active Directory in web applications. | ||
| + | |||
| + | Make sure Apache has '' | ||
| + | < | ||
| + | # a2enmod perl | ||
| + | # apache2ctl graceful</ | ||
| + | |||
| + | Install the required perl dependencies for Apache and LDAP: | ||
| + | < | ||
| + | |||
| + | Install the required AD Auth package and any dependencies it has using CPAN: | ||
| + | < | ||
| + | > install Apache2:: | ||
| + | |||
| + | Then add a stanza such as this to your Apache config: | ||
| + | < | ||
| + | | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | # | ||
| + | | ||
| + | |||
| + | That stanza can go in a VirtualHost, | ||
| + | |||
| + | ==== Likewise-Open ==== | ||
| + | Open source standalone implementation of Samba, OpenLDAP, Kerberos, etc for Active Directory integration: | ||
| + | |||
| + | * open ports in Firewall (Active Directory, NTP, Kerberos) | ||
| + | * make sure time is in sync with the server! | ||
| + | * Likewise-Open has their own CIFS server but can also work with existing Samba installs I think | ||
| + | |||
| + | ==== Using ldapsearch on Linux ==== | ||
| + | Try to search from a Linux machine which can talk to the AD server (HPC is behind firewall): | ||
| + | < | ||
| < | < | ||
| Line 7: | Line 54: | ||
| ldap_bind: Invalid credentials (49) | ldap_bind: Invalid credentials (49) | ||
| additional info: 80090308: LdapErr: DSID-0C090334, | additional info: 80090308: LdapErr: DSID-0C090334, | ||
| - | According to the web this error means the user does not exist. | + | According to the web this error means the user does not exist. |
| - | + | <file>HEX: 0×525 – user not found | |
| - | <code>HEX: 0×525 – user not found | + | |
| DEC: 1317 – ERROR_NO_SUCH_USER (The specified account does not exist.) | DEC: 1317 – ERROR_NO_SUCH_USER (The specified account does not exist.) | ||
| - | NOTE: Returns when username is invalid.</ | + | NOTE: Returns when username is invalid.</ |
| - | + | ==== binddn ==== | |
| - | ==== pam_cgiar_ldap.c ==== | + | A note of possible interest regarding binding on Linux (from the [[http:// |
| + | < | ||
| + | You cannot bind as a user on port 389. I don't think they support TLS on port 389, but I have no tried in a | ||
| + | long time.</ | ||
| + | ==== Domain controller vs. Global catalog | ||
| + | As ILRI has many AD domains and our users could be coming from anywhere, we need to query a server running the global catalog service instead of a normal domain controller. | ||
| + | < | ||
| + | on the standard LDAP port 389. However, domain controllers (including Global Catalog Servers) respond to LDAP | ||
| + | | ||
| + | | ||
| + | requests on port 3268, Microsoft' | ||
| + | with AD information from the entire AD forest. In multi-domain AD environments, | ||
| + | ILRI Kenya has three Active Directory servers, and from what I can tell two of them run a global catalog: | ||
| + | * 172.26.0.218 <- running a global catalog (port 3268) | ||
| + | * 172.26.0.219 | ||
| + | * 172.26.0.220 <- running a global catalog (port 3268) | ||
| + | ===== pam_cgiar_ldap.c ===== | ||
| + | Someone hacked up a PAM module several years ago which could be dropped into a Linux server and allow AD authentication with minimal configuration. | ||
| <note warning> | <note warning> | ||
| This was working once, using a // | This was working once, using a // | ||
| * Compile the code: '' | * Compile the code: '' | ||
| - | * Link the code: '' | + | * Link the code: '' |
| **pam_cgiar_ldap.c**: | **pam_cgiar_ldap.c**: | ||