Configurar la autenticación multifactor de Microsoft Entra como proveedor de autenticación en AD FS
La información de este artículo se aplica a Windows 2016 y versiones posteriores.
Si la organización está federada con Microsoft Entra ID, puede usar la autenticación multifactor de Microsoft Entra para asegurar los recursos de Servicios de federación de Active Directory (AD FS), tanto en el entorno local como en la nube. La autenticación multifactor de Microsoft Entra le permite eliminar las contraseñas y proporcionar una forma más segura de autenticarse. Con AD FS, puede configurar la autenticación multifactor Microsoft Entra para la autenticación primaria o usarla como proveedor de autenticación adicional.
A diferencia de AD FS en Windows Server 2012 R2, el adaptador de autenticación multifactor AD FS 2016 Microsoft Entra se integra directamente con Microsoft Entra ID y no requiere un Servidor Multi-Factor Authentication Azure en en el entorno local. El adaptador de autenticación multifactor de Microsoft Entra está integrado en Windows Server 2016. No se requiere ninguna otra instalación.
Registro de usuarios para la autenticación multifactor de Microsoft Entra mediante AD FS
AD FS no admite el registro de la "acreditación" insertada de la información de comprobación de seguridad de la autenticación multifactor de Microsoft Entra, como a través de un número de teléfono o la aplicación móvil. Si no hay compatibilidad con la prueba insertada, los usuarios deben visitar https://account.activedirectory.windowsazure.com/Proofup.aspx para acreditarse antes de usar la autenticación multifactor de Microsoft Entra para autenticarse en aplicaciones de AD FS. Cuando un usuario que aún no se ha acreditado en Microsoft Entra ID intenta autenticarse con la autenticación multifactor de Microsoft Entra en AD FS, recibe un error de AD FS. Como administrador de AD FS, puede personalizar esta experiencia de error para guiar al usuario a la página de revisión. Puede crear este mensaje mediante la personalización de onload.js para detectar la cadena de mensajes de error en la página de AD FS. A continuación, puede mostrar un nuevo mensaje para dirigir al usuario a https://aka.ms/mfasetup para que pueda volver a intentar la autenticación. Para obtener más información, consulte Personalización de la página web de AD FS para guiar a los usuarios para registrar métodos de comprobación de MFA.
Nota:
Antes de esta actualización, los usuarios tenían que autenticarse mediante la autenticación multifactor de Microsoft Entra para el registro visitando https://account.activedirectory.windowsazure.com/Proofup.aspx. Con esta actualización, los usuarios de AD FS que aún no hayan registrado la información de comprobación de la autenticación multifactor de Microsoft Entra pueden acceder a la página de acreditación de Azure mediante el acceso directo https://aka.ms/mfasetup usando únicamente la autenticación principal, como la autenticación integrada de Windows o el nombre de usuario y la contraseña a través de las páginas web de AD FS. Si el usuario no tiene ningún método de verificación configurado, Microsoft Entra realiza el registro en línea. El usuario ve el mensaje "El administrador requiere que configure esta cuenta para realizar una comprobación de seguridad adicional". A continuación, el usuario selecciona Configurarlo ahora. A los usuarios que ya tengan configurado al menos un método de comprobación se les pedirá que proporcionen autenticación multifactor (MFA) al visitar la página de revisión.
Topologías de implementación recomendadas
En esta sección se trata el uso de la autenticación multifactor de Microsoft Entra como método de autenticación principal con AD FS y autenticación multifactor de Microsoft Entra para Office 365.
Autenticación multifactor de Microsoft Entra como autenticación principal
Hay un par de excelentes razones para usar la autenticación multifactor de Microsoft Entra como autenticación principal con AD FS:
- Esto evita contraseñas para el inicio de sesión en Microsoft Entra ID, Office 365 y las demás aplicaciones de AD FS.
- Protege el inicio de sesión basado en contraseña requiriendo otro factor, como un código de verificación antes de la contraseña.
También puede usar la autenticación multifactor de Microsoft Entra como método de autenticación principal y el acceso condicional de Microsoft Entra, incluida la MFA verdadera mediante la solicitud de factores adicionales. Para usar la autenticación multifactor de Microsoft Entra local, puede configurar el valor de dominio de Microsoft Entra estableciendo SupportsMfa
en $true
. En esta configuración, Microsoft Entra ID puede solicitar a AD FS que realice una autenticación adicional o una "verdadera MFA" para aquellos escenarios de acceso condicional que lo requieran.
Se debe solicitar a los usuarios de AD FS que no estén registrados (aún no se ha configurado la información de comprobación de MFA) que configuren la información de comprobación. Para solicitar usuarios no registrados, puede usar una página de error de AD FS personalizada para dirigir a los usuarios a https://aka.ms/mfasetup y configurar la información de comprobación. Después de la configuración, el usuario puede volver a intentar iniciar sesión en AD FS.
La autenticación multifactor de Microsoft Entra como autenticación principal se considera un factor único. Después de la configuración inicial, los usuarios necesitan proporcionar otro factor para administrar o actualizar su información de verificación en Microsoft Entra ID o para acceder a otros recursos que requieren la MFA.
Nota:
Con AD FS 2019, es necesario realizar una modificación en el tipo de notificación de anclaje para la confianza del proveedor de notificaciones de Active Directory y modificarlo desde windowsaccountname
al nombre principal de usuario (UPN). Ejecute el siguiente cmdlet de PowerShell. Esto no afecta al funcionamiento interno de la granja de AD FS. Es posible que a algunos usuarios se les vuelvan a solicitar las credenciales después de que se realice este cambio. Después de iniciar sesión de nuevo, los usuarios finales no verán ninguna diferencia.
Set-AdfsClaimsProviderTrust -AnchorClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" -TargetName "Active Directory"
La autenticación multifactor de Microsoft Entra como autenticación adicional para Office 365
El adaptador de autenticación multifactor de Microsoft Entra para AD FS permite a los usuarios realizar la MFA en AD FS. Para proteger un recurso de Microsoft Entra, debe requerir la MFA a través de una directiva de acceso condicional. También debe establecer el valor del dominio SupportsMfa
en $true
y emitir la notificación multipleauthn cuando un usuario realiza correctamente la comprobación en dos pasos.
Como se ha descrito, los usuarios de AD FS que no estén registrados (aún no se ha configurado la información de comprobación de MFA) para configurar la información de comprobación. Para solicitar usuarios no registrados, puede usar una página de error de AD FS personalizada para dirigir a los usuarios a https://aka.ms/mfasetup y configurar la información de comprobación. Después de la configuración, el usuario puede volver a intentar iniciar sesión en AD FS.
Requisitos previos
Los siguientes requisitos previos son necesarios si se usa la autenticación multifactor de Microsoft Entra para la autenticación con AD FS:
Nota:
Microsoft Entra ID y la autenticación multifactor de Microsoft Entra se incluyen en Microsoft Entra ID P1 o P2 y Enterprise Mobility Suite (EMS). Si tiene cualquiera de estas aplicaciones instaladas, no necesita suscripciones individuales.
- Un entorno local de AD FS de Windows Server 2016.
- El servidor necesita poder comunicarse con las siguientes direcciones URL a través del puerto 443.
https://adnotifications.windowsazure.com
https://login.microsoftonline.com
- El servidor necesita poder comunicarse con las siguientes direcciones URL a través del puerto 443.
- El entorno local debe estar federado con Microsoft Entra ID.
- Módulo Microsoft Azure Active Directory para Windows PowerShell.
- Permisos de administrador global en la instancia de Microsoft Entra ID para configurarla mediante PowerShell de Azure AD.
- Credenciales administrativas de empresa para configurar la granja de AD FS para la autenticación multifactor de Microsoft Entra.
Nota:
Los módulos de PowerShell de Azure AD y MSOnline están en desuso a partir del 30 de marzo de 2024. Para obtener más información, lee la actualización de desuso. Desde esta fecha, el soporte de estos módulos se limita a la asistencia de migración al SDK de PowerShell de Microsoft Graph y a las correcciones de seguridad. Los módulos en desuso seguirán funcionando hasta el 30 de marzo de 2025.
Se recomienda migrar a PowerShell de Microsoft Graph para interactuar con Microsoft Entra ID (anteriormente Azure AD). Para preguntas comunes sobre la migración, consulta las Preguntas más frecuentes sobre migración. Nota: Las versiones 1.0.x de MSOnline podrían experimentar interrupciones después del 30 de junio de 2024.
Configuración de los servidores AD FS
Para completar la configuración de la autenticación multifactor de Microsoft Entra para AD FS, debe configurar cada servidor de AD FS siguiendo los pasos que se describen aquí.
Nota:
Asegúrese de que estos pasos se realizan en todos los servidores de AD FS de la granja. Si tiene varios servidores de AD FS en la granja, puede realizar la configuración necesaria de forma remota mediante PowerShell de Azure AD.
Paso 1: Generación de un certificado para la autenticación multifactor de Microsoft Entra en cada servidor de AD FS
Lo primero que debe hacer es usar el comando de PowerShell New-AdfsAzureMfaTenantCertificate
para generar un certificado para que la autenticación multifactor de Microsoft Entra lo use. Después de generar el certificado, búsquelo en el almacén de certificados de las máquinas locales. El certificado se marca con un nombre de firmante que contiene el TenantID del directorio de Microsoft Entra.
El identificador de inquilino es el nombre de su directorio en Microsoft Entra ID. Use el siguiente cmdlet de PowerShell para generar el nuevo certificado:
$certbase64 = New-AdfsAzureMfaTenantCertificate -TenantID <tenantID>
Paso 2: Incorporación de las nuevas credenciales a la entidad de servicio de cliente de autenticación multifactor.
Para permitir que los servidores AD FS se comuniquen con el cliente de autenticación multifactor Azure, debe agregar las credenciales al principal de servicio para el cliente de autenticación multifactor Azure. Los certificados generados al usar el cmdlet New-AdfsAzureMFaTenantCertificate sirven como estas credenciales. Abra PowerShell y realice los siguientes pasos para agregar las nuevas credenciales a la entidad de servicio de cliente de la autenticación multifactor de Azure.
Paso 3: establecimiento del certificado como la nueva credencial en el cliente de autenticación multifactor de Azure
Nota:
Para completar este paso, debe conectarse a la instancia de Microsoft Entra ID con Microsoft Graph PowerShell mediante Connect-MgGraph
. En estos pasos se supone que ya se ha conectado a través de PowerShell.
Connect-MgGraph -Scopes 'Application.ReadWrite.All'
$servicePrincipalId = (Get-MgServicePrincipal -Filter "appid eq '981f26a1-7f43-403b-a875-f8b09b8cd720'").Id
$keyCredentials = (Get-MgServicePrincipal -Filter "appid eq '981f26a1-7f43-403b-a875-f8b09b8cd720'").KeyCredentials
$certX509 = [System.Security.Cryptography.X509Certificates.X509Certificate2]([System.Convert]::FromBase64String($certBase64))
$newKey = @(@{
CustomKeyIdentifier = $null
DisplayName = $certX509.Subject
EndDateTime = $null
Key = $certX509.GetRawCertData()
KeyId = [guid]::NewGuid()
StartDateTime = $null
Type = "AsymmetricX509Cert"
Usage = "Verify"
AdditionalProperties = $null
})
$keyCredentials += $newKey
Update-MgServicePrincipal -ServicePrincipalId $servicePrincipalId -KeyCredentials $keyCredentials
Importante
Este comando debe ejecutarse en todos los servidores de AD FS de la granja. La autenticación multifactor de Microsoft Entra no funcionará en aquellos servidores que no tengan el certificado establecido como la nueva credencial en el cliente de la autenticación multifactor.
Nota:
981f26a1-7f43-403b-a875-f8b09b8cd720 es el GUID del cliente de autenticación multifactor.
Configuración de la granja de AD FS
Cuando haya completado los pasos de la sección anterior en todos los servidores de AD FS, establezca la información del inquilino de Azure mediante el cmdlet Set-AdfsAzureMfaTenant. Este cmdlet solo se debe ejecutar solo una vez para una granja de AD FS.
Abra PowerShell y escriba su propio tenantId con el cmdlet Set-AdfsAzureMfaTenant
. Para los clientes que usan la nube de Microsoft Azure Government, agregue el parámetro -Environment USGov
:
Nota
Debe reiniciar el servicio AD FS en cada servidor de la granja antes de que estos cambios entren en vigor. Para reducir el impacto, retire cada servidor de AD FS de la rotación de NLB de uno en uno y espere a que se purguen todas las conexiones.
Set-AdfsAzureMfaTenant -TenantId <tenant ID> -ClientId 981f26a1-7f43-403b-a875-f8b09b8cd720
Windows Server sin el Service Pack más reciente no admite el parámetro -Environment
para el cmdlet Set-AdfsAzureMfaTenant
. Si usa la nube de Azure Government y los pasos anteriores no pudieron configurar el inquilino de Azure debido a que falta el parámetro -Environment
, complete los pasos siguientes para crear manualmente las entradas de registro. Omita estos pasos si el cmdlet anterior registró correctamente la información del inquilino o si no está en la nube de Azure Government:
Abra el Editor del Registro en el servidor de AD FS.
Navegue a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ADFS. Cree los siguientes valores de clave de registro:
Clave del Registro Value SasUrl https://adnotifications.windowsazure.us/StrongAuthenticationService.svc/Connector
StsUrl https://login.microsoftonline.us
ResourceUri https://adnotifications.windowsazure.us/StrongAuthenticationService.svc/Connector
Reinicie el servicio AD FS en cada servidor de la granja antes de que estos cambios se hagan entren en vigor. Para reducir las consecuencias sobre los sistemas, retire cada servidor de AD FS de la rotación de NLB de uno en uno y espere a que se purguen todas las conexiones.
Después de este paso, verá que la autenticación multifactor de Microsoft Entra está disponible como método de autenticación principal para el uso de la intranet y la extranet.
Si quiere usar la autenticación multifactor de Microsoft Entra como método de autenticación secundario, en el cuadro Editar métodos de autenticación, seleccione la pestaña Multifactor (la pestaña Adicional en AD FS 2019) y asegúrese de que esté habilitada. Si no lo hace, es posible que reciba mensajes de error, como "No se ha encontrado ningún método de autenticación segura válido". Póngase en contacto con el administrador para configurar y habilitar un proveedor de autenticación seguro adecuado".
Renovación y administración de certificados de autenticación multifactor AD FS Microsoft Entra
Las instrucciones siguientes están diseñadas para ayudarle a administrar los certificados de autenticación multifactor de Microsoft Entra en servidores de AD FS.
De manera predeterminada, cuando AD FS se configura con autenticación multifactor de Microsoft Entra, los certificados que se generan mediante el cmdlet de PowerShell New-AdfsAzureMfaTenantCertificate
son válidos durante dos años. Para determinar la proximidad a la expiración de los certificados y, posteriormente, renovar e instalar certificados nuevos, use el siguiente procedimiento.
Evalúe la fecha de expiración del certificado de autenticación multifactor de Microsoft Entra para AD FS.
En cada servidor de AD FS, en el equipo local Mi almacén, hay un certificado autofirmado con "Autenticación multifactor de Microsoft Entra para Microsoft AD FS" en las áreas de emisor y firmante. Este certificado es el certificado de autenticación multifactor de Microsoft Entra. Compruebe el período de validez de este certificado en cada servidor de AD FS para determinar la fecha de expiración.
Cree un nuevo certificado de autenticación multifactor de Microsoft Entra para AD FS en cada servidor de AD FS.
Si el período de validez de los certificados está próximo a finalizar, inicie el proceso de renovación mediante la generación de un certificado de de autenticación multifactor de Microsoft Entra en cada servidor de AD FS. En PowerShell, genere un nuevo certificado en cada servidor de AD FS mediante el siguiente cmdlet:
Precaución
Si el certificado ya ha expirado, no agregue el parámetro
-Renew $true
al comando siguiente. En este escenario, el certificado expirado existente se reemplaza por uno nuevo en lugar de dejarse en su lugar y crear un certificado adicional.$newcert = New-AdfsAzureMfaTenantCertificate -TenantId <tenant id such as contoso.onmicrosoft.com> -Renew $true
Si el certificado aún no ha expirado, el comando genera un nuevo certificado que es válido desde dos días después del día actual a dos años más dos días en el futuro. Las operaciones de la autenticación multifactor de Microsoft Entra y AD FS no se ven afectadas al ejecutar el cmdlet ni al renovar el certificado. El retraso de 2 días es intencionado y proporciona el tiempo necesario para seguir los pasos siguientes para configurar el nuevo certificado en el inquilino antes de que AD FS empiece a usarlo para la autenticación multifactor de Microsoft Entra.
Configure cada nuevo certificado de autenticación multifactor de Microsoft Entra de AD FS en el inquilino de Microsoft Entra.
Nota:
Para completar este paso, debe conectarse a la instancia de Microsoft Entra ID con Microsoft Graph PowerShell mediante
Connect-MgGraph
. En estos pasos se supone que ya se ha conectado a través de PowerShell.Connect-MgGraph -Scopes 'Application.ReadWrite.All' $servicePrincipalId = (Get-MgServicePrincipal -Filter "appid eq '981f26a1-7f43-403b-a875-f8b09b8cd720'").Id $keyCredentials = (Get-MgServicePrincipal -Filter "appid eq '981f26a1-7f43-403b-a875-f8b09b8cd720'").KeyCredentials $certX509 = [System.Security.Cryptography.X509Certificates.X509Certificate2]([System.Convert]::FromBase64String($newcert)) $newKey = @(@{ CustomKeyIdentifier = $null DisplayName = $certX509.Subject EndDateTime = $null Key = $certX509.GetRawCertData() KeyId = [guid]::NewGuid() StartDateTime = $null Type = "AsymmetricX509Cert" Usage = "Verify" AdditionalProperties = $null }) $keyCredentials += $newKey Update-MgServicePrincipal -ServicePrincipalId $servicePrincipalId -KeyCredentials $keyCredentials
Si el certificado anterior ha expirado, reinicie el servicio AD FS para recoger el nuevo certificado. No es necesario reiniciar el servicio de AD FS si ha renovado un certificado antes de que expire.
Compruebe que se usan los nuevos certificados para la autenticación multifactor de Microsoft Entra.
Cuando los nuevos certificados sean válidos, AD FS los recogerá y usará los certificados respectivos para la autenticación multifactor de Microsoft Entra en un plazo que oscila entre unas horas y un día. Cuando AD FS usa los nuevos certificados, en cada servidor verá un evento registrado en el registro de eventos de administración de AD FS con la siguiente información:
Log Name: AD FS/Admin
Source: AD FS
Date: 2/27/2018 7:33:31 PM
Event ID: 547
Task Category: None
Level: Information
Keywords: AD FS
User: DOMAIN\adfssvc
Computer: ADFS.domain.contoso.com
Description:
The tenant certificate for Azure MFA has been renewed.
TenantId: contoso.onmicrosoft.com.
Old thumbprint: 7CC103D60967318A11D8C51C289EF85214D9FC63.
Old expiration date: 9/15/2019 9:43:17 PM.
New thumbprint: 8110D7415744C9D4D5A4A6309499F7B48B5F3CCF.
New expiration date: 2/27/2020 2:16:07 AM.
Personalización de la página web de AD FS para guiar a los usuarios para registrar métodos de comprobación de MFA
Use los ejemplos siguientes para personalizar las páginas web de AD FS para los usuarios que aún no se han acreditado (no han configurado la información de comprobación de MFA).
Buscar el error
En primer lugar, AD FS devuelve un par de mensajes de error diferentes cuando el usuario carece de información de comprobación. Si la autenticación multifactor de Microsoft Entra se usa como autenticación principal, el usuario no acreditado ve una página de error de AD FS que contiene los siguientes mensajes:
<div id="errorArea">
<div id="openingMessage" class="groupMargin bigText">
An error occurred
</div>
<div id="errorMessage" class="groupMargin">
Authentication attempt failed. Select a different sign in option or close the web browser and sign in again. Contact your administrator for more information.
</div>
Cuando se intenta realizar una autenticación adicional de Microsoft Entra ID, el usuario sin acreditación ve una página de error de AD FS que contiene los siguientes mensajes:
<div id='mfaGreetingDescription' class='groupMargin'>For security reasons, we require additional information to verify your account (mahesh@jenfield.net)</div>
<div id="errorArea">
<div id="openingMessage" class="groupMargin bigText">
An error occurred
</div>
<div id="errorMessage" class="groupMargin">
The selected authentication method is not available for 'username@contoso.com'. Choose another authentication method or contact your system administrator for details.
</div>
Detección del error y actualización del texto de la página
Para detectar el error y mostrar la guía personalizada del usuario, basta con anexar JavaScript al final del archivo onload.js
que forma parte del tema web de AD FS. Esto le permite hacer lo siguiente:
- Buscar las cadenas de error de identificación.
- Proporcionar contenido web personalizado.
Nota:
Para obtener instrucciones generales sobre cómo personalizar el archivo onload.js, consulte Personalización avanzada de páginas de inicio de sesión de AD FS.
En los pasos siguientes se muestra un ejemplo sencillo:
Abra Windows PowerShell en el servidor de AD FS principal y cree un tema web de AD FS nuevo mediante la ejecución del siguiente comando.
New-AdfsWebTheme –Name ProofUp –SourceName default
Cree la carpeta y exporte el tema web de AD FS predeterminado.
New-Item -Path 'C:\Theme' -ItemType Directory;Export-AdfsWebTheme –Name default –DirectoryPath C:\Theme
Abra el archivo C:\Theme\script\onload.js en un editor de texto.
Anexe el siguiente código al final del archivo onload.js:
//Custom Code //Customize MFA exception //Begin var domain_hint = "<YOUR_DOMAIN_NAME_HERE>"; var mfaSecondFactorErr = "The selected authentication method is not available for"; var mfaProofupMessage = "You will be automatically redirected in 5 seconds to set up your account for additional security verification. After you've completed the setup, please return to the application you are attempting to access.<br><br>If you are not redirected automatically, please click <a href='{0}'>here</a>." var authArea = document.getElementById("authArea"); if (authArea) { var errorMessage = document.getElementById("errorMessage"); if (errorMessage) { if (errorMessage.innerHTML.indexOf(mfaSecondFactorErr) >= 0) { //Hide the error message var openingMessage = document.getElementById("openingMessage"); if (openingMessage) { openingMessage.style.display = 'none' } var errorDetailsLink = document.getElementById("errorDetailsLink"); if (errorDetailsLink) { errorDetailsLink.style.display = 'none' } //Provide a message and redirect to Azure AD MFA Registration Url var mfaRegisterUrl = "https://account.activedirectory.windowsazure.com/proofup.aspx?proofup=1&whr=" + domain_hint; errorMessage.innerHTML = "<br>" + mfaProofupMessage.replace("{0}", mfaRegisterUrl); window.setTimeout(function () { window.location.href = mfaRegisterUrl; }, 5000); } } } //End Customize MFA Exception //End Custom Code
Importante
Debe cambiar "<YOUR_DOMAIN_NAME_HERE>" por su nombre de dominio. Por ejemplo:
var domain_hint = "contoso.com";
.Guarde el archivo onload.js.
Importe el archivo onload.js en el tema personalizado escribiendo el siguiente comando de Windows PowerShell:
Set-AdfsWebTheme -TargetName ProofUp -AdditionalFileResource @{Uri='/adfs/portal/script/onload.js';path="c:\theme\script\onload.js"}
Aplique el tema web personalizado de AD FS escribiendo el siguiente comando de Windows PowerShell:
Set-AdfsWebConfig -ActiveThemeName "ProofUp"