Usar cartões inteligentes para autenticação - Amazon WorkSpaces

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar cartões inteligentes para autenticação

Os pacotes Windows e Linux WorkSpaces on WorkSpaces Streaming Protocol (WSP) permitem o uso de cartões inteligentes Common Access Card (CAC) e Personal Identity Verification (PIV) para autenticação.

A Amazon WorkSpaces oferece suporte ao uso de cartões inteligentes para autenticação pré-sessão e autenticação durante a sessão. A autenticação pré-sessão se refere à autenticação por cartão inteligente que é executada enquanto os usuários estão fazendo login em seus WorkSpaces. A autenticação em sessão se refere à autenticação executada após o login.

Por exemplo, os usuários podem usar cartões inteligentes para autenticação em sessão enquanto trabalham com navegadores e aplicações da web. Eles também podem usar cartões inteligentes para ações que exigem permissões administrativas. Por exemplo, se o usuário tiver permissões administrativas no Linux WorkSpace, ele poderá usar cartões inteligentes para se autenticar ao executar sudo sudo -i comandos.

Requisitos

  • É necessário um diretório do Active Directory Connector (AD Connector) para a autenticação pré-sessão. O AD Connector usa autenticação mútua de Transport Layer Security (TLS mútuo) baseada em certificado para autenticar usuários no Active Directory usando um certificado de cartão inteligente baseado em hardware ou software. Para obter mais informações sobre como configurar o AD Connector e o diretório on-premises, consulte Configuração do diretório.

  • Para usar um cartão inteligente com Windows ou Linux WorkSpace, o usuário deve usar o cliente Amazon WorkSpaces Windows versão 3.1.1 ou posterior ou o cliente WorkSpaces macOS versão 3.1.5 ou posterior. Para obter mais informações sobre o uso de cartões inteligentes com os clientes Windows e macOS, consulte Smart Card Support no Amazon WorkSpaces User Guide.

  • Os certificados de CA raiz e cartão inteligente devem atender a determinados requisitos. Para obter mais informações, consulte Habilitar a autenticação mTLS no AD Connector para usar com cartões inteligentes no Guia de administração do AWS Directory Service e Requisitos de certificado na documentação da Microsoft.

    Além desses requisitos, os certificados de usuário empregados para autenticação por cartão inteligente na Amazon WorkSpaces devem incluir os seguintes atributos:

    • O usuário do AD userPrincipalName (UPN) no campo subjectAltName (SAN) do certificado. Recomendamos emitir certificados de cartão inteligente para o UPN padrão do usuário.

    • O atributo de uso estendido de chave (EKU) para autenticação de cliente (1.3.6.1.5.5.7.3.2).

    • O atributo EKU para login com cartão inteligente (1.3.6.1.4.1.311.20.2.2).

  • Para autenticação pré-sessão, o protocolo OCSP (Protocolo de status de certificado on-line) é necessário para verificação de revogação do certificado. Para autenticação em sessão, o OCSP é recomendado, mas não obrigatório.

Limitações

  • Somente o aplicativo cliente WorkSpaces Windows versão 3.1.1 ou posterior e o aplicativo cliente macOS versão 3.1.5 ou posterior são atualmente suportados para autenticação por cartão inteligente.

  • O aplicativo cliente WorkSpaces Windows 3.1.1 ou posterior oferece suporte a cartões inteligentes somente quando o cliente está sendo executado em uma versão de 64 bits do Windows.

  • Atualmente, WorkSpaces o Ubuntu não oferece suporte à autenticação por cartão inteligente.

  • Somente os diretórios do AD Connector são atualmente compatíveis com a autenticação por cartão inteligente.

  • A autenticação em sessão está disponível em todas as regiões em que o WSP é compatível. A autenticação pré-sessão está disponível nas seguintes regiões:

    • Região Ásia-Pacífico (Sydney)

    • Região Ásia-Pacífico (Tóquio)

    • Região Europa (Irlanda)

    • AWS GovCloud Região (Leste dos EUA)

    • AWS GovCloud Região (Oeste dos EUA)

    • Região Leste dos EUA (N. da Virgínia)

    • Região Oeste dos EUA (Oregon)

  • Para autenticação em sessão e autenticação pré-sessão no Linux ou no Windows WorkSpaces, atualmente, somente um cartão inteligente é permitido por vez.

  • Para a autenticação pré-sessão, não há suporte para habilitar a autenticação por cartão inteligente e a autenticação de login no mesmo diretório.

  • Somente placas CAC e PIV são compatíveis no momento. Outros tipos de cartões inteligentes baseados em hardware ou software também podem funcionar, mas não foram totalmente testados para uso com o WSP.

