高速缓存 SSO 的因特网密码更改

当 Web 用户更改其因特网密码时,HCL Domino®HTTP Server 会在其高速缓存中记住新的因特网密码。由于密码更改需要一些时间才能生效(因为更改必须由 Domino® 管理服务器进行处理并在整个 Domino® 环境中进行复制),因此高速缓存是必需的。

通过高速缓存用户新密码,即使在 Domino® 环境中可能还未完成密码更新信息的复制,HTTP Server 也可立即识别到用户的新因特网密码,并接受其用于登录。

现在,如果为 SSO 配置了 HTTP Server,那么会对密码更改进行高速缓存。这意味着用户可以登录到 SSO 环境、更改他们的因特网密码、注销并且仍在系统中复制更改时使用新的因特网密码再次登录。

高速缓存位置和持续时间

用户高速缓存的新因特网密码仅储存在请求密码更改的 HTTP Server 上。SSO 环境中的其他服务器没有对此高速缓存信息的访问权;因此,如果任何此类的其他服务器提示用户输入密码,那么用户可能必须提供旧密码而非新密码。在没有高速缓存信息的服务器上,用户提供的密码必须与服务器在目录中找到的密码信息相匹配。

请注意,对于 SSO 用户,初始登录会提供对整个 SSO 环境的访问权。因此,如果所有登录活动一直是在高速缓存新密码的服务器上进行的,那么用户将不会遇到任何问题。该用户可以尝试在目标服务器上访问 URL,然后该服务器会提示输入密码,而不是选择向不具有高速缓存新密码的服务器提供密码。

缺省情况下,HTTP Server 可以使用高速缓存的新因特网密码 48 小时。可使用服务器 NOTES.INI 参数 HTTP_PWD_CHANGE_CACHE_HOURS 配置对信息进行高速缓存的时间长度。一旦信息高速缓存超时,用户就只能使用可以根据服务器在 Domino® 目录中找到的密码信息进行验证的密码来登录。

注: 如果 HTTP Server 重新启动,将会丢弃高速缓存的密码信息。而且,用户必须提供与服务器在 Domino® 目录中找到的密码信息相匹配的密码。

密码高速缓存和 SSO 登录名

新密码的使用依赖于 HTTP Server 能否在它的高速缓存中查找到该用户。要让高速缓存的新因特网密码生效,用户必须使用与先前登录时使用的用户名相同的拼写来登录。例如,如果先前更改密码时用户以“John Doe”登录,那么该用户稍后就不能使用新密码和其他有效的名称(如“jdoe”)来登录。用户必须和先前一样使用“John Doe”,以新密码登录。

SSO 密码高速缓存的最佳方式

您应该指导您的用户执行以下步骤来获得最佳结果:

  1. 登录到支持 SSO 密码高速缓存的 Domino® HTTP Server。
  2. 通过调用服务器上的 ChangePassword URL 提交因特网密码更改请求。例如:
    http://myserver.mycompany.com/names.nsf?changepassword) 
注: HCL iNotes® 用户同样可以使用“更改密码”按钮。

密码更改在 SSO 环境中所有服务器上生效需要一些时间。在这段时间内,当用户登录时,用户将使用与先前相同的用户登录名并提供新密码,并应该总是先登录到请求密码更改的服务器。

如果用户的新密码因故在请求密码更改的服务器上未被接受,那么该用户应该再次尝试使用新密码及其专有名称格式(例如,John Doe/MyCompany)的用户名。

对 SSO 的因特网密码高速缓存进行故障诊断

以下列表描述的是在 SSO 环境中设置和使用因特网密码高速缓存的一些常见问题。

  • 用户提供备用的名称拼写。假设用户尝试以“jdoe”登录(在先前已作为“John Doe”登录并更改了密码后)。用户“jdoe”必须提供与目录中密码信息匹配的密码,这可能是该用户的旧密码。
  • 用户初始登录到一台 SSO 服务器,然后请求另一台服务器上的密码更改。当用户登录到 SSO 服务器时,该用户的浏览器会接收到一个 SSO 令牌,允许该用户访问配置中的其他服务器,而无需重新登录。如果该用户访问另一台请求密码更改的服务器,那么该服务器会接收到用户的 SSO 令牌,而且仅能通过存储在令牌中的内容知道该用户。第二台服务器不知道用户登录时所提供的名称。

    如果用户在第二台服务器上更改了密码,那么第二台服务器会高速缓存此用户的新因特网密码。这种情况下,服务器没有用户的登录名,这是因为该用户是在其他地方先登录的。第二台服务器会记住新密码,但请记住新密码会应用于具有相应 Domino® 专有名称的用户。如果用户注销且以后想用新因特网密码直接登录到这台服务器,那么该用户必须提供其专有名称(例如 John Doe/MyCompany)。

  • 用户的初次登录认证是通过 DSAPI 过滤器库完成的。HTTP Server 可以由另外的一个或多个 DSAPI 过滤器库扩展,可以配置它请求 HTTP Server 将认证请求传递到 DSAPI 库。DSAPI 库可能只控制服务器的 URL 的子集。如果用户输入用来访问服务器的 URL 是与某个特定 DSAPI 库关联的,那么可以将该用户的登录名(如“John Doe”)和密码传递到 DSAPI 库,这样此库就可以决定是否应该认证该用户。如果核准了认证,那么 DSAPI 库会将刚认证的用户的名称传递回 HTTP Server。通常传递给 HTTP Server 的名称是 Domino® 专有名称。此名称是 HTTP Server 对用户所了解的内容,也就是说,HTTP Server 可能不知道用户叫“John Doe”但知道用户叫“John Doe/MyCompany”。用户登录时经 DSAPI 过滤器库认证后,可以接着请求密码更改。
    注: 有关请求的新密码的密码更改信息不会传递到任何 DSAPI 库,并且当密码更改影响此用户的 Domino® 目录信息时,密码更改很可能不会更改 DSAPI 库中表示的用户密码。

    如果用户请求密码更改,那么 HTTP Server 会高速缓存此用户的新因特网密码,并使用它所知道的此用户的名称。如果用户注销后,后来又想要使用新密码登录到服务器上的 URL,而该 URL 不和 DSAPI 库关联,那么 HTTP Server 会尝试验证用户名和密码。如果对目录的密码更改仍处于等待状态,那么 HTTP Server 仅当在高速缓存中找到用户的新密码时才能对其进行验证。要在高速缓存中查找用户,用户必须提供与高速缓存中的名称匹配的名称,也就是从 DSAPI 传递的名称,例如 "CN=John Doe/O=MyCompany"