Configurer macOS pour une identification par carte intelligente uniquement

L’identification par carte intelligente offre une bonne identification à deux facteurs sur macOS Sierra et versions ultérieures. macOS High Sierra 10.13.2 et versions ultérieures sont compatibles avec l’identification par carte intelligente uniquement, dans le cas où l’utilisation d’une carte intelligente est obligatoire. Dès lors, l’authentification par mot de passe est désactivée. 

Cet article est destiné aux administrateurs système en charge de la politique de sécurité dans des environnements d’entreprise exigeant une authentification par carte intelligente. 

Activer la connexion par carte intelligente

Assurez-vous de suivre attentivement cette procédure pour garantir que les utilisateurs pourront se connecter à l’ordinateur.

  1. Jumelez une carte intelligente à un compte d’utilisateur administrateur ou configurez Attribuer la correspondance.
  2. Si vous avez activé les vérifications strictes de certificats, installez tous les certificats racine ou les intermédiaires requis.
  3. Confirmez que vous pouvez vous connecter à un compte d’administrateur à l’aide d’une carte intelligente.
  4. Installez un profil de configuration de carte intelligente qui comprend « <key>enforceSmartCard</key><true/> », comme illustré dans l’exemple de profil de configuration de carte intelligente uniquement ci-dessous.
  5. Confirmez que vous pouvez toujours vous connecter à l’aide d’une carte intelligente.

Pour de plus amples informations sur les réglages de la charge utile de carte intelligente, reportez-vous à Référence de profil de configuration Apple.

Pour de plus amples informations sur l’utilisation des services de carte intelligente, reportez-vous au Guide de déploiement de macOS ou ouvrez Terminal et saisissez man SmartCardServices.

 

Désactiver l’identification par carte intelligente uniquement

Si vous modifiez manuellement les profils installés sur l’ordinateur, vous pouvez supprimer le profil carte intelligente uniquement de deux manières. Vous pouvez utiliser la sous-fenêtre Profils des Préférences Système ou l’outil de ligne de commande /usr/bin/profiles. Pour de plus amples informations, ouvrez Terminal et saisissez man profiles.

Si les ordinateurs de votre client sont inscrits à la solution de gestion des appareils mobiles (MDM), vous pouvez restaurer l’authentification par mot de passe. Pour ce faire, supprimez le profil de configuration Carte intelligente qui permet la restriction Carte intelligente uniquement depuis les ordinateurs client.

Pour empêcher que les utilisateurs n’aient plus accès à leur compte, supprimez le profil enforceSmartCard avant d’annuler le jumelage d’une carte intelligente ou de désactiver Attribuer la correspondance. Si un utilisateur n’a plus accès à son compte, supprimez le profil de configuration pour régler le problème.

Si vous appliquez la politique Carte intelligente uniquement avant d’activer l’authentification par carte intelligente uniquement, il se peut qu’un utilisateur n’ait plus accès à son compte. Pour régler ce problème, supprimez la politique Carte intelligente uniquement :

  1. Allumez votre Mac, puis maintenez immédiatement les touches Commande + R enfoncées pour démarrer à partir de la fonctionnalité de récupération de macOS. Relâchez les touches lorsque vous voyez le logo Apple, un globe en rotation ou une invite à saisir un mot de passe pour le programme interne. 
  2. Sélectionnez Utilitaire de disque dans la fenêtre Utilitaires, puis cliquez sur Continuer.
  3. Dans la barre latérale d’Utilitaire de disque, sélectionnez le volume que vous utilisez, puis choisissez Fichier > Monter dans la barre des menus. (Si le volume est déjà monté, cette option est grisée.) Saisissez ensuite votre mot de passe lorsque vous y êtes invité.
  4. Fermez Utilitaire de disque.
  5. Choisissez Terminal dans le menu Utilitaires de la barre des menus.
  6. Supprimez le référentiel Profil de configuration. Pour ce faire, ouvrez Terminal et saisissez les commandes suivantes.
    Dans ces commandes, remplacez <volumename> par le nom du volume macOS où les réglages du profil ont été installés. 
    rm /Volumes/<volumename>/var/db/ConfigurationProfiles/MDM_ComputerPrefs.plist
    rm /Volumes/<volumename>/var/db/ConfigurationProfiles/.profilesAreInstalled
    rm /Volumes/<volumename>/var/db/ConfigurationProfiles/Settings/.profilesAreInstalled
    rm /Volumes/<volumename>/var/db/ConfigurationProfiles/Store/ConfigProfiles.binary
    rm /Volumes/<volumename>/var/db/ConfigurationProfiles/Setup/.profileSetupDone
  7. Lorsque vous avez terminé, choisissez le menu Apple () > Redémarrer.
  8. Réinstallez tous les profils de configuration existants avant d’activer l’authentification par carte intelligente uniquement.

 

Configurer Secure Shell Daemon (SSHD) pour permettre l’authentification par carte intelligente uniquement

Les utilisateurs peuvent s’authentifier via SSH sur l’ordinateur local ou sur des ordinateurs distants correctement configurés à l’aide de leur carte intelligente. Procédez comme suit pour configurer SSHD sur un ordinateur, afin qu’il permette l’authentification par carte intelligente. 

