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.
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é.
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.
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.
⚠️ 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.
Copiez le script ci-dessous dans un fichier
.ps1sur votre serveur SSO.Modifiez la valeur de
$portpour qu’elle corresponde au port utilisé par votre URL UserLock SSO (par exemple, 443).Exécutez le script dans une console PowerShell avec les privilèges administrateur.
Une fois exécutée, la liaison SSL sera recréée avec la négociation de certificats clients activée.
# 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"
}
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. |
|
certificateFilter | Spécifie comment identifier l’utilisateur dans Active Directory à partir 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.
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.
{
"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 |
| Permet de tester l’authentification par certificat sans bloquer les utilisateurs qui n’en disposent pas encore. |
Mise en production complète |
| Garantit que seuls les utilisateurs disposant d’un certificat valide peuvent s’authentifier. |
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.