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 para proteger los recursos de AD FS, tanto en entornos locales como en la nube. Azure MFA le permite eliminar contraseñas y proporcionar una manera más segura de autenticarse. A partir de Windows Server 2016, ahora puede configurar Azure MFA 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 realizar ninguna instalación adicional.

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 una prueba 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 la información de comprobación de MFA puede acceder a Azure AD página de revisión de la página de corrección mediante el acceso directo https://aka.ms/mfasetup mediante la autenticación principal (por ejemplo, Windows autenticación integrada o nombre de usuario y 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 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 de 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 desea 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 Azure AD acceso condicional, incluido "verdadero MFA" al solicitar factores adicionales en AD FS.

Ahora puede hacerlo configurando la configuración de dominio de Azure AD para realizar MFA localmente (estableciendo "SupportsMfa" en $True). En esta configuración, AD FS se puede solicitar mediante Azure AD para realizar 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 verificació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 exigir MFA a través de una directiva de acceso condicional, establecer el valor de dominio SupportsMfa en $True y emitir la notificación multipleauthn cuando un usuario completa correctamente la verificación en dos pasos.

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 verificació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 tiene 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 Azure AD PowerShell.

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 sujeto que contiene tenantID para el directorio de Azure AD.

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

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>

Screenshot of the PowerShell window showing the cmdlet above.

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 nube de administración pública, 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 afecten. 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

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 -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 afecten. 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 de esto, verá que Azure MFA está disponible como método de autenticación principal para el uso de intranet y extranet.

Screenshot of the Edit Authentication Methods dialog box showing the Azure M F A option highlighted in both the Extranet and Intranet sections.

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 Multifactor (la pestaña Adicional de 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

En las instrucciones siguientes se explica 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 generando 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 nuevo certificado (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 con 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 unas horas a un día. Una vez que esto ocurra, 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 han actualizado (configuración de la información de comprobación de MFA).

Búsqueda del error

En primer lugar, hay un par de mensajes de error diferentes que devolverá AD FS en caso de que el usuario no tenga información de verificación. Si usa Azure MFA como autenticación principal, el usuario sin revisar verá 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 Azure AD autenticación adicional, el usuario sin probar verá una página de error de AD FS que contiene los mensajes siguientes:

<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 simplemente anexa el 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 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, puede que quiera ampliar:

  1. Abra Windows PowerShell en el servidor de AD FS principal y cree un nuevo tema web de AD FS ejecutando el 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 have 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