Utilisation de cartes à puce pour l'authentification - Amazon WorkSpaces

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de cartes à puce pour l'authentification

Les offres Windows et Linux WorkSpaces on WorkSpaces Streaming Protocol (WSP) permettent l'utilisation de cartes à puce Common Access Card (CAC) et de Personal Identity Verification (PIV) pour l'authentification.

Amazon WorkSpaces prend en charge l'utilisation de cartes à puce à la fois pour l'authentification pré-session et pour l'authentification en cours de session. L'authentification de pré-session fait référence à l'authentification par carte à puce effectuée pendant que les utilisateurs se connectent à leur WorkSpaces. L'authentification en cours de session fait référence à l'authentification effectuée après la connexion.

Par exemple, les utilisateurs peuvent utiliser des cartes à puce pour l'authentification en cours de session lorsqu'ils travaillent avec des applications et des navigateurs Web. Ou encore, pour les actions nécessitant des autorisations d'administration. Par exemple, si l'utilisateur dispose d'autorisations administratives sur son système Linux WorkSpace, il peut utiliser des cartes à puce pour s'authentifier lors de l'exécution sudo et des sudo -i commandes.

Prérequis

  • Un annuaire Connecteur Active Directory (AD Connector) est requis pour l'authentification pré-session. AD Connector utilise l'authentification mutuelle par certificat (protocole TLS mutuel) pour authentifier les utilisateurs auprès d'Active Directory à l'aide de certificats de carte à puce matériels ou logiciels. Pour plus d'informations sur la façon de configurer AD Connector et l'annuaire sur site, consultez Configuration Active Directory.

  • Pour utiliser une carte à puce sous Windows ou Linux WorkSpace, l'utilisateur doit utiliser le client Amazon WorkSpaces Windows version 3.1.1 ou ultérieure ou le client WorkSpaces macOS version 3.1.5 ou ultérieure. Pour plus d'informations sur l'utilisation des cartes à puce avec les clients Windows et macOS, consultez la section Support des cartes à puce dans le guide de WorkSpaces l'utilisateur Amazon.

  • L'autorité de certification (CA) racine et les certificats de carte à puce doivent répondre à certaines exigences. Pour plus d'informations, consultez Activer l'authentification mTLS dans AD Connector pour une utilisation avec des cartes à puce dans le Guide d'administration AWS Directory Service et Exigences de certificat dans la documentation Microsoft.

    Outre ces exigences, les certificats utilisateur utilisés pour l'authentification par carte à puce auprès d'Amazon WorkSpaces doivent inclure les attributs suivants :

    • Le nom de l'utilisateur AD userPrincipalName (UPN) dans le champ subjectAltName (SAN) du certificat. Nous recommandons d'émettre des certificats de carte à puce pour l'UPN par défaut de l'utilisateur.

    • L'attribut EKU (Extended Key Usage) de l'authentification client (1.3.6.1.5.5.7.3.2).

    • L'attribut EKU d'ouverture de session par carte à puce (1.3.6.1.4.1.311.20.2.2).

  • Pour l'authentification pré-session, l'OCSP (Online Certificate Status Protocol) est requis pour vérifier la révocation des certificats. Pour l'authentification en cours de session, l'OCSP est recommandé, mais pas obligatoire.

