Sametime的用户管理既可以采用内置的Domino目录,也可以使用LDAP目录。当使用LDAP作为Sametime用户目录时,由于不同的LDAP服务器的Schema不尽相同,因此需要系统管理员对Sametime进行相应配置。
笔者在某企业的Sametime 7.5.1项目中,对LDAP配置有一些具体的心得体会,在此与大家一同分享。
首先,在安装Sametime 7.5.1过程中,需要选择使用内置Domino目录,或者LDAP目录。建议在安装之前先确认目录类型,因为如果配置完成之后,再要修改目录类型,相对比较麻烦。

如果在安装过程中选择了LDAP目录,在Sametime管理界面中,可以看到“LDAP目录”配置项,如下图所示:

根据所选择LDAP的Schema,可以在基本设置中,指定用户或群组对应的条目和属性,如下图所示:

如果要求用特定的用户属性登录,如用户的邮件地址、身份证号等,可以修改“认证”设置中的“过滤器”设置。

在笔者支持的项目中,客户的LDAP服务器属性设置为:
cn: 用户的员工号,
sn: 用户的中文姓名
uid: 用户姓名拼音。
由于这是企业的统一目录,归属另一个项目组维护,因此我们无法对LDAP服务器做任何修改。
客户希望Sametime客户端、Web会议中显示的用户名均为sn,而非cn。用户可以使用cn或者UID登录。
通过上面的配置界面,我们按照用户需求实现了Sametime客户端登录、客户端用户名显示以及Web会议登录配置。配置过程相对比较简单,并且有相关帮助文档,这里就不再赘述。但是配置完成后,进入Sametime Web会议中心,我们发现很多需要显示用户名(sn)的位置,全部显示的是用户的员工号(cn),经过仔细研究,发现这些显示值是硬编码在Sametime程序代码中的,而不是使用的管理员配置项。
为了在Sametime Web会议中显示sn,我们对Sametime主界面和Web联机会议中心数据库的程序代码进行了修改,修改步骤如下:
1. 通过Domino Designer打开STCenter.nsf数据库(Sametime Center),修改SametimeHomePageContent子表单,找到:
var authUsername = "<计算的值>";
将<计算的值>公式中
ldapName := @NameLookup([NoUpdate];@UserName;"cn")
改为
ldapName := @NameLookup([NoUpdate];@UserName;"sn")
如下图所示:

保存子表单后,将其设计属性设置为“刷新/替换设计时不运行修改”,以防止服务器自动刷新任务(Design)将数据库设计刷新为缺省状态(下面的其它设计修改,均要做此设置,不再额外说明)。

2. 通过Domino Designer打开STConf.nsf数据库(联机会议中心),子表单 WebMeetingDetails 最后一个域 disSTParticipants,域值计算公式的第一行
ldapName := @NameLookup([NoUpdate];STParticipants;"cn")
改为
ldapName := @NameLookup([NoUpdate];STParticipants;"sn")

3. STConf.nsf数据库webConference表单,修改panel_cn域的计算公式:
ldapName := @NameLookup([NoUpdate];STPanel;"cn")
改为
ldapName := @NameLookup([NoUpdate];STPanel;"sn")

4. 在上一步打开的webConference表单中,moderator_cn域,将计算公式
ldapName := @NameLookup([NoUpdate];chair;"cn")
改为
ldapName := @NameLookup([NoUpdate];chair;"sn")
5. STConf.nsf数据库代理HiddenConferenceSave中的ListRoutine函数,298行"cn" 改为"sn"

6. STConf.nsf数据库代理SametimeWebQuerySave中的Initialize函数,96行"cn" 改为"sn"

按照上述方法修改Sametime主界面和Web联机会议中心数据库的程序代码后,Web会议中心、会议室中的用户名显示全部改成了LDAP目录中的sn属性。
上述方法在Sametime 7.5.1上测试通过,如果是7.5或者其它版本,需要修改的位置稍有不同,可以利用Domino Designer提供的XML实用程序或者数据库设计摘要功能,导出stcenter.nsf, stconf.nsf两个数据库的设计代码,然后搜索“cn”,找到与上述方法类似的代码,将其改为“sn”或者客户要求的LDAP属性。