Como configurar a autenticação baseada em certificado do Azure AD

A CBA (autenticação baseada em certificado) do Azure AD (Azure Active Directory) permite que as organizações configurem os locatários do Azure AD para permitir ou exigir que os usuários se autentiquem usando os certificados X.509 criados por PKI (infraestrutura de chave pública) Enterprise para a entrada de aplicativo e navegador. Esse recurso permite que as organizações adotem a autenticação sem senha moderna resistente a phishing usando um certificado x.509.

Durante a entrada, os usuários também verão uma opção para autenticar com um certificado em vez de inserir uma senha. Se vários certificados correspondentes estiverem presentes no dispositivo, o usuário poderá escolher qual deles usar. O certificado será validado na conta do usuário e, se for bem-sucedido, entrarão.

Siga essas instruções para configurar e usar a CBA do Azure AD para locatários nos planos US Government e Office 365 Enterprise. Você já deve ter uma PKI (infraestrutura de chave pública) configurada.

Pré-requisitos

Verifique se os seguintes pré-requisitos estão em vigor.

  • Configure pelo menos uma AC (autoridade de certificação) e as ACs intermediárias no Azure AD.
  • O usuário deve ter acesso a um certificado de usuário (emitido por uma infraestrutura de chave pública confiável configurada no locatário) destinado à autenticação do cliente no Azure AD.
  • Cada AC deve ter uma CRL (lista de certificados revogados) que pode ser referenciada de URLs voltadas para a Internet. Se a AC confiável não tiver uma CRL configurada, o Azure AD não executará as verificações de CRL, a revogação de certificados de usuário não funcionará e a autenticação não será bloqueada.

Importante

Verifique se a PKI está segura e não pode ser facilmente comprometida. No caso de um comprometimento, o invasor poderá criar e assinar certificados de cliente e comprometer os usuários no locatário, tanto os usuários sincronizados de usuários locais como os usuários somente de nuvem. No entanto, uma estratégia de proteção de chave forte em conjunto com outros controles físicos e lógicos, como cartões de ativação HSM ou tokens para o armazenamento seguro de artefatos, poderá fornecer defesa em profundidade para evitar que os invasores externos ou as ameaças internas comprometam a integridade da PKI. Para obter mais informações, consulte Protegendo a PKI.

Observação

Ao avaliar uma PKI, é importante examinar as políticas e a aplicação das políticas de emissão de certificados. Conforme mencionado, adicionar ACs (autoridades de certificação) à configuração do Azure AD permitirá que os certificados emitidos por essas CAs autentiquem os usuários no Azure AD. Por esse motivo, é importante considerar como e quando as ACs poderão emitir certificados e como implementarão os identificadores reutilizáveis. Quando houver necessidade dos administradores garantirem que apenas um certificado específico poderá ser usado para autenticar um usuário, os administradores deverão usar exclusivamente associações de alta afinidade para obter um nível de garantia mais alto de que apenas um certificado específico poderá autenticar o usuário. Para obter mais informações, consulte associações de alta afinidade.

Etapas para configurar e testar a CBA do Azure AD

Algumas etapas de configuração deverão ser feitas antes de habilitar a CBA do Azure AD. Primeiro, um administrador deve configurar as CAs confiáveis que emitem certificados de usuário. Conforme observado no diagrama a seguir, usamos o controle de acesso baseado em função para garantir que apenas administradores com privilégios mínimos sejam necessários para fazer alterações. Somente a função Administrador de Autenticação Privilegiada poderá configurar a autoridade de certificação.

Opcionalmente, também é possível configurar as associações de autenticação para mapear os certificados para a autenticação multifator ou de fator único e configurar as associações de nome de usuário para mapear o campo de certificado de um atributo do objeto de usuário. Os Administradores de Política de Autenticação podem definir as configurações relacionadas ao usuário. Depois que todas as configurações forem concluídas, habilite a CBA do Azure AD no locatário.

Diagrama das etapas necessárias para habilitar a autenticação baseada em certificado do Azure Active Directory.

Etapa 1: configuração de autoridades de certificação

É possível configurar as ACs usando o portal do Azure ou o PowerShell.

Configurar autoridades de certificação usando o portal do Azure