Limites

  • Seules l'application cliente WorkSpaces Windows version 3.1.1 ou ultérieure et l'application cliente macOS version 3.1.5 ou ultérieure sont actuellement prises en charge pour l'authentification par carte à puce.

  • L'application cliente WorkSpaces Windows 3.1.1 ou version ultérieure prend en charge les cartes à puce uniquement lorsque le client est exécuté sur une version 64 bits de Windows.

  • Ubuntu WorkSpaces ne prend actuellement pas en charge l'authentification par carte à puce.

  • Seuls les annuaires AD Connector sont aujourd'hui pris en charge pour l'authentification par carte à puce.

  • L'authentification en cours de session est disponible dans toutes les régions où WSP est pris en charge. L'authentification pré-session est disponible dans les régions suivantes :

    • Région Asie-Pacifique (Sydney)

    • Région Asie-Pacifique (Tokyo)

    • Région Europe (Irlande)

    • AWS GovCloud Région (USA Est)

    • AWS GovCloud Région (US-Ouest)

    • Région USA Est (Virginie du Nord)

    • Région USA Ouest (Oregon)

  • Pour l'authentification en cours de session et l'authentification de présession sous Linux ou Windows WorkSpaces, une seule carte à puce est actuellement autorisée à la fois.

  • Pour l'authentification pré-session, l'activation de l'authentification par carte à puce et de l'authentification par connexion dans le même annuaire n'est actuellement pas prise en charge.

  • Seules les cartes CAC et PIV sont prises en charge pour le moment. D'autres types de cartes à puce matérielles ou logicielles peuvent également fonctionner, mais leur utilisation avec le protocole de streaming WorkSpaces (WSP) n'a pas encore été entièrement testée.

Configuration Active Directory

Pour activer l'authentification par carte à puce, vous devez configurer votre annuaire AD Connector et votre annuaire sur site de la façon suivante.

Configuration de l'annuaire AD Connector

Avant de commencer, assurez-vous que l'annuaire AD Connector a été configuré conformément aux instructions de la page Conditions préalables requises pour AD Connector du Guide d'administration AWS Directory Service . En particulier, assurez-vous d'avoir ouvert les ports nécessaires au niveau du pare-feu.

Pour terminer la configuration de votre répertoire AD Connector, suivez les instructions de la page Activer l'authentification mTLS dans AD Connector pour une utilisation avec des cartes à puce dans le Guide d'administration AWS Directory Service .

Note

L'authentification par carte à puce nécessite une délégation Kerberos contrainte (KCD) pour fonctionner correctement. KCD nécessite que la partie nom d'utilisateur du compte de service AD Connector corresponde au sAM AccountName du même utilisateur. Un Sam ne AccountName peut pas dépasser 20 caractères.

Configuration d'annuaire sur site

Outre la configuration de l'annuaire AD Connector, vous devez également vous assurer que l'utilisation étendue des clés (EKU) « Authentication KDC » est définie pour les certificats délivrés aux contrôleurs de domaine de votre annuaire sur site. Pour ce faire, utilisez le modèle de certificat d'authentification Kerberos par défaut des services de domaine Active Directory (AD DS). N'utilisez pas de modèle de certificat de contrôleur de domaine ni de modèle de certificat d'authentification de contrôleur de domaine, car ces modèles ne contiennent pas les paramètres nécessaires à l'authentification par carte à puce.

Activer les cartes à puce pour Windows WorkSpaces

Pour obtenir des instructions générales sur la manière d'activer l'authentification par carte à puce dans Windows, consultez Recommandations pour l'activation de l'ouverture de session de carte à puce auprès d'autorités de certification tierces dans la documentation Microsoft.

Pour détecter l'écran de verrouillage Windows et déconnecter la session

Pour permettre aux utilisateurs de déverrouiller WorkSpaces les fenêtres activées pour l'authentification pré-session par carte à puce lorsque l'écran est verrouillé, vous pouvez activer la détection de l'écran de verrouillage Windows dans les sessions des utilisateurs. Lorsque l'écran de verrouillage Windows est détecté, la WorkSpace session est déconnectée et l'utilisateur peut se reconnecter au WorkSpaces client à l'aide de sa carte à puce.

Vous pouvez utiliser les paramètres de stratégie de groupe pour activer la déconnexion de session lorsque l'écran de verrouillage Windows est détecté dans les instances WorkSpaces Windows. Pour plus d'informations, consultez Activation ou désactivation de la déconnexion de session au verrouillage de l'écran pour WSP.

Pour activer l'authentification pré-session ou en cours de session

