User Tools

Site Tools


ldap_integration

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
ldap_integration [2009/08/17 07:52] aorthldap_integration [2009/08/20 09:23] 172.26.0.166
Line 1: Line 1:
 ===== LDAP Integration ===== ===== LDAP Integration =====
  
-ILRI uses an Active Directory server for user authentication, which is primarily used for Exchange e-mail services.  Currently users have an Active Directory username and password for their Windows-centric single sign on and e-mail, and then they have a separate account for use with the HPC.  There exists functionality in Linux to look at Active Directory for user authentication.+ILRI uses an Active Directory server for user authentication, which is primarily used for Exchange e-mail services.  Active Directory is Microsoft's proprietary version of LDAP with a little extra special sauce.  Currently users have an Active Directory username and password for their Windows-centric single sign on and e-mail, and then they have a separate account for use with the HPC.  There exists functionality in Linux to look at Active Directory for user authentication.
  
-This was working once, using a //slightly// customized PAM module In order to use the module several steps are needed.  Download the module source and compile it as shown below+===== Notes ===== 
-  * Compile the code ''gcc -fPIC  -c pam_cgiar_ldap.c'' +Try to search from Linux machine which can talk to the AD server (HPC is behind firewall): 
-  * Link the code ''ld -x --shared -o pam_cgiar_ldap.so pam_cgiar_ldap.o –lldap''+<code>[aorth@shamba: ~]$ ldapsearch -x -H ldap://172.26.0.218:3268 -b "dc=ilri,dc=cgiard,dc=org" -D "cn=bioinfohpc,cn=users,dc=ilri,dc=cgiard,dc=org" -W "" 
 +Enter LDAP Password:  
 +ldap_bind: Invalid credentials (49) 
 +        additional info: 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 525, vece</code> 
 +According to the web this error means the user does not exist.  Either I've specified the user's distinguished name incorrectly, or the account is not configured with the proper permissions to bind
 +<file>HEX0×525 – user not found 
 +DEC: 1317 – ERROR_NO_SUCH_USER (The specified account does not exist.) 
 +NOTE: Returns when username is invalid.</file> 
 +A note of possible interest regarding binding on Linux (from the [[http://lists.samba.org/archive/samba/2007-April/131385.html|samba mailing list]]): 
 +<file>AD domain controllers listen on the standard LDAPS port (636) and will  
 +only accept binds on that port 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.</file>
  
-The Active Directory server must not only be domain controller, but must be running the global catalog service (port 3268) in order for our LDAP queries to work properly.  ILRI Kenya's Active Directory servers are: +===== pam_cgiar_ldap.c ===== 
-  * 172.26.0.218 <- running global catalog server (port 3268) +Someone hacked up PAM module several years ago which could be dropped into a Linux server and allow AD authentication with minimal configuration.  See the documentation here: {{:cgiar-hpc-cop.doc}} 
-  * 172.26.0.219 +<note warning>This no longer works! It relied on anonymous access to the AD server, but ILRI's Active Directory servers are configured to [[http://support.microsoft.com/kb/326690|disallow anonymous binds]] These notes have been left here for reference only!</note> 
-  * 172.26.0.220 <- running a global catalog server (port 3268)+ 
 +This was working once, using //slightly// customized PAM module, but broken when IT services disabled anonymous binding.  In order to use the module several steps are needed.  Download the module source and edit the code to point to the correct server, then compile it as shown below: 
 +  * Compile the code:  ''gcc -fPIC  -c pam_cgiar_ldap.c'' 
 +  * Link the code:  ''ld -x --shared –lldap -o pam_cgiar_ldap.so pam_cgiar_ldap.o''
  
 **pam_cgiar_ldap.c**: **pam_cgiar_ldap.c**:
Line 53: Line 68:
   ldap_set_option( NULL, LDAP_OPT_PROTOCOL_VERSION, &version);   ldap_set_option( NULL, LDAP_OPT_PROTOCOL_VERSION, &version);
   ldap_set_option( NULL, LDAP_OPT_NETWORK_TIMEOUT, &timeOut);   ldap_set_option( NULL, LDAP_OPT_NETWORK_TIMEOUT, &timeOut);
-  ld = ldap_init("172.26.12.11" , 389 );+  ld = ldap_init("172.26.0.218" , 389 );
   if (ld==NULL) printf("\nproblems connecting\n");   if (ld==NULL) printf("\nproblems connecting\n");
   int rc;   int rc;
ldap_integration.txt · Last modified: 2012/02/06 08:43 by aorth