Implementación de los Servicios de Federación de Active Directory paso a paso
En 2013 instalé mi primer entorno ADFS y quedé bastante impresionado. Siguieron varias otras implementaciones y siempre quise escribir un blog sobre ello, pero nunca sucedió. Una buena manera de empezar el nuevo año, aprox. 7 años después de implementar mi primer entorno ADFS, aquí está mi blog sobre la implementación de ADFS ?.
Y… A principios de 2022 tuve que instalar otro entorno ADFS, esta vez ejecutándose en Windows 2022. No es muy diferente a Windows 2019 o Windows 2016, pero cambié ligeramente esta publicación de blog para reflejar ADFS de Windows 2022.
No voy a discutir los pros y los contras de la sincronización de hash de contraseñas, la autenticación Pass-Through (PTA) o soluciones de terceros como Octa. Tampoco voy a discutir si se debe implementar ADFS u otra solución. Veo a muchos clientes que utilizan la sincronización de hash de contraseñas y buscan otros escenarios en los que la autenticación se realiza internamente (por todo tipo de razones). En esta publicación de blog, le mostraré paso a paso cómo implementar una infraestructura de federación basada en ADFS.
En Office 365 existen varias formas para que los usuarios se autentiquen, y esto está relacionado con el tipo de identidad que se utiliza:
- Cloud Identity: se crea en la nube, la contraseña reside en la nube y el usuario se autentica en la nube.
- Identidad sincronizada: se crea en Active Directory local y se sincroniza con la nube, incluida su contraseña (la mayoría de las veces). El usuario se autentica en la nube con una contraseña local.
- Identidad federada: se crea en Active Directory local y se sincroniza con la nube, a veces incluye su contraseña (recomendada para recuperación ante desastres). El usuario se autentica contra controladores de dominio locales mediante infraestructura de federación (ADFS).
Servicios de federación de Active Directory
En un entorno federado, cuando intenta iniciar sesión en un servicio en la nube (en Office 365, puede ser SharePoint, Teams, Exchange, OneDrive o Microsoft Portal), se presenta una solicitud de autenticación. En lugar de ingresar una contraseña que pueda autenticarse mediante un controlador de dominio de Azure AD, la solicitud se redirige a un servidor de federación local. Este servicio se denomina Servicio de token de seguridad o STS. El STS en un entorno de Active Directory se implementa mediante una instancia de ADFS que se ejecuta en un servidor Windows 2022 en la DMZ. Este es el servidor Proxy de aplicación web o WAP. Los nombres comunes para este servidor son sts.contoso.com, adfs.contoso.com o federation.contoso.com.
La solicitud de autenticación se envía mediante proxy al servidor ADFS interno, que transfiere la solicitud a un controlador de dominio de Active Directory. Una vez autenticado, el servidor ADFS utiliza el STS para devolver un token SAML que autentica al usuario en el servicio Office 365.
Para que esto funcione, necesita un servidor Azure AD Connect que sincronice las cuentas de Active Directory con Azure Active Directory. Esto no es diferente de una solución de sincronización de hash de contraseñas. Entonces necesita una solución ADFS local que maneje las solicitudes de Office 365. Lo último que necesita es un dominio en Azure AD que esté configurado como un dominio federado, donde un dominio normal esté configurado como un dominio administrado.
Esto se muestra en la siguiente figura:
Supongo que ya ha configurado su inquilino de Office 365 y que Azure AD ya está en funcionamiento y ha sincronizado identidades en su entorno de Office 365. En este punto se pueden configurar con buzones de correo, eso no es importante para el resto de esta entrada de blog.
Mi servidor WAP es un servidor Windows 2022 independiente (en la DMZ) llamado ams-sts01.exchangelabs.nl. Tiene un certificado Digicert con federation.exchangelabs.nl como nombre común. Tiene una dirección IP interna y una dirección IP externa. Puede resolver direcciones IP de servidores internos (tenga en cuenta que federation.exchangelabs.nl debe resolverse en el servidor ADFS interno) y solo se puede acceder externamente a través del puerto 443.
El servidor ADFS interno es un servidor Windows 2022 unido a un dominio con solo una dirección IP interna (por supuesto) llamada AMS-ADFS01.labs.local. Tiene el mismo certificado SSL que el servidor WAP (federation.exchangelabs.nl). El servidor WAP debería poder comunicarse con este servidor en el puerto 443.
Construyendo la infraestructura
La construcción de la infraestructura ADFS consta de varios pasos:
- Implementar el primer servidor ADFS de una granja de ADFS (la configuración del primer servidor ADFS es parte del proceso de instalación).
- Implementación de servidores adicionales en la granja ADFS (no en esta publicación de blog).
- Implementación del primer servidor WAP en la DMZ.
- Configure el primer servidor WAP.
- Implementar servidores adicionales en la DMZ (no en esta publicación de blog).
Discutiré estos pasos en las siguientes secciones.
Implementación del primer servidor de federación
El primer paso es implementar el servidor ADFS interno. Después de instalar y parchear el servidor Windows 2022, puede usar el Administrador del servidor para instalar la función del servidor ADFS. Abra el Administrador de servidores, seleccione servidor local, haga clic en Administrar y seleccione Agregar funciones y características.
En el Asistente para agregar funciones y funciones, haga clic en Instalación basada en funciones o funciones, seleccione el servidor en el que desea instalar la función ADFS y marque la casilla de verificación Servicios de federación de Active Directory. Deje las opciones de seleccionar funciones predeterminadas y finalice el asistente. Ahora se instalará la función ADFS.
Cuando la instalación haya finalizado, haga clic en configurar el servicio de federación en este servidor para iniciar la configuración de ADFS.
Especifique una cuenta con privilegios suficientes para realizar la configuración de ADFS. Normalmente, una cuenta de administrador de dominio será suficiente. Cuando sea necesario, seleccione una cuenta alternativa; de lo contrario, haga clic en Siguiente para continuar.
Puede importar el certificado SSL desde un archivo PFX, o si importó el certificado SSL durante la instalación del servidor Windows 2022, puede usar el cuadro desplegable para seleccionarlo. Ingrese un nombre de servicio de federación; este es el nombre que aparece en la página de inicio de sesión de ADFS después de la instalación, por lo que debe usar un nombre que tenga sentido.
El siguiente paso es ingresar una cuenta de servicio que utiliza el servicio ADFS. Puede crear una manualmente o utilizar una cuenta de servicio administrada por grupo. Esto tiene la ventaja de cambiar su contraseña automáticamente, por lo que recomiendo usarlo.
Lo siguiente es la selección de la base de datos donde se almacenan los datos de configuración. Puede ser una base de datos interna de Windows o una base de datos SQL. Saltaré esta captura de pantalla.
El último paso es revisar las opciones de configuración:
Cuando las opciones de revisión estén bien, puede hacer clic en Siguiente y se realizará una verificación de requisitos previos.
Cuando todos los requisitos previos estén instalados y configurados correctamente, puede hacer clic en Configurar y se iniciará la instalación y configuración del primer servidor ADFS. Después de unos minutos finaliza la instalación y configuración y se muestran los resultados:
En este momento no me preocupo por los mensajes de advertencia. Haga clic en Cerrar y reinicie el servidor según lo solicitado.
En el servidor DNS interno, cree un registro A para su servidor de federación (federation.exchangelabs.nl) y apúntelo a su servidor ADFS interno. Cree también un registro CNAME para el registro empresarial y use el FQDN de su servidor ADFS (federation.contoso.com).
Cuando se reinicia el servidor ADFS y el registro DNS está en su lugar, puede usar una URL similar a esta (https://federation.exchangelabs.nl/adfs/fs/federationserverservice.asmx) para verificar el servicio de federación en su servidor ADFS. . Mostrará una salida XML similar a la siguiente captura de pantalla:
En este punto, ha implementado con éxito su primer servidor ADFS. El siguiente paso es implementar el primer servidor WAP.
Implementación de los servidores proxy
Después de instalar y parchear el servidor de Windows 2016 (no olvide el certificado SSL), puede usar el Administrador del servidor para instalar el servidor de aplicaciones web como parte de los servicios de acceso remoto.
Nota. Una de las nuevas características de Windows 2022 es la compatibilidad con TLS 1.3. Descubrí por las malas que ADFS no funciona correctamente con TLS 1.3 y que hay que desactivarlo en el registro del servidor WAP. Para obtener más información, consulte la publicación de mi blog en https://jaapwesselius.com/2022/01/19/adfs-web-application-proxy-configuration-wizard-fails-with-trust-certificate-error/.
En el Asistente para agregar funciones y funciones, haga clic en Instalación basada en funciones o funciones y seleccione el servidor en el que desea instalar el proxy de aplicación web. rol y marque la casilla de acceso remoto.
Deje las opciones de seleccionar características predeterminadas y, en la ventana Servicios de rol, marque la casilla de verificación Proxy de aplicación web. En la ventana emergente de funciones adicionales, haga clic en Agregar funciones y continúe con el asistente para instalar el servidor Proxy de aplicación web.
Cuando el software del servidor WAP esté instalado, haga clic en Abrir el asistente del proxy de aplicación web (en notificaciones en el Administrador del servidor).
Para el nombre del servicio de federación, use el nombre que planea usar (es decir, federation.exchangelabs.nl) e ingrese las credenciales de un administrador local en el servidor ADFS que se instaló en la sección anterior.
Seleccione el certificado SSL que se instaló en el servidor de Windows 2022 durante la instalación (omitiré esta captura de pantalla aquí) y se mostrará la ventana de confirmación.
Haga clic en Configurar para iniciar la configuración del servidor Proxy de aplicación web y después de unos momentos se mostrará la ventana Resultados.
Para verificar el estado de operaciones del servidor WAP después de la instalación, abra la Consola de administración de acceso remoto (en Herramientas administrativas), haga clic en el servidor y verá dos casillas de verificación verdes para indicar que el servidor está en funcionamiento:
También puedes consultar el visor de eventos. En Funciones del servidor | Servicios de federación de Active Directory debería poder encontrar EventID 245, lo que indica que el servidor WAP recuperó exitosamente sus ajustes de configuración del servidor ADFS interno:
Una verificación externa rápida puede ser recuperar los metadatos de la federación de su servidor ADFS. Desde un cliente externo, utilice una URL similar a esta (https://federation.exchangelabs.nl/federationmetadata/2007-06/federationmetadata.xml) para recuperar los metadatos de la federación. Debería mostrar una salida XML similar a la siguiente:
Otra prueba es utilizar la página de inicio de sesión iniciado por Idp, ubicada en https://federation.exchangelabs.nl/adfs/ls/idpinitiatedsignon.htm. Hay un problema aquí: esto está habilitado de forma predeterminada en Windows 2012 R2, pero no en Windows 2016. Para habilitarlo, ejecute el siguiente comando de PowerShell en su servidor ADFS (interno):
[PS] C:\> Set-AdfsProperties -EnableIdpInitiatedSignonPage $True
Ahora, cuando navegue a la página IdpInitiatedSignon, verá una página HTML estática con un botón Iniciar sesión. Cuando haces clic en él, puedes usar tus credenciales para iniciar sesión en tu entorno y verás algo como la siguiente captura de pantalla:
Ahora sabemos que el entorno ADFS está funcionando correctamente y podemos continuar con la configuración de Azure AD y Office 365.
En este momento, hemos instalado y configurado una infraestructura ADFS simple en el entorno local de Windows existente, capaz de manejar la solicitud de autenticación de Office 365. Hablaré de la configuración de Office 365 (y, por tanto, de Azure Active Directory) en el próximo blog.