Par défaut, Windows WorkSpaces n'est pas activé pour prendre en charge l'utilisation de cartes à puce pour l'authentification avant ou pendant la session. Si nécessaire, vous pouvez activer l'authentification en session et en présession pour Windows à l'aide des WorkSpaces paramètres de stratégie de groupe. Pour de plus amples informations, veuillez consulter Activation ou désactivation de la redirection de carte à puce pour WSP.

Pour utiliser l'authentification pré-session, outre la mise à jour des paramètres de stratégie de groupe, vous devez également activer l'authentification pré-session via les paramètres de l'annuaire AD Connector. Pour plus d'informations, suivez les instructions de la page Activer l'authentification mTLS dans AD Connector pour une utilisation avec des cartes à puce dans le Guide d'administration AWS Directory Service .

Pour permettre aux utilisateurs d'utiliser des cartes à puce dans un navigateur

Si les utilisateurs se servent de Chrome comme navigateur, aucune configuration particulière n'est requise pour l'emploi des cartes à puce.

S'ils se servent de Firefox comme navigateur, vous pouvez leur permettre d'utiliser des cartes à puce dans Firefox via une stratégie de groupe. Vous pouvez utiliser ces modèles de politique de groupe Firefox dans GitHub.

Par exemple, vous pouvez installer la version 64 bits d'OpenSC pour Windows pour prendre en charge PKCS #11, puis utiliser le paramètre de stratégie de groupe suivant, où NAME_OF_DEVICE représente la valeur souhaitée pour identifier PKCS #11 (comme OpenSC), et PATH_TO_LIBRARY_FOR_DEVICE le chemin d'accès au module PKCS #11. Ce chemin doit pointer vers une bibliothèque avec une extension .DLL, comme C:\Program Files\OpenSC Project\OpenSC\pkcs11\onepin-opensc-pkcs11.dll.

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

Si vous utilisez OpenSC, vous pouvez également charger le module pkcs11 OpenSC dans Firefox en exécutant le programme pkcs11-register.exe. Pour exécuter ce programme, double-cliquez sur le fichier C:\Program Files\OpenSC Project\OpenSC\tools\pkcs11-register.exe, ou ouvrez une fenêtre d'invite de commandes et exécutez la commande suivante :

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

Pour vérifier que le module pkcs11 OpenSC a été chargé dans Firefox, procédez comme suit :

  1. Si Firefox est déjà en cours d'exécution, fermez-le.

  2. Ouvrez Firefox. Cliquez sur le bouton de menu 
                                Firefox menu button
                            dans l'angle supérieur droit, puis choisissez Paramètres.

  3. Sur la page about:preferences, dans le volet de navigation de gauche, sélectionnez Vie privée et sécurité.

  4. Sous Certificats, choisissez Périphériques de sécurité.

  5. Dans la boîte de dialogue Gestionnaire de périphériques, le cadre de cartes à puce OpenSC (0.21) doit être disponible dans le volet de navigation de gauche, et afficher les valeurs suivantes quand vous le sélectionnez :

    Module : OpenSC smartcard framework (0.21)

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

Résolution des problèmes

Pour plus d'informations sur la résolution des problèmes liés aux cartes à puce, consultez Problèmes de certificat et de configuration dans la documentation Microsoft.

Voici quelques exemples de problèmes courants :

  • Mappage incorrect des emplacements aux certificats

  • Plusieurs certificats sur la carte à puce qui peuvent correspondre à l'utilisateur Les certificats sont mis en correspondance selon les critères suivants :

    • Autorité de certification racine du certificat

    • Champs <KU> et <EKU> du certificat

    • UPN dans l'objet du certificat

  • Plusieurs certificats avec <EKU>msScLogin dans l'utilisation de la clé

Pour l'authentification par carte à puce, il est en général préférable de n'avoir qu'un seul certificat, mappé au tout premier emplacement de la carte.

Les outils de gestion des certificats et des clés de carte à puce (comme la suppression ou le remappage des certificats et des clés) peuvent être spécifiques au fabricant. Pour plus d'informations, consultez la documentation du fabricant de la carte à puce.