Para habilitar a autenticação baseada em certificado e configurar as associações de usuário no portal do Azure, conclua as seguintes etapas:

  1. Entre no portal do Azure como um Administrador Global.

  2. Clique em Azure Active Directory>Segurança.

    Captura de tela das autoridades de certificação.

  3. Para carregar uma AC, clique em Carregar:

    1. Selecione o arquivo da AC.

    2. Selecione Sim se a AC for um certificado raiz, caso contrário, selecione Não.

    3. Defina a URL para a Internet http para a CRL base de AC que contém todos os certificados revogados. Se a URL não estiver definida, a autenticação com certificados revogados não falhará.

    4. Defina a URL CRL Delta – A URL HTTP voltada para a Internet para a CRL que contém todos os certificados revogados desde que a última CRL base foi publicada.

    5. Clique em Adicionar.

      Captura de tela de como carregar o arquivo de autoridade de certificação.

  4. Para excluir um certificado de AC, selecione o certificado e clique em Excluir.

  5. Clique em Colunas para adicionar ou excluir colunas.

Configurar autoridades de certificação usando o PowerShell

Há suporte para apenas um CDP (ponto de distribuição de CRL) para uma AC confiável. A CDP só pode ser URLs HTTP. Não há suporte para URLs de protocolo OCSP ou protocolo LDAP.

Para configurar as autoridades de certificação no Azure Active Directory, carregue o seguinte para cada autoridade de certificação:

  • A parte pública do certificado, no formato .cer
  • As URLs para a Internet, em que as CRLs (Listas de Certificados Revogados) residem

Veja abaixo o esquema de uma autoridade de certificação:

    class TrustedCAsForPasswordlessAuth
    {
       CertificateAuthorityInformation[] certificateAuthorities;
    }

    class CertificateAuthorityInformation

    {
        CertAuthorityType authorityType;
        X509Certificate trustedCertificate;
        string crlDistributionPoint;
        string deltaCrlDistributionPoint;
        string trustedIssuer;
        string trustedIssuerSKI;
    }

    enum CertAuthorityType
    {
        RootAuthority = 0,
        IntermediateAuthority = 1
    }

Para a configuração, você pode usar o Azure Active Directory PowerShell versão 2:

  1. Inicie o Windows PowerShell com os privilégios de administrador.

  2. Instale o módulo do Microsoft Azure AD versão 2.0.0.33 ou superior.

        Install-Module -Name AzureAD –RequiredVersion 2.0.0.33
    

Como essa é a primeira etapa de configuração, você precisa estabelecer uma conexão com seu locatário. Como existe uma conexão com o seu locatário, você pode revisar, adicionar, excluir e modificar autoridades de certificação confiáveis que são definidas em seu diretório.

Conectar

Para estabelecer uma conexão com seu locatário, use o cmdlet Connect-AzureAD:

    Connect-AzureAD

Recuperar

Para recuperar as autoridades de certificação confiáveis que são definidas em seu diretório, use o cmdlet Get-AzureADTrustedCertificateAuthority.

    Get-AzureADTrustedCertificateAuthority

Adicionar

Para criar uma autoridade de certificação confiável, use o cmdlet New-AzureADTrustedCertificateAuthority e defina o atributo crlDistributionPoint para um valor correto:

    $cert=Get-Content -Encoding byte "[LOCATION OF THE CER FILE]"
    $new_ca=New-Object -TypeName Microsoft.Open.AzureAD.Model.CertificateAuthorityInformation
    $new_ca.AuthorityType=0
    $new_ca.TrustedCertificate=$cert
    $new_ca.crlDistributionPoint="<CRL Distribution URL>"
    New-AzureADTrustedCertificateAuthority -CertificateAuthorityInformation $new_ca

AuthorityType

  • Use 0 para indicar uma autoridade de certificação raiz.
  • Use 1 para indicar uma autoridade de certificação emissora ou intermediária.

crlDistributionPoint

É possível baixar a CRL e comparar o Certificado de Autoridade de Certificação e as informações da CRL para validar se o valor crlDistributionPoint no exemplo do PowerShell anterior é válido para a AC que você quer adicionar.

A tabela e o gráfico a seguir mostram como mapear informações do Certificado de Autoridade de Certificação para os atributos da CRL baixada.

ID do certificado de Autoridade de Certificação = Informações de CRL baixadas
Assunto = Emissor
Identificador da chave de assunto = Identificador de Chave de Autoridade (KeyID)

Comparar o Certificado de Autoridade de Certificação com informações de CRL.

Dica

O valor do crlDistributionPoint no exemplo anterior é o local de http para a CRL (Lista de Revogação de Certificados) da AC. Isso pode ser encontrado em alguns locais.

  • No atributo de CDP (Pontos de Distribuição de CRL) de um certificado emitido pela CA.

Se a AC emissora for Windows Server:

  • Nas Propriedades da AC no MMC (Console de Gerenciamento Microsoft) da autoridade de certificação.
  • Na AC executando certutil -cainfo cdp. Para obter mais informações, consulte certutil.

Para obter mais informações, consul Reconhecer o processo de revogação de certificados.

Remover

Para remover uma autoridade de certificação confiável, use o cmdlet Remove-AzureADTrustedCertificateAuthority:

    $c=Get-AzureADTrustedCertificateAuthority
    Remove-AzureADTrustedCertificateAuthority -CertificateAuthorityInformation $c[2]

Você pode alterar o comando para remover o 0º elemento alterando para Remove-AzureADTrustedCertificateAuthority -CertificateAuthorityInformation $c[0].

Modificar

Para modificar uma autoridade de certificação confiável, use o cmdlet Set-AzureADTrustedCertificateAuthority:

    $c=Get-AzureADTrustedCertificateAuthority
    $c[0].AuthorityType=1
    Set-AzureADTrustedCertificateAuthority -CertificateAuthorityInformation $c[0]

Etapa 2: habilitar a CBA no locatário

Para habilitar a autenticação baseada em certificado no portal do Azure, conclua as seguintes etapas:

  1. Entre no portal do Azure como um Administrador de Política de Autenticação.

  2. Selecione Azure Active Directory e escolha Segurança no menu à esquerda.

  3. Em Gerenciar, selecione Métodos de autenticação>Autenticação baseada em certificado.

  4. Em Noções Básicas, selecione Sim para habilitar a CBA.

  5. Clique em Todos os usuários ou em Adicionar grupos para selecionar grupos específicos.

    Captura de tela de como habilitar a CBA.

Depois que a autenticação baseada em certificado for habilitada no locatário, todos os usuários no locatário verão a opção de entrar com um certificado. Somente os usuários habilitados para autenticação baseada em certificado poderão se autenticar usando o certificado X.509.

Observação

O administrador de rede deve permitir o acesso ao ponto de extremidade de certauth para o ambiente de nuvem do cliente, além de login.microsoftonline.com. Desabilite a inspeção de TLS no ponto de extremidade de certauth para verificar se a solicitação de certificado do cliente é bem-sucedida como parte do handshake TLS.

Etapa 3: configurar a política de associação de autenticação

A política de associação de autenticação ajuda a determinar a força da autenticação como fator único ou multifator. Um administrador pode alterar o valor padrão de fator único para multifator e configurar regras de política personalizadas mapeando para os campos Assunto do emissor ou OID da política no certificado.

Para habilitar a CBA do Azure AD e configurar as associações de usuário no portal do Azure, conclua as etapas a seguir:

  1. Entre no portal do Azure como um Administrador de Política de Autenticação.

  2. Selecione Azure Active Directory e escolha Segurança no menu à esquerda.

  3. Clique em Métodos de autenticação>Políticas.

  4. Em Gerenciar, selecione Métodos de autenticação>Autenticação baseada em certificado.

    Captura de tela da política de autenticação.

  5. Clique em Configurar para configurar a associação de autenticação e a associação de nome de usuário.

  6. O atributo nível de proteção tem um valor padrão de Autenticação de fator único. Selecione Autenticação multifator para alterar o valor padrão para MFA.

    Observação

    O valor de nível de proteção padrão estará em vigor se nenhuma regra personalizada for adicionada. Se as regras personalizadas forem adicionadas, o nível de proteção definido no nível da regra será respeitado.

    Captura de tela de como alterar a política padrão para MFA.

  7. Você também pode configurar as regras de associação de autenticação personalizada para ajudar a determinar o nível de proteção para os certificados do cliente. Elas podem ser configuradas usando os campos Assunto do emissor ou OID da Política no certificado.

    As regras de associação de autenticação mapearão os atributos do certificado (emissor ou OID da Política) para um valor e selecionarão o nível de proteção padrão para essa regra. Várias regras podem ser criadas.

    Para adicionar regras personalizadas, clique em Adicionar regra.

    Captura de tela de como adicionar uma regra.

    Para criar uma regra por emissor do certificado, clique em Emissor do certificado.

    1. Selecione um Identificador de emissor do certificado na caixa de listagem.

    2. Clique em Autenticação multifator.

      Captura de tela da política de autenticação multifator.

    Para criar uma regra por OID da Política, clique em OID da Política.

    1. Insira um valor para OID da Política.

    2. Clique em Autenticação multifator.

      Captura de tela do mapeamento para OID da Política.

  8. Clique em OK para salvar qualquer regra personalizada.

Etapa 4: configurar a política de associação de nome de usuário

A política de associação de nome de usuário ajuda a validar o certificado do usuário. Por padrão, mapeamos a Entidade de Segurança no certificado para UserPrincipalName no objeto de usuário para determinar o usuário. Um administrador pode substituir o padrão e criar um mapeamento personalizado.

Para determinar como configurar a associação de nome de usuário, consulte Como funciona a associação de nome de usuário.

Importante

Se uma política de associação de nome de usuário utilizar atributos sincronizados, como, por exemplo, o atributo onPremisesUserPrincipalName do objeto de usuário, esteja ciente de que qualquer usuário com privilégios de Administradores do Active Directory poderá fazer alterações que afetem o valor onPremisesUserPrincipalName no Azure AD de todas as contas sincronizadas, incluindo usuários com privilégio administrativo delegado sobre contas de usuário sincronizadas ou direitos administrativos sobre os servidores do Azure AD Connect.

  1. Crie a associação de nome de usuário selecionando um dos campos de certificado X.509 para associá-la a um dos atributos de usuário. A ordem de associação de nome de usuário representa o nível de prioridade da associação. A primeira tem a prioridade mais alta e assim por diante.

    Captura de tela de uma política de associação de nome de usuário.

    Se o campo do certificado X.509 especificado for encontrado no certificado, mas o Azure AD não encontrar um objeto de usuário que use esse valor, a autenticação falhará. O Azure AD retornará e tentará a próxima associação na lista.

  2. Clique em Salvar para salvar as alterações.

A configuração final terá esta aparência:

Captura de tela da configuração final.

Etapa 5: teste da configuração

Esta seção aborda como testar o certificado e as regras de associação de autenticação personalizadas.

Teste do seu certificado

Como primeiro teste de configuração, você deve tentar entrar no portal MyApps usando o navegador no dispositivo.

  1. Insira seu UPN (Nome UPN).

    Captura de tela do nome UPN.

  2. Clique em Próximo.

    Captura de tela de entrada com certificado.

    Se você ativou outros métodos de autenticação, como entrada por telefone ou FIDO2, os usuários poderão ver uma tela de entrada diferente.

    Captura de tela da entrada alternativa.

  3. Selecione Entrar com um certificado.

  4. Escolha o certificado de usuário correto na interface do usuário do seletor de certificado do cliente e clique em OK.

Captura de tela da interface do usuário do seletor de certificado.

  1. Os usuários devem ser entrar no portal MyApps.

Se a entrada for bem-sucedida, você saberá que:

  • O certificado de usuário foi provisionado para o dispositivo de teste.
  • O Azure AD está configurado corretamente com Autoridades de Certificação Confiáveis.
  • A associação de nome de usuário está configurada corretamente e o usuário é encontrado e autenticado.

Teste de regras de associação de autenticação personalizada

