安全性的单点登录配置故障诊断技巧

配置 WebSphere® Application Server 与 Domino® 服务器之间的单点登录 (SS0) 时可能会发生一些常见问题。某些此类问题包括:无法保存 Domino Web SSO 配置、访问受保护资源时认证失败以及访问受保护资源时 SSO 失败。可以执行一些操作来更正这些错误情况和恢复 SSO。

  • 无法保存 Domino Web SSO 配置文档

    客户机必须找到参与 SSO Domino 服务器的 Domino 服务器文档。为您指定的服务器加密 Web SSO 配置文档。由客户机位置记录指示的主服务器必须指向参与服务器所在的 Domino 域中的某个服务器。此指针确保查找可以找到服务器的公用密钥。

    如果收到一条消息表明无法找到一个或多个参与的 Domino 服务器,那么这些服务器将无法解密 Web SSO 配置文档或执行 SSO。

    当保存 Web SSO 配置文档时,状态栏指示多少公用密钥用于通过查找文档上列出的服务器、作者和管理员来加密文档。

  • Domino 服务器控制台无法在 Domino HTTP Server 启动时装入 Web SSO 配置文档

    在配置 SSO 期间,将在“会话认证”字段中针对“多服务器”配置服务器文档。Domino HTTP Server 将在启动期间尝试查找和装入 Web SSO 配置文档。如果找到有效的文档并成功地对其进行解密,那么 Domino 服务器控制台将报告以下信息:HTTP:装入 Web SSO 配置成功。

    如果服务器无法装入 Web SSO 配置文档,那么 SSO 不起作用。在这种情况下,服务器将报告以下消息:HTTP:装入 Web SSO 配置时出错。将还原为单服务器会话认证。

    请验证 Domino 目录的 Web 配置视图中以及 $WebSSOConfigs 隐藏视图中是否只有一个 Web SSO 配置文档。您无法创建多个文档,但是在复制期间可插入附加的文档。

    如果能验证只有一个 Web SSO 配置文档,那么考虑另一种情况。当服务器文档的公用密钥与标识文件中的公用密钥不匹配时,会显示此相同的错误消息。在这种情况下,尝试解密 Web SSO 配置文档失败,并生成错误消息。

    在多次创建了标识文件,但未正确更新服务器文档时,就可能发生这种情况。通常,在 Domino 服务器控制台上会显示一条错误消息,声明公用密钥与服务器标识不匹配。如果发生这种情况,那么 SSO 不起作用,因为文档由公用密钥加密,而服务器没有相应的专用密钥。

    要解决密钥不匹配问题:
    1. 从服务器标识文件复制公用密钥,并将它粘贴到服务器文档中。
    2. 再次创建 Web SSO 配置文档。
  • 访问受保护资源时,认证失败。

    如果反复提示 Web 用户输入用户标识和密码,那么表明 SSO 并未运行,原因为 Domino 或 WebSphere Application Server 安全性服务器无法向轻量级目录访问协议 (LDAP) 服务器认证用户。检查下列可能性:

    • 验证是否可从 Domino 服务器访问 LDAP 服务器。使用 TCP/IP ping 实用程序检查 TCP/IP 连接,并验证主机是否正在运行。
    • 验证定义在 LDAP 目录中的 LDAP 用户。使用 idsldapsearch 实用程序确认用户标识存在,而且密码正确。例如,您可以运行在一行中输入的以下命令:

      [AIX Solaris HP-UX Linux Windows][IBM i]可以使用 OS/400® Qshell、UNIX shell 或 Windows DOS 提示符

      % ldapsearch -D "cn=John Doe, ou=Rochester, o=IBM, c=US" -w mypassword
      -h myhost.mycompany.com -p 389 -b "ou=Rochester, o=IBM, c=US" (objectclass=*)
      百分号字符 (%) 指提示,它不是命令的一部分。期待出现目录条目的列表。以下列表中包含可能的出错条件和原因:
      • 没有这样的对象:此错误表明用户专有名称 (DN) 值(在 -D 选项之后指定)或者基本 DN 值(在 -b 选项之后指定)所引用的目录条目不存在。
      • 凭证无效:此错误表明密码无效。
      • 无法联系 LDAP 服务器:此错误表明为服务器指定的主机名或端口无效,或者 LDAP 服务器未运行。
      • 空列表意味着 -b 选项指定的基本目录不包含任何目录条目。
    • 如果使用的是用户的短名称或用户标识而不是专有名称,请验证目录条目是否使用短名称进行配置。对于 Domino 目录,请验证“人员”文档的“短名称/用户标识”字段。对于其他 LDAP 目录,验证目录条目的用户标识属性。
    • 如果在使用 LDAP 目录而不是 Domino 目录时 Domino 认证失败,请验证目录辅助数据库的目录辅助文档中 LDAP 服务器的配置设置。同时验证服务器文档是否引用了正确的目录辅助文档。目录辅助文档中指定的下列 LDAP 值必须与为 WebSphere Application Server 管理域中用户注册表指定的值相匹配:
      • 域名
      • LDAP 主机名
      • LDAP 端口
      • 基本 DN
      另外,目录辅助文档中定义的规则必须引用包含用户目录条目的目录的基本专有名称 (DN)。

      可以通过将下列行添加到服务器 notes.ini 文件,跟踪到 LDAP 服务器的 Domino 服务器请求:

      webauth_verbose_trace=1
      重新启动 Domino 服务器后,当 Web 用户尝试认证到 Domino 服务器时,跟踪消息显示在 Domino 服务器控制台中。

  • 访问受保护资源时,授权失败。

    在成功认证后,如果显示一条授权错误消息,那么安全性未正确配置。检查下列可能性:

    • 对于 Domino 数据库,验证用户是否已在数据库的访问控制设置中定义。请参阅 Domino 管理文档,以了解指定用户 DN 的正确方法。例如,对于 DN“cn=John Doe, ou=Rochester, o=IBM, c=US”,访问控制表中的值必须设置为 John Doe/Rochester/IBM/US。
    • 对于受 WebSphere Application Server 保护的资源,验证是否正确设置了安全许可权。
      • 当将许可权授予所选组时,确保尝试访问资源的用户是组的成员。例如,可以使用以下 Web 站点来显示目录内容,从而验证组的成员:Ldap://myhost.mycompany.com:389/ou=Rochester, o=IBM, c=US??sub
      • 如果自从设置了许可权后,已在 WebSphere Application Server 管理域中更改了 LDAP 配置信息(主机、端口和基本 DN),那么现有许可权可能无效,并需要重新创建。

  • 访问受保护资源时 SSO 失败。

    如果系统提示 Web 用户向每个资源进行认证,那么表明未正确地配置 SSO。检查下列可能性:

    1. 将 WebSphere Application Server 和 Domino 服务器配置为使用同一 LDAP 目录。用于 SSO 的 HTTP Cookie 存储了用户的完整 DN(例如“cn=John Doe, ou=Rochester, o=IBM, c=US”)和域名服务 (DNS) 域。
    2. 按分层名称定义 Web 用户(如果使用 Domino 目录)。例如,更新“人员”文档中的“用户名”字段,使其包含以下格式的名称作为第一个值:John Doe/Rochester/IBM/US。
    3. 对于向进行了 SSO 配置的 Domino 服务器和 WebSphere Application Server 发放的 Web 站点,指定完整 DNS 服务器名,而不仅仅指定主机名或 TCP/IP 地址。要使浏览器将 Cookie 发送到一组服务器,DNS 域必须包括在 Cookie 中,且 Cookie 中的 DNS 域必须与 Web 地址相匹配。此要求是您无法跨 TCP/IP 域使用 cookie 的原因。
    4. 将 Domino 和 WebSphere Application Server 配置为使用同一 DNS 域。验证 DNS 域值完全相同,包括大小写。您需要配置 WebSphere Application Server 的 DNS 域的名称。请参阅使用 LTPA cookie 进行认证的单点登录,以了解更多信息。
    5. 验证集群的 Domino 服务器是否具有用服务器文档中的完整 DNS 服务器名填充的主机名。通过使用完整 DNS 服务器名,Domino 因特网集群管理器 (ICM) 可以重定向到使用 SSO 的集群成员。如果未填写此字段,那么在缺省情况下,ICM 仅使用服务器的主机名将 Web 地址重定向到集群 Web 服务器。由于 DNS 域未包括在 Web 地址中,因此 ICM 无法发送 SSO Cookie。要解决问题:
      1. 编辑服务器文档。
      2. 单击因特网协议 > HTTP 选项卡
      3. 在“主机名”字段中输入服务器的完整 DNS 名。
    6. 如果对 WebSphere Application Server 管理域指定了 LDAP 服务器的端口值,请编辑 Domino Web SSO 配置文档,并在“LDAP 领域”字段值的冒号字符 (:) 之前插入反斜杠字符 (\)。例如,将 myhost.mycompany.com:389 替换为 myhost.mycompany.com\:389。

  • 在 HTTP 会话计时器到期之后未注销用户。

    如果 WebSphere Application Server 的用户在登录到应用程序后保持闲置的时间超过了指定的 HTTP 会话超时值,那么在发生 LTPA 令牌超时之前,用户信息将保持有效且用户凭证保持活动。

    在应用 PK25740 之后,请执行以下步骤以便在 HTTP 会话到期之后将用户从应用程序注销。
    注意: com.ibm.ws.security.web.logoutOnHTTPSessionExpire 属性仅适用于使用表单登录的应用程序。
    1. 在管理控制台中,单击安全性 > 全局安全性
    2. 在“定制属性”下面,单击新建
    3. 在“名称”字段中,输入 com.ibm.ws.security.web.logoutOnHTTPSessionExpire。
    4. 在“值”字段中,输入 true。
    5. 单击“应用”和“保存”以保存对配置的更改。
    6. 再同步并重新启动服务器。
    意外的重新认证: 如果将 com.ibm.ws.security.web.logoutOnHTTPSessionExpire 定制属性设置为 true,那么在使用多个 Web 应用程序时,可能会发生意外的重新认证。缺省情况下,每个 Web 应用程序都有自己的唯一 HTTP 会话,但 Web 浏览器只有一个会话 Cookie。为解决此问题,可以更改 HTTP 会话配置,方法是为每个应用程序提供一个唯一的会话 cookie 名称或路径设置。结果,每个应用程序都将得到自己的会话 cookie。另外,也可以将多个具有同一个企业应用程序的 Web 应用程序配置为共享同一个 HTTP 会话。有关更多信息,请参阅“组装以便可以共享会话数据”主题。
  • 启用了 SSO 并且将 Firefox V3.6.11 配置为接受第三方 Cookie 时,可能会发生问题。
    如果启用了 SSO,并且在使用 Firefox V3.6.11 时满足下列其中一个条件:
    • 已将其配置为接受将会一直保留至到期或者 Firefox 关闭为止的第三方 Cookie
    • 已打开一个会话,但要切换到其他应用程序
    • 对要求不同用户进行验证的不同应用程序打开了多个会话

    您可能会看到以下错误消息:Error 403: AuthorizationFailed

    要解决此问题,请先清除第三方 Cookie,然后再通过执行以下操作启动新的应用程序:
    1. 选择 Firefox 工具 > 选项 > 隐私
    2. 确保历史记录设置为记录历史
    3. 单击删除私人 Cookie 以删除 Cookie。

    如果 Firefox 已经过配置,接受在 Firefox 关闭前一直保留的第三方 Cookie,那么您还可以关闭其他会话。


指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsec_troublesso
文件名:rsec_troublesso.html