Mettez à jour le fichier /etc/ssh/sshd_config :

  1. Utilisez la commande suivante pour sauvegarder le fichier sshd_config :
    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup_`date "+%Y-%m-%d_%H:%M"`
  2. Dans le fichier sshd_config, remplacez « #ChallengeResponseAuthentication yes » par « ChallengeResponseAuthentication no », ainsi que « #PasswordAuthentication yes » par « #PasswordAuthentication no ».

Ensuite, utilisez les commandes suivantes pour redémarrer SSHD :

sudo launchctl stop com.openssh.sshd

sudo launchctl start com.openssh.sshd

Si un utilisateur souhaite authentifier des sessions SSH à l’aide d’une carte intelligente, demandez-lui de procéder comme suit :

  1. Utilisez la commande suivante pour exporter la clé publique depuis sa carte intelligente :
    ssh-keygen -D /usr/lib/ssh-keychain.dylib
  2. Ajoutez la clé publique de l’étape précédente au fichier ~/.ssh/authorized_keys sur l’ordinateur cible.
  3. Utilisez la commande suivante pour sauvegarder le fichier ssh_config :
    sudo cp /etc/ssh/ssh_config /etc/ssh/ssh_config_backup_`date "+%Y-%m-%d_%H:%M"`
  4. Dans le fichier /etc/ssh/ssh_config, ajoutez la ligne « PKCS11Provider=/usr/lib/ssh-keychain.dylib ».

Si l’utilisateur le souhaite, il peut également utiliser la commande suivante pour ajouter la clé privée à son agent SSH :

ssh-add -s /usr/lib/ssh-keychain.dylib

 

Activer l’authentification par carte intelligente uniquement pour la commande SUDO

Utilisez la commande suivante pour sauvegarder le fichier /etc/pam.d/sudo :

sudo cp /etc/pam.d/sudo /etc/pam.d/sudo_backup_`date "+%Y-%m-%d_%H:%M"`

Ensuite, remplacez tout le contenu du fichier /etc/pam.d/sudo par le texte suivant :

# sudo: auth account password session
auth        sufficient    pam_smartcard.so
auth        required      pam_opendirectory.so
auth        required      pam_deny.so
account     required      pam_permit.so
password    required      pam_deny.so
session     required      pam_permit.so

 

Activer l’authentification par carte intelligente uniquement pour la commande LOGIN

Utilisez la commande suivante pour sauvegarder le fichier /etc/pam.d/login :

sudo cp /etc/pam.d/login /etc/pam.d/login_backup_`date "+%Y-%m-%d_%H:%M"`

Ensuite, remplacez tout le contenu du fichier /etc/pam.d/login par le texte suivant :

# login: auth account password session
auth        sufficient    pam_smartcard.so
auth        optional      pam_krb5.so use_kcminit
auth        optional      pam_ntlm.so try_first_pass
auth        optional      pam_mount.so try_first_pass
auth        required      pam_opendirectory.so try_first_pass
auth        required      pam_deny.so
account     required      pam_nologin.so
account     required      pam_opendirectory.so
password    required      pam_opendirectory.so
session     required      pam_launchd.so
session     required      pam_uwtmp.so
session     optional      pam_mount.so

 

Activer l’authentification par carte intelligente uniquement pour la commande SU

Utilisez la commande suivante pour sauvegarder le fichier /etc/pam.d/su :

sudo cp /etc/pam.d/su /etc/pam.d/su_backup_`date "+%Y-%m-%d_%H:%M"`

Ensuite, remplacez tout le contenu du fichier /etc/pam.d/su par le texte suivant :

# su: auth account password session
auth        sufficient    pam_smartcard.so
auth        required      pam_rootok.so
auth        required      pam_group.so no_warn group=admin,wheel ruser root_only fail_safe
account     required      pam_permit.so
account     required      pam_opendirectory.so no_check_shell
password    required      pam_opendirectory.so
session     required      pam_launchd.so

 

Exemple de profil de configuration Carte intelligente uniquement

Voici un exemple de profil de configuration Carte intelligente uniquement. Vous pouvez l’utiliser pour voir les types de clés et de chaînes qu’il contient.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadDescription</key>
<string>Configures smart card-only</string>
<key>PayloadDisplayName</key>
<string>Smart card-only</string>
<key>PayloadIdentifier</key>
<string>com.apple.configprofile.78.</string>
<key>PayloadOrganization</key>
<string>Apple</string>
<key>PayloadType</key>
<string>com.apple.security.smartcard</string>
<key>PayloadUUID</key>
<string>5A15247B-899C-474D-B1D7-DBD82BDE5678</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>UserPairing</key>
<false/>
<key>allowSmartCard</key>
<true/>
<key>checkCertificateTrust</key>
<false/>
<key>enforceSmartCard</key>
<true/>
</dict>
</array>
<key>PayloadDescription</key>
<string>Smartcard profile.</string>
<key>PayloadDisplayName</key>
<string>Smart card-only</string>
<key>PayloadIdentifier</key>
<string>com.apple.configprofile.77</string>
<key>PayloadOrganization</key>
<string></string>
<key>PayloadRemovalDisallowed</key>
<false/>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadScope</key>
<string>system</string>
<key>PayloadUUID</key>
<string>7D34CC86-C707-44D2-9A9F-C5F6E347BD77</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>

 

Date de publication: