Authentification par certificat

L’authentification par certificat renforce la sécurité de UserLock SSO en vérifiant à la fois l’utilisateur et l’appareil. Lorsqu’elle est activée, seules les stations de travail disposant d’un certificat utilisateur valide peuvent accéder au service SSO. Cela garantit que les connexions Single Sign-On proviennent exclusivement d’appareils fiables et gérés.

Publié le 29 octobre 2025

Vue d’ensemble

L’authentification par certificat ajoute une couche de sécurité supplémentaire à UserLock SSO en utilisant des certificats clients.
Lorsqu’elle est activée, l’accès au service UserLock SSO requiert un certificat utilisateur valide installé sur le poste de travail.

Cette fonctionnalité permet aux administrateurs de restreindre les demandes d’authentification aux appareils de confiance uniquement, garantissant que seules les machines disposant du bon certificat peuvent initier des sessions d’authentification unique (SSO).

🚩️ Avant de commencer :

  • Chaque poste de travail doit disposer d’un certificat utilisateur valide émis par une autorité de certification approuvée (par exemple, vos services Active Directory Certificate Services).

  • Le certificat doit être installé dans le magasin de certificats Windows et accessible par le navigateur.

  • Le SSO UserLock doit déjà être installé et configuré.

Fonctionnement

Lorsqu’un utilisateur accède à une application SaaS via UserLock SSO, le navigateur présente un certificat client.
Le service SSO vérifie la validité du certificat et, selon la configuration, peut également s’assurer que le certificat est associé à l’utilisateur dans Active Directory.

Si le certificat est manquant ou invalide, la demande d’authentification est rejetée.

Activation de l’authentification par certificat

Par défaut, UserLock SSO ne demande pas de certificat client afin d’éviter les invites non sollicitées dans le navigateur.
Pour activer la négociation et la validation des certificats, deux étapes de configuration sont nécessaires.

Étape 1 – Activer la négociation de certificats sur le serveur SSO

⚠️ Attention

Si vous prévoyez d’utiliser le mode Required, assurez-vous que tous les utilisateurs disposent déjà de leur certificat avant de l’activer.
Dans le cas contraire, ils ne pourront plus s’authentifier.

Lors de l’installation de UserLock SSO, une liaison SSL par défaut est automatiquement créée sur le serveur.
Vous devez la recréer avec la négociation de certificats activée.
La méthode la plus simple consiste à utiliser le script PowerShell ci-dessous.

Instructions

  1. Copiez le script ci-dessous dans un fichier .ps1 sur votre serveur SSO.

  2. Modifiez la valeur de $port pour qu’elle corresponde au port utilisé par votre URL UserLock SSO (par exemple, 443).

  3. Exécutez le script dans une console PowerShell avec les privilèges administrateur.

  4. Une fois exécutée, la liaison SSL sera recréée avec la négociation de certificats clients activée.

powershell
# TODO - Indiquer le port de l’URL SSO
$port = 443

# Définir l’adresse IP et l’action
$enable = $true
$ipport = "0.0.0.0:$port"

# Récupérer les informations de liaison existantes
$sslCerts = netsh http show sslcert | Select-String -Pattern $ipport -Context 0,6
if ($sslCerts) {
  # Extraire le certhash et l’appid
  $lines = $sslCerts.Context.PostContext
  $certhash = ($lines | Where-Object { $_ -match "Certificate Hash" }) -replace ".*: ", ""
  $appid = ($lines | Where-Object { $_ -match "Application ID" }) -replace ".*: ", ""
  Write-Host "Liaison trouvée sur $ipport"
  Write-Host "Certificate Hash: $certhash"
  Write-Host "AppID: $appid"

  # Supprimer la liaison existante
  Write-Host "Suppression de la liaison existante..."
  netsh http delete sslcert ipport=$ipport

  # Recréer la liaison avec la négociation de certificats activée
  if ($enable) { $cmd = 'enable' } else { $cmd = 'disable' }
  Write-Host "Recréation de la liaison avec la négociation de certificats $cmd..."
  netsh http add sslcert ipport=$ipport certhash=$certhash appid=$appid certstorename=MY clientcertnegotiation=$cmd
  Write-Host "Liaison mise à jour avec succès."
} else {
  Write-Host "Aucune liaison SSL trouvée pour $ipport"
}

Étape 2 – Configurer la validation des certificats dans UserLock SSO

Les paramètres de validation des certificats sont définis dans le fichier appSettings.json du service SSO.

Paramètres de configuration :

Paramètre

Description

Valeurs possibles

certificateMode

Définit si les certificats sont utilisés et imposés.

None (par défaut) : les certificats sont ignorés
Allowed : le certificat est validé s’il est présent
Required : la connexion est rejetée si le certificat est absent ou invalide

certificateFilter

Spécifie comment identifier l’utilisateur dans Active Directory à partir du certificat.

None : aucune recherche utilisateur
Thumbprint : correspondance via l’attribut altSecurityIdentities
Raw : correspondance via l’attribut userCertificate
UPN : utilise le champ Subject UPN du certificat

Note

La chaîne de confiance du certificat est toujours vérifiée.
Si l'authentification par certificat est activée et que le certificat n’est pas approuvé, l’authentification échouera même si le filtre est défini sur None.

Exemple de configuration

Dans les versions récentes, une nouvelle section AuthenticationConfig a été introduite.
Les paramètres d’authentification Windows (ntlm, kerberos, negotiate) ont été déplacés depuis ListeningConfig vers cette nouvelle section.
Assurez-vous de mettre à jour votre configuration en conséquence.

json
{
  "ListeningConfig": {
    "https_port": "443",
    "http_port": "",
    "address": "sso.mydomain.com"
  },
  "AuthenticationConfig": {
    "ntlm": false,
    "kerberos": true,
    "negotiate": true,
    "certificateMode": "Allowed",    // None, Allowed, Required
    "certificateFilter": "Thumbprint" // None, Thumbprint, UPN, Raw
  },
  "CertificateLifetime": "12"
}

Configuration recommandée :

Scénario

Mode recommandé

Description

Tests ou déploiement initial

Allowed

Permet de tester l’authentification par certificat sans bloquer les utilisateurs qui n’en disposent pas encore.

Mise en production complète

Required

Garantit que seuls les utilisateurs disposant d’un certificat valide peuvent s’authentifier.

Dépannage

  • Le navigateur ne demande pas de certificat
    → Vérifiez que la négociation de certificats est bien activée sur la liaison SSL (Étape 1).

  • Erreurs “Invalid certificate”
    → Assurez-vous que la chaîne de confiance du certificat est approuvée par le serveur SSO et que le certificat utilisateur correspond au type de filtre configuré (Thumbprint, UPN, etc.).

  • Utilisateurs bloqués après activation du mode “Required”
    → Vérifiez que les certificats sont correctement déployés sur toutes les machines avant d’activer ce mode.