Provedores de credenciais no Windows

Os provedores de credenciais são o principal mecanismo para autenticação do usuário. Atualmente, eles são o único método para os usuários provarem a identidade deles, o que é necessário para o logon e outros cenários de autenticação do sistema. Desde o Windows 10 e a introdução do Microsoft Passport, os provedores de credenciais têm sido mais importantes do que nunca. Eles são usados para autenticação em aplicativos, sites e muito mais.

A Microsoft fornece uma variedade de provedores de credenciais como parte do Windows, como senha, PIN, smartcard e Windows Hello (reconhecimento de impressão digital, rosto e íris). Eles são chamados de "provedores de credenciais do sistema" neste artigo. OEMs, empresas e outras entidades podem escrever provedores de credenciais próprios e integrá-los facilmente ao Windows. Eles são chamados de "provedores de credenciais de terceiros" neste artigo. Observe que os provedores de credenciais V1 e V2 são compatíveis com o Windows. É importante que os criadores e gerentes de provedores de credenciais de terceiros entendam essas recomendações.

Provedores de credenciais do sistema

É altamente recomendável que sempre haja pelo menos um provedor de credenciais do sistema disponível para cada usuário no dispositivo, além de quaisquer provedores de credenciais de terceiros. Além disso, durante a configuração do provedor de credenciais de terceiros, cada usuário no dispositivo deve ser solicitado a configurar pelo menos um provedor de credenciais do sistema (se nenhuma outra opção de recuperação estiver disponível; consulte o Cenário A, abaixo).

Cenário A

Um usuário de conta local configurou um provedor de credenciais de terceiros e o usa regularmente para fazer logon no dispositivo. Um dia, o usuário instala alguma atualização no dispositivo que interrompe o provedor de credenciais de terceiros, e o usuário não está ciente dessa alteração antes de reiniciar o computador.

Na próxima reinicialização, o usuário está na tela de logon e não pode usar o provedor de credenciais de terceiros esperado. Se o usuário tiver configurado um provedor de credenciais do sistema, ele poderá fazer logon no computador usando esse provedor. Caso contrário, o usuário não tem como recuperar a conta no computador.

Cenário B

Um usuário de MSA (conta Microsoft), AD (Active Directory) ou Microsoft Entra ID configurou um provedor de credenciais de terceiros e o usa regularmente para fazer logon no dispositivo. Um dia, o usuário instala alguma atualização no dispositivo que interrompe o provedor de credenciais de terceiros, e o usuário não está ciente dessa alteração antes de reiniciar o computador.

Na próxima reinicialização, o usuário está na tela de logon e não pode usar o provedor de credenciais de terceiros esperado. Se o usuário tiver configurado um provedor de credenciais do sistema, ele poderá fazer logon no computador usando esse provedor. Como alternativa, se o provedor de credenciais de senha do sistema estiver disponível, o usuário poderá solicitar/redefinir remotamente a senha e usá-la para fazer logon no computador. Se nenhuma opção estiver disponível, o usuário não terá como recuperar a conta no computador.

Conclusão

Em resumo, a desativação de todos os provedores de credenciais do sistema em um dispositivo deve ser desencorajada. Embora os provedores de credenciais de terceiros possam atender a requisitos de autenticação adicionais para grupos específicos de usuários, é muito importante garantir que o usuário sempre possa recuperar o acesso ao próprio computador quando ocorrer uma alteração interruptiva. Os provedores de credenciais do sistema fornecem essa garantia.

Provedores de credenciais personalizados

A estrutura do provedor de credenciais do Windows permite que os desenvolvedores criem provedores de credenciais personalizados. Quando o Winlogon deseja coletar credenciais, a interface do usuário de logon consulta cada provedor de credenciais quanto ao número de credenciais que ele deseja enumerar. Depois que todos os provedores enumeraram os respectivos blocos, a interface do usuário de logon os exibe para o usuário. O usuário interage com um bloco para fornecer as credenciais necessárias. A interface do usuário de logon envia essas credenciais para autenticação. Os provedores de credenciais também podem ser usados pela interface do usuário de credenciais quando as credenciais são necessárias. Consulte CREDENTIAL_PROVIDER_USAGE_SCENARIO para obter uma lista de cenários em que um provedor de credenciais pode ter suporte.

Graças a esse sistema, é muito mais fácil criar um provedor de credenciais do que era historicamente. Grande parte do trabalho é manipulada pela combinação de Winlogon, a interface do usuário de logon e a interface do usuário de credenciais. Para fazer isso, você precisará criar sua implementação de ICredentialProvider e ICredentialProviderCredential. Se você estiver implementando um provedor de credenciais V2, o que é recomendado, também precisará implementar ICredentialProviderCredential2.

É importante observar que os provedores de credenciais não são mecanismos de imposição. Eles são usados para reunir e serializar credenciais, enviando-as para autorização. A autoridade local e os pacotes de autenticação lidarão com qualquer imposição de segurança necessária.

Ao combinar provedores de credenciais com hardware compatível, você poderá estender o Windows para oferecer suporte ao logon com informações biométricas, senhas, PINs, certificados de cartão inteligente ou qualquer pacote de autenticação personalizado que você escolher criar. Você também pode personalizar a experiência de logon para o usuário de várias maneiras. Por exemplo, quando a interface do usuário de logon consulta seu provedor de credenciais para os blocos de credenciais, você pode especificar um bloco padrão para fornecer uma experiência personalizada para um usuário. Os provedores de credenciais podem até ser projetados para oferecer suporte ao SSO (logon único), autenticando usuários em um ponto de acesso seguro, bem como logon de computador.

Os provedores de credenciais são registrados em um computador Windows e são responsáveis pelo que é listado a seguir.

  • Descrevendo as informações de credencial necessárias para autenticação.
  • Manipulação da comunicação e da lógica com autoridades de autenticação externas.
  • Empacotamento de credenciais para logon interativo e de rede.

Dica

Lembre-se de que vários provedores de credenciais podem ser instalados em apenas um computador.

Encapsulamento de provedores de credenciais

O encapsulamento de um provedor de credenciais do sistema pode ser feito para adicionar funcionalidade a esse provedor de credenciais que não tem suporte nativo. Isso não é recomendado porque pode levar a um comportamento problemático. Alterações podem ser feitas no provedor de credenciais que podem entrar em conflito com o wrapper, causando uma experiência ruim do usuário ou até mesmo impedindo que o usuário acesse o próprio dispositivo. Isso é especialmente verdadeiro com a cadência de atualização frequente do Windows.

Se for necessária uma funcionalidade em um provedor de credenciais que não esteja incluída nativamente, o caminho recomendado é criar um provedor de credenciais personalizado. Essa é uma abordagem mais estável que não tem dependências dos provedores do sistema.

Confira também