La función "Cambiar contraseña" no funciona como se esperaba después de instalar el Service Pack 1 de ISA Server 2006 o si utiliza Microsoft Threat Management Gateway 2010

Se aplica: Forefront Threat Management Gateway 2010

Síntomas


Después de aplicar Microsoft Internet Security and Acceleration (ISA) Server Service Pack 1 (SP1) o si utiliza Microsoft Forefront Threat Management Gateway (TMG) 2010, observará que la característica "Cambiar contraseña" no funciona como se esperaba. Por ejemplo, en la configuración de Active Directory, habilite a la opción "El usuario debe cambiar la contraseña en el siguiente inicio de sesión" para una determinada cuenta de usuario. Sin embargo, cuando el usuario intenta iniciar sesión utilizando autenticación basada en formularios (FBA) cuando está habilitada la característica "Cambiar contraseña" en el servidor ISA o el servidor de TMG, el usuario no se redirige automáticamente al formulario que se utiliza para cambiar la contraseña.

Causa


Este problema se produce cuando FBA se utiliza junto con el protocolo ligero de acceso a directorios (LDAP). En ISA Server 2006 SP1, el comportamiento predeterminado se cambió al utilizar FBA junto con LDAP. Este cambio se realizó para ayudar a protegerse contra los ataques de autenticación. Para obtener más información, visite la sección "Cambios en el Service Pack 1" del siguiente sitio Web de Microsoft TechNet:

Solución


Para resolver este problema, siga estos pasos:
  1. Instalar el paquete de hotfix que se describe en el siguiente artículo de Microsoft Knowledge Base:
    959357 Descripción del paquete de revisiones de ISA Server 2006: 29 de octubre de 2008
    Tenga en cuenta que el primer paso no es aplicable para el servidor de Microsoft Threat Management Gateway (TMG). La revisión se incluye en el producto.
  2. Inicie el Bloc de notas.
  3. Pegue el siguiente script en el archivo de Bloc de notas.
    ' -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-' -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-'    This code is Copyright (c) 2007 Microsoft Corporation.  ''    All rights reserved.''    THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF'    ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO'    THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A'    PARTICULAR PURPOSE.''    IN NO EVENT SHALL MICROSOFT AND/OR ITS RESPECTIVE SUPPLIERS BE'    LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY'    DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,'    WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS'    ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE'    OF THIS CODE OR INFORMATION.'' -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-If Not WScript.Arguments.Named.Exists("WebListener") Then    WScript.Echo "WebListener not defined"    WScript.Quit(1)End IfSet fpcRoot = CreateObject("FPC.Root")Set fpcArray = fpcRoot.GetContainingArray()Set fpcWebListener = fpcArray.RuleElements.WebListeners(WScript.Arguments.Named("WebListener"))Set fpcWebListenerVps = fpcWebListener.VendorParametersSetsOn Error Resume NextSet fpcCookieAuthVps = fpcWebListenerVps.Item("{29022EBA-B030-4839-9CA6-DD8875BC7B47}")If Err.number = 0 Then    CookieAuthVpsExists = TrueElse    CookieAuthVpsExists = FalseEnd IfErr.ClearOn Error GoTo 0If Not CookieAuthVpsExists Then    WScript.Echo "Cookie auth VPS settings not defined, hotfix 957859 disabled"Else    On Error Resume Next    WScript.Echo "EnableLDAPPasswordExpiration: " & (fpcCookieAuthVps.Value("EnableLDAPPasswordExpiration") = True)End IfIf WScript.Arguments.Named.Exists("Value") Then    If Not CookieAuthVpsExists Then        Set fpcCookieAuthVps = fpcWebListenerVps.Add("{29022EBA-B030-4839-9CA6-DD8875BC7B47}")    End If    fpcCookieAuthVps.Value("EnableLDAPPasswordExpiration") = (StrComp(WScript.Arguments.Named("Value"), "True", 1) = 0)    fpcArray.Save    WScript.Echo "EnableLDAPPasswordExpiration set to " & (fpcCookieAuthVps.Value("EnableLDAPPasswordExpiration") = True)End If 
  4. Guarde este archivo en el Bloc de notas mediante la extensión de nombre de archivo .vbs. Por ejemplo, puede utilizar el siguiente nombre para guardar este archivo:
    EnableHotfix957859.vbs
  5. Abra un símbolo del sistema, mueva a la ubicación donde guardó el archivo EnableHotfix957859.vbs y, a continuación, escriba el comando siguiente:
    Cscript EnableHotfix957859.vbs /webListener: /Value:true < nombre de agente de escucha >
    Nota: En este comando, reemplace < nombre de agente de escucha > por el nombre real de la escucha de Web.
Importante: si desea quitar la revisión 959357, abra un símbolo del sistema, vaya a la ubicación donde guardó el archivo EnableHotfix957859.vbs y, a continuación, escriba el comando siguiente: Cscript EnableHotfix957859.vbs /webListener: < nombre de la escucha de> /Value:falseNota en este comando, reemplace <nombre de agente de escucha> por el nombre real de la escucha de Web.

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".

Referencias


Para obtener más información acerca de la terminología relativa a las actualizaciones de software de Microsoft, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684 Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft