Compartir a través de


El servicio AD FS 2.0 no se inicia

En este artículo se proporcionan pasos para solucionar problemas de configuración y inicio del servicio ADFS.

Número de KB original: 3044973

Resumen

La mayoría de los problemas de ADFS 2.0 pertenecen a una de las siguientes categorías principales. Este artículo contiene las instrucciones paso a paso para solucionar problemas de servicio de ADFS.

Síntomas

  • El servicio AD FS no se inicia.

  • El servicio AD FS se inicia, pero se registran los siguientes errores en el registro de administrador de AD FS después de reiniciar:

    • Identificador de evento: 220
      La configuración del servicio de federación no se pudo cargar correctamente desde la base de datos de configuración de AD FS.
    • Identificador de evento: 352
      Error en una operación de SQL Server en la base de datos de configuración de AD FS con cadena de conexión %1.
    • Identificador de evento: 102
      Se produjo un error al habilitar los puntos de conexión del servicio de federación.

Solución

Para resolver este problema, siga estos pasos en el orden indicado. Estos pasos le ayudarán a determinar la causa del problema. Asegúrese de comprobar si el problema se resuelve después de cada paso.

Paso 1: Comprobar si el servicio de AD FS agota el tiempo de espera durante el inicio

Si el servicio de AD FS agota el tiempo de espera cuando intenta iniciarse, recibirá el siguiente mensaje de error:

El servicio no respondió a tiempo a la solicitud de inicio o de control.

Corrección de tiempos de servicio de AD FS

Cambie los datos de valor del valor servicesPipeTimeout DWORD a 60000 en la clave control . Para ello, siga estos pasos:

  1. En el servidor de AD FS, abra el Editor del Registro.

  2. Busque y, a continuación, haga clic en la siguiente clave del Registro:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet

  3. Haga clic en la subclave Control .

  4. Haga clic con el botón derecho en el valor DWORD ServicesPipeTimeout y, a continuación, haga clic en Modificar. Si no hay ningún valor servicesPipeTimeout , créelo.

  5. Haga clic en Decimal.

  6. Escriba 60000 y, a continuación, haga clic en Aceptar. Para obtener más información sobre este error de tiempo de espera, vea AD FS 2.0: The Service Fails to Start: "The service did not respond to the start or control request in a timely fashion".

Paso 2: Comprobar si la base de datos de configuración de AD FS se está ejecutando

  • Si usa Windows Internal Database (WID) como base de datos de configuración de AD FS, abra services.msc y compruebe si se está ejecutando el servicio Windows Internal Database.

  • Si usa el servicio SQL Server como base de datos de configuración de AD FS, abra services.msc. Compruebe si el servicio SQL Server se está ejecutando. También puede crear un archivo Test.udl y rellenar el cadena de conexión para probar la conectividad con Microsoft SQL Server.

Solución

Abra Services.msc y, a continuación, inicie el servicio Windows Internal Database o el servicio SQL Server.

Para un servidor de AD FS que use SQL Server como base de datos de configuración, también debe comprobar dos opciones de seguridad, como se indica a continuación:

  1. Conéctese al servidor que ejecuta SQL Server mediante SQL Management Studio.

  2. Compruebe si la identidad del servicio de Windows de AD FS 2.0 existe en la consola de SQL Server en el >nodo Inicios de sesión de seguridad. Si no aparece, agréguela.

  3. Compruebe si la identidad del servicio de Windows de AD FS 2.0 existe en Bases de datos>AdfsConfiguration>Security>Users y que posee el esquema IdentityServerPolicy. Si no aparece, agréguela.

