Sun Java System Messaging Server 6 2005Q4 管理指南

信任环 SSO(传统)

本节介绍了信任环 SSO。由于将来所有的开发都将使用 Access Manager,因此不建议使用此种方法的 SSO。但是,信任环 SSO 能够提供 Access Manager SSO 目前所没有的某些功能。本节包含以下几个部分:

信任环 SSO 概述和定义

部署 SSO 之前,请务必了解以下术语。

信任环 SSO 应用程序

实现 SSO 之前,您必须首先考虑哪些应用程序将位于此信任环中。可位于此信任环内的应用程序包括 Messenger Express(带有或不带有 Messenger Express Multiplexor)、Calendar Express 和旧版 iPlanet Delegated Administrator for Messaging(由于仅支持 Sun LDAP Schema 1,因此不建议使用)。

表 6–2 显示了可通过 SSO 互相访问的应用程序。从用户的角度来看,如果登录到第一列中某个应用程序后,无需重新输入用户 ID 和密码即可访问顶端行中的应用程序,则 SSO 工作。

表 6–2 SSO 互操作性

                                    到: 

 

From:  

Calendar Express 

Messenger Express 

Messenger Express Multiplexor 

Delegated Administrator 

Calendar Express 

SSO 

SSO 

SSO 

SSO 

Messenger Express 

SSO 

N/A 

N/A 

SSO 

Messenger Express Multiplexor 

SSO 

N/A 

N/A 

SSO 

Delegated Administrator 

SSO 

SSO 

SSO 

N/A 

信任环 SSO 限制

信任环 SSO 部署方案示例

最简单的 SSO 部署方案仅包含 Messenger Express 和 Delegated Administrator。通过在同一计算机或不同计算机中添加使用相同 SSO 前缀(以便其位于同一信任环中)的 Calendar Express,可以创建较复杂的方案。如图 6–1 所示。

图 6–1 简单 SSO 部署

此图形显示了简单的 SSO 部署。

更复杂的部署将包括 Messenger Express Multiplexors 和负载平衡器。

图 6–2 复杂 SSO 部署

此图形表示复杂的 SSO 部署。

设置信任环 SSO

本节介绍如何为 Messenger Express、Delegated Administrator 和 Calendar Manager 设置 SSO。

Procedure为 Messenger Express、Delegated Administrator 和 Calendar Manager 设置 SSO

