Use cartões inteligentes para autenticação no WorkSpaces Personal - 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á.

Use cartões inteligentes para autenticação no WorkSpaces Personal

Os pacotes Windows e Linux WorkSpaces em DCV 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 tanto para autenticação pré-sessão quanto para autenticação em 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, o cliente WorkSpaces macOS versão 3.1.5 ou posterior ou o cliente Ubuntu 22.04 versão 2024.1 WorkSpaces ou posterior (a autenticação por cartão inteligente não é suportada com o cliente Ubuntu 20.04). WorkSpaces 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.

      nota

      O Amazon Linux 2 WorkSpaces depende do UPN para certificate-to-user mapeamento. Linux mais recentes WorkSpaces, como Ubuntu, Rocky Linux e Red Hat Enterprise Linux WorkSpaces, oferecem suporte a métodos de mapeamento mais seguros.

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

    nota

    Ubuntu WorkSpaces, Rocky Linux WorkSpaces e Red Hat Enterprise Linux WorkSpaces exigem OCSP para autenticação em sessão por padrão, e a verificação de OCSP nesses sistemas exige que o respondente OCSP tenha a extensão NONCE habilitada para evitar ataques de repetição. Para desativar a extensão NONCE, a verificação OCSP na sessão deve ser totalmente desativada. Para desativar a verificação OCSP no Ubuntu, Rocky Linux e Red Hat Enterprise Linux WorkSpaces, crie um novo arquivo /etc/sssd/conf.d/disable-ocsp.conf com o seguinte conteúdo:

    [sssd] certificate_verification = no_ocsp

Limitações

  • Somente o aplicativo cliente WorkSpaces Windows versão 3.1.1 ou posterior, o aplicativo cliente WorkSpaces macOS versão 3.1.5 ou posterior WorkSpaces e o aplicativo cliente Ubuntu 22.04 versão 2024.1 ou posterior são atualmente suportados para autenticação por cartão inteligente. WorkSpaces O aplicativo cliente Ubuntu 20.04 ou anterior não é suportado 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.

  • 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 DCV é compatível. A autenticação pré-sessão está disponível nas seguintes regiões:

    • Á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 (Norte 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. O uso simultâneo de vários cartões pode funcionar, mas não é suportado.

  • 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 DCV.

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 AMAccount nome s do mesmo usuário. O AMAccount nome A s não pode exceder 20 caracteres.

Configuração de diretórios on-premises

Além de configurar seu diretório do AD Connector:

  • Certifique-se de que os certificados emitidos para os controladores de domínio do seu diretório local tenham o uso estendido da chave (EKU) “Autenticação KDC” definido. 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.

  • Para Linux WorkSpaces, certifique-se de que o respondente OCSP para a CA que emite certificados de cartão inteligente tenha a extensão NONCE ativada. Se não puder ser habilitada, a verificação OCSP em sessão deverá ser desativada no Ubuntu, Rocky Linux e Red Hat Enterprise Linux. WorkSpaces Para desativar a verificação OCSP, crie um novo arquivo /etc/sssd/conf.d/disable-ocsp.conf com o seguinte conteúdo:

    [sssd] certificate_verification = no_ocsp

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 obter mais informações, consulte Configurar a desconexão da sessão ao bloquear a tela para DCV.

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 obter mais informações, consulte Configurar o redirecionamento de cartão inteligente para DCV.

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.

Habilite cartões inteligentes para Ubuntu, Rocky Linux e Red Hat Enterprise Linux WorkSpaces

Para permitir o uso de cartões inteligentes no Ubuntu, Rocky Linux e Red Hat Enterprise Linux WorkSpaces, você precisa incluir a raiz e todos os certificados CA intermediários na WorkSpace imagem para todos os cartões inteligentes CAs emissores e para todos os certificados de controlador de domínio CAs emissores.

Para obter seu certificado CA: Você pode obter seu certificado CA de várias maneiras:

  • Você pode usar um pacote de certificados CA de uma autoridade de certificação terceirizada.

  • Você pode exportar seu próprio certificado de CA usando o site de inscrição na Web, que é http://ip_address/certsrv ouhttp://fqdn/certsrv, onde ip_address e onde fqdn estão o endereço IP e o nome de domínio totalmente qualificado (FQDN) do servidor CA. 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 CA de um servidor CA 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 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 comando a seguir para exportar o certificado CA para um novo arquivo, onde rootca.cer está o nome do novo 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 CA exportado do formato DER para o formato PEM, rootca onde está 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 seus certificados CA ao seu Linux WorkSpaces

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

  • Importa seus certificados CA em um pacote PEM privado que define a raiz confiável para SSSD no Linux). WorkSpaces

  • Atualiza a configuração SSSD, PAM e Kerberos, o que inclui a habilitação PKINIT (autenticação Kerberos usando certificado em vez de senha) durante o provisionamento. WorkSpace

O procedimento a seguir explica como usar o enable_smartcard script para importar seus certificados CA e habilitar a autenticação por cartão inteligente para seu Linux WorkSpaces.

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

  2. No recém-criado WorkSpace, certifique-se de que o /etc/skylight.conf arquivo tenha uma pam_smartcard = true linha na [features] seção:

    [features] pam_smartcard = true
    nota

    Se nem todos os seus usuários ainda estiverem configurados para usar o mapeamento forte de altSecurityIdentities certificados, você também pode adicionar uma smartcard_weak_mapping = true linha à mesma [features] seção /etc/skylight.conf para oferecer suporte aos métodos de mapeamento antigos, mas recomendamos migrar esses usuários para usar métodos de mapeamento robustos o mais rápido possível.

  3. No WorkSpace, execute o comando a seguir como root, ondepem-path1, etc.pem-path2, estão os caminhos para os arquivos, cada um contendo um dos certificados CA na cadeia de confiança dos certificados do cartão inteligente e do controlador de domínio. Todos esses arquivos devem estar no formato PEM e conter um certificado por arquivo. Padrões globais podem ser usados (por exemplo,*.pem)

    /usr/lib/skylight/enable_smartcard --ca-cert pem-path1 pem-path2 pem-path3 ...
    nota

    Certifique-se de que pacotes de dependência adicionais estejam instalados no WorkSpace antes de executar o comando acima, usando os seguintes comandos como root.

    Para Rocky Linux e Red Hat Enterprise Linux WorkSpaces:

    dnf install sssd-dbus libsss_simpleifp sssd-tools krb5-pkinit opensc

    Para Ubuntu WorkSpaces:

    apt install krb5-pkinit opensc
  4. Execute qualquer personalização adicional 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.

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

Como permitir que os usuários usem cartões inteligentes no Firefox
  1. No WorkSpace que você está usando para criar sua WorkSpace imagem, crie um novo arquivo chamado policies.json inPREFIX/firefox/distribution/, que PREFIX está nos sistemas baseados /usr/lib64 no Fedora (Amazon Linux 2, Red Hat Enterprise Linux e Rocky Linux WorkSpaces) e nos sistemas /usr/lib baseados no Debian (Ubuntu). WorkSpaces

  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": "PREFIX/opensc-pkcs11.so" } } }
Solução de problemas

A solução de problemas da autenticação por cartão inteligente é mais fácil quando a pré-sessão é configurada para usar a autenticação por senha - durante o provisionamento da sessão, o Linux alterna WorkSpaces automaticamente a preferência do modo de autenticação no host para baseado em senha ou baseado em cartão inteligente, dependendo do método de autenticação pré-sessão usado. Se houver algum problema com a autenticação por cartão inteligente, desconectar e reconectar usando a autenticação de pré-sessão por senha redefinirá o espaço de trabalho para a autenticação por senha no host. Para alternar manualmente a WorkSpaces instância do Linux para a autenticação por cartão inteligente, execute /usr/lib/skylight/resume_smartcard o comando como root.

O Linux WorkSpaces usa o software OpenSC para trabalhar com cartões inteligentes. Esse software vem com ferramentas como pkcs11-tool e pkcs15-tool que podem ser úteis na solução de problemas com cartões inteligentes. Essas ferramentas podem ser usadas para inspecionar leitores de cartões inteligentes, tokens individuais e slots ou certificados PIV em cada token de cartão inteligente.

Uma ferramenta de openssl linha de comando pode ser útil na solução de problemas com cadeias de confiança, respondedores OCSP ou sinalizadores ausentes KUs/EKUs (uso de usage/extended chave chave), especialmente em combinação com a capacidade pkcs15-tool de extrair certificados públicos de um cartão inteligente.

Opções comuns de solução de problemas:

  • Extraia o primeiro certificado (geralmente no slot PIV 9A) do cartão inteligente e salve-o como: card-cert.pem pkcs15-tool --read-certificate 1 > card-cert.pem

  • Valide o certificado extraído em relação ao banco de dados confiável no: WorkSpace openssl verify -verbose -CAfile /etc/sssd/pki/sssd_auth_ca_db.pem -cert card-cert.pem

  • Obtenha o URL OCSP do certificado extraído do cartão inteligente: openssl x509 -noout -ocsp_uri -in card-cert.pem

  • Verifique se a resposta do OCSP indica que o certificado é válido e inclui NONCE:openssl ocsp -issuer /etc/sssd/pki/sssd_auth_ca_db.pem -CAfile /etc/sssd/pki/sssd_auth_ca_db.pem -cert card-cert.pem -text -url OCSP_URI, onde OCSP_URI está a URL do OCSP acima.

  • Verifique se o certificado do controlador de domínio é considerado confiável:openssl s_client -connect DC_HOSTNAME:636 -showcerts | openssl verify -verbose -CAfile /etc/sssd/pki/sssd_auth_ca_db.pem, onde DC_HOSTNAME está o nome do host de um dos controladores de domínio em seu domínio do Active Directory.

  • Confirme se o certificado do controlador de domínio tem a autenticação KDC EKU (uso estendido da chave) definida:. openssl s_client -connect DC_HOSTNAME:636 -showcerts | openssl x509 -noout -text

  • Tente usar o PKINIT manual para ver se há algum código de erro que possa ser usado para reduzir o problema:KRB5_TRACE=/dev/stdout kinit -X X509_user_identity=PKCS11:opensc-pkcs11.so:certid=01 -V, onde 01 está o número de um dos quatro slots PIV principais na placa - 01 para9A, 02 para9C, etc. A maioria dos cartões terá um certificado destinado à autenticação do usuário no slot 9A.

  • Verifique se o sistema é capaz de mapear o certificado do cartão inteligente para um usuário do AD (execute como root):dbus-send --print-reply --system --dest=org.freedesktop.sssd.infopipe /org/freedesktop/sssd/infopipe/Users org.freedesktop.sssd.infopipe.Users.FindByCertificate string:"$(<card-cert.pem)". Isso pode ser combinado com a ativação do registro de depuração para SSSD.

