Configurar a autenticação multifator Microsoft Entra como provedor de autenticação usando o AD FS

As informações neste artigo se aplicam ao Windows 2016 e versões posteriores.

Se a sua organização for federada com o Microsoft Entra ID, você poderá usar a Autenticação Multifator do Microsoft Entra para proteger os recursos dos Serviços de Federação do Active Directory (AD FS), tanto localmente quanto na nuvem. A Autenticação multifator do Microsoft Entra permite que você elimine as senhas e ofereça uma forma mais segura de autenticação. Com o AD FS, você pode configurar a autenticação multifator do Microsoft Entra como autenticação primária ou usá-la como um provedor de autenticação extra.

Ao contrário do AD FS no Windows Server 2012 R2, o adaptador de autenticação multifator do Microsoft Entra para o AD FS 2016 integra-se diretamente ao Microsoft Entra ID e não requer um Servidor de Autenticação Multifator do Azure local. O adaptador da autenticação multifator do Microsoft Entra é integrado no Windows Server 2016. Nenhuma outra instalação é necessária.

Registrar usuários para autenticação multifator do Microsoft Entra usando o AD FS

O AD FS não é compatível com o registro de "comprovação" interna das informações de verificação de segurança da autenticação multifator do Microsoft Entra, como em um número de telefone ou aplicativo móvel. Sem o suporte para a comprovação embutida, os usuários são verificados ao acessar https://account.activedirectory.windowsazure.com/Proofup.aspx antes de usar a autenticação multifator do Microsoft Entra para autenticar em aplicativos do AD FS. Quando um usuário que ainda não foi verificado no Microsoft Entra ID tenta se autenticar por meio da autenticação multifator do Microsoft Entra no AD FS, ele recebe um erro do AD FS. Como administrador do AD FS, você pode personalizar essa experiência de erro a fim de orientar o usuário para a página de comprovação. Você pode criar essa mensagem usando a personalização do onload.js para detectar a cadeia de caracteres de mensagem de erro na página do AD FS. Em seguida, você pode mostrar uma nova mensagem para direcionar o usuário para https://aka.ms/mfasetup, assim ele poderá tentar a autenticação novamente. Para mais informações, confira Personalizar a página da Web do AD FS para orientar os usuários a registrar métodos de verificação de MFA.

Observação

Antes dessa atualização, os usuários tinham que se registrar usando a autenticação multifator do Microsoft Entra, acessando https://account.activedirectory.windowsazure.com/Proofup.aspx. Com essa atualização, um usuário do AD FS que ainda não registrou informações de verificação da autenticação multifator do Microsoft Entra pode acessar a página de comprovação do Azure AD usando o atalho https://aka.ms/mfasetup com apenas a autenticação primária, como Autenticação Integrada do Windows ou nome de usuário e senha nas páginas da Web do AD FS. O Microsoft Entra ID executará o registro embutido se o usuário não tiver métodos de verificação configurados. O usuário vê a mensagem, “Seu administrador exigiu que você configure essa conta para verificação de segurança adicional.” Em seguida, o usuário seleciona Configurá-la agora. Os usuários que já tiveram pelo menos um método de verificação configurado ainda precisarão fornecer MFA (autenticação multifator) quando visitarem a página de comprovação.

Esta seção aborda o uso da autenticação multifator do Microsoft Entra como o método de autenticação primária com o AD FS e a autenticação multifator do Microsoft Entra para o Office 365.

Autenticação multifator do Microsoft Entra como autenticação primária

Há ótimos motivos para usar a autenticação multifator do Microsoft Entra como Autenticação Primária com o AD FS:

  • Isso evita senhas de entrada no Microsoft Entra ID, no Office 365 e em outros aplicativos do AD FS.
  • Também protege a entrada baseada em senha com a exigência de outro fator, como o código de verificação antes da senha.

É interessante usar a autenticação multifator do Microsoft Entra como o método de autenticação primária e o Acesso Condicional do Microsoft Entra, incluindo a MFA verdadeira, solicitando fatores extras. Para usar a autenticação multifator do Microsoft Entra no local, você pode definir a configuração de domínio do Microsoft Entra definindo SupportsMfa como $true. Nessa configuração, o Microsoft Entra ID pode solicitar que o AD FS faça uma autenticação extra ou "MFA verdadeira" em cenários de acesso condicional que exigem isso.

Qualquer usuário do AD FS que não esteja registrado (ainda não configurou informações de verificação da MFA) deve ser solicitado a configurar informações de verificação. Para solicitar aos usuários não registrados, você pode usar uma página de erro personalizada do AD FS para direcionar os usuários ao https://aka.ms/mfasetup e configurar informações de verificação. Após a configuração, o usuário pode tentar entrar novamente no AD FS.

