Configuración de Azure MFA como proveedor de autenticación con AD FS

Si su organización está federada con Azure AD, puede usar Azure Multi-Factor Authentication (Azure MFA) para proteger los recursos de AD FS, tanto locales como en la nube. MFA de Azure le permite eliminar las contraseñas y proporciona una manera más segura de autenticarse. A partir de Windows Server 2016, puede configurar MFA de Azure para la autenticación principal o usarlo como proveedor de autenticación adicional.

A diferencia de AD FS en Windows Server 2012 R2, el adaptador de Azure MFA de AD FS 2016 se integra directamente con Azure AD y no requiere un servidor azure MFA local. El adaptador de Azure MFA está integrado en Windows Server 2016 y no es necesario instalar más.

Registro de usuarios para Azure MFA con AD FS

AD FS no admite la "revisión" insertada o el registro de información de comprobación de seguridad de Azure MFA, como el número de teléfono o la aplicación móvil. Esto significa que los usuarios deben revisarse visitando https://account.activedirectory.windowsazure.com/Proofup.aspx antes de usar Azure MFA para autenticarse en aplicaciones de AD FS. Cuando un usuario que aún no ha realizado pruebas en Azure AD intenta autenticarse con Azure MFA en AD FS, obtendrá 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 en su lugar. Puede hacerlo mediante onload.js personalización para detectar la cadena de mensaje de error en la página de AD FS y mostrar un nuevo mensaje para guiar a los usuarios a visitar https://aka.ms/mfasetupy, a continuación, volver a intentar la autenticación. Para obtener instrucciones detalladas, consulte la página web "Personalización de la página web de AD FS para guiar a los usuarios para registrar métodos de comprobación de MFA" a continuación en este artículo.

Nota