Configuração do diretório

Para habilitar a autenticação por cartão inteligente, você deve configurar o diretório do AD Connector e o diretório on-premises da maneira a seguir.

Configuração do diretório do AD Connector

Antes de começar, verifique se o diretório do AD Connector foi configurado conforme descrito nos Pré-requisitos do AD Connector no Guia de administração do AWS Directory Service . Especificamente, verifique se você abriu as portas necessárias no firewall.

Para concluir a configuração do diretório do AD Connector, siga as instruções em Habilitar a autenticação mTLS no AD Connector para usar com cartões inteligentes no Guia de administração do AWS Directory Service .

nota

A autenticação por cartão inteligente exige que a Delegação Restrita Kerberos (KCD) funcione corretamente. O KCD exige que a parte do nome de usuário da conta de serviço do AD Connector corresponda ao SaM AccountName do mesmo usuário. Um SaM não AccountName pode exceder 20 caracteres.

Configuração de diretórios on-premises

Além de configurar o diretório do AD Connector, você também deve garantir que os certificados emitidos para os controladores de domínio do diretório on-premises tenham o conjunto de uso estendido de chave (EKU) “Autenticação KDC”. Para fazer isso, use o modelo de certificado de autenticação Kerberos padrão dos Serviços de Domínio do Active Directory (AD DS). Não use um modelo de certificado de Controlador de domínio ou um modelo de certificado de Autenticação do controlador de domínio, pois esses modelos não contêm as configurações necessárias para a autenticação por cartão inteligente.

Ativar cartões inteligentes para Windows WorkSpaces

Para obter orientações gerais sobre como habilitar a autenticação por cartão inteligente no Windows, consulte Diretrizes para habilitar o logon de cartão inteligente com autoridades de certificação de terceiros na documentação da Microsoft.

Como detectar a tela de bloqueio do Windows e desconectar a sessão

Para permitir que os usuários desbloqueiem o Windows WorkSpaces habilitado para autenticação pré-sessão com cartão inteligente quando a tela está bloqueada, você pode ativar a detecção da tela de bloqueio do Windows nas sessões dos usuários. Quando a tela de bloqueio do Windows é detectada, a WorkSpace sessão é desconectada e o usuário pode se reconectar do WorkSpaces cliente usando seu cartão inteligente.

Você pode habilitar a desconexão da sessão quando a tela de bloqueio do Windows for detectada usando as configurações de Política de grupo. Para ter mais informações, consulte Habilitar ou desabilitar a desconexão da sessão ao bloquear a tela para WSP.

Como habilitar a autenticação em sessão ou pré-sessão

Por padrão, o Windows não WorkSpaces está habilitado para oferecer suporte ao uso de cartões inteligentes para autenticação pré-sessão ou durante a sessão. Se necessário, você pode habilitar a autenticação em sessão e pré-sessão para Windows WorkSpaces usando as configurações da Política de Grupo. Para ter mais informações, consulte Habilitar ou desabilitar o redirecionamento de cartão inteligente para WSP.

Para usar a autenticação pré-sessão, além de atualizar as configurações de Política de grupo, você também deve habilitar a autenticação pré-sessão por meio das configurações de diretório do AD Connector. Para obter mais informações, siga as instruções em Habilitar a autenticação mTLS no AD Connector para usar em cartões inteligentes no Guia de administração do AWS Directory Service .

Como permitir que os usuários usem cartões inteligentes em um navegador

Se os usuários estiverem usando o Chrome como navegador, nenhuma configuração especial será necessária para usar cartões inteligentes.

Se os usuários estiverem usando o Firefox como navegador, você pode permitir que eles usem cartões inteligentes no Firefox por meio da Política de grupo. Você pode usar esses modelos de Política de Grupo do Firefox no GitHub.

Por exemplo, você pode instalar a versão de 64 bits do OpenSC para Windows, para oferecer suporte ao PKCS #11 e, em seguida, usar a configuração de Política de grupo a seguir, onde NAME_OF_DEVICE é o valor que você deseja usar para identificar o PKCS #11, como OpenSC, e onde PATH_TO_LIBRARY_FOR_DEVICE é o caminho para o módulo PKCS #11. Esse caminho deve apontar para uma biblioteca com uma extensão .DLL, como C:\Program Files\OpenSC Project\OpenSC\pkcs11\onepin-opensc-pkcs11.dll.

Software\Policies\Mozilla\Firefox\SecurityDevices\NAME_OF_DEVICE = PATH_TO_LIBRARY_FOR_DEVICE
dica