Activer les cartes à puce pour Linux WorkSpaces

Note

Linux WorkSpaces sur WSP présente actuellement les limites suivantes :

  • La redirection du presse-papiers, d'entrée audio, d'entrée vidéo et de fuseau horaire n'est pas prise en charge.

  • L'utilisation de plusieurs moniteurs n'est pas prise en charge.

  • Vous devez utiliser l'application cliente WorkSpaces Windows pour vous connecter à Linux WorkSpaces sur WSP.

Pour permettre l'utilisation de cartes à puce sous Linux WorkSpaces, vous devez inclure un fichier de certificat CA racine au format PEM dans l' WorkSpace image.

Pour obtenir votre certificat de CA racine

Vous pouvez obtenir votre certificat de CA racine de plusieurs façon :

  • Vous pouvez utiliser un certificat de CA racine géré par une autorité de certification tierce.

  • Vous pouvez exporter votre propre certificat de CA racine via le site Web d'inscription, qui est http://ip_address/certsrv ou http://fqdn/certsrv, où ip_address et fqdn représentent l'adresse IP et le nom de domaine complet (FQDN) du serveur de certification de la CA racine. Pour plus d'informations sur l'utilisation du site d'inscription Web, consultez Comment exporter un certificat d'autorité de certification racine dans la documentation Microsoft.

  • Vous pouvez utiliser la procédure suivante pour exporter le certificat de CA racine depuis un serveur de certification de CA racine qui exécute les services de certificats Active Directory (AD CS). Pour plus d'informations sur l'installation d'AD CS, consultez Installer l'autorité de certification dans la documentation Microsoft.

    1. Connectez-vous au serveur de CA racine via un compte administrateur.

    2. Dans le menu Démarrer Windows, ouvrez une fenêtre d'invite de commandes (Démarrer > Système Windows > Invite de commandes).

    3. Utilisez la commande suivante pour exporter le certificat de CA racine vers un nouveau fichier, où rootca.cer est le nom du nouveau fichier :

      certutil -ca.cert rootca.cer

      Pour plus d'informations sur l'exécution de certutil, consultez la page certutil dans la documentation Microsoft.

    4. Utilisez la commande OpenSSL suivante pour convertir le certificat de CA racine exporté du format DER au format PEM, où rootca est le nom du certificat. Pour plus d'informations sur OpenSSL, consultez le site http://www.openssl.org/.

      openssl x509 -inform der -in rootca.cer -out /tmp/rootca.pem
Pour ajouter votre certificat CA racine à votre système Linux WorkSpaces

Pour vous aider à activer les cartes à puce, nous avons ajouté le script enable_smartcard à nos offres groupées Amazon Linux WSP. Ce script effectue les actions suivantes :

  • Importation du certificat CA racine dans la base de données des services de sécurité réseau (NSS).

  • Installation du module pam_pkcs11 pour l'authentification PAM (Pluggable Authentication Module).

  • Exécute une configuration par défaut, qui inclut l'activation pkinit lors du WorkSpace provisionnement.