Anteriormente, los usuarios debían autenticarse con MFA para el registro (visitando https://account.activedirectory.windowsazure.com/Proofup.aspx, por ejemplo, mediante el acceso directo https://aka.ms/mfasetup). Ahora, un usuario de AD FS que aún no ha registrado información de comprobación de MFA puede acceder a la página de corrección de Azure AD mediante el acceso directo mediante el acceso directo https://aka.ms/mfasetup mediante 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 comprobación configurado, Azure AD realizará el registro en línea en el que el usuario ve el mensaje "El administrador ha requerido que configure esta cuenta para una comprobación de seguridad adicional" y el usuario puede seleccionar "Configurarla ahora". A los usuarios que ya tengan configurado al menos un método de comprobación de MFA se les pedirá que proporcioneN MFA al visitar la página de corrección.

Azure MFA como autenticación principal

Hay un par de razones excelentes para usar Azure MFA como autenticación principal con AD FS:

  • Para evitar contraseñas para el inicio de sesión en Azure AD, Office 365 y otras aplicaciones de AD FS
  • Para proteger el inicio de sesión basado en contraseña, necesita un factor adicional, como el código de verificación antes de la contraseña.

Si quiere usar Azure MFA como método de autenticación principal en AD FS para lograr estas ventajas, es probable que también desee mantener la capacidad de usar el acceso condicional de Azure AD, incluido "verdadero MFA" al solicitar factores adicionales en AD FS.

Ahora puede hacerlo configurando la configuración del dominio de Azure AD para que realice MFA localmente (estableciendo "SupportsMfa" en $True). En esta configuración, Azure AD FS puede solicitar a Azure AD que realice autenticación adicional o "verdadero MFA" para escenarios de acceso condicional que lo requieran.

Como se ha descrito anteriormente, se debe solicitar a cualquier usuario de AD FS que aún no haya registrado (información de comprobación de MFA configurada) a través de una página de error personalizada de AD FS para visitar https://aka.ms/mfasetup para configurar la información de comprobación y, a continuación, vuelva a intentar el inicio de sesión de AD FS. Dado que Azure MFA como principal se considera un único factor, después de que los usuarios de configuración inicial necesiten proporcionar un factor adicional para administrar o actualizar su información de comprobación en Azure AD, o para acceder a otros recursos que requieren 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 a UPN. Ejecute el cmdlet de PowerShell que se proporciona a continuación. Esto no afecta al funcionamiento interno de la granja de AD FS. Es posible que observe que algunos usuarios pueden volver a solicitar las credenciales una vez realizado 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"

Azure MFA como autenticación adicional para Office 365

El adaptador de Azure MFA para AD FS permite a los usuarios realizar MFA en AD FS. Para proteger el recurso de Azure AD, se recomienda requerir MFA a través de una directiva de acceso condicional, establezca la configuración de dominio SupportsMfa en $True y emita la notificación multipleauthn cuando un usuario realiza la comprobación en dos pasos correctamente.

Como se ha descrito anteriormente, se debe solicitar a cualquier usuario de AD FS que aún no haya registrado (información de comprobación de MFA configurada) a través de una página de error personalizada de AD FS para visitar https://aka.ms/mfasetup para configurar la información de comprobación y, a continuación, vuelva a intentar el inicio de sesión de AD FS.

Requisitos previos

Los siguientes requisitos previos son necesarios al usar Azure MFA para la autenticación con AD FS:

Nota

Azure AD y Azure MFA se incluyen en Azure AD Premium y Enterprise Mobility Suite (EMS). Si alguna de estas suscripciones no necesita suscripciones individuales.

Configuración de los servidores AD FS

Para completar la configuración de Azure MFA para AD FS, debe configurar cada servidor de AD FS mediante los pasos descritos.

Nota

Asegúrese de que estos pasos se realizan en todos los servidores de AD FS de la granja de servidores. Si tiene varios servidores de AD FS en la granja de servidores, puede realizar la configuración necesaria de forma remota mediante PowerShell de Azure AD.

Paso 1: Generación de un certificado para Azure MFA en cada servidor de AD FS mediante el New-AdfsAzureMfaTenantCertificate cmdlet

Lo primero que debe hacer es generar un certificado para que Azure MFA lo use. Esto se puede hacer mediante PowerShell. El certificado generado se puede encontrar en el almacén de certificados de las máquinas locales y se marca con un nombre de firmante que contiene tenantID para el directorio de Azure AD.

Captura de pantalla del almacén de certificados de una máquina local que muestra el certificado generado.

Tenga en cuenta que 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>

Captura de pantalla de la ventana de PowerShell que muestra el cmdlet anterior.

Paso 2: Incorporación de las nuevas credenciales a la entidad de servicio de cliente de Azure Multi-FactorAuth

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 para el cliente de Azure Multi-FactorAuth. Los certificados generados mediante el New-AdfsAzureMFaTenantCertificate cmdlet servirán como estas credenciales. Haga lo siguiente con PowerShell para agregar las nuevas credenciales a la entidad de servicio de cliente de Azure Multi-FactorAuth.

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 información, vea Connect-MsolService.

Establezca el certificado como la nueva credencial en el cliente de Azure Multi-Factor Auth.

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 de servidores. Azure AD MFA producirá un error en los servidores que no tienen el certificado establecido como la nueva credencial en el cliente de Azure Multi-FactorAuth.

Nota

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

Configuración de la granja de servidores de AD FS

Una vez que haya completado la sección anterior en cada servidor de AD FS, establezca la información del inquilino de Azure mediante el cmdlet Set-AdfsAzureMfaTenant . Este cmdlet solo se debe ejecutar una vez para una granja de servidores de AD FS.

Abra un símbolo del sistema de PowerShell y escriba su propio tenantId con el cmdlet Set-AdfsAzureMfaTenant . Para los clientes que usan Microsoft Azure Government nube, agregue el -Environment USGov parámetro :

Nota

Debe reiniciar el servicio AD FS en cada servidor de la granja de servidores antes de que estos cambios surtan efecto. Para un impacto mínimo, tome cada servidor de AD FS fuera de la rotación NLB de uno en uno y espere a que todas las conexiones se desagüen.

Set-AdfsAzureMfaTenant -TenantId <tenant ID> -ClientId 981f26a1-7f43-403b-a875-f8b09b8cd720

Captura de pantalla de la ventana de PowerShell que muestra el mensaje de advertencia recibido después de ejecutar el cmdlet Set-AdfsAzureMfaTenant.

Windows Server sin el Service Pack más reciente no admite el -Environment parámetro para el cmdlet Set-AdfsAzureMfaTenant . Si usa Azure Government nube y los pasos anteriores no pudieron configurar el inquilino de Azure debido al parámetro que falta-Environment, complete los pasos siguientes para crear manualmente las entradas del Registro. Omita estos pasos si el cmdlet anterior registró correctamente la información del inquilino o no está en la nube de Azure Government:

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

  2. Vaya a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ADFS. Cree los siguientes valores de clave del 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 de servidores antes de que estos cambios surtan efecto. Para un impacto mínimo, tome cada servidor de AD FS fuera de la rotación NLB de uno en uno y espere a que todas las conexiones se desagüen.

Después, verá que Azure MFA está disponible como método de autenticación principal para el uso de la intranet y la extranet.

Captura de pantalla del cuadro de diálogo Editar métodos de autenticación que muestra la opción Azure M F A resaltada en las secciones Extranet e Intranet.

Si quiere usar Azure MFA como método de autenticación secundario, en el cuadro Editar métodos de autenticación, seleccione la pestaña Multi-factor (la pestaña Adicional en AD FS 2019) y asegúrese de que está habilitada. De lo contrario, podría recibir mensajes de error, como "No se encontró 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 MFA de AD FS

Las instrucciones siguientes le guían a través de cómo administrar los certificados de Azure MFA en los servidores de AD FS. De forma predeterminada, al configurar AD FS con Azure MFA, los certificados generados a través del New-AdfsAzureMfaTenantCertificate cmdlet de PowerShell son válidos durante 2 años. Para determinar la proximidad a la expiración de los certificados y, a continuación, renovar e instalar nuevos certificados, use el procedimiento siguiente.

Evaluación de la fecha de expiración del certificado de Azure MFA de AD FS

En cada servidor de AD FS, en el equipo local Mi almacén, habrá un certificado autofirmado con "OU=Microsoft AD FS Azure MFA" en el emisor y el asunto. Este es el certificado de Azure MFA. Compruebe el período de validez de este certificado en cada servidor de AD FS para determinar la fecha de expiración.

Creación de un nuevo certificado de Azure MFA de AD FS en cada servidor de AD FS

Si el período de validez de los certificados está cerca de su fin, inicie el proceso de renovación mediante la generación de un nuevo certificado de Azure MFA en cada servidor de AD FS. En una ventana de comandos de 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 -Renew $true parámetro al comando siguiente. En este escenario, el certificado expirado existente se reemplaza por uno nuevo en lugar de dejarse en su lugar y se crea un certificado adicional.

PS C:\> $newcert = New-AdfsAzureMfaTenantCertificate -TenantId <tenant id such as contoso.onmicrosoft.com> -Renew $true

Si el certificado aún no ha expirado, se genera un nuevo certificado válido de 2 días en el futuro a 2 días + 2 años. Las operaciones de AD FS y Azure MFA no se ven afectadas por este cmdlet ni por el nuevo certificado. (Nota: el retraso de 2 días es intencionado y proporciona tiempo para ejecutar los pasos siguientes para configurar el nuevo certificado en el inquilino antes de que AD FS empiece a usarlo para Azure MFA).

Configuración de cada nuevo certificado de Azure MFA de 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 (nota: primero debe conectarse al inquilino mediante Connect-MsolService para ejecutar los siguientes comandos).

PS C:/> New-MsolServicePrincipalCredential -AppPrincipalId 981f26a1-7f43-403b-a875-f8b09b8cd720 -Type Asymmetric -Usage Verify -Value $newcert

Si el certificado anterior ya había 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 usarán los nuevos certificados para Azure MFA.

Una vez que los nuevos certificados sean válidos, AD FS los recogerá y empezará a usar cada certificado respectivo para Azure MFA en un plazo de unas horas a un día. Una vez que esto ocurra, en cada servidor verá un evento registrado en el registro de eventos de AD FS Administración 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 han probado (configuración de la información de comprobación de MFA).

Buscar el error

En primer lugar, hay un par de mensajes de error diferentes que AD FS devolverá en caso de que el usuario no tenga información de comprobación. Si usa Azure MFA como autenticación principal, el usuario no probado verá una página de error de AD FS que contiene los mensajes siguientes:

    <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 la autenticación adicional de Azure AD, el usuario no probado verá 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>

Detectar el error y actualizar el texto de la página

Para detectar el error y mostrar la guía personalizada del usuario, anexe el javascript al final del archivo onload.js que forma parte del tema web de AD FS. Esto le permite hacer lo siguiente:

  • busque las cadenas de error de identificación.
  • proporcionar contenido web personalizado.

Nota

Para obtener instrucciones generales sobre cómo personalizar el archivo de onload.js, consulte el artículo Personalización avanzada de páginas de inicio de sesión de AD FS.

Este es un ejemplo sencillo, es posible que desee ampliar:

  1. Abra Windows PowerShell en el servidor de AD FS principal y cree un nuevo tema web de AD FS mediante la ejecución del siguiente comando:

        New-AdfsWebTheme –Name ProofUp –SourceName default
    
  2. A continuación, 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 código siguiente 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. Once 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>"; para usar el nombre de dominio. Por ejemplo: var domain_hint = "contoso.com";

  5. Guardar el archivo onload.js

  6. Importe el archivo onload.js en el tema personalizado escribiendo el siguiente comando Windows PowerShell:

    Set-AdfsWebTheme -TargetName ProofUp -AdditionalFileResource @{Uri='/adfs/portal/script/onload.js';path="c:\theme\script\onload.js"}
    
  7. Por último, aplique el tema web personalizado de AD FS escribiendo el siguiente comando Windows PowerShell:

    Set-AdfsWebConfig -ActiveThemeName "ProofUp"
    

Pasos siguientes

Administración de protocolos TLS/SSL y conjuntos de cifrado usados por AD FS y Azure MFA