Se estiver usando o OpenSC, você também pode carregar o módulo OpenSC pkcs11 no Firefox executando o programa pkcs11-register.exe. Para executar esse programa, clique duas vezes no arquivo em C:\Program Files\OpenSC Project\OpenSC\tools\pkcs11-register.exe ou abra uma janela do prompt de comando e execute o seguinte comando:

"C:\Program Files\OpenSC Project\OpenSC\tools\pkcs11-register.exe"

Para verificar se o módulo OpenSC pkcs11 foi carregado no Firefox, faça o seguinte:

  1. Se o Firefox já estiver em execução, feche-o.

  2. Abra o Firefox. Selecione o botão de menu 
                                Firefox menu button
                            no canto superior direito e, em seguida, selecione Opções.

  3. Na página about:preferences, no painel de navegação esquerdo, selecione Privacidade e segurança.

  4. Em Certificados, selecione Dispositivos de segurança.

  5. Na caixa de diálogo Gerenciador de dispositivos, você deve ver o Framework de cartão inteligente OpenSC (0.21) na navegação à esquerda, e ela deve ter os seguintes valores ao selecioná-la:

    Módulo: OpenSC smartcard framework (0.21)

    Caminho: C:\Program Files\OpenSC Project\OpenSC\pkcs11\onepin-opensc-pkcs11.dll

Solução de problemas

Para obter informações sobre como solucionar problemas de cartões inteligentes, consulte Problemas de certificado e configuração na documentação da Microsoft.

Algumas questões comuns que podem causar problemas:

  • Mapeamento incorreto dos slots para os certificados.

  • Ter vários certificados no cartão inteligente que possam corresponder ao usuário. Os certificados são correspondidos de acordo com os seguintes critérios:

    • A CA raiz para o certificado.

    • Os campos <KU> e <EKU> do certificado.

    • O UPN no assunto do certificado.

  • Ter vários certificados que tenham <EKU>msScLogin no uso de chave.

Em geral, é melhor ter apenas um certificado para autenticação por cartão inteligente que esteja mapeado no primeiro slot do cartão inteligente.

As ferramentas para gerenciar os certificados e as chaves no cartão inteligente (como remover ou remapear os certificados e as chaves) podem ser específicas do fabricante. Para obter mais informações, consulte a documentação fornecida pelo fabricante dos seus cartões inteligentes.

Ativar cartões inteligentes para Linux WorkSpaces

nota

Atualmente, o Linux WorkSpaces no WSP tem as seguintes limitações:

  • Área de transferência, entrada de áudio, entrada de vídeo e redirecionamento de fuso horário não são compatíveis.

  • Não há compatibilidade para vários monitores.

  • Você deve usar o aplicativo cliente WorkSpaces do Windows para se conectar ao Linux WorkSpaces no WSP.

Para habilitar o uso de cartões inteligentes no Linux WorkSpaces, você precisa incluir um arquivo de certificado CA raiz no formato PEM na WorkSpace imagem.

Como obter o certificado CA raiz

Você pode obter o certificado CA raiz de várias formas:

  • Você pode usar um certificado CA raiz operado por uma autoridade de certificação de terceiros.

  • Você pode exportar seu próprio certificado CA raiz usando o site de inscrição web, que é http://ip_address/certsrv ouhttp://fqdn/certsrv, onde ip_address e fqdn são o endereço IP e o nome de domínio totalmente qualificado (FQDN) do servidor de certificação CA raiz. Para obter mais informações sobre como usar o site de inscrição web, consulte Como exportar o certificado de autoridade de certificação raiz na documentação da Microsoft.

  • Você pode usar o procedimento a seguir para exportar o certificado de CA raiz de um servidor de certificação de CA raiz que esteja executando os Serviços de Certificados do Active Directory (AD CS). Para obter informações sobre a instalação do AD CS, consulte Instalar a autoridade de certificação na documentação da Microsoft.

    1. Faça login no servidor CA raiz usando uma conta de administrador.

    2. No menu Iniciar do Windows, abra uma janela do prompt de comando (Iniciar > Sistema Windows > Prompt de comando).

    3. Use o seguinte comando para exportar o certificado de CA raiz para um novo arquivo, onde rootca.cer é o nome do arquivo:

      certutil -ca.cert rootca.cer

      Para obter mais informações sobre como executar o certutil, consulte certutil na documentação da Microsoft.

    4. Use o comando OpenSSL a seguir para converter o certificado de CA raiz exportado do formato DER para o formato PEM, em que rootca é o nome do certificado. Para obter mais informações sobre OpenSSL, consulte www.openssl.org.

      openssl x509 -inform der -in rootca.cer -out /tmp/rootca.pem