La procédure suivante explique comment utiliser le enable_smartcard script pour ajouter votre certificat d'autorité de certification racine à votre système Linux WorkSpaces et pour activer les cartes à puce pour votre système Linux WorkSpaces.

  1. Créez un nouveau Linux WorkSpace avec le protocole WSP activé. Lorsque vous lancez le WorkSpace dans la WorkSpaces console Amazon, sur la page Select Bundles, assurez-vous de sélectionner WSP pour le protocole, puis sélectionnez l'un des bundles publics Amazon Linux 2.

  2. Sur le nouveau WorkSpace, exécutez la commande suivante en tant qu'utilisateur root, où se pem-path trouve le chemin d'accès au fichier de certificat de l'autorité de certification racine au format PEM.

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

    Linux WorkSpaces suppose que les certificats des cartes à puce sont émis pour le nom d'utilisateur principal (UPN) par défaut de l'utilisateur, par exemplesAMAccountName@domain, où se domain trouve un nom de domaine complet (FQDN).

    Pour utiliser d'autres suffixes UPN, run /usr/lib/skylight/enable_smartcard --help pour plus d'informations. Le mappage d'autres suffixes UPN est propre à chaque utilisateur. Par conséquent, ce mappage doit être effectué individuellement sur celui de chaque utilisateur WorkSpace.

  3. (Facultatif) Par défaut, tous les services sont activés pour utiliser l'authentification par carte à puce sous Linux WorkSpaces. Pour limiter l'authentification par carte à puce uniquement à des services spécifiques, vous devez modifier /etc/pam.d/system-auth. Supprimer la mise en commentaire de la ligne auth pour pam_succeed_if.so, et modifiez la liste des services selon les besoins.

    Une fois la mise en commentaire supprimée pour la ligne auth, vous devez ajouter à la liste le service pour lequel vous souhaitez autoriser l'authentification par carte à puce. Pour qu'un service utilise uniquement l'authentification par mot de passe, vous devez le supprimer de la liste.

  4. Procédez à toute personnalisation supplémentaire du WorkSpace. Par exemple, vous souhaiterez peut-être ajouter une politique à l'échelle du système pour permettre aux utilisateurs d'utiliser des cartes à puce dans Firefox. (Les utilisateurs de Chrome doivent activer eux-mêmes les cartes à puce sur leurs clients. Pour plus d'informations, consultez la section Support des cartes à puce dans le guide de WorkSpaces l'utilisateur Amazon.)

  5. Créez une WorkSpace image personnalisée et un bundle à partir du WorkSpace.

  6. Utilisez le nouveau pack personnalisé WorkSpaces pour le lancer pour vos utilisateurs.

Pour permettre aux utilisateurs d'utiliser des cartes à puce dans Firefox

Vous pouvez autoriser vos utilisateurs à utiliser des cartes à puce dans Firefox en ajoutant une SecurityDevices politique à votre WorkSpace image Linux. Pour plus d'informations sur l'ajout de politiques à l'échelle du système à Firefox, consultez les modèles de politiques de Mozilla sur GitHub.

  1. Sur le fichier WorkSpace que vous utilisez pour créer votre WorkSpace image, créez un nouveau fichier nommé policies.json dans/usr/lib64/firefox/distribution/.

  2. Dans le fichier JSON, ajoutez la SecurityDevices politique suivante, où se NAME_OF_DEVICE trouve la valeur que vous souhaitez utiliser pour identifier le pkcs module. Par exemple, il se peut que vous souhaitiez utiliser une valeur comme "OpenSC" :

    { "policies": { "SecurityDevices": { "NAME_OF_DEVICE": "/usr/lib64/opensc-pkcs11.so" } } }
Résolution des problèmes

Pour la résolution des problèmes, nous vous recommandons d'ajouter l'utilitaire pkcs11-tools. Il vous permet d'effectuer les actions suivantes :

  • Répertorier chaque carte à puce

  • Répertorier les emplacements de chaque carte à puce

  • Répertorier les certificats sur chaque carte à puce

Voici quelques exemples de problèmes courants :

  • Mappage incorrect des emplacements aux certificats

  • Plusieurs certificats sur la carte à puce qui peuvent correspondre à l'utilisateur Les certificats sont mis en correspondance selon les critères suivants :

    • Autorité de certification racine du certificat

    • Champs <KU> et <EKU> du certificat

    • UPN dans l'objet du certificat

  • Plusieurs certificats avec <EKU>msScLogin dans l'utilisation de la clé

Pour l'authentification par carte à puce, il est en général préférable de n'avoir qu'un seul certificat, mappé au tout premier emplacement de la carte.

Les outils de gestion des certificats et des clés de carte à puce (comme la suppression ou le remappage des certificats et des clés) peuvent être spécifiques au fabricant. Voici des outils supplémentaires que vous pouvez utiliser pour travailler avec des cartes à puce :

  • opensc-explorer

  • opensc-tool

  • pkcs11_inspect

  • pkcs11_listcerts

  • pkcs15-tool

