This question about Using an extension: Answered
WikiName is always imported as the login name
I'm integrating with an
OpenLDAP directory. Logins work fine, but I want the
WikiName to be displayName normalized (Name Surname normalized to
NameSurname), but whatever I configure it, the wikiName will always be the uid used for authorization, which is very non-intuitive to reference users inside the wiki. Is there a known issue or additional trick? I'm using these settings:
$Foswiki::cfg{PasswordManager} = 'Foswiki::Users::LdapPasswdUser';
$Foswiki::cfg{Ldap}{SecondaryPasswordManager} = 'Foswiki::Users::HtPasswdUser';
$Foswiki::cfg{Ldap}{Host} = 'whatever';
$Foswiki::cfg{Ldap}{Port} = whatever;
$Foswiki::cfg{Ldap}{LoginAttribute} = 'uid';
$Foswiki::cfg{Ldap}{WikiNameAttribute} = 'cn,sn';
$Foswiki::cfg{Ldap}{NormalizeWikiNames} = 1;
$Foswiki::cfg{Ldap}{Version} = '3';
$Foswiki::cfg{Ldap}{Base} = 'dc=local,dc=loc';
$Foswiki::cfg{Ldap}{BindDN} = '';
$Foswiki::cfg{Ldap}{BindPassword} = '';
$Foswiki::cfg{Ldap}{UseSASL} = 0;
$Foswiki::cfg{Ldap}{SASLMechanism} = 'PLAIN CRAM-MD5 EXTERNAL ANONYMOUS';
$Foswiki::cfg{Ldap}{UseTLS} = 0;
$Foswiki::cfg{Ldap}{TLSSSLVersion} = 'tlsv1';
$Foswiki::cfg{Ldap}{TLSVerify} = 'require';
$Foswiki::cfg{Ldap}{TLSCAPath} = '';
$Foswiki::cfg{Ldap}{TLSCAFile} = '';
$Foswiki::cfg{Ldap}{TLSClientCert} = '';
$Foswiki::cfg{Ldap}{TLSClientKey} = '';
$Foswiki::cfg{Ldap}{Debug} = 1;
$Foswiki::cfg{Ldap}{UserBase} = 'ou=people,dc=local,dc=loc';
$Foswiki::cfg{Ldap}{LoginFilter} = 'objectClass=posixAccount';
$Foswiki::cfg{Ldap}{NormalizeLoginNames} = 0;
$Foswiki::cfg{Ldap}{WikiNameAliases} = '';
$Foswiki::cfg{Ldap}{AllowChangePassword} = 0;
$Foswiki::cfg{Ldap}{GroupBase} = 'ou=group,dc=my,dc=domain,dc=com';
$Foswiki::cfg{Ldap}{PrimaryGroupAttribute} = 'gidNumber';
$Foswiki::cfg{Ldap}{WikiGroupsBackoff} = 1;
$Foswiki::cfg{Ldap}{NormalizeGroupNames} = 0;
$Foswiki::cfg{Ldap}{RewriteGroups} = {};
$Foswiki::cfg{Ldap}{MergeGroups} = 0;
$Foswiki::cfg{Ldap}{MaxCacheAge} = 86400;
$Foswiki::cfg{Ldap}{PageSize} = 500;
$Foswiki::cfg{Ldap}{Exclude} = 'WikiGuest, ProjectContributor, RegistrationAgent, UnknownUser, AdminGroup, NobodyGroup';
(full config attached)
However, the cache file seems to be ok, when I grep for my surname on it:
rbpereira
W2U::RodrigoPereira
rbpereira
DN2U::uid=rbpereira,ou=People,dc=local,dc=loc
RodrigoPereira
U2W::rbpereira
rbpereira@whatever
U2EMAIL::rbpereira
uid=rbpereira,ou=People,dc=local,dc=loc
U2DN::rbpereira
rbpereira
EMAIL2U::rbpereira@whatever
W2U does seem to be right though..
TIA
--
RodrigoPereira - 15 Nov 2009
You might need a space between
cn
and
sn
.
$Foswiki::cfg{Ldap}{WikiNameAttribute} = 'cn, sn';
After changing this setting you might have to refresh your LDAP cache for it to take effect.
--
MartinKaufmann - 18 Nov 2009
Thanks Martin. Tried that, but same result. I've also tried with a single attribute
displayName which is the same as "
cn sn". I've tried to wipe out the cache completely too, but same.
--
RodrigoPereira - 20 Nov 2009
I just had a look at your config file. Looks like you have the wrong UserMappingManager defined. You have to set it to LdapUserMapping:
$Foswiki::cfg{UserMappingManager} = 'Foswiki::Users::LdapUserMapping';
--
MartinKaufmann - 20 Nov 2009
Yes, that was it! Thank you so much!
--
RodrigoPereira - 21 Nov 2009