Rahul, Sorry I am not clear in my explanations. What I am trying to achieve is to login to my linux and solaris boxes from the console or through a remote ssh session using Active directory or kerberos credentials and have that effectively map to my users that exist in the LDAP directory. And this works with a catch..
If the username in LDAP (joe_montana) matches the kerberos principal name (joe_montana) I have no issue.. I login using the kerberos username and password and the uid, gid, for that user in LDAP is correct when issuing the id command. So effectively it uses the kerberos credentials and logs me in as that ldap user. Pam-krb is used for authentication and things seem beautiful.
However in this case, I have user's with the 8 character unix naming convention(migrated from NIS). I am trying to find the correct way to map that username to the kerberos username. There has got to be a way!! Actually reading over the openldap Admin guide, I see that it mentions using passthrough authentication to an Active directory server. Seems this is done by modifying the userPassword attribute of the ldap dn. As I understand from reading the guide, for my user jmontana the entry should look something like this..
dn: cn=jmontana,ou-People,dc=example,dc=com userPassword: {SASL}joe_montana@EXAMPLE.COM
However all the userPassword attributes for the users are encrypted. I delete the dn's userPassword attribute first off. But when I attempt to add the userPassword attribute with the ldif below I still get an encrypted password in the userPassword attribute. How can I get the entry to show {SASL}joe_montana@EXAMPLE.COM? Is there something in slapd.conf or ldap.conf I need to modify? I may be barking up the wrong tree but it sounds like what I need.
dn: uid=jmontana,ou=People,dc=example,dc=com changetype: modify add: userPassword userPassword: {SASL}joe_montana@EXAMPLE.COM
Also the Openldap Admin guide mentions that "the server must be built with the --enable-spasswd configuration option to enable pass-through authentication." I am not sure how to check if this is the case. This is a RHEL5 box with openldap-servers-2.3.27-8 rpm. I did not install from source, I used Red Hat's precompiled RPM. Having to install from source is a whole other can of worms. But I will do what I have to.
Thank you much James
1. Re: Subject: Re: Help with authz-regexp mapping kerberos identity to dn --RAHUL (Rahul Amaram)
----------------------------------------------------------------------
Message: 1 Date: Sun, 17 Aug 2008 11:30:25 +0530 From: Rahul Amaram rahul@synovel.com Subject: Re: Subject: Re: Help with authz-regexp mapping kerberos identity to dn --RAHUL To: openldap-technical@openldap.org Message-ID: 48A7BE79.2080704@synovel.com Content-Type: text/plain; charset=ISO-8859-1; format=flowed
This is the flow of events.
1. First GSSAPI (Kerberos) authentication takes place using the id "joe_montana".
2. Then LDAP gives this the DN "uid=joe_montana,cn=REALM,cn=gssapi,cn=auth".
3. Using authz-regexp, we can map this to another DN such as "uid=jomontana,ou=People,dc=company,dc=com" which I believe makes sense only to LDAP.
Getting back to your query, could you precisely define what is it that you are trying to achieve? If you could give a clear step-to-step example of the workflow, then I might be able to be of some assistance.
Regards, Rahul.
Chavez, James R. wrote:
Rahul, Thank you again..I will try this expression you have provided. Am I going about this in the correct way? What I want is to login through ssh or even the local box and be authenticated by the kerberos
credentials. But I want the effective uid or account to be that of the
ldap user in the openldap directory. I want my kerberos credentials to authorize my ldap login even though the account names do not match. Is it possible with this authz-regexp? Or is this simply for services. Sorry for all the questions.
Thanks James
Message: 1 Date: Wed, 13 Aug 2008 15:08:43 +0530 From: Rahul Amaram rahul@synovel.com Subject: Re: Subject: Re: Help with authz-regexp mapping kerberos identity to dn --RAHUL Cc: openldap-technical@openldap.org Message-ID: 48A2ABA3.9090900@synovel.com Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Hi Chavez, Try this expression. It should work.
authz-regexp uid=(.).*_([^,]*),cn=company.com,cn=gssapi,cn=auth uid=$1$2,ou=People,dc=company,dc=com
The "sasl-realm" parameter is set in /etc/slapd/slapd.conf (main slapd.conf file). You might also be interested in sasl-host (for hard-coding the host sasl fqdn name to be used while fetching ldap/<fqdn>@<REALM> password from the keytab file) and sasl-secprops parameters.
Regards, Rahul.
Chavez, James R. wrote:
Rahul, My friend finally a response. Thank you for the input I had also read that link you provided, it was
somewhat helpful. If the usernames were identical that would work great I believe. However the source name is coming in as joe_montana and I need it to map to jmontana. So I need only the first character of the first name and everything after the underscore (last name). I am looking for the expression that
would give me that. I am not too familiar with the expressions syntax
or how to manipulate them. I see there is an option to search ldap using ldap:///ou=people,dc=example,dc=com??one?(uid=$1), maybe I should look into that. Do you have any suggestions or source for reading on authz-regexp? I have been looking. If it was shell scripting I could manage another way.
When you say the SASL Realm would that go in the main slapd.conf or the /usr/lib/sasl2/slapd.conf?
I am indeed using GSSAPI for the SASL-auth-mechanism. I am getting close,just gotta get past this. :)
Thank you again. James
CONFIDENTIALITY This e-mail message and any attachments thereto, is intended only for use by the addressee(s) named herein and may contain legally privileged and/or confidential information. If you are not the intended recipient of this e-mail message, you are hereby notified that any dissemination, distribution or copying of this e-mail message, and any attachments thereto, is strictly prohibited. If you have received this e-mail message in error, please immediately notify the sender and permanently delete the original and any copies of this email and any prints thereof. ABSENT AN EXPRESS STATEMENT TO THE CONTRARY HEREINABOVE, THIS E-MAIL IS NOT INTENDED AS A SUBSTITUTE FOR A WRITING. Notwithstanding the Uniform Electronic Transactions Act or the applicability of any other law of similar substance and effect, absent an express statement to the contrary hereinabove, this e-mail message its contents, and any attachments hereto are not intended to represent an offer or acceptance to enter into a contract and are not otherwise intended to bind the sender, Sanmina-SCI Corporation (or any of its subsidiaries), or any other person or entity.