Percorreremos um cenário para validar uma autenticação forte. Criaremos duas regras de política de autenticação, uma usando o assunto do emissor para satisfazer a autenticação de fator único e outra usando OID da política para satisfazer a autenticação multifator.

  1. Crie uma regra de assunto do emissor com nível de proteção como autenticação de fator único e valor definido para o valor do assunto das CAs. Por exemplo:

    CN = WoodgroveCA

  2. Crie uma regra de OID da política, com nível de proteção como autenticação multifator e valor definido para uma das OIDs de política no certificado. Por exemplo: 1.2.3.4.

    Captura de tela da regra de OID da política.

  3. Crie uma política de acesso condicional para o usuário exigir a autenticação multifator seguindo as etapas em Acesso Condicional – Exigir MFA.

  4. Navegue até o portal MyApps. Insira o UPN e clique em Próximo.

    Captura de tela do nome UPN.

  5. Selecione Entrar com um certificado.

    Captura de tela de entrada com certificado.

    Se você ativou outros métodos de autenticação, como entrada por telefone ou FIDO2, os usuários poderão ver uma tela de entrada diferente.

    Captura de tela da entrada alternativa.

  6. Selecione o certificado do cliente e clique em Informações do Certificado.

    Captura de tela do selecionador de cliente.

  7. O certificado será mostrado e você poderá verificar os valores OID da política e do emissor. Captura de tela do emissor.

  8. Para ver os valores de OID de política, clique em Detalhes.

    Captura de tela dos detalhes de autenticação.

  9. Selecione o certificado do cliente e clique em OK.

  10. A OID de política no certificado corresponde ao valor configurado de 1.2.3.4 e atenderá à autenticação multifator. Da mesma forma, o emissor no certificado corresponde ao valor configurado de CN=WoodgroveCA e satisfará a autenticação de fator único.

  11. Como a regra OID de política tem precedência sobre a regra do emissor, o certificado atenderá à autenticação multifator.

  12. A política de Acesso Condicional para o usuário exige MFA e o certificado atende a multifatores, portanto, o usuário será autenticado no aplicativo.

Habilitar a CBA do Azure AD usando a API do Microsoft Graph

Para habilitar a CBA e configurar as associações de nome de usuário usando a API do Graph, conclua as etapas a seguir.

Observação

As etapas a seguir usam o Explorador do Graph que não está disponível na nuvem do Governo norte-americano. Os locatários de nuvem do Governo norte-americano podem usar o Postman para testar as consultas do Microsoft Graph.

  1. Inicie o Explorador do Microsoft Graph.

  2. Clique em Entrar no Explorador do Graph e entre no locatário.

  3. Siga as etapas para consentir com a permissão delegada Policy.ReadWrite.AuthenticationMethod.

  4. OBTENHA todos os métodos de autenticação:

    GET  https://graph.microsoft.com/v1.0/policies/authenticationmethodspolicy
    
  5. OBTENHA a configuração para o método de autenticação x509Certificate:

    GET https://graph.microsoft.com/v1.0/policies/authenticationmethodspolicy/authenticationMethodConfigurations/X509Certificate
    
  6. Por padrão, o método de autenticação x509Certificate está desabilitado. Para permitir que os usuários entrem com um certificado, você deve habilitar o método de autenticação e configurar as políticas de autenticação e associação de nome de usuário por meio de uma operação de atualização. Para atualizar a política, execute uma solicitação PATCH.

    Corpo da solicitação:

    PATCH https: //graph.microsoft.com/v1.0/policies/authenticationMethodsPolicy/authenticationMethodConfigurations/x509Certificate
    Content-Type: application/json
    
    {
        "@odata.type": "#microsoft.graph.x509CertificateAuthenticationMethodConfiguration",
        "id": "X509Certificate",
        "state": "enabled",
        "certificateUserBindings": [
            {
                "x509CertificateField": "PrincipalName",
                "userProperty": "onPremisesUserPrincipalName",
                "priority": 1
            },
            {
                "x509CertificateField": "RFC822Name",
                "userProperty": "userPrincipalName",
                "priority": 2
            }, 
            {
                "x509CertificateField": "PrincipalName",
                "userProperty": "certificateUserIds",
                "priority": 3
            }
        ],
        "authenticationModeConfiguration": {
            "x509CertificateAuthenticationDefaultMode": "x509CertificateSingleFactor",
            "rules": [
                {
                    "x509CertificateRuleType": "issuerSubject",
                    "identifier": "CN=WoodgroveCA ",
                    "x509CertificateAuthenticationMode": "x509CertificateMultiFactor"
                },
                {
                    "x509CertificateRuleType": "policyOID",
                    "identifier": "1.2.3.4",
                    "x509CertificateAuthenticationMode": "x509CertificateMultiFactor"
                }
            ]
        },
        "includeTargets": [
            {
                "targetType": "group",
                "id": "all_users",
                "isRegistrationRequired": false
            }
        ]
    }
    
  7. Você receberá um código de resposta 204 No content. Execute novamente a solicitação GET para garantir que as políticas sejam atualizadas corretamente.

  8. Teste a configuração ao entrar com um certificado que atenda à política.

Próximas etapas