Para adicionar seu certificado CA raiz ao seu Linux WorkSpaces

Para ajudá-lo a habilitar cartões inteligentes, adicionamos o script enable_smartcard aos nossos pacotes Amazon Linux WSP. Esse script executa as seguintes ações:

  • Importe o certificado de CA raiz para o banco de dados Network Security Services (NSS).

  • Instala o módulo pam_pkcs11 para autenticação do módulo de autenticação conectável (PAM).

  • Executa uma configuração padrão, que inclui a ativação pkinit durante o WorkSpace provisionamento.

O procedimento a seguir explica como usar o enable_smartcard script para adicionar seu certificado CA raiz ao Linux WorkSpaces e habilitar cartões inteligentes para o Linux WorkSpaces.

  1. Crie um novo Linux WorkSpace com o protocolo WSP ativado. Ao iniciar o WorkSpace no WorkSpaces console da Amazon, na página Selecionar pacotes, certifique-se de selecionar WSP para o protocolo e, em seguida, selecione um dos pacotes públicos do Amazon Linux 2.

  2. No novo WorkSpace, execute o comando a seguir como root, onde pem-path está o caminho para o arquivo de certificado CA raiz no formato PEM.

    /usr/lib/skylight/enable_smartcard --ca-cert pem-path
    nota

    O Linux WorkSpaces pressupõe que os certificados nos cartões inteligentes sejam emitidos para o nome principal de usuário (UPN) padrão do usuário, como, por exemplosAMAccountName@domain, onde domain está um nome de domínio totalmente qualificado (FQDN).

    Para usar sufixos UPN alternativos, run /usr/lib/skylight/enable_smartcard --help para obter mais informações. O mapeamento para sufixos UPN alternativos é exclusivo para cada usuário. Portanto, esse mapeamento deve ser realizado individualmente no de cada usuário WorkSpace.

  3. (Opcional) Por padrão, todos os serviços estão habilitados para usar a autenticação por cartão inteligente no Linux WorkSpaces. Para limitar a autenticação por cartão inteligente para serviços específicos, você deve editar /etc/pam.d/system-auth. Remova o comentário da linha auth para pam_succeed_if.so e edite a lista de serviços conforme necessário.

    Depois o comentário da linha auth for removido, para permitir que um serviço use a autenticação por cartão inteligente, você deve adicioná-lo à lista. Para fazer com que um serviço use somente autenticação por senha, é necessário removê-lo da lista.

  4. Execute quaisquer personalizações adicionais no. WorkSpace Por exemplo, talvez você queira adicionar uma política em todo o sistema para permitir que os usuários usem cartões inteligentes no Firefox. (Os usuários do Chrome devem habilitar cartões inteligentes em seus próprios clientes. Para obter mais informações, consulte Smart Card Support no Amazon WorkSpaces User Guide.)

  5. Crie uma WorkSpace imagem e um pacote personalizados a partir do WorkSpace.

  6. Use o novo pacote personalizado para lançá-lo WorkSpaces para seus usuários.

Como permitir que os usuários usem cartões inteligentes no Firefox

Você pode permitir que seus usuários usem cartões inteligentes no Firefox adicionando uma SecurityDevices política à sua WorkSpace imagem do Linux. Para obter mais informações sobre como adicionar políticas de todo o sistema ao Firefox, consulte os modelos de políticas da Mozilla em. GitHub

  1. No WorkSpace que você está usando para criar sua WorkSpace imagem, crie um novo arquivo chamado policies.json in/usr/lib64/firefox/distribution/.

  2. No arquivo JSON, adicione a SecurityDevices política a seguir, onde NAME_OF_DEVICE está o valor que você deseja usar para identificar o pkcs módulo. Por exemplo, é possível usar um valor como "OpenSC":

    { "policies": { "SecurityDevices": { "NAME_OF_DEVICE": "/usr/lib64/opensc-pkcs11.so" } } }
Solução de problemas

Para solucionar problemas, recomendamos adicionar o utilitário pkcs11-tools. Esse utilitário permite que você execute as seguintes ações:

  • Liste cada cartão inteligente.

  • Liste os slots em cada cartão inteligente.

  • Liste os certificados em cada cartão inteligente.

Algumas questões comuns que podem causar problemas:

  • Mapeamento incorreto dos slots para os certificados.

  • Ter vários certificados no cartão inteligente que possam corresponder ao usuário. Os certificados são correspondidos de acordo com os seguintes critérios:

    • A CA raiz para o certificado.

    • Os campos <KU> e <EKU> do certificado.

    • O UPN no assunto do certificado.

  • Ter vários certificados que tenham <EKU>msScLogin no uso de chave.

Em geral, é melhor ter apenas um certificado para autenticação por cartão inteligente que esteja mapeado no primeiro slot do cartão inteligente.

As ferramentas para gerenciar os certificados e as chaves no cartão inteligente (como remover ou remapear os certificados e as chaves) podem ser específicas do fabricante. Ferramentas adicionais que você pode usar para trabalhar com cartões inteligentes são:

  • opensc-explorer

  • opensc-tool

  • pkcs11_inspect

  • pkcs11_listcerts

  • pkcs15-tool

Como habilitar log de depuração

Para solucionar os problemas de configuração pam_pkcs11 e pam-krb5, você pode ativar o log de depuração.

  1. No arquivo /etc/pam.d/system-auth-ac, edite a ação auth e altere o parâmetro nodebug de pam_pksc11.so para debug.

  2. No arquivo /etc/pam_pkcs11/pam_pkcs11.conf, altere debug = false; para debug = true;. A opção debug se aplica separadamente a cada módulo mapeador, portanto, talvez seja necessário alterá-la diretamente na seção pam_pkcs11 e também na seção apropriada do mapeador (por padrão, é mapper generic).

  3. No arquivo /etc/pam.d/system-auth-ac, edite a ação auth e adicione o parâmetro debug ou debug_sensitive para pam_krb5.so.

Depois de habilitar o log de depuração, o sistema imprime mensagens de depuração pam_pkcs11 diretamente no terminal ativo. As mensagens de pam_krb5 estão registradas em /var/log/secure.

Para verificar a qual nome de usuário um certificado de cartão inteligente está mapeado, use o seguinte comando pklogin_finder:

sudo pklogin_finder debug config_file=/etc/pam_pkcs11/pam_pkcs11.conf

Quando solicitado, digite o PIN do cartão inteligente. pklogin_finder gera como saída em stdout o nome de usuário no certificado do cartão inteligente no formato NETBIOS\username. Esse nome de usuário deve corresponder ao WorkSpace nome de usuário.

Nos Serviços de Domínio do Active Directory (AD DS), o nome de domínio NetBIOS é o nome de domínio anterior ao Windows 2000. Normalmente (mas nem sempre), o nome de domínio NetBIOS é o subdomínio do nome de domínio do Sistema de Nomes de Domínio (DNS). Por exemplo, se o nome do domínio DNS for example.com, o nome de domínio NetBIOS geralmente é EXAMPLE. Se o nome do domínio DNS for corp.example.com, o nome de domínio NetBIOS geralmente é CORP.

Por exemplo, para o usuário mmajor no domínio corp.example.com, a saída de pklogin_finder é CORP\mmajor.

nota

Se você receber a mensagem "ERROR:pam_pkcs11.c:504: verify_certificate() failed", essa mensagem indica que pam_pkcs11 encontrou um certificado no cartão inteligente que corresponde aos critérios do nome de usuário, mas que não está vinculado a um certificado de CA raiz reconhecido pela máquina. Quando isso acontece, pam_pkcs11 gera a mensagem acima e, em seguida, tenta o próximo certificado. Isso permite a autenticação somente se encontrar um certificado que corresponda ao nome de usuário e esteja encadeado a um certificado de CA raiz reconhecido.

Para solucionar problemas de configuração pam_krb5, você pode invocar manualmente kinit no modo de depuração com o seguinte comando:

KRB5_TRACE=/dev/stdout kinit -V

Esse comando deve obter com sucesso um tíquete de concessão de tíquetes (TGT) Kerberos. Se isso falhar, tente adicionar explicitamente o nome de entidade principal correto do Kerberos ao comando. Por exemplo, para o usuário mmajor no domínio corp.example.com, use este comando:

KRB5_TRACE=/dev/stdout kinit -V mmajor

Se esse comando for bem-sucedido, o problema provavelmente está no mapeamento do nome de WorkSpace usuário para o nome principal do Kerberos. Verifique a seção [appdefaults]/pam/mappings no arquivo /etc/krb5.conf.

Se esse comando não for bem-sucedido, mas um comando kinit baseado em senha tiver sucesso, verifique as configurações relacionadas a pkinit_ no arquivo /etc/krb5.conf. Por exemplo, se o cartão inteligente possuir mais de um certificado, talvez seja necessário fazer alterações no pkinit_cert_match.