级别: 中级 Martin McDonnell, 技术专家, IBM
2005 年 10 月 09 日 本文将说明如何集成 Netegrity SiteMinder 和 IBM Lotus Sametime 以实现单点登录 (single sign-on,SSO) 环境。
客户对 IBM 软件的可配置性需求不断提升,以便能与其现有的 IT 和安全性基础设施中的其他第三方软件实现无缝连接。Netegrity SiteMinder 就是这样一种客户经常部署的第三方软件。SiteMinder 是一种安全性软件解决方案,能实现整个组织的安全性身份管理,控制对企业信息资产的访问。SiteMinder 提供了跨单个和多个域的单点登录(single sign-on,SSO)功能,简化了跨多种 Web 和应用服务器及跨多种操作系统应用程序的使用。还为用户身份验证和访问管理提供了基于策略的集中控制。(有关使用 SiteMinder 和 IBM/Lotus 产品的详细信息,请参阅 developerWorks:Lotus 文章“Netegrity SiteMinder authentication with Domino Document Manager 7”。)
本文将概述成功集成 Sametime 6.5x 服务器和 SiteMinder 5.5 的一种方法,使用 SiteMinder Policy 服务器上配置的基本身份验证模式可以为 Sametime 服务器组件提供单点登录。切记,要成功集成 Sametime 6.5x 服务器和 SiteMinder 5.5,还有其他许多方法。然而在本文中,我们只涉及其中的一种配置。我们的配置信息是基于成功的集成配置的,不论是在 IBM 内部,还是在外部客户站点上,我们都进行过这种配置。我们假设读者具备 Domino、Sametime、LDAP 配置和管理的工作经验。
如果您对类似于 Netegrity SiteMinder 这样的 IBM 安全管理解决方案感兴趣,请参阅 developerWorks Tivoli 安全产品页面。
集成过程
本文中,我们将集中讨论如下集成场景:如何集成 SiteMinder 和 Sametime 6.5x 服务器,Sametime 6.5x 已经配置为使用其本地 Domino 目录。下列步骤概述了在这种场景下成功配置 Netegrity SiteMinder 和 Sametime 的方法。
LDAP 帐户配置
Netegrity SiteMinder 只对 LDAP 帐户进行身份验证(而不对 Domino 目录帐户进行身份验证)。对于本文中概述的配置,需要向每个将访问您的 Sametime/SiteMinder 配置的 LDAP 用户帐户中添加一个现有字段,并将相应 Domino 用户的 Notes 专有名称添加到这个字段中。
例如,假设在这个配置中您将使用如下 5 个 LDAP 帐户。在 Domino 服务器上,必须有 5 个等效的 Domino 帐户。要使本文中探讨的配置生效,需要将额外的值添加到每一个 LDAP 帐户,在其中保存相应的 Domino 目录下个人文档的专有名称 Notes。在下列 5 个例子中,每一个 LDAP 帐户都将添加一个名为 notesdn 的字段来保存该值:
|
uid:
|
givenName
|
sn
|
cn
|
userPassword
|
notesdn
| | s65xadmin | ST65x | Administrator | Administrator, ST65x | <必须与 Domino 帐户的口令/网络口令相同> | CN=Sametime Admin/O=ST65x | | testuser1 | Test | User1 | User1, Test | <必须与 Domino 帐户的口令/网络口令相同> | CN=Test User1/O=ST651 | | testuser2 | Test | User2 | User2, Test | <必须与 Domino 帐户的口令/网络口令相同> | CN=Test User2/O=ST651 | | testuser3 | Test | User3 | User3, Test | <必须与 Domino 帐户的口令/网络口令相同> | CN=Test User3/O=ST651 | | testuser4 | Test | User4 | User4, Test | <必须与 Domino 帐户的口令/网络口令相同> | CN=Test User4/O=ST651 |
如果不能将新字段添加到 LDAP 帐户中,那么可以使用 LDAP 帐户中的现有空字段来保存该信息(例如,description 或 comments 字段)。
需要注意的是,对于这种特殊的配置,需要使用一个进程来确保 Domino 目录和 LDAP since 之间的数据同步,通常,是在目录不断更改(添加/删除用户,等等)的环境中使用这种进程。
安装和配置 Domino 和 Sametime 6.5x 服务器
注意:这些步骤描述了能够支持 Sametime 的基本 Domino 服务器安装。有关 Domino 服务器安装和 Domino 环境的详细信息,请参阅 Lotus Domino 文档。
对于 Domino 服务器的安装,应该进行如下配置:
- 不要选择 Partitioned Server Installation。
- 当提示 Type of Setup 时,选择 Domino Application Server。
安装完成后,适当地配置 Domino 服务器。完成 Domino 服务器的基本配置后,请定制服务器文档,如下所示:
| Basics tab “基本”附签 |
- 确保将一个完全限定的 Internet 主机名设置为 servername.domain.com。
- 将“Is this a Sametime Server”设为 Yes。
| | Ports\Notes Network Ports 附签 | 确保启用了 TCPIP 端口,并在 Net Address 字段中设置了完全限定的 Internet 主机名 (servername.domain.com)。 | | 安全性 |
- 运行不受限制的 LotusScript/Java 代理。
- 必须允许用来签署 Sametime 代理的签名在 Sametime 服务器上运行不受限制的 IBM LotusScript 和 Java 代理。要确保 Sametime 代理签名者能够在 Sametime 服务器上运行不受限制的 LotusScript 和 Java代理,请打开 Sametime 服务器的服务器文档。选择 Security 附签,输入 Sametime 代理的签名人(例如,Sametime)。在“Run unrestricted LotusScript/Java agents”字段中输入 Development/Lotus Notes Companion Products。然后保存对服务器文档的更改。或者,也可以在您的环境中使用一个具有运行代理权限的 ID 来为所有数据库签名。
| | Internet Protocols\HTTP 附签 |
- 确保将主机名设置为 servername.domain.com。
- 将“Allow HTTP clients to browse databases”设为 Yes。
- 将 Home URL 设为 /stcenter.nsf。
| | Internet Protocols\Domino Web Engine 附签 |
- 将 Session Authentication 设为 Disabled。
- 将 Java servlet support 设为 Domino Servlet Manager。
|
您的 Sametime 覆盖安装应该配置如下:
- 当提示时,请选择“Set up on a Domino Server”时,浏览并导航到 Domino server.id 文件。
- 当提示“What type of Directory do you want to use?”时,请选择 Domino。
- 可以在需要的时候设置 Allow HTTP Tunneling。
- 作为一个最佳实践,还建议将服务器的完全限定的主机名和 Sametime 别名(如果主机名和服务器名不相同)添加到 DNS 中。
- 通过启动 Lotus Domino 服务来启动 Domino/Sametime 服务,并验证所有的服务功能都正常的,没有错误。在 Sametime 服务器上测试所有的功能,以确保其能工作正常。
然后需要配置一个用户帐号,Sametime 能够使用这个帐号访问会议服务。例如,可以创建一个带有口令(例如 ssaccess)的特定个人文档(例如,SametimeServletAccess)。然后将这个用户添加到包含所有角色的 Stconfig.nsf 的 ACL 中,并将用户名和密码添加到 Stconfig.nsf 中的会议服务文档中,如下所示:
Remote Service Access
Meeting Management Username: SametimeServletAccess
Meeting Management Password:ssaccess
Recorded Meeting Management Username: SametimeServletAccess
Recorded Meeting Management Password:ssaccess
Materials Refresh Username:SametimeServletAccess
Materials Refresh Password:ssaccess
Materials Control Username: SametimeServletAccess
Materials Control Password:ssaccess
|
还需要将 SametimeAdminUsername=SametimeServletAccess 和 SametimeAdminPassword=ssaccess 参数添加到 Sametime.ini 中的 [Config] 区段中,并重启 Sametime 服务器。重启 Sametime 时,会替换这两行并创建一个单加密行,如下所示:
SametimeAdminAuthorization=U2FtZXRpbWVTZXJ2bGV0QWNjZXNzOnBhc3N3b3Jk,
在 SiteMinder 5.5 Policy Server 上为 Sametime 环境设置策略文档和对象
成功登录 Netegrity SiteMinder 5.5 Policy Server 后,将会出现如图 1 所示的管理控制台:
图 1. SiteMinder Administration console
在 Netegrity SiteMinder Policy 服务器上,将需要创建如下对象,以配置 SiteMinder 来保护您的 Sametime 6.5.x 服务器。
- 代理
- 代理配置对象
- 主机配置对象
- 用户目录
- 网络域
- 网络域的领域
- 主领域下的多个子领域
- 领域和子领域的规则
- 规则的响应
- 网络域的策略
创建代理
要创建代理,右击控制台左侧窗格的 System 附签上 System Configuration 下的 Agents 图标,然后选择 Create Agent。这时将出现如图 2 所示的对话框:
图 2. SiteMinder Agent 对话框
在 *Name 字段中,为服务器上的现有代理输入一个惟一值,不要使用以前的值。对于 Agent Type,请选择 SiteMinder 单选按钮,然后从下拉框中选择 Web Agent。单击 OK 保存并关闭。
创建代理配置对象
对于基于 Domino 的产品,我们建议您在 Policy Server 上对现有 DefaultDominoSettings 代理配置对象创建一个副本,并相应地修改副本。要为您的 Sametime 服务器创建代理配置对象,单击控制台左侧窗格 System 附签上 System Configuration 下的 Agent Conf Objects 图标。然后右击控制台右侧窗格代理配置对象列表中的 DefaultDominoSettings 代理配置对象,并选择 Duplicate Configuration Object。
在 *Name 字段中为对象输入惟一名称。然后在参数列表中,通过单击每一个参数并选择 Edit 按钮,设置下列参数的值(或您服务器的相应值),如下所示:
-
DefaultAgentName 为代理指定的名称。
-
BadUrlChars。从默认的错误 url 字符列表中删除 // 和 %00-%1f,%7f-%ff,%25。
在本文概述的配置中,我们还将 AllowLocalConfig 设置为 Yes(当设置为 No 时,所有的 WebAgent 配置参数都会定义在 Policy Server 上,而不是定义在本地 Sametime 服务器上的 WebAgent.conf 文件中)。
所有其他参数都可以保留默认设置。完成配置后,单击 OK 保存并关闭代理配置对象。
创建主机配置对象
同代理配置对象一样,我们建议您在 Policy Server 上为现有 DefaultHostSettings 主机配置对象创建一个副本,并相应地修改副本。要为您的 Sametime 6.5.1 服务器创建主机配置对象,请单击控制台左侧窗格 System 附签中 System Configuration 下的 Host Conf Objects 图标。然后右击控制台右侧窗格主机配置对象列表中的现有主机配置对象,并选择 Duplicate Configuration Object。此时将出现如图 3 所示的对话框:
图 3. SiteMinder Host Configuration Object 对话框
在 *Name 字段中为主机配置对象输入惟一名称和描述,描述是可选的。接下来,通过删除参数名称前面的 # 来编辑参数值 #Policy Server,在 Value 列中输入 Policy Server 的 IP 地址。然后单击 OK 保存并关闭主机配置对象。
创建用户目录
SiteMinder 使用 LDAP 对用户访问其配置进行身份验证。需要在 Policy Server 上创建一个用户目录,这样就可以访问您为 Sametime 6.5x 服务器设置的策略并使用适当的 LDAP 服务器对您的 Sametime 用户进行身份验证。
要创建用户目录,右击控制台左侧窗格 System 附签上 System Configuration 下的 User Directories 图标,然后选择 Create User Directory。此时将出现如图 4 所示的对话框:
图 4. SiteMinder User Directory 对话框
输入惟一的名称和描述(可选)。然后将 *NameSpace 设置为 LDAP,并在 *Server 字段中输入 LDAP 服务器的完全限定的主机名。然后为您的 LDAP 用户相应地填充 LDAP Search 和 LDAP User DN Lookup 区段。(根据您的 LDAP 服务器特定的配置,可能还需要在 Credentials and Connection 附签中添加所需的证书,这样 Policy Server 就可以与您的 LDAP 服务器绑定在一起。有关详细信息,请参阅 Netegrity 文档。)填充完这些字段后,单击 OK 保存并关闭用户目录。
创建域
要创建域,右击控制台左侧窗格 System 附签上 System Configuration 下的 Domains 图标,然后选择 Create Domain,将出现如图 5 所示的对话框:
图 5. SiteMinder Domain 对话框
输入惟一名称和描述(可选)。从对话框底部的下拉列表中,选择将在这个域中使用的用户目录(在前面章节中创建的),然后单击“<< Add”按钮,将其添加到 User Directories 附签中。单击 OK 保存并关闭域。
为域创建一个领域
要为这个域创建一个领域,单击管理控制台左侧窗格中的 Domains 附签,右击在前面章节中创建的域,然后从菜单中选择 Create Realm。将出现如图 6 所示的对话框。
图 6. SiteMinder Realm 对话框
为领域输入惟一名称和描述(可选)。在 Resource 附签的 Agent 字段中输入本文前面创建的代理名称(或从 Lookup 下拉列表中选择)。然后在 Resource Filter 字段中输入正斜杠 (/)。接下来,将 Authentication Scheme 设为 Basic,并将 Default Resource Protection 设为 Protected。保留 Resource、Session 和 Advanced 附签上其他字段的默认设置。然后单击 OK 保存并关闭领域。
在主 Sametime 领域下创建子领域
请注意下面的子领域的定义,只是所建议的 SiteMinder 实现之一,可以在 SiteMinder Policy Server 上定义这些实现。
要创建子领域,单击 Domains 附签。右击前一节创建的领域,然后从菜单中选择“Create Realm under Realm”。为您的配置创建下列子领域,其值如下所示:
|
Name
|
Resource Filter
|
Authentication Scheme
|
Default Resource Protection
| | ST Test | stlinks | Basic | Unprotected | | ST AdminConfig | servlet/auth/scs | Basic | Unprotected | | ST AdminPage | servlet/auth/admin | Basic | Protected | | ST Src | stsrc.nsf/join | Basic | Protected | | ST Domino | STDomino.nsf | Basic | Unprotected | | ST Applets | sametime/applets | Basic | Unprotected | | ST Applet | Sametime/Applet | Basic | Unprotected | | IMI Sametime | sametime/hostAddress.xml | Basic | Unprotected | | ST MMAPI | servlet/auth/mmapi | Basic | Unprotected | | ST Admin CGI | cgi-bin/StAdminAct.exe | Basic | Unprotected |
为领域和子领域创建规则
在 Domains 附签中,展开您所创建的域。右击要创建规则的领域,从菜单中选择“Create Rule under Realm”。然后为领域和子领域创建如下规则:
对于领域:Sametime 创建如下两条规则,其值如表所示(参见图 7):
|
Rule 1
|
Rule2
| *Name: GetPost Rule
Realm: Sametime
Resource: *
Action: Web Agent actions -> Get,Post
When this Rule fires: Allow Access
Enable or Disable this Rule: Enabled | *Name: OnAuthAccept Rule
Realm: Sametime
Resource: *
Action: Authentication events -> OnAuthAccept
When this Rule fires: Allow Access
Enable or Disable this Rule: Enabled |
图 7. SiteMinder Rule 对话框
对于子领域:ST AdminPage 创建一条名为 Rule1 的规则,其值如下所示:
*Name: GetPost Rule
Realm: Sametime.ST AdminPage
Resource: *
Action: Web Agent actions -> Get,Post
When this Rule fires: Allow Access
Enable or Disable this Rule: Enabled
对于子领域:ST Src 创建两条规则,其值如下所示:
|
Rule 1
|
Rule2
| *Name: GetPost Rule
Realm: Sametime.ST Src
Resource: *
Action: Web Agent actions -> Get,Post
When this Rule fires: Allow Access
Enable or Disable this Rule: Enabled | *Name: OnAuthAccept Rule
Realm: Sametime.ST Src
Resource: *
Action: Authentication events -> OnAuthAccept
When this Rule fires: Allow Access
Enable or Disable this Rule: Enabled |
为域创建响应
在 Domains 附签中,展开您创建的域。右击子树中的 Responses 图标,然后选择 Create Response。将显示 SiteMinder Response 对话框(参见图 8):
图 8. SiteMinder Response 对话框
创建下列两个响应(参见图 9):
Response 1: *Name: DefaultTimeOut。单击 Response 对话框中的 Create 按钮添加下列两个属性:
|
Attribute Name
|
Attribute Kind
|
*Variable Value
|
Attribute Caching
| | WebAgent-OnAuthAccept-Session-Idle-Timeout | Static | 28800 | Cache value | | WebAgent-OnAuthAccept-Session-Max-Timeout | Static | 50400 | Cache value |
图 9. Response Attribute 编辑器
Response 2: *Name: IMA Token Response。创建下列属性(这个例子假定 NOTESDN 是 LDAP 用户帐号条目的名称,该用户帐户条目包含用户的 Domino 专有名称值,如本文中前面 LDAP 配置章节中所述。)如果您在用户帐号中使用了不同的条目来存储这个值,那么请相应地替换下表中的 Variable Name/Attribute Name。
|
Attribute Name
|
Attribute Kind
|
*Variable Name
|
*Attribute Caching
| | WebAgent-HTTP-Header-Variable | User Attribute | NOTESDN | Cache value |
为域创建和配置策略
在 Domains 附签中,展开您所创建的域。右击子树中的 Policies 图标并选择 Create Policy。图 10 将会出现。
图 10. Policy 对话框
策略输入惟一名称并和描述(可选)。Users 附签应该包含一个附签,上面列出了先前创建的用户目录。单击 Users 附签上的 Add/Remove 按钮,并添加 LDAP 分支,SiteMinder 将使用它对当前成员列表进行身份验证。然后单击 OK 保存并关闭。
接下来,打开 Rules 附签,然后单击 Add/Remove Rules 按钮。将先前为领域和子领域创建的规则添加到当前的成员列表中。单击 OK 关闭该对话框。最后,通过在附签上选择规则并单击 Set Response 按钮,为每一个规则添加响应,如下表所示。
|
Rule
|
Realm
|
Response
| | GetPost Rule | Sametime | IMA Token Response | | OnAuthAccept | Sametime | DefaultTimeOut | | GetPost Rule | Sametime.ST AdminPage | IMA Token Response | | GetPost Rule | Sametime.ST Src | IMA Token Response | | OnAuthAccept Rule | Sametime.ST Src | DefaultTimeOut |
对话框中的 IP Adresses、Time 和 Advanced 附签上所有值都应该保留其默认值。然后在 Policy 对话框上单击 OK 保存并关闭。
在 Sametime 服务器上安装并配置 SiteMinder Web 代理
我们建议您安装 Netegrity SiteMinder Web 代理的最新版本 V5 和最新可用的修补程序,这些已通过 Netegrity 验证并能够与您使用的 Domino 版本一起工作。有关的详细信息,请参阅 Netegrity SiteMinder 5.5 Platform Support Matrix —— 可以从 Netegrity Support Site 上获得。
安装了 Web 代理和修补程序后,通过从 Start 菜单上选择 Programs - SiteMinder 启动 Web Agent Configuration Wizard。在出现的每一个对话框上,按照如下信息填充相应的字段。
- 确保没有选中 Enable PKCS11。
- 填充下面的域,标识一个具有注册可信主机权限的管理员,然后单击 Next:Administrator、Password 和 Confirm password。
- 在 Trusted Host Name 字段中,输入想将其注册为可信主机的系统的名称(通常指的是物理服务器名,例如 servername)。这将在 Policy Server 上将创建一个可信主机条目。不能有重复的可信主机条目,所以如果您已经注册了这个服务器,那么需要删除 Policy Server 上的现有可信主机条目,或使用一个新名称进行注册。
- 在 Policy Server IP Address 字段中,输入策略服务器的 IP 地址。
- 在 Host Configuration Object 字段,输入在策略服务器上创建的主机配置对象的名称。
- 接受默认的主机配置文件地址。
- 选择适当的 Web 服务器。本实例中,选择 Lotus Domino 6.0。
- 在“Web Agent Configuration for Lotus Domino 6.0”对话框中,浏览所显示的信息。如果看到“The Agent configuration Object has not been configured”,请单击 Configure 按钮。
- 在 Agent Configuration Object 字段中,输入在策略服务器上创建的代理配置对象的名称。
- 选择 No advance authentication。然后单击 Next。这将返回到“Web Agent Configuration for Lotus Domino 6.0”对话框。
- 浏览所显示的有关主机配置文件位置和代理配置对象的名称的详细信息,以确保现在已经获得正确的配置。然后单击 Finish。
为 Web 代理和 DSAPI 过滤器设置配置 Domino/Sametime 服务器
要向 Sametime 服务器配置中添加正确的 DSAPI 过滤器文件名,请执行下列操作:
- 打开 Domino 服务器上的 Names.nsf。
- 打开 Domino/Sametime 服务器的服务器文档。
- 选择 Internet Protocols -> HTTP 附签,在 DSAPI 过滤器文件名字段中,输入名称和 SiteMinder Web 代理的完整路径:
<Netegrity installation path>\dominowebagent.dll(通常为 c:\Program Files\Netegrity\Siteminder Web Agent\bin\DOMINOWebAgent.dll)。
- 保存并关闭。
- 还应该检查安装/配置过程是否在 Notes.ini 中成功创建如下行:
WebAgentConfLocation=<Netegrity installation path>\bin\Lotus Domino 6\WebAgent.conf。
启用 Sametime 服务器上的 SiteMinder Web 代理并执行基本集成验证测试
要完成 SiteMinder Web 代理的配置并启用它,请执行下列步骤:
- 在服务器的下列目录中编辑 WebAgent.conf 文件:
<Netegrity installation path>\Program Files\Netegrity\SiteMinder Web Agent\Bin\Lotus Domino 6(通常为 c:\Program Files\Netegrity\SiteMinder Web Agent\Bin\Lotus Domino 6)。
- 将 EnableWebAgent 属性的值更改为 EnableWebAgent="YES"。
- 在 Policy Server 上定义的 Agent Configuration Object 中设置 AllowLocalConfig=YES,因此还需要在 WebAgent.conf 文件中添加下列条目:
CookieDomain=<set to the domain that your Sametime 6.5x server resides in, for example ".domain.com">
RequireCookies="YES"
PersistentCookie="NO"
SkipDominoAuth="NO"
DominoLookupHeaderForLogin="YES"
DominoUseHeaderForLogin="HTTP_NOTESDN"
LogFile="YES"
LogFileName="C:\stsiteminder.log" # or to another filename/directory of your choice
LogAppend="YES"
LogLevel="2"
LogConsole="YES" # this will log Netegrity messages to the Domino console
- 保存并关闭。
- 重新启动 Domino/Sametime 服务器,使更改生效。
Domino/Sametime 服务器重新启动时,应该能看到 Domino 服务器控制台上出现类似于图 11 的消息。这些消息表示已经安装了 SiteMinder Web 代理,并且已经在服务器上进行了正确的配置,而且 SiteMinder DSAPI 过滤器也已经成功加载。还可以通过检查 Application 日志和查看 WebAgent 日志文件来验证 WebAgent 是否已经成功启动。
图 11. Domino 服务器控制台消息
测试集成
验证了您的配置已经进行了正确的设置并启用后,可以执行下列基本测试来验证 SiteMinder 现在能否为您的 Sametime 服务器提供单点登录和身份验证:
- 使用浏览器,尝试登录 Sametime 服务器上的 Meeting Center:http://<fully qualified servername>/stcenter.nsf。然后 SiteMinder 会显示一个基本的身份验证对话框,要求您对在 SiteMinder Policy Server(例如,Sametime)上创建的领域进行身份验证。
- 从 LDAP 服务器提供了有效的用户名/口令之后,您应该能通过 SiteMinder Policy Server 的身份验证,并能获得对 Sametime Meeting Center 主页的访问权限。通过 Domino 用户名,Sametime 服务器即能标识您的身份,然后就能访问服务器上的所有功能,而不用预先提供证书。这样,SiteMinder 就能向 Sametime 服务器提供单点登录了。
- 引用 WebAgent 日志文件,并确认来自 LDAP 服务器用户帐户的 NotesDN 值能够成功地由 SiteMinder 传递给 Domino,以便进行登录。
结束语
本文所描述的配置步骤将为 Netegrity SiteMinder 和您的 Sametime 服务器实现完全的 SSO 集成。也可以使用这些步骤在受 Netegrity SiteMinder 保护的多服务器环境中配置 Sametime 服务器。SiteMinder Policy Server 配置和 Domino/Sametime 设置是相同的。可能只需更改 Web 代理配置参数设置,具体情况视 Sametime 服务器在多服务器环境中的配置方式而定。
参考资料
关于作者  | |  | Martin McDonnell 是 IBM LET Common Services 团队的一位技术专家,并且是团队中从事 Netegrity SiteMinder 的主要联系人。他负责为 IBM 的全球性测试、开发和团队支持提供 Netegrity SiteMinder 集成解决方案。 |
对本文的评价
|