Configurar o Azure MFA como provedor de autenticação com o AD FS

Se a sua organização for federada com o Azure AD, você poderá usar a Autenticação Multifator do Azure para proteger os recursos de AD FS, tanto localmente quanto na nuvem. O Azure MFA permite eliminar senhas e fornecer uma maneira mais segura de autenticar. Começando com Windows Server 2016, agora você pode configurar a MFA do Azure para autenticação primária ou usá-la como um provedor de autenticação adicional.

Ao contrário do AD FS no Windows Server 2012 R2, o adaptador AD FS 2016 do Azure MFA integra-se diretamente ao Azure AD e não requer um servidor Azure MFA local. O adaptador de MFA do Azure é integrado a Windows Server 2016 e não há necessidade de instalação adicional.

Registrando usuários para a MFA do Azure com o AD FS

O AD FS não dá suporte ao "proof up" embutido ou ao registro de informações de verificação de segurança do Azure MFA, como número de telefone ou aplicativo móvel. Isso significa que os usuários devem ser revistos visitando https://account.activedirectory.windowsazure.com/Proofup.aspx antes de usar a MFA do Azure para se autenticar em aplicativos do AD FS. Quando um usuário que ainda não fez a prova no Azure AD tentar se autenticar com o Azure MFA no AD FS, ele receberá um erro do AD FS. Como administrador do AD FS, você pode personalizar essa experiência de erro para orientar o usuário para a página de revisão. Você pode fazer isso usando onload.js personalização para detectar a cadeia de caracteres de mensagem de erro na página do AD FS e mostrar uma nova mensagem para orientar os usuários a visitar https://aka.ms/mfasetupe tentar novamente a autenticação. Para obter diretrizes detalhadas, confira a página da Web "Personalizar a página da Web do AD FS para orientar os usuários a registrar métodos de verificação de MFA" abaixo neste artigo.

Observação

