第 8 章
配置单点登录
本章介绍如何配置单点登录 (SSO)。
单点登录 (SSO) 使用户只需验证一次就可以使用多个信任的应用程序,而不必多次验证。Sun Java System 通信服务器(包括 Calendar Server 和 Messaging Server)可按以下说明实现 SSO 功能:
通过 Identity Server 配置 SSO
Sun Java Enterprise System 服务器(包括 Calendar Server 和 Messaging Server)可以使用 Sun Java System Identity Server(6.1 版 [6 2003Q4 版] 或更高版本)实现 SSO 功能。
Identity Server 可以作为 Sun Java Enterprise System 服务器的 SSO 网关。即用户登录 Identity Server 后即可访问其他 Sun Java Enterprise System 服务器,只要这些服务器已经过适当配置,支持 SSO。
要在 Calendar Server 中使用 SSO,请执行以下操作:
- 请确保已安装和配置 Identity Server 和 Directory Server。有关安装和配置这些产品的信息,请参阅 Sun Java Enterprise System 2004Q2 Installation Guide。
- 可以使用以下方法为 Calendar Server 配置 SSO:首先设置在表 8-1 中列出的参数,然后重新启动 Calendar Server 以使这些值生效。如果有必要,可以在设置每个参数时删除注释字符 (!)。
注意:设置 local.calendar.sso.amnamingurl 参数时,必须为 Identity Server 使用全限定名。
- 要为 Messaging Server 配置 SSO,请参阅《Sun Java System Messaging Server 6 2004Q2 管理指南》。
- 用户使用他们的 Directory Server LDAP 用户名和密码登录 Identity Server。(通过其他服务器例如 Calendar Server 或 Messaging Server 登录的用户将无法使用 SSO 访问其他 Sun Java Enterprise System 服务器。)
- 登录 Identity Server 后,用户就可以使用适当的 URL,通过 Calendar Express 访问 Calendar Server。用户还可以访问其他 Sun Java Enterprise System 服务器(例如 Messaging Server),只要这些服务器已经过适当配置,支持 SSO。
表 8-1 在 Identity Server 中使用 SSO 所需的 Calendar Server 配置参数
参数
|
说明
|
local.calendar.sso.amnamingurl
|
指定 Identity Server SSO 命名服务的 URL。
默认值为 http://IdentityServer:port/amserver/namingservice
其中,IdentityServer 是 Identity Server 的全限定名,port 是 Identity Server 端口号。
|
local.calendar.sso.amcookiename
|
指定 Identity Server SSO Cookie 的名称。
默认值为 iPlanetDirectoryPro。
|
local.calendar.sso.amloglevel
|
指定 Identity Server SSO 的日志级别。取值范围从 1(静默)到 5(详细)。默认值为“3”。
|
local.calendar.sso.logname
|
指定 Identity Server SSO API 日志文件名。
默认值为 am_sso.log。
|
local.calendar.sso.singlesignoff
|
启用 (yes) 或禁用 (no) 从 Calendar Server 到 Identity Server 的单一注销。
如果启用,用户从 Calendar Server 注销的同时也将从 Identity Server 注销,而且用户通过 Identity Server 启动的任何其他会话(例如 Messaging Server Web 邮件会话)也将终止。
由于 Identity Server 是验证网关,因此总是启用从 Identity Server 到 Calendar Server 单一注销。
默认值为 yes。
|
在 Identity Server 中使用 SSO 的注意事项
- 只要 Identity Server 会话有效,日历会话就会有效。如果从 Identity Server 注销,日历会话也会自动地关闭(单点注销)。
- SSO 应用程序必须在同一个域中。
- SSO 应用程序必须可以访问 Identity Server 验证 URL(命名服务)。
- 浏览器必须支持 Cookie。
- 如果使用的是 Sun Java System Portal Server 网关,请设置以下 Calendar Server 参数:
- service.http.ipsecurity="no"
- render.xslonclient.enable="no"
通过通信服务器信任环技术配置 SSO
在通过通信服务器信任环技术(也就是不通过 Identity Server)配置 SSO 时,请注意以下几点:
- 必须配置每个信任的应用程序以支持 SSO。
- 如果 default.html 页面位于浏览器的高速缓存中,SSO 将无法正常工作。在使用 SSO 之前,确保将 default.html 页面重新装入浏览器。例如,在 Netscape Navigator 中,按住 Shift 键,然后单击“重新装入”。
- SSO 只支持主干 URL,例如支持 http://servername,但不支持诸如 http://servername/command.shtml?view 之类的URL。
表 8-2 介绍了通过通信服务器信任环技术启用 SSO 所需的 Calendar Server 配置参数。
表 8-2 通过通信服务器信任环技术启用 SSO 所需的 Calendar Server 参数
参数
|
说明
|
sso.enable = "1"
|
必须将此参数设置为 1(默认值)才能启用 SSO。设置为 0 将禁用 SSO。
|
sso.appid = "ics50"
|
此参数指定特定 Calendar Server 安装的唯一应用程序 ID。每个信任的应用程序也必须有一个唯一的应用程序 ID。默认值为 ics50。
|
sso.appprefix = "ssogrp1"
|
此参数指定用于格式化 SSO Cookie 的前缀值。所有信任的应用程序必须使用相同的前缀值,因为 Calendar Server 只能识别带有此前缀的 SSO Cookie。默认值为 ssogrp1。
|
sso.cookiedomain = ".sesta.com"
|
此参数使浏览器只向指定域中的服务器发送 Cookie。其值必须以句点 (.) 开头。
|
sso.singlesignoff = "true"
|
如果将此参数设置为 true(默认值),那么当客户机注销时,将清除客户机上前缀与 sso.appprefix 中配置的值相匹配的所有 SSO Cookie。
|
sso.userdomain = "sesta.com"
|
此参数设置用作用户的 SSO 验证一部分的域。
|
sso.appid.url = "verifyurl"
例如:
sso.ics50.url = "http://sesta.com:8883/VerifySSO?"
sso.msg50.url = "http://sesta.com:8882/VerifySSO?"
|
此参数设置 Calendar Server 配置的对等 SSO 主机的验证 URL 值。必须为每个信任的对等 SSO 主机设置的参数包括:
- 应用程序 ID (appid),标识需要遵守其 SSO Cookie 的每个对等 SSO 主机。
- 验证 URL (verifyurl),包括主机 URL、主机端口号以及 VerifySSO?(包括末尾处的问号 ?)。
在本例中,Calendar Server 应用程序 ID 是 ics50,主机 URL 是 sesta.com,端口号是 8883。
Messenger Express 应用程序 ID 是 msg50,主机 URL 是 sesta.com,端口号是 8882。
|
表 8-3 介绍了通过通信服务器信任环技术启用 SSO 所需的 Messaging Server 配置参数。
表 8-3 通过通信服务器信任环技术启用 SSO 所需的 Messaging Server 参数
参数
|
说明
|
local.webmail.sso.enable = 1
|
必须将此参数设置为非零值才能启用 SSO。
|
local.webmail.sso.prefix = ssogrp1
|
此参数指定在格式化 HTTP 服务器设置的 SSO Cookie 时所使用的前缀。
|
local.webmail.sso.id = msg50
|
此参数指定 Messaging Server 的唯一应用程序 ID (msg50)。
每个信任的应用程序也必须有一个唯一的应用程序 ID。
|
local.webmail.sso.cookiedomain = sesta.com
|
此参数指定 HTTP 服务器设置的所有 SSO Cookie 的 Cookie 域值。
|
local.webmail.sso.singlesignoff = 1
|
如果将此值设置为非零值,那么当客户机注销时,将清除客户机上前缀与 local.webmail.sso.prefix 中配置的值相匹配的所有 SSO Cookie。
|
local.sso.appid.url = "verifyurl"
例如:
local.sso.ics50.verifyurl = http://sesta.com:8883/VerifySSO?
local.sso.msg50.verifyurl = http://sesta.com:8882/VerifySSO?
|
此参数设置 Messaging Server 配置的对等 SSO 主机的验证 URL 值。必须为每个信任的对等 SSO 主机设置的参数包括:
- 应用程序 ID (appid),标识需要遵守其 SSO Cookie 的每个对等 SSO 主机。
- 验证 URL (verifyurl),包括主机 URL、主机端口号以及 VerifySSO?(包括末尾处的问号 ?)。
在本例中,Messaging Server 应用程序 ID 是 msg50,主机 URL 是 sesta.com,端口号是 8882。
Calendar Server 应用程序 ID 是 ics50,主机 URL 是 sesta.com,端口号是 8883。
|
有关配置 Messaging Server 以启用 SSO 的详细信息,请参阅《Sun Java System Messaging Server 6 2004Q2 管理指南》。