A autenticação multifator do Microsoft Entra como autenticação primária é considerada um único fator. Após a configuração inicial, os usuários precisam fornecer um outro fator para gerenciar ou atualizar as informações de verificação no Microsoft Entra ID ou para acessar outros recursos que exigem MFA.

Observação

Com o AD FS 2019, você precisa fazer uma modificação no tipo de declaração de âncora para a confiança do Provedor de Declarações do Active Directory e modificá-la do windowsaccountname para o UPN (nome UPN). Execute o seguinte cmdlet do PowerShell. Isso não afeta o funcionamento interno do farm do AD FS. Talvez alguns usuários recebam a solicitação de credenciais novamente depois que essa alteração for feita. Depois de fazer logon novamente, os usuários finais não verão diferença.

Set-AdfsClaimsProviderTrust -AnchorClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" -TargetName "Active Directory"

Autenticação multifator do Microsoft Entra como autenticação extra para o Office 365

O adaptador de autenticação multifator do Microsoft Entra para o AD FS permite que os usuários façam a MFA no AD FS. Para proteger seu recurso do Microsoft Entra, exija a MFA por meio de uma política de Acesso Condicional. Você também deve definir a configuração de domínio SupportsMfa como $true e emitir a declaração multipleauthn quando um usuário executar a verificação em duas etapas com êxito.

Conforme descrito anteriormente, qualquer usuário do AD FS que não esteja registrado (ainda não configurou informações de verificação da MFA) deve ser solicitado a configurar informações de verificação. Para solicitar aos usuários não registrados, você pode usar uma página de erro personalizada do AD FS para direcionar os usuários ao https://aka.ms/mfasetup e configurar informações de verificação. Após a configuração, o usuário pode tentar entrar novamente no AD FS.

Pré-requisitos

Os seguintes pré-requisitos são necessários quando você usa a autenticação multifator do Microsoft Entra para autenticação com o AD FS:

Observação

O Microsoft Entra ID e a autenticação multifator do Microsoft Entra estão incluídos no Microsoft Entra ID P1 ou P2 e no Enterprise Mobility Suite (EMS). Você não precisará de assinaturas individuais se tiver qualquer um desses aplicativos instalado.

  • Um ambiente local do AD FS do Windows Server 2016.
    • O servidor precisa ser capaz de se comunicar com as URLs a seguir pela porta 443.
      • https://adnotifications.windowsazure.com
        • https://login.microsoftonline.com
  • Seu ambiente local deve ser federado com o Microsoft Entra ID.
  • Módulo Microsoft Azure Active Directory para Windows PowerShell.
  • Permissões de Administrador global em sua instância do Microsoft Entra ID para configurá-la usando o Azure AD PowerShell.
  • Credenciais de administrador corporativo para configurar o farm do AD FS para a autenticação multifator do Microsoft Entra.

Configurar os servidores do AD FS

Para realizar a configuração da autenticação multifator do Microsoft Entra para o AD FS, você precisará configurar cada servidor do AD FS usando as etapas descritas aqui.

Observação

Essas etapas devem ser executadas em todos os servidores do AD FS no farm. Se você tiver vários servidores do AD FS no seu farm, poderá fazer a configuração necessária remotamente usando o Azure AD PowerShell.

Etapa 1: gerar um certificado para a autenticação multifator do Microsoft Entra em cada servidor do AD FS

A primeira ação que você precisa realizar é usar o comando do PowerShell New-AdfsAzureMfaTenantCertificate para gerar um certificado para a autenticação multifator do Microsoft Entra usar. Depois de gerar o certificado, localize-o no repositório de certificados dos computadores locais. O certificado está marcado com um nome de entidade que contém a TenantID do diretório do Microsoft Entra.

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

A ID do locatário é o nome do diretório no Microsoft Entra ID. Use o seguinte cmdlet do PowerShell para gerar o novo certificado:

$certbase64 = New-AdfsAzureMfaTenantCertificate -TenantID <tenantID>

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

Etapa 2: adicionar as novas credenciais à entidade de serviço do Cliente de autenticação multifator do Azure

Para permitir que os servidores do AD FS se comuniquem com o Cliente de autenticação multifator do Azure, você precisará adicionar as credenciais à Entidade de Serviço do Cliente de autenticação multifator do Azure. Os certificados gerados usando o cmdlet New-AdfsAzureMFaTenantCertificate servem como essas credenciais. Abra o PowerShell e realize as etapas a seguir para adicionar as novas credenciais à Entidade de Serviço do Cliente de autenticação multifator do Azure.