Anteriormente, os usuários eram obrigados a autenticar com a MFA para registro (visitando https://account.activedirectory.windowsazure.com/Proofup.aspx, por exemplo, por meio do atalho https://aka.ms/mfasetup). Agora, um usuário do AD FS que ainda não registrou informações de verificação de MFA pode acessar a página de revisão de prova do Azure AD por meio do atalho https://aka.ms/mfasetup usando apenas a autenticação primária (como Windows Autenticação Integrada ou nome de usuário e senha por meio das páginas da Web do AD FS). Se o usuário não tiver métodos de verificação configurados, o Azure AD executará o registro embutido no qual o usuário verá a mensagem "Seu administrador exigiu que você configure essa conta para verificação de segurança adicional" e o usuário poderá selecionar "Configurá-la agora". Os usuários que já tiverem pelo menos um método de verificação de MFA configurado ainda serão solicitados a fornecer MFA ao visitar a página de revisão de texto.

Azure MFA como Autenticação Primária

Há alguns motivos excelentes para usar o Azure MFA como Autenticação Primária com o AD FS:

  • Para evitar senhas para entrar no Azure AD, Office 365 e outros aplicativos do AD FS
  • Para proteger a entrada baseada em senha exigindo um fator adicional, como o código de verificação antes da senha

Se você deseja usar a MFA do Azure como um método de autenticação primário no AD FS para obter esses benefícios, provavelmente também deseja manter a capacidade de usar o acesso condicional do Azure AD, incluindo "MFA verdadeira", solicitando fatores adicionais no AD FS.

Agora você pode fazer isso configurando a configuração de domínio do Azure AD para executar a MFA local (definindo "SupportsMfa" como $True). Nessa configuração, o AD FS pode ser solicitado pelo Azure AD a executar autenticação adicional ou "MFA verdadeira" para cenários de acesso condicional que exigem isso.

Conforme descrito acima, qualquer usuário do AD FS que ainda não tenha registrado (configurado informações de verificação de MFA) deve ser solicitado por meio de uma página de erro personalizada do AD FS para visitar https://aka.ms/mfasetup para configurar informações de verificação e tentar novamente o logon do AD FS. Como a MFA do Azure como primária é considerada um único fator, após a configuração inicial, os usuários precisarão fornecer um fator adicional para gerenciar ou atualizar suas informações de verificação no Azure AD ou acessar outros recursos que exijam MFA.

Observação

Com o AD FS 2019, você precisará 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. Execute o cmdlet do PowerShell fornecido abaixo. Isso não tem impacto no funcionamento interno do farm do AD FS. Você pode notar que alguns usuários podem ser solicitados novamente a solicitar credenciais 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"

Azure MFA como autenticação adicional para Office 365

O adaptador do Azure MFA para AD FS permite que os usuários façam MFA no AD FS. Para proteger o recurso do Azure AD, é recomendável exigir MFA por meio de uma política de Acesso Condicional, 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 acima, qualquer usuário do AD FS que ainda não tenha registrado (configurado informações de verificação de MFA) deve ser solicitado por meio de uma página de erro personalizada do AD FS para visitar https://aka.ms/mfasetup para configurar informações de verificação e tentar novamente o logon do AD FS.

Pré-requisitos

Os seguintes pré-requisitos são necessários ao usar o Azure MFA para autenticação com o AD FS:

Observação

O Azure AD e o Azure MFA estão incluídos no Azure AD Premium e no ENTERPRISE Mobility Suite (EMS). Se você tiver qualquer uma delas, não precisará de assinaturas individuais.

Configurar os servidores do AD FS

Para concluir a configuração do Azure MFA para AD FS, você precisa configurar cada servidor do AD FS usando as etapas descritas.

Observação

Verifique se essas etapas são executadas em todos os servidores do AD FS no farm. Se você tiver vários servidores do AD FS em seu farm, poderá executar a configuração necessária remotamente usando o PowerShell do Azure AD.

Etapa 1: Gerar um certificado para a MFA do Azure em cada servidor do AD FS usando o New-AdfsAzureMfaTenantCertificate cmdlet

A primeira coisa que você precisa fazer é gerar um certificado para o Azure MFA usar. Isso pode ser feito usando o PowerShell. O certificado gerado pode ser encontrado no repositório de certificados de computadores locais e é marcado com um nome de assunto que contém o TenantID para o diretório do Azure AD.

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

Observe que TenantID é o nome do seu diretório no Azure AD. Use o cmdlet do PowerShell a seguir para gerar o novo certificado. $certbase64 = New-AdfsAzureMfaTenantCertificate -TenantID <tenantID>

Screenshot of the PowerShell window showing the cmdlet above.

Etapa 2: Adicionar as novas credenciais à Entidade de Serviço do Cliente multifator do Azure

Para permitir que os servidores do AD FS se comuniquem com o Cliente de Autenticação Multifator do Azure, você precisa adicionar as credenciais à Entidade de Serviço para o Cliente de Autenticação Multifator do Azure. Os certificados gerados usando o New-AdfsAzureMFaTenantCertificate cmdlet servirão como essas credenciais. Faça o seguinte usando o PowerShell para adicionar as novas credenciais à Entidade de Serviço do Cliente de Autenticação Multifator do Azure.

Observação

Para concluir esta etapa, você precisa se conectar à instância do Azure AD com o PowerShell usando Connect-MsolService. Essas etapas pressupõem que você já tenha se conectado por meio do PowerShell. Para obter informações, consulte Connect-MsolService.

Definir o certificado como a nova credencial em relação ao Cliente de Autenticação Multifator do Azure

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

Importante

Esse comando precisa ser executado em todos os servidores do AD FS em seu farm. A MFA do Azure AD falhará em servidores que não têm 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 a 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 um prompt do PowerShell e insira sua própria tenantId com o cmdlet Set-AdfsAzureMfaTenant . Para clientes que usam Microsoft Azure nuvem governamental, adicione o -Environment USGov parâmetro:

Observação

Você precisa reiniciar o serviço do AD FS em cada servidor no farm antes que essas alterações sejam afetadas. Para um impacto mínimo, tire cada servidor do AD FS da rotação do NLB um de cada vez e aguarde a fuga 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.

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

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

  2. Navegue até HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ADFS. Crie os seguintes valores de chave do 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 afetadas. Para um impacto mínimo, tire cada servidor do AD FS da rotação do NLB um de cada vez e aguarde a drenagem de todas as conexões.

Depois disso, você verá que a MFA do Azure está disponível como um método de autenticação primário para uso de intranet e extranet.

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

Se você quiser usar o Azure MFA como um método de autenticação secundária, 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 AD FS MFA do Azure

As diretrizes a seguir levam você a gerenciar os certificados MFA do Azure em seus servidores do AD FS. Por padrão, quando você configura o AD FS com o Azure MFA, os certificados gerados por meio do cmdlet do New-AdfsAzureMfaTenantCertificate PowerShell são válidos por dois anos. Para determinar a proximidade da expiração dos certificados e, em seguida, renovar e instalar novos certificados, use o procedimento a seguir.

Avaliar a data de validade do certificado AD FS Azure MFA

Em cada servidor do AD FS, no computador local Minha loja, haverá um certificado autoassinado com "OU=Microsoft AD FS Azure MFA" no Emissor e Assunto. Esse é o certificado MFA do Azure. Verifique o período de validade desse certificado em cada servidor AD FS para determinar essa data.

Criar um novo Certificado MFA do AD FS no Azure em cada servidor do AD FS

Se o período de validade de seus certificados estiver se aproximando do fim, inicie o processo de renovação gerando um novo certificado MFA do Azure em cada servidor do AD FS. Em uma janela de comando do 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 -Renew $true parâmetro ao comando a seguir. Nesse cenário, o certificado expirado existente é substituído por um novo em vez de ser deixado no local e um certificado adicional criado.

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

Se o certificado ainda não tiver expirado, um novo certificado válido de 2 dias no futuro para 2 dias + 2 anos será gerado. As operações do AD FS e do Azure MFA não são afetadas por esse cmdlet ou pelo novo certificado. (Observação: o atraso de dois dias é intencional e fornece tempo para executar as etapas abaixo para configurar o novo certificado no locatário antes que o AD FS comece a usá-lo para o Azure MFA.)

Configurar cada novo certificado AD FS MFA no locatário do Azure AD

Usando o módulo do PowerShell do Azure AD, para cada novo certificado (em cada servidor do AD FS), atualize as configurações de locatário do Azure AD da seguinte maneira (Observação: primeiro você deve se conectar ao locatário usando Connect-MsolService para executar os comandos a seguir).

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

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

Verifique se os novos certificados serão usados para o Azure MFA

Depois que os novos certificados se tornarem válidos, o AD FS os pegará e começará a usar cada respectivo certificado para a MFA do Azure dentro de algumas horas a um dia. Depois que isso ocorrer, em cada servidor, você verá um evento registrado no log de eventos do Administrador 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 MFA

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

Localizar o erro

Primeiro, há algumas mensagens de erro diferentes que o AD FS retornará no caso em que o usuário não tiver informações de verificação. Se você estiver usando o Azure MFA como autenticação primária, o usuário sem prova 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>

Quando o Azure AD como autenticação adicional estiver sendo tentada, o usuário não à prova de provas 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>

Capturar o erro e atualizar o texto da página

Para capturar o erro e mostrar as diretrizes personalizadas do usuário, basta acrescentar o javascript ao final do arquivo onload.js que faz parte do tema da Web do AD FS. Isso permite que você faça o seguinte:

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

Observação

Para obter diretrizes em geral sobre como personalizar o arquivo onload.js, consulte o artigo Personalização Avançada das Páginas de Entrada do AD FS.

Aqui está um exemplo simples, talvez você queira estender:

  1. Abra Windows PowerShell no servidor AD FS primário e crie um novo Tema web do AD FS executando o seguinte comando:

        New-AdfsWebTheme –Name ProofUp –SourceName default
    
  2. Em seguida, 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. Acrescentar 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. 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

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

  5. Salvar o arquivo onload.js

  6. Importe o arquivo onload.js para seu tema personalizado digitando o seguinte comando Windows PowerShell:

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

    Set-AdfsWebConfig -ActiveThemeName "ProofUp"
    

Próximas etapas

Gerenciar protocolos TLS/SSL e pacotes de criptografia usados pelo AD FS e pelo Azure MFA