Utilizar tarjetas inteligentes para la autenticación en WorkSpaces Personal - Amazon WorkSpaces

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Utilizar tarjetas inteligentes para la autenticación en WorkSpaces Personal

Los paquetes de Windows y Linux WorkSpaces on WorkSpaces Streaming Protocol (WSP) permiten el uso de tarjetas inteligentes Common Access Card (CAC) y Personal Identity Verification (PIV) para la autenticación.

Amazon WorkSpaces admite el uso de tarjetas inteligentes tanto para la autenticación previa a la sesión como para la autenticación durante la sesión. La autenticación previa a la sesión se refiere a la autenticación con tarjeta inteligente que se realiza mientras los usuarios inician sesión en su cuenta. WorkSpaces La autenticación durante la sesión se refiere al proceso que se realiza después de iniciar sesión.

Por ejemplo, los usuarios pueden usar tarjetas inteligentes para la autenticación durante la sesión cuando trabaja con navegadores web y aplicaciones. También pueden usar tarjetas inteligentes para aquellas acciones que requieran permisos administrativos. Por ejemplo, si el usuario tiene permisos administrativos en su sistema Linux WorkSpace, puede usar tarjetas inteligentes para autenticarse cuando ejecuta comandos sudo y sudo -i ejecuta.

Requisitos

  • Se requiere un directorio de Active Directory Connector (Conector AD) para la autenticación previa a la sesión. Conector AD utiliza la autenticación Mutual Transport Layer Security (mutual TLS) basada en certificados para autenticar a los usuarios en Active Directory mediante certificados de tarjetas inteligentes basados en hardware o software. Para obtener más información acerca de cómo configurar el Conector AD y el directorio local, consulte Configuración del directorio:.

  • Para usar una tarjeta inteligente con Windows o Linux WorkSpace, el usuario debe usar el cliente Amazon WorkSpaces Windows versión 3.1.1 o posterior o el cliente WorkSpaces macOS versión 3.1.5 o posterior. Para obtener más información sobre el uso de tarjetas inteligentes con los clientes de Windows y macOS, consulte Smart Card Support en la Guía del WorkSpaces usuario de Amazon.

  • El CA raíz y los certificados de tarjeta inteligente deben cumplir ciertos requisitos. Para obtener más información, consulte Habilitar la autenticación mTLS en Conector AD para usarla con tarjetas inteligentes en la Guía de administración de AWS Directory Service y Requisitos de certificados en la documentación de Microsoft.

    Además de estos requisitos, los certificados de usuario empleados para la autenticación con tarjetas inteligentes en Amazon WorkSpaces deben incluir los siguientes atributos:

    • El nombre del usuario de AD userPrincipalName (UPN) en el campo subjectAltName (SAN) del certificado. Recomendamos emitir certificados de tarjeta inteligente para el UPN predeterminado del usuario.

    • El atributo de uso extendido de claves (EKU) de autenticación de cliente (1.3.6.1.5.5.7.3.2).

    • El atributo EKU de inicio de sesión con tarjeta inteligente (1.3.6.1.4.1.311.20.2.2).

  • Para la autenticación previa a la sesión, se requiere el Protocolo de estado de certificados en línea (OCSP) para verificar la revocación de certificados. Para la autenticación durante la sesión, se recomienda el OCSP, pero no es obligatorio.

Limitaciones

  • Actualmente, solo la aplicación cliente WorkSpaces Windows versión 3.1.1 o posterior y la aplicación cliente macOS versión 3.1.5 o posterior son compatibles actualmente con la autenticación con tarjeta inteligente.

  • La aplicación cliente de WorkSpaces Windows 3.1.1 o posterior solo admite tarjetas inteligentes cuando el cliente se ejecuta en una versión de 64 bits de Windows.

  • Actualmente, Ubuntu WorkSpaces no admite la autenticación con tarjeta inteligente.

  • Actualmente, solo se admiten los directorios de Conector AD para la autenticación con tarjeta inteligente.

  • La autenticación durante la sesión está disponible en todas las regiones donde el WSP sea compatible. La autenticación previa a la sesión está disponible en las siguientes regiones:

    • Región de Asia-Pacífico (Sídney)

    • Asia Pacífico (Tokio)

    • Región de Europa (Irlanda)

    • AWS GovCloud Región (EE. UU.-Este)

    • AWS GovCloud Región (EE. UU.-Oeste)

    • Región del este de EE. UU. (Norte de Virginia)

    • Región del oeste de EE. UU (Oregón)

  • Para la autenticación durante la sesión y la autenticación previa a la sesión en Linux o Windows WorkSpaces, actualmente solo se permite una tarjeta inteligente a la vez.

  • Para la autenticación previa a la sesión, actualmente no se permite habilitar la autenticación con tarjeta inteligente y la autenticación de inicio de sesión en el mismo directorio.

  • Por el momento, solo se admiten las tarjetas CAC y PIV. Es posible que haya otros tipos de tarjetas inteligentes basadas en hardware o software que también funcionen, pero su uso no se ha probado de forma exhaustiva con WSP.