Os problemas mais comuns conhecidos:

  • Cadeia de confiança incompleta para o certificado de cartão inteligente - ao importar certificados usando enable_smartcard script, a lista completa de todos os certificados CA raiz e intermediários deve ser fornecida. A enable_smartcard ferramenta mostrará um erro se nem todos os certificados importados forem confiáveis devido à falta do certificado CA raiz da lista, mas não poderá detectar quando falta uma cadeia de confiança inteira ou o certificado CA intermediário mais interno em uma das cadeias de confiança. Nessa situação, ele importará certificados sem erros, mas um certificado de cartão inteligente ou um certificado de controlador de domínio ainda podem ser considerados não confiáveis.

  • Cadeia de confiança ausente para os certificados do controlador de domínio - se os certificados do controlador de domínio forem emitidos por uma CA diferente dos cartões inteligentes (por exemplo, no caso do Cartão de Acesso Comum (CAC)), essa cadeia de confiança da CA precisará ser importada junto com o cartão inteligente que emite os certificados da CA.

  • Falta de suporte à extensão NONCE no respondente OCSP - O Linux WorkSpaces exige que o respondente OCSP do emissor do cartão inteligente tenha a extensão NONCE ativada. Se não puder ser ativada, a validação do OCSP deverá ser completamente desativada.

  • Os certificados do controlador de domínio não têm KDC Authentication EKU (OID 1.3.6.1.5.2.3.1) - para que a autenticação por cartão inteligente funcione, os certificados do controlador de domínio precisam ser reemitidos para incluir o EKU de autenticação KDC.

  • Os certificados do controlador de domínio expiraram - para que a autenticação do cartão inteligente funcione, os certificados do controlador de domínio devem permanecer up-to-date.

  • Os certificados de cartão inteligente são mapeados para usuários no AD usando métodos de mapeamento fracos - tradicionalmente, o campo UPN no subjectAltName atributo era usado para mapear um certificado para um usuário no AD, esperando-se que userPrincipalName correspondesse ao atributo. Isso não é mais considerado um método de mapeamento seguro e não é permitido por padrão. É possível reativá-lo passando o --allow-weak-mapping argumento para o enable_smartcard comando e adicionando uma smartcard_weak_mapping = true linha à [features] seção no /etc/skylight.conf arquivo, mas uma solução melhor é usar um dos métodos de mapeamento fortes. Consulte a documentação de vinculação de contas para obter mais detalhes.

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
  • Adicione uma debug_level = LEVEL linha /etc/sssd/sssd.conf para cada seção individual, onde LEVEL está o nível de verbosidade desejado, de 1 a 10. Os registros de cada seção correspondente podem então ser encontrados no /var/log/sssd/ diretório. Consulte a documentação do SSSD aqui e aqui para obter mais detalhes.

Habilite cartões inteligentes para o Amazon Linux 2 WorkSpaces

nota

Atualmente, o Amazon Linux 2 WorkSpaces em DCV 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.

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

Para obter seu certificado de CA raiz: Você pode obter seu certificado de CA raiz de várias maneiras:

  • 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 CA raiz exportado do formato DER para o formato PEM, rootca onde está 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 Amazon Linux 2 WorkSpaces

Para ajudá-lo a habilitar cartões inteligentes, adicionamos o script enable_smartcard aos nossos pacotes Amazon Linux DCV. 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 Amazon Linux 2 WorkSpaces e habilitar cartões inteligentes para o Amazon Linux 2 WorkSpaces.

  1. Crie um novo Amazon Linux 2 WorkSpace com o protocolo DCV ativado. Ao iniciar o WorkSpace no WorkSpaces console da Amazon, na página Selecionar pacotes, certifique-se de selecionar DCV 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 Amazon Linux 2 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 Amazon Linux 2 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.

Você pode permitir que seus usuários usem cartões inteligentes no Firefox adicionando uma SecurityDevices política à sua WorkSpace imagem do Amazon Linux 2. 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

Como permitir que os usuários usem cartões inteligentes no Firefox
  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 pkcs11-tools utilitário. 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 habilitar 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.