Pour activer la journalisation du débogage

Pour résoudre les problèmes liés à la configuration de pam_pkcs11 et pam-krb5, vous pouvez activer la journalisation du débogage.

  1. Dans le fichier /etc/pam.d/system-auth-ac, modifiez l'action auth et faites passer le paramètre nodebug de pam_pksc11.so à debug.

  2. Dans le fichier /etc/pam_pkcs11/pam_pkcs11.conf, remplacez debug = false; par debug = true;. L'option debug s'applique séparément à chaque module de mappeur, vous devrez donc peut-être la modifier à la fois sous la section pam_pkcs11 directement, et aussi sous la section de mappeur appropriée (par défaut, ceci est mapper generic).

  3. Dans le fichier /etc/pam.d/system-auth-ac, modifiez l'action auth et ajoutez le paramètre debug ou debug_sensitive à pam_krb5.so.

Une fois que vous avez activé la journalisation du débogage, le système imprime les messages de débogage pam_pkcs11 directement dans le terminal actif. Les messages de pam_krb5 sont consignés dans /var/log/secure.

Pour vérifier à quel nom d'utilisateur correspond un certificat de carte à puce, utilisez la commande pklogin_finder suivante :

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

Lorsque vous y êtes invité, saisissez le code PIN de la carte à puce. pklogin_finder sort sur stdout le nom d'utilisateur figurant sur le certificat de carte à puce sous la forme NETBIOS\username. Ce nom d'utilisateur doit correspondre au WorkSpace nom d'utilisateur.

Dans les services de domaine Active Directory (AD DS), le nom de domaine NetBIOS est le nom de domaine antérieur à Windows 2000. Généralement (mais pas toujours), le nom de domaine NetBIOS est le sous-domaine du nom de domaine DNS (Domain Name System). Par exemple, si le nom de domaine DNS est example.com, le domaine NetBIOS est généralement EXAMPLE. Si le nom de domaine DNS est corp.example.com, le domaine NetBIOS est généralement CORP.

Par exemple, pour l'utilisateur mmajor du domaine corp.example.com, le résultat de pklogin_finder est CORP\mmajor.

Note

Si vous recevez le message "ERROR:pam_pkcs11.c:504: verify_certificate() failed", ceci indique que pam_pkcs11 a trouvé sur la carte à puce un certificat qui correspond aux critères du nom d'utilisateur, mais qui n'est pas lié à un certificat de CA racine reconnu par la machine. Lorsque cela se produit, pam_pkcs11 génère le message ci-dessus, puis essaie le certificat suivant. L'authentification n'est autorisée que si un certificat correspondant au nom d'utilisateur et lié à un certificat de CA racine reconnue est trouvé.

Pour résoudre les problèmes de configuration pam_krb5, vous pouvez invoquer manuellement kinit en mode débogage à l'aide de la commande suivante :

KRB5_TRACE=/dev/stdout kinit -V

Cette commande devrait réussir à obtenir un ticket d'octroi de tickets (TGT) Kerberos. En cas d'échec, essayez d'ajouter explicitement le nom principal Kerberos approprié à la commande. Par exemple, pour l'utilisateur mmajor du domaine corp.example.com, utilisez cette commande :

KRB5_TRACE=/dev/stdout kinit -V mmajor

Si cette commande aboutit, le problème provient probablement du mappage entre le WorkSpace nom d'utilisateur et le nom principal Kerberos. Consultez la section [appdefaults]/pam/mappings du fichier /etc/krb5.conf.

Si cette commande échoue, mais qu'une commande kinit basée sur un mot de passe réussit, vérifiez les configurations associées à pkinit_ dans le fichier /etc/krb5.conf. Par exemple, si la carte à puce contient plusieurs certificats, vous devrez peut-être modifier pkinit_cert_match.