步骤
  1. 配置 Messenger Express 以实现 SSO。

    1. 设置适当的 SSO configutil 参数。

      要为具有 Delegated Administrator 的 Messenger Express 启用单点登录,请按照以下方法设置配置参数(假定默认域为 siroe.com)。表 6–3 中介绍了这些参数。您必须是超级用户。使用 cd 命令进入到 instance_root


      configutil -o local.webmail.sso.enable -v 1
      configutil -o local.webmail.sso.prefix -v ssogrp1
      

      ssogrp1 是 iDA 使用的默认 SSO 前缀,尽管您可以选择其他前缀,但是使用默认前缀可以在配置 iDA 和 iCS 时省去一些键入操作。


      configutil -o local.webmail.sso.id -v ims5
      

      ims5 是您选择用于标识 Messenger Express (ME) 以使其区别于其他应用程序的名称。


      configutil -o local.webmail.sso.cookiedomain -v ".siroe.com"
      

      以上域必须与 ME/浏览器客户机使用的域匹配,才能连接到服务器。因而,尽管此服务器上的托管域可能称为 xyz.com,但我们必须使用 DNS 中的真实域。该值必须以句点开头。


      configutil -o local.webmail.sso.singlesignoff -v 1
      configutil -o local.sso.ApplicationID.verifyurl -v \
      "http://ApplicationHost:port/VerifySSO?"
      

      ApplicationID 是我们给予 SSO 应用程序的名称(例如:对于 Delegated Administrator 为 ida、对于 Calendar Server 为 ics50)。ApplicationHost:port 是应用程序的主机和端口号。对于每个非 Messaging Server 应用程序,您将具有上述行中的其中一行。示例:


      configutil -o local.sso.ida.verifyurl -v \
      "http://siroe.com:8080/VerifySSO?"
      
    2. 更改配置后重新启动 Messenger Express HTTP 服务器。


      cd instance_root./stop-msg http
      ./start-msg http
      
  2. 配置 Directory Server 用于 SSO。

    1. 在目录中创建代理用户帐户。

      代理用户帐户使 Delegated Administrator 可以捆绑至 Directory Server,以进行代理验证。使用以下 LDIF 代码 (proxy.ldif),您可以创建使用 ldapadd 的代理用户帐户条目。

      ldapadd -h mysystem.siroe.com -D "cn=Directory Manager" -w password -v -f proxy.ldif


      dn: uid=proxy, ou=people, o=siroe.com, o=isp
      objectclass: top
      objectclass: person
      objectclass: organizationalperson
      objectclass: inetorgperson
      uid: proxy
      givenname: Proxy
      sn: Auth
      cn: Proxy Auth
      userpassword: proxypassword
    2. 为代理用户帐户验证创建适当的 ACI。

      使用 ldapmodify 实用程序为安装 Delegated Administrator 时创建的每个后缀创建一个 ACI。

      osiroot—您输入的用于存储用户数据的后缀(默认值为 o=isp)。osiroot 是组织树的根。

      dcroot—您输入的用于存储域信息的后缀。(默认值为 o=internet。)

      osiroot—您输入的用于存储配置信息的后缀,应当与您输入的用于存储用户数据的值相同。

      以下是早期创建的代理用户的 osiroot ACI 条目 (aci1.ldif) 的示例:


      dn: o=isp
      changetype: modify
      add: aci
      aci: (target="ldap:///o=isp")(targetattr="*")(version 3.0; acl
      "proxy";allow (proxy) userdn="ldap:///uid=proxy, ou=people,
      o=siroe.com, o=isp";)

      ldapmodify -h siroe.com -D "cn=Directory Manager" -w password -v 
      -f aci1.ldif
      

      dcroot 创建类似的 ACI 条目 (aci2.ldif):


      dn: o=internet
      changetype: modify
      add: aci
      aci: (target="ldap:///o=internet")(targetattr="*")(version 3.0; acl 
      "proxy";allow (proxy) userdn="ldap:///uid=proxy, ou=people, 
      o=siroe.com, o=isp";)

      ldapmodify -h siroe.com -D "cn=Directory Manager" -w password -v
      -f aci2.ldif
      
  3. 配置 Delegated Administrator

    1. 将代理用户证书和上下文的 cookie 名称添加到 Delegated Administrator 的 resource.properties 文件。

      在 Delegated Administrator resource.properties 文件中取消以下条目的注释并对其进行修改:


      LDAPDatabaseInterface-ldapauthdn=Proxy_Auth_DN
      LDAPDatabaseInterface-ldapauthpw=Proxy_Auth_Password
      NDAAuth-singleSignOnId=SSO_Prefix-
      NDAAuth-applicationId=DelAdminID
      

      例如:


      LDAPDatabaseInterface-ldapauthdn= uid=proxy,ou=people,o=cesta.com,o=isp
      LDAPDatabaseInterface-ldapauthpw=proxypassword
      NDAAuth-singleSignOnId=ssogrp1-
      NDAAuth-applicationId=ida

      resource.properties 文件存储在以下位置:

      iDA_svr_base/nda/classes/netscape/nda/servlet/

    2. 添加参与的服务器的验证 URL。

      要检验接收到的单点登录 cookie,Delegated Administrator 必须知道联系的对象。您必须为所有已知的参与的服务器提供检验 URL。

      按照示例,假定已安装 Messenger Express,并且其应用程序 ID 为 msg5。编辑 Delegated Administrator 的 resource.properties 文件并添加如下条目:


      verificationurl-ssogrp1-msg5=http://webmail_hostname:port/VerifySSO? 
      verificationurl-ssogrp1-ida=http://iDA_hostname:port/VerifySSO? 
      verificationurl-ssogrp1-ics50=http://iCS_hostname:port/VerifySSO?

      resource.properties 文件位于以下目录中:

      iDA_svr_base/nda/classes/netscape/nda/servlet/

  4. 添加 Delegated Administrator 单点登录 cookie 信息并启用 UTF8 参数编码。

    1. 定义 Delegated Administrator 的上下文标识符。

      编辑 servlets.properties 文件,并取消包含文本 servlet.*.context=ims50 的所有行的注释。其中 * 表示任意字符串。

      servlets.properties 文件位于以下目录中:

      Web_Svr_Base/https-instancename/config/

    2. 在 Enterprise Server 配置中指定上下文的 cookie 名称。

      编辑 Enterprise Server 的 contexts.properties 文件,并将以下行添加到文件底部、#IDACONF-Start 行之前:

      context.ims50.sessionCookie=ssogrp1-ida

      contexts.properties 文件位于以下目录中:

      Web_Svr_Base/https-instancename/config/

    3. ims5 上下文启用 UTF8 参数编码。

      要在 Enterprise Server 配置中为 ims5 上下文启用 UTF8 参数编码,请将以下条目添加到 Enterprise Server 的 contexts.properties 文件中:

      context.ims50.parameterEncoding=utf8

  5. 重新启动 Messenger Express。

    按照步骤 1a 至 2c 中所述更改配置之后,您必须重新启动 Messenger Express 才能使更改生效:


    Web_Svr_Base/https-instance_name/stop
    Web_Svr_Base/https-instancename/start
    
  6. 如果在此 SSO 组中部署 Calendar Server,请配置 Calendar Server。

    编辑 ics.conf 并添加以下内容:


    sso.appid = "ics50"
    sso.appprefix = "ssogrp1"
    sso.cookiedomain = ".red.iplanet.com"
    sso.enable = "1"
    sso.singlesignoff = "true"
    sso.userdomain = "mysystem.red.iplanet.com"
    sso.ims5.url="http://mysystem.red.iplanet.com:80/VerifySSO?"
    sso.ida.url=http://mysystem.red.iplanet.com:8080/VerifySSO?
  7. 重新启动 Calendar Server

    start-cal

  8. 重新启动 Messenger Express HTTP 服务器:


    msg_svr_base/sbin/stop-msg http
    msg_svr_base/sbin/start-msg http
    

Messenger Express 信任 SSO 配置参数

您可以使用 configutil 命令修改 Messenger Express 的单点配置参数,如Messenger Express 信任 SSO 配置参数所示。有关 configutil 的更多信息,请参见《Sun Java System Messaging Server 6 2005Q4 Administration Reference》

表 6–3 信任环单点登录参数

参数 

说明 

local.sso.appid.verifyurl

为对等 SSO 应用程序设置验证 URL 值。appid 是其 SSO cookie 将生效的对等 SSO 应用程序的应用程序 ID。例如,Delegated Administrator 的默认 appidnda45。其实际值由 Delegated Administrator 的 resource.properties 文件条目 NDAAuth-applicationID 指定。

应该为每个信任的对等 SSO 应用程序定义一个参数。检验 URL 的标准格式为: 

http://nda-host:port/VerifySSO?

如果在多个 Messenger Express Multiplexor 和邮件存储服务器(运行 Messenger Express)前端或日历前端使用负载平衡器,请确保为 verifyurl 中带有真实主机名的每个物理系统指定不同的 appid。这将确保使用正确的系统来检验 cookie


local.webmail.sso.
cookiedomain

此参数的字符串值用于设置由 Messenger Express HTTP 服务器设置的所有 SSO cookie 的 cookie 域值。默认值为空。 

该域必须与 Messenger Express 浏览器用于访问服务器的 DNS 域相匹配。它不是托管的域名。 

local.webmail.sso.enable

启用或禁用所有单点登录功能,包括获取登录页面后接受和检验客户机提供的 SSO cookie、在成功登录的情况下将 SSO cookie 返回给客户机以及响应来自其他 SSO 同伴的要求检验其 cookie 的请求。 

如果设置为任何非零值,服务器将执行所有 SSO 功能。 

如果设置为零,服务器将不执行任何 SSO 功能。 

默认值为零。 

local.webmail.sso.id

对 Messenger Express HTTP 服务器设置的 SSO cookie 进行格式化时,将此参数的字符串值用作应用程序 ID 值。默认值为空。 

这可以是任意字符串。它的值必须与您在 Delegated Administrator 的 resource.properties 文件中为其指定的值相匹配。resource.properties 中相应的条目是:


Verifycationurl-XXX-YYY=http://webmailhost:webmailport/VerifySSO?

其中 XXX 是上文中设置的 local.webmail.sso.prefix 值,而 YYY 是此处设置的 local.webmail.sso.id 值。

local.webmail.sso.prefix

对 Messenger Express HTTP 服务器设置的 SSO cookie 进行格式化时,将此参数的字符串值用作前缀值。服务器只能识别带有此前缀的 SSO cookie;将忽略其他所有 SSO cookie。 

此参数的空值将有效禁用服务器中所有 SSO 功能。 

默认值为空。 

该字符串必须与 Delegated Administrator 在其 resource.properties 文件中所使用的字符串(不带结尾字符 -)相匹配。例如,如果:

NDAAuth-singleSignOnID=ssogrp1-

则应该在此处将该值设置为 ssogrp1


local.webmail.sso.singlesignoff

如果将此参数的整数值设置为任何非零值,当客户机注销时,将清除客户机(其前缀值与 local.webmail.sso.prefix 中配置的值相匹配)上的所有 SSO cookie。 

如果设置为零,则客户机注销时 Messenger Express 将清除自己的 SSO cookie。 

默认值为零。