Paso 3: Comprobación de la cuenta de servicio de AD FS

  1. Compruebe si el servicio AD FS y el grupo de aplicaciones de IIS se ejecutan en una cuenta de servicio válida. Si cambió la contraseña de la cuenta de servicio, asegúrese de que la nueva contraseña se actualiza en el servicio AD FS y en el grupo de aplicaciones de IIS.

    1. Abra Services.msc, haga clic con el botón derecho en AD FS 2.0 Service (Servicio de AD FS 2.0) y, a continuación, haga clic en Propiedades. En la pestaña Iniciar sesión , asegúrese de que la nueva cuenta de servicio de AD FS aparece en el cuadro Esta cuenta .

    2. Abra el Administrador de IIS, vaya a Grupos de aplicaciones, haga clic con el botón derecho en ADFSAppPool y, a continuación, haga clic en Configuración avanzada. En la sección Modelo de proceso, asegúrese de que la nueva cuenta de servicio de AD FS aparece como Identidad.

  2. Compruebe si la cuenta de servicio tiene permisos suficientes en la base de datos de AD FS. Debe preocuparse por el permiso si ha cambiado la cuenta de servicio en la que se ejecuta ADFS.

    Si usa SQL Server como servidor de configuración, siga estos pasos para restablecer el permiso para la cuenta de servicio:

    1. En el símbolo del sistema, ejecute el siguiente comando:

      fsconfig.exe /CreateSQLScripts /ServiceAccount <ADFS service account> /ScriptDestinationFolder <path to create scripts>
      
    2. Copie el script que creó en el servidor que ejecuta SQL Server.

    3. Ejecute el script en el servidor.

  3. Compruebe si la cuenta de servicio tiene permisos de lectura y modificación en el contenedor de uso compartido de certificados (CN=<GUID,CN>=ADFS,CN=Microsoft,CN=Datos de programa,DC=<Dominio,DC>=<COM>).

    1. En un controlador de dominio, abra ADSIEDIT.msc.

    2. Conéctese al contexto de nomenclatura predeterminado.

    3. Vaya a CN=<GUID,CN>=ADFS,CN=Microsoft,CN=Program Data,DC=<Domain,DC>=<COM>. Un ejemplo de GUID es 62b8a5cb-5d16-4b13-b616-06caea706ada.

    4. Haga clic con el botón derecho en el GUID y, a continuación, haga clic en Propiedades. Si hay más de un GUID, siga estos pasos para buscar el GUID del servidor que ejecuta el servicio AD FS.

      1. En el servidor que ejecuta el servicio AD FS, inicie Windows PowerShell.

      2. Ejecute los comandos siguientes:

        Add-PSSnapin microsoft.adfs.powershell
        
        Get-ADFSProperties
        
      3. El GUID aparece en CertificateShareingContainer.

  4. Compruebe si la nueva cuenta de servicio tiene el permiso Leer en la clave privada del certificado de comunicación del servicio de AD FS.

    1. Cree una consola de administración de Microsoft (MMC) mediante el complemento Certificados que tiene como destino el almacén de certificados del equipo local.
    2. Expanda MMC y, a continuación, seleccione Administrar claves privadas.
    3. En la pestaña Seguridad , agregue la cuenta de servicio de AD FS y conceda el permiso De lectura a esta cuenta.
  5. Compruebe si el host de nombre de entidad de seguridad de servicio (SPN) de AD FS/ADFSServiceName se agregó en la cuenta de servicio y se quitó de la cuenta anterior (en caso de que la cuenta de servicio cambiara).

    1. Haga clic con el botón derecho en Símbolo del sistema y, después, haga clic en Ejecutar como administrador.
    2. Escriba SetSPN -f -q host/ <Federation service name> y presione Entrar.

    En este comando, <el nombre> del servicio de federación representa el nombre de servicio completo (FQDN) del punto de conexión de servicio de AD FS. Puede encontrar el nombre del servicio en el cuadro de diálogo Propiedades del servicio de federación:

    Captura de pantalla del servicio de federación ventana Propiedades que muestra el nombre del servicio de federación.

    Para agregar o quitar el SPN de la cuenta, siga estos pasos:

    1. En un controlador de dominio, abra ADSIEDIT.msc.

    2. Conéctese al contexto de nomenclatura predeterminado.

    3. Expanda a CN=Users,CN=Microsoft,CN=Program Data,DC=<Domain,DC>=<COM>.

    4. Busque la cuenta de servicio. Haga clic con el botón derecho en la cuenta de servicio y, a continuación, haga clic en Propiedades.

    5. Busque el atributo servicePrincipalName y haga clic en Editar.

    6. Agregue o quite el SPN del servicio AD FS. Este es un ejemplo de un SPN de servicio de AD FS:

      HOST/newadfs.contoso.com

  6. Si cambia la contraseña de la cuenta de servicio, asegúrese de que la nueva contraseña se actualiza en el servicio AD FS y en appPool de IIS AD FS.

  7. Compruebe si la cuenta de servicio de AD FS está en el grupo de administración local. Para evitar posibles problemas, conceda derechos de administrador local a la cuenta de servicio de AD FS.

Paso 4: Actualización del servicio AD FS a la versión más reciente

Compruebe si están instaladas las siguientes actualizaciones. Si no lo son, instálelos.

Paso 5: Corregir un error intermitente del servicio AD FS

Si se produce un error intermitente del servicio AD FS, compruebe si se inició el problema después de aplicar la actualización de seguridad 2894844. En tal situación, AD FS produce un error y genera un número de referencia cuando se accede desde una red externa o a través de una comunicación basada en formularios.

Si el problema se inició después de aplicar la actualización de seguridad 2894844, es posible que esté experimentando el problema que se describe en la causa 1: la aplicación web se ejecuta en una granja de servidores (entorno de varios servidores) en Resolución de errores del código de autenticación de mensajes de estado de vista (MAC).

Para corregir este problema, establezca la misma clave de máquina estática en todos los servidores de AD FS y el proxy de AD FS:

  1. En el Administrador de IIS, busque y abra la carpeta adfs/ls.
  2. En la sección ASP.NET, haga clic en Clave de máquina.
  3. Desactive las casillas Generar automáticamente en tiempo de ejecución y Generar una clave única para cada aplicación para la clave de validación y la clave de descifrado .
  4. Haga clic en Generar claves.
  5. Haga clic en Aplicar.
  6. Copie las claves de validación y descifrado del primer servidor de AD FS y, a continuación, pegue estas claves en todos los demás servidores.

Paso 6: Asegúrese de que la comunicación del servicio ADFS, la firma de tokens y los certificados de descifrado de tokens estén configurados correctamente.

Para obtener más información, vea Error de certificado de ADFS 2.0: error durante un intento de compilar la cadena de certificados.