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.

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 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.

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.

Screenshot of the certificate store of a local machine showing the generated certificate.

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>

Screenshot of the PowerShell window showing the output from New-AdfsAzureMfaTenantCertificate.

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

Screenshot of the PowerShell window showing the warning message received after running the Set-AdfsAzureMfaTenant cmdlet.

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:

  1. Abra el Editor del Registro en el servidor de AD FS.

  2. 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
  3. 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.

Screenshot of the Edit Authentication Methods dialog box showing the Microsoft Entra multifactor authentication option highlighted in both the Extranet and Intranet sections.

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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 &#39;username@contoso.com&#39;. 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:

  1. 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
    
  2. 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
    
  3. Abra el archivo C:\Theme\script\onload.js en un editor de texto.

  4. 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";.

  5. Guarde el archivo onload.js.

  6. 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"}
    
  7. Aplique el tema web personalizado de AD FS escribiendo el siguiente comando de Windows PowerShell:

    Set-AdfsWebConfig -ActiveThemeName "ProofUp"