Configuración del directorio:

Para habilitar la autenticación con tarjeta inteligente, debe configurar el directorio de Conector AD y el directorio en las instalaciones de la siguiente manera.

Configuración del directorio de Conector AD

Antes de empezar, asegúrese de que el directorio de Conector AD se ha configurado tal y como se describe en los requisitos previos de Conector AD en la Guía de administración de AWS Directory Service . En particular, asegúrese de haber abierto los puertos necesarios en el firewall.

Para terminar de configurar el directorio de Conector AD, siga las instrucciones de Habilitar la autenticación mTLS en Conector AD para usarla con tarjetas inteligentes en la Guía de administración de AWS Directory Service .

nota

La autenticación con tarjeta inteligente requiere la delegación restringida de Kerberos (KCD) para funcionar correctamente. KCD requiere que la parte del nombre de usuario de la cuenta de servicio AD Connector coincida con el AccountName SaM del mismo usuario. Un SaM no AccountName puede superar los 20 caracteres.

Configuración de directorios en las instalaciones

Además de configurar su directorio de Conector AD, también debe asegurarse de que los certificados que se emiten a los controladores de dominio para su directorio en las instalaciones tengan configurado el uso de clave extendida (EKU) de «Autenticación de KDC». Para ello, utilice la plantilla de certificado de autenticación Kerberos predeterminada de Active Directory Domain Services (AD DS). No utilice una plantilla de certificado de controlador de dominio ni una plantilla de certificado de autenticación de controlador de dominio porque esas plantillas no contienen la configuración necesaria para la autenticación con tarjetas inteligentes.

Habilite las tarjetas inteligentes para Windows WorkSpaces

Para obtener instrucciones generales sobre cómo habilitar la autenticación con tarjeta inteligente en Windows, consulte Directrices para habilitar el inicio de sesión de tarjeta inteligente con entidades de certificación de terceros en la documentación de Microsoft.

Para detectar la pantalla de bloqueo de Windows y desconectar la sesión

Para permitir a los usuarios desbloquear las ventanas WorkSpaces que están habilitadas para la autenticación previa a la sesión con tarjetas inteligentes cuando la pantalla está bloqueada, puede habilitar la detección de la pantalla de bloqueo de Windows en las sesiones de los usuarios. Cuando se detecta la pantalla de bloqueo de Windows, la WorkSpace sesión se desconecta y el usuario puede volver a conectarse desde el WorkSpaces cliente mediante su tarjeta inteligente.

Puede habilitar la desconexión de la sesión cuando se detecte la pantalla de bloqueo de Windows mediante la configuración de la política de grupo. Para obtener más información, consulte Active o desactive la sesión de desconexión mediante el bloqueo de pantalla para WSP.

Para habilitar la autenticación durante o antes de la sesión

De forma predeterminada, Windows WorkSpaces no admite el uso de tarjetas inteligentes para la autenticación previa o durante la sesión. Si es necesario, puede habilitar la autenticación durante y antes de la sesión para Windows WorkSpaces mediante la configuración de la política de grupo. Para obtener más información, consulte Activa o desactiva el redireccionamiento de tarjetas inteligentes para WSP.

Para usar la autenticación previa a la sesión, además de actualizar la configuración de la política de grupo, también debe habilitar la autenticación previa a la sesión a través de la configuración del directorio de Conector AD. Para obtener más información, siga las instrucciones de Habilitar la autenticación mTLS en Conector AD para usarla con tarjetas inteligentes en la Guía de administración de AWS Directory Service .

Para permitir a los usuarios utilizar tarjetas inteligentes en un navegador

Si los usuarios utilizan Chrome como navegador, no es necesaria ninguna configuración especial para utilizar tarjetas inteligentes.

Si los usuarios utilizan Firefox como navegador, puede permitir que usen tarjetas inteligentes en Firefox mediante la política de grupo. Puedes usar estas plantillas de políticas de grupo de Firefox en. GitHub

Por ejemplo, puede instalar la versión de 64 bits de OpenSC para Windows para que sea compatible con PKCS #11 y, a continuación, usar la siguiente configuración de política de grupo, donde NAME_OF_DEVICE es el valor que desee usar para identificar PKCS #11, por ejemplo OpenSC, y donde PATH_TO_LIBRARY_FOR_DEVICE es la ruta al módulo PKCS #11. Esta ruta debe apuntar a una biblioteca con la extensión.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
sugerencia

Si utiliza OpenSC, también puedes cargar el módulo pkcs11 de OpenSC en Firefox ejecutando el programa. pkcs11-register.exe. Para ejecutar este programa, haga doble clic en C:\Program Files\OpenSC Project\OpenSC\tools\pkcs11-register.exe en el archivo o abra una ventana de línea de comandos y ejecute el siguiente comando:

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

Para verificar que el módulo pkcs11 de OpenSC se cargó en Firefox, haga lo siguiente:

  1. Si Firefox ya se está ejecutando, debe cerrarlo.

  2. Abra Firefox. Seleccione el botón de menú Firefox menu button , en la esquina superior derecha, y seleccione Opciones.

  3. En la página about:preferences, en el panel de navegación de la izquierda, seleccione Privacidad y seguridad.

  4. En Certificados, seleccione Dispositivos de seguridad.

  5. En el cuadro de diálogo del Administrador de dispositivos, debería aparecer OpenSC smartcard framework (0.21) en el menú de navegación izquierdo. Al seleccionarlo, tendrá los siguientes valores:

    Módulo: OpenSC smartcard framework (0.21)

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

Resolución de problemas

Para obtener información sobre la solución de problemas de tarjetas inteligentes, consulte Problemas de certificado y configuración en la documentación de Microsoft.

Algunos errores comunes que pueden causar problemas:

  • Asignación incorrecta de slots a los certificados.

  • Tener varios certificados en la tarjeta inteligente que puedan coincidir con los del usuario. Los certificados se comparan según los siguientes criterios:

    • La CA raíz del certificado.

    • Los campos <EKU> y <KU> del certificado.

    • El UPN del asunto del certificado.

  • Tener varios certificados que incluyan <EKU>msScLogin en su clave el uso.

En general, es mejor tener un solo certificado para la autenticación con tarjeta inteligente que esté asignado al primer slot de la tarjeta inteligente.

Las herramientas para administrar los certificados y las claves de la tarjeta inteligente (como quitar o reasignar los certificados y las claves) pueden ser específicas del fabricante. Para obtener más información, consulte la documentación facilitada por el fabricante de sus tarjetas inteligentes.

Habilita las tarjetas inteligentes para Linux WorkSpaces

nota

Actualmente, Linux WorkSpaces en WSP tiene las siguientes limitaciones:

  • No se admiten el portapapeles, la entrada de audio, la entrada de vídeo ni el redireccionamiento de zona horaria.

  • No se admiten varios monitores.

  • Debe usar la aplicación cliente de WorkSpaces Windows para conectarse a Linux WorkSpaces en WSP.

Para habilitar el uso de tarjetas inteligentes en Linux WorkSpaces, debe incluir un archivo de certificado de CA raíz en formato PEM en la WorkSpace imagen.

Para obtener el certificado de CA raíz

Puede obtener su certificado de CA raíz de varias maneras:

  • Puede utilizar un certificado de CA raíz gestionado por una entidad emisora de certificados externa.

  • Puede exportar su propio certificado CA raíz utilizando el sitio web de registro, ya sea http://ip_address/certsrv o http://fqdn/certsrv, donde ip_address y fqdn son la dirección IP y el nombre de dominio completo (FQDN) del servidor de CA de certificación raíz. Para obtener más información sobre el uso del sitio web de registro, consulte Exportación del certificado de entidad de certificación raíz en la documentación de Microsoft.

  • Puede usar el siguiente procedimiento para exportar el certificado de CA raíz desde un servidor de certificación de CA raíz que ejecute Active Directory Certificate Services (AD CS). Para obtener información sobre la instalación de AD CS, consulte Instalar la entidad de certificación en la documentación de Microsoft.

    1. Inicie sesión en el servidor de CA raíz con una cuenta de administrador.

    2. En el menú Inicio de Windows, abra una ventana de línea de comandos (Inicio > Sistema Windows > Símbolo del sistema).

    3. Utilice el siguiente comando para exportar el certificado de CA raíz a un nuevo archivo, donde rootca.cer aparece el nombre del nuevo archivo:

      certutil -ca.cert rootca.cer

      Para obtener más información acerca de cómo ejecutar certutil, consulte certutil en la documentación de Microsoft.

    4. Utilice el siguiente comando OpenSSL para convertir el certificado de CA raíz exportado del formato DER al formato PEM, donde rootca es el nombre del certificado. Para obtener más información acerca de OpenSSL, consulte http://www.openssl.org/.

      openssl x509 -inform der -in rootca.cer -out /tmp/rootca.pem
Para añadir el certificado de CA raíz a su Linux WorkSpaces

Para ayudarle a habilitar las tarjetas inteligentes, hemos añadido el script enable_smartcard a nuestros paquetes Amazon Linux WSP. Este script realiza las siguientes acciones:

  • Importa su certificado de CA raíz a la base de datos de Network Security Services (NSS).

  • Instala el módulo pam_pkcs11 para la autenticación del módulo de autenticación conectable (PAM).

  • Realiza una configuración predeterminada, que incluye la activación pkinit durante el WorkSpace aprovisionamiento.

El siguiente procedimiento explica cómo usar el enable_smartcard script para agregar el certificado de CA raíz a su Linux WorkSpaces y habilitar las tarjetas inteligentes para su Linux. WorkSpaces

  1. Cree un nuevo Linux WorkSpace con el protocolo WSP activado. Al iniciar el WorkSpace en la WorkSpaces consola de Amazon, en la página Select Bundles, asegúrese de seleccionar WSP para el protocolo y, a continuación, seleccione uno de los paquetes públicos de Amazon Linux 2.

  2. En la nueva versión WorkSpace, ejecute el siguiente comando como root, donde pem-path está la ruta al archivo de certificado raíz de CA en formato PEM.

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

    Linux WorkSpaces supone que los certificados de las tarjetas inteligentes se emiten para el nombre principal de usuario (UPN) predeterminado del usuario, por ejemplo, si domain es un nombre de dominio completo (FQDN). sAMAccountName@domain

    Si quiere utilizar sufijos UPN alternativos, consulte run /usr/lib/skylight/enable_smartcard --help para obtener más información. La asignación de sufijos UPN alternativos es exclusiva de cada usuario. Por lo tanto, ese mapeo debe realizarse de forma individual en el de cada usuario. WorkSpace

  3. (Opcional) De forma predeterminada, todos los servicios están habilitados para usar la autenticación con tarjeta inteligente en Linux WorkSpaces. Para limitar la autenticación con tarjetas inteligentes solo a servicios específicos, debe editar /etc/pam.d/system-auth. Elimine los comentarios de la línea auth de pam_succeed_if.so y edite la lista de servicios según sea necesario.

    Una vez eliminados los comentarios de la línea auth, para permitir que un servicio utilice la autenticación con tarjetas inteligentes, debe agregarlo a la lista. Para hacer que un servicio utilice únicamente la autenticación mediante contraseña, debe quitarlo de la lista.

  4. Realice cualquier personalización adicional en el WorkSpace. Por ejemplo, es posible que desee añadir una política para todo el sistema que permita a los usuarios usar tarjetas inteligentes en Firefox. (Los usuarios de Chrome deben habilitar ellos mismos las tarjetas inteligentes en sus clientes. Para obtener más información, consulte Smart Card Support en la Guía del WorkSpaces usuario de Amazon.)

  5. Cree una WorkSpace imagen y un paquete personalizados a partir de WorkSpace.

  6. Utilice el nuevo paquete personalizado para lanzarlo WorkSpaces para sus usuarios.

Para permitir a los usuarios utilizar tarjetas inteligentes en Firefox

Puedes permitir que tus usuarios usen tarjetas inteligentes en Firefox añadiendo una SecurityDevices política a tu WorkSpace imagen de Linux. Para obtener más información sobre cómo añadir políticas para todo el sistema a Firefox, consulta las plantillas de políticas de Mozilla en. GitHub

  1. En el archivo WorkSpace que estés usando para crear la WorkSpace imagen, crea un nuevo archivo con el nombre policies.json in. /usr/lib64/firefox/distribution/

  2. En el archivo JSON, agrega la siguiente SecurityDevices política, donde NAME_OF_DEVICE está el valor que quieras usar para identificar el pkcs módulo. Por ejemplo, es posible que desee usar un valor como "OpenSC":

    { "policies": { "SecurityDevices": { "NAME_OF_DEVICE": "/usr/lib64/opensc-pkcs11.so" } } }
Resolución de problemas

Para solucionar problemas, recomendamos agregar la función pkcs11-tools. Le permite realizar las siguientes acciones:

  • Enumerar cada tarjeta inteligente.

  • Enumerar los slots de cada tarjeta inteligente.

  • Enumerar los certificados de cada tarjeta inteligente.

Algunos errores comunes que pueden causar problemas:

  • Asignación incorrecta de slots a los certificados.

  • Tener varios certificados en la tarjeta inteligente que puedan coincidir con los del usuario. Los certificados se comparan según los siguientes criterios:

    • La CA raíz del certificado.

    • Los campos <EKU> y <KU> del certificado.

    • El UPN del asunto del certificado.

  • Tener varios certificados que incluyan <EKU>msScLogin en su clave el uso.

En general, es mejor tener un solo certificado para la autenticación con tarjeta inteligente que esté asignado al primer slot de la tarjeta inteligente.

Las herramientas para administrar los certificados y las claves de la tarjeta inteligente (como quitar o reasignar los certificados y las claves) pueden ser específicas del fabricante. Otras herramientas que puede usar para trabajar con tarjetas inteligentes son:

  • opensc-explorer

  • opensc-tool

  • pkcs11_inspect

  • pkcs11_listcerts

  • pkcs15-tool

Para habilitar el registro de depuración

Para solucionar los problemas de configuración de pam_pkcs11 y pam-krb5, puede activar el registro de depuración.

  1. En el archivo /etc/pam.d/system-auth-ac, edite la acción auth y cambie el parámetro nodebug de pam_pksc11.so a debug.

  2. En el archivo /etc/pam_pkcs11/pam_pkcs11.conf, cambie debug = false; por debug = true;. La opción debug se aplica por separado a cada módulo del mapeador, por lo que puede que tenga que cambiarla directamente en la sección pam_pkcs11 y en la sección del mapeador correspondiente (de forma predeterminada, mapper generic)

  3. En el archivo /etc/pam.d/system-auth-ac, edite la acción auth y cambie el parámetro debug o debug_sensitive a pam_krb5.so.

Una vez activado el registro de depuración, el sistema imprime los mensajes de depuración de pam_pkcs11 directamente en el terminal activo. Los mensajes de pam_krb5 se registran en /var/log/secure.

Para comprobar el nombre de usuario al que se asigna un certificado de tarjeta inteligente, utilice el siguiente comando pklogin_finder:

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

Cuando se le solicite, escriba el PIN de la tarjeta inteligente. pklogin_finder muestra en stdout el nombre de usuario que figura en el certificado de la tarjeta inteligente del formulario NETBIOS\username. Este nombre de usuario debe coincidir con el WorkSpace nombre de usuario.

En Active Directory Domain Services (AD DS), el nombre de dominio de NetBIOS es el nombre de dominio anterior a Windows 2000. Normalmente (pero no siempre), el nombre de dominio de NetBIOS es el subdominio del nombre de dominio del sistema de nombres de dominio (DNS). Por ejemplo, si el nombre de dominio de DNS es example.com, normalmente el dominio de NetBIOS será EXAMPLE. Si el nombre de dominio de DNS es corp.example.com, normalmente el dominio de NetBIOS será CORP.

Por ejemplo, para el usuario mmajor del dominio corp.example.com, el resultado de pklogin_finder es CORP\mmajor.

nota

Si recibe el mensaje "ERROR:pam_pkcs11.c:504: verify_certificate() failed", significa que pam_pkcs11 ha encontrado un certificado en la tarjeta inteligente que coincide con los criterios del nombre de usuario, pero que no está vinculado a un certificado de CA raíz reconocido por la máquina. Si esto ocurre, pam_pkcs11 muestra el mensaje anterior y, a continuación, prueba con el siguiente certificado. Solo permite la autenticación si encuentra un certificado que coincide con el nombre de usuario y se vincula a un certificado de CA raíz reconocido.

Para solucionar los problemas de la configuración de pam_krb5, puede invocar kinit manualmente en el modo de depuración con el siguiente comando:

KRB5_TRACE=/dev/stdout kinit -V

Este comando debería obtener correctamente un ticket de concesión de Kerberos (TGT). Si se produce un error, intente añadir el nombre principal correcto de Kerberos de forma explícita al comando. Por ejemplo, para el usuario mmajor del dominio corp.example.com, utilice este comando:

KRB5_TRACE=/dev/stdout kinit -V mmajor

Si este comando se ejecuta correctamente, lo más probable es que el problema se deba a la asignación del WorkSpace nombre de usuario al nombre principal de Kerberos. Consulte la sección [appdefaults]/pam/mappings del archivo /etc/krb5.conf.

Si este comando no funciona, pero sí un comando kinit basado en contraseña, compruebe las configuraciones relacionadas con pkinit_ en el archivo /etc/krb5.conf. Por ejemplo, si la tarjeta inteligente contiene más de un certificado, es posible que deba realizar cambios en pkinit_cert_match.