Configuración de Azure AD Multi-Factor Authentication como proveedor de autenticación mediante AD FS

La información de este artículo se aplica a Windows 2016 y versiones posteriores.

Si la organización está federada con Azure AD, puede usar la autenticación multifactor de Azure AD para proteger los recursos de los Servicios de federación de Active Directory (AD FS), tanto en entornos locales como en la nube. Azure AD Multi-Factor Authentication permite eliminar las contraseñas y proporciona una manera más segura de autenticarse. Con AD FS, puede configurar la autenticación multifactor de Azure AD para la autenticación principal, o bien usarlo como un proveedor de autenticación adicional.

A diferencia de AD FS en Windows Server 2012 R2, el adaptador de AD FS 2016 Azure Multi-Factor Authentication se integra directamente con Azure AD, no requiere un servidor local de Azure AD Multi-Factor Authentication. El adaptador de autenticación multifactor de Azure AD está integrado en Windows Server 2016. No se requiere ninguna otra instalación.

Registro de usuarios para la autenticación multifactor de Azure AD 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 Azure AD, 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 Azure AD para autenticarse en aplicaciones de AD FS. Cuando un usuario que aún no se ha acreditado en Azure AD intenta autenticarse con la autenticación multifactor de Azure AD 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 Azure AD 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 Azure AD pueden acceder a la página de acreditación de Azure AD 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, Azure AD realiza el registro en línea. El usuario ve el mensaj "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 Azure AD Multi-Factor Authentication como método de autenticación principal con AD FS y Azure AD Multi-Factor Authentication para Office 365.

Azure AD Multi-Factor Authentication como autenticación principal

Hay un par de excelentes razones para usar Azure AD Multi-Factor Authentication como autenticación principal con AD FS:

  • Esto evita contraseñas para el inicio de sesión en Azure AD, 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 Azure AD como método de autenticación principal y el acceso condicional de Azure AD, incluida la MFA verdadera mediante la solicitud de factores adicionales. Para usar Azure AD MFA en un entorno local, puede configurar el dominio de Azure AD estableciendo SupportsMfa en $true. En esta configuración, Azure AD 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.

Azure AD Multi-Factor Authentication 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 Azure AD 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 Azure AD como autenticación adicional para Office 365

El adaptador de Azure AD Multi-Factor Authentication para AD FS permite a los usuarios realizar la MFA en AD FS. Para proteger un recurso de Azure AD, 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 Azure AD para la autenticación con AD FS:

Nota:

Azure AD y Azure AD Multi-Factor Authentication se incluyen en Azure AD Premium 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 Azure AD.
  • Módulo Microsoft Azure Active Directory para Windows PowerShell.
  • Permisos de administrador global en la instancia de Azure AD para configurarla mediante PowerShell de Azure AD.
  • Credenciales de administrador de empresa para configurar la granja de AD FS para Azure AD Multi-Factor Authentication.

Configuración de los servidores AD FS

Para completar la configuración de la autenticación multifactor de Azure AD 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 Azure AD Multi-Factor Authentication 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 Azure AD Multi-Factor Authentication 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 Azure AD.

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

TenantID es el nombre del directorio en Azure AD. 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 Azure Multi-Factor Auth

Para permitir que los servidores de AD FS se comuniquen con el cliente de Azure Multi-Factor Auth, debe agregar las credenciales a la entidad de servicio del cliente de Azure Multi-Factor Auth. 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.

Nota:

Para completar este paso, debe conectarse a la instancia de Azure AD con PowerShell mediante Connect-MsolService. En estos pasos se supone que ya se ha conectado a través de PowerShell. Para obtener más información, consulte Connect-MsolService.

Paso 3: establecimiento del certificado como la nueva credencial en el cliente de autenticación multifactor de Azure

New-MsolServicePrincipalCredential -AppPrincipalId 981f26a1-7f43-403b-a875-f8b09b8cd720 -Type asymmetric -Usage verify -Value $certBase64

Importante

Este comando debe ejecutarse en todos los servidores de AD FS de la granja. Azure AD MFA no funcionará en aquellos servidores que no tengan el certificado establecido como la nueva credencial en el cliente de Azure Multi-Factor Authentication.

Nota

981f26a1-7f43-403b-a875-f8b09b8cd720 es el GUID del cliente de Azure Multi-Factor Auth.

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 Azure AD Multi-Factor Authentication 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 Azure AD Multi-Factor Authentication option highlighted in both the Extranet and Intranet sections.

Si quiere usar la autenticación multifactor de Azure AD 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 Azure AD FS Multi-Factor Authentication

Las instrucciones siguientes están diseñadas para ayudarle a administrar los certificados de Azure AD Multi-Factor Authentication en servidores de AD FS.

De manera predeterminada, cuando AD FS se configura con Azure AD Multi-Factor Authentication, 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 Azure AD 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 Azure AD para Microsoft AD FS" en las áreas de emisor y firmante. Este es el certificado de Azure AD Multi-Factor Authentication. 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 Azure AD 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 Azure AD Multi-Factor Authentication 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 Azure AD 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 Azure AD.

  3. Configuración de cada certificado nuevo de autenticación multifactor de Azure AD para AD FS en el inquilino de Azure AD.

    Con el módulo de PowerShell de Azure AD, para cada certificado nuevo (en cada servidor de AD FS), actualice la configuración del inquilino de Azure AD como se indica a continuación. Primero debe conectarse al inquilino mediante Connect-MsolService para ejecutar los siguientes comandos.

    New-MsolServicePrincipalCredential -AppPrincipalId 981f26a1-7f43-403b-a875-f8b09b8cd720 -Type Asymmetric -Usage Verify -Value $newcert
    

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

Cuando los nuevos certificados sean válidos, AD FS los recogerá y usará los certificados respectivos para la autenticación multifactor de Azure AD 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 Azure AD Multi-Factor Authentication 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 Azure AD, 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"