Etapa 3: definir o certificado como a nova credencial em relação ao Cliente de autenticação multifator do Azure

Observação

Para concluir esta etapa, você precisa se conectar à sua instância do Microsoft Entra ID com o Microsoft Graph PowerShell usando Connect-MgGraph. Essas etapas pressupõem que você já se conectou pelo 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

Esse comando precisa ser executado em todos os servidores do AD FS em seu farm. A autenticação multifator do Microsoft Entra falhará em servidores que não tenham o certificado definido como a nova credencial em relação ao Cliente de autenticação multifator do Azure.

Observação

981f26a1-7f43-403b-a875-f8b09b8cd720 é o GUID para o Cliente de autenticação multifator do Azure.

Configurar o Farm do AD FS

Depois de concluir as etapas da seção anterior em cada servidor do AD FS, defina as informações de locatário do Azure usando o cmdlet Set-AdfsAzureMfaTenant. Esse cmdlet precisa ser executado apenas uma vez para um farm do AD FS.

Abra o PowerShell e insira sua própria tenantId com o cmdlet Set-AdfsAzureMfaTenant. Para clientes que usam a nuvem do Microsoft Azure Governamental, adicione o parâmetro -Environment USGov:

Observação

Você precisa reiniciar o serviço do AD FS em cada servidor no farm para que essas alterações entrem em vigor. Para o mínimo de impacto, retire cada servidor AD FS da rotação NLB (um de cada vez) e aguarde a descarga de todas as conexões.

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.

O Windows Server sem o service pack mais recente não dá suporte ao parâmetro -Environment para o cmdlet Set-AdfsAzureMfaTenant. Se você usar a nuvem do Azure Governamental e as etapas anteriores não tiverem configurado seu locatário do Azure devido à ausência do parâmetro -Environment, conclua as etapas a seguir para criar manualmente as entradas do Registro. Ignore essas etapas se o cmdlet anterior tiver registrado corretamente suas informações de locatário ou se você não estiver na nuvem do Azure Governamental:

  1. Abra o Editor do Registro no servidor do AD FS.

  2. Navegue até HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fax\ADFS. Crie os seguintes valores da chave de registro:

    Chave do Registro Valor
    SasUrl https://adnotifications.windowsazure.us/StrongAuthenticationService.svc/Connector
    StsUrl https://login.microsoftonline.us
    ResourceUri https://adnotifications.windowsazure.us/StrongAuthenticationService.svc/Connector
  3. Reinicie o serviço do AD FS em cada servidor no farm antes que essas alterações sejam implementadas. Para reduzir o efeito nos seus sistemas, retire cada servidor AD FS da rotação NLB (um de cada vez) e aguarde a descarga de todas as conexões.

Depois dessa etapa, você verá que a autenticação multifator do Microsoft Entra ficará disponível como um método de autenticação primário para uso intranet e extranet.

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

Se você quiser usar a autenticação multifator do Microsoft Entra como um método de autenticação secundário, na caixa Editar Métodos de Autenticação, selecione a guia multifator (a guia Adicional no AD FS 2019) e verifique se ela está habilitada. Caso contrário, você poderá receber mensagens de erro, como "Nenhum método de autenticação forte válido encontrado. Contate o administrador para configurar e habilitar um provedor de autenticação forte apropriado."

Renovar e gerenciar Certificados de autenticação multifator do Microsoft Entra no AD FS

As diretrizes a seguir foram criadas para ajudar você a gerenciar os certificados de autenticação multifator do Microsoft Entra em seus servidores do AD FS.

Por padrão, quando você configura os AD FS com a autenticação multifator do Microsoft Entra, os certificados gerados por meio do cmdlet New-AdfsAzureMfaTenantCertificate do PowerShell são válidos por dois anos. Para determinar se os certificados estão prestes a expirar e, assim, renovar e instalar novos certificados, use o procedimento a seguir.

  1. Avaliar a data de expiração do certificado de autenticação multifator do Microsoft Entra para o AD FS.

    Em cada servidor do AD FS, na Minha loja do computador local, há um certificado autoassinado com "autenticação multifator do Microsoft Entra com o Microsoft AD FS" na área Emissor e Assunto. Esse certificado é o certificado de autenticação multifator do Microsoft Entra. Verifique o período de validade desse certificado em cada servidor AD FS para determinar essa data.

  2. Criar um Certificado de autenticação multifator do Microsoft Entra com o AD FS em cada servidor do AD FS.

    Se o período de validade dos certificados estiver se aproximando do fim, inicie o processo de renovação gerando um novo certificado de autenticação multifator do Microsoft Entra em cada servidor do AD FS. N PowerShell, gere um novo certificado em cada servidor do AD FS usando o seguinte cmdlet:

    Cuidado

    Se o certificado já tiver expirado, não adicione o parâmetro -Renew $true ao comando a seguir. Nesse cenário, o certificado expirado existente é substituído por um novo em vez de ser deixado no lugar com a criação de um certificado adicional.

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

    Se o certificado ainda não expirou, o comando gerará um novo certificado válido de dois dias após o dia atual para dois anos mais dois dias no futuro. O AD FS e as operações de autenticação multifator do Microsoft Entra não serão afetados ao executar o cmdlet nem ao renovar o certificado. O atraso de dois dias é intencional e fornece tempo para seguir as próximas etapas a fim de configurar o novo certificado no locatário para que o AD FS comece usando-o para a autenticação multifator do Microsoft Entra.

  3. Configure cada novo certificado de autenticação multifator do Microsoft Entra do AD FS no locatário do Microsoft Entra.

    Observação

    Para concluir esta etapa, você precisa se conectar à sua instância do Microsoft Entra ID com o Microsoft Graph PowerShell usando Connect-MgGraph. Essas etapas pressupõem que você já se conectou pelo 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
    

    Se o certificado anterior já estiver vencido, reinicie o serviço do AD FS para pegar o novo certificado. Você não precisa reiniciar o serviço do AD FS se renovou um certificado antes de expirar.

  4. Verificar se os novos certificados são usados para autenticação multifator do Microsoft Entra.

Depois que os novos certificados estiverem validados, o AD FS os pegará e usará cada respectivo certificado para a autenticação multifator do Microsoft Entra no espaço de algumas horas ou até um dia. Depois que o AD FS usar os novos certificados, você verá, em cada servidor, um evento conectado no log de eventos Administrativos do AD FS com as seguintes informações:

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.

Personalizar a página da Web do AD FS para orientar os usuários a registrar métodos de verificação de MFA

Use os exemplos a seguir para personalizar suas páginas da Web do AD FS para usuários que ainda não tenham sido comprovados (informações de verificação de MFA configuradas).

Localizar o erro

Primeiro, o AD FS retorna algumas mensagens de erro diferentes quando o usuário não tem informações de verificação. Se você estiver usando a autenticação multifator do Microsoft Entra como autenticação primária, o usuário sem comprovação verá uma página de erro do AD FS contendo as seguintes mensagens:

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

Na tentativa de usar o Microsoft Entra ID como autenticação exrtra, o usuário não comprovado verá uma página de erro do AD FS contendo as seguintes mensagens:

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

Captar o erro e atualizar o texto da página

Para capturar o erro e mostrar as diretrizes personalizadas do usuário, acrescente o JavaScript ao final do arquivo onload.js que faz parte do tema da Web do AD FS. Essa ação permite que você:

  • Pesquisar as cadeias de caracteres de erro de identificação.
  • Fornecer conteúdo personalizado da Web.

Observação

Para obter diretrizes gerais sobre como personalizar o arquivo onload.js, confira Personalização avançada de páginas de entrada do AD FS.

As etapas a seguir mostram um exemplo simples:

  1. Abra o Windows PowerShell no servidor AD FS primário e crie outro Tema Web do AD FS executando o comando a seguir.

        New-AdfsWebTheme –Name ProofUp –SourceName default
    
  2. Crie a pasta e exporte o tema padrão da Web do AD FS.

       New-Item -Path 'C:\Theme' -ItemType Directory;Export-AdfsWebTheme –Name default –DirectoryPath C:\Theme
    
  3. Abra o arquivo C:\Theme\script\onload.js em um editor de texto.

  4. Acrescente o código a seguir ao final do arquivo 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

    Você precisa alterar "<YOUR_DOMAIN_NAME_HERE>"; para usar o nome de domínio. Por exemplo: var domain_hint = "contoso.com";.

  5. Salve o arquivo onload.js.

  6. Importe o arquivo onload.js para o tema personalizado inserindo o seguinte comando do Windows PowerShell:

    Set-AdfsWebTheme -TargetName ProofUp -AdditionalFileResource @{Uri='/adfs/portal/script/onload.js';path="c:\theme\script\onload.js"}
    
  7. Aplique o Tema da Web do AD FS personalizado inserindo o seguinte comando do Windows PowerShell:

    Set-AdfsWebConfig -ActiveThemeName "ProofUp"