Authentification par certificat
L’authentification par certificat renforce la sécurité de UserLock SSO en vérifiant un certificat utilisateur à la connexion. En mode Required, seules les stations de travail disposant d’un certificat utilisateur valide peuvent accéder au service SSO : les connexions Single Sign-On proviennent ainsi exclusivement d’appareils fiables et gérés.
L’authentification par certificat permet à UserLock SSO de demander un certificat utilisateur au navigateur lors de la connexion. Selon la configuration, le certificat sert à :
restreindre la connexion aux appareils qui détiennent un certificat émis par une autorité de confiance ;
vérifier que le certificat appartient à l’utilisateur qui se connecte ;
connecter l’utilisateur sans mot de passe, suivi de la MFA UserLock.
🚩️ Avant de commencer :
UserLock SSO est installé et configuré.
Chaque utilisateur dispose d’un certificat avec l’usage Authentification du client, et de sa clé privée, dans son magasin de certificats personnel sur le poste de travail (par exemple issu du modèle AD CS Utilisateur).
Sur le serveur SSO et sur chaque serveur SSO de sauvegarde, l’autorité de certification racine de ces certificats figure dans Autorités de certification racines de confiance et dans Émetteurs d’authentification client (Ordinateur local). Sans elle, les navigateurs ne proposent aucun certificat : Allowed n’a alors aucun effet et Required refuse l’accès à tous les utilisateurs.
Si certificateFilter est utilisé, le lien entre le certificat et l’utilisateur existe dans Active Directory :
Raw : le certificat est publié dans l’attribut userCertificate de l’utilisateur (modèles avec Publier le certificat dans Active Directory) ;
Thumbprint : l’attribut altSecurityIdentities de l’utilisateur contient X509:<SHA1-TL> suivi de l’empreinte du certificat ;
UPN : le certificat porte l’UPN de l’utilisateur dans son autre nom de l’objet (Subject Alternative Name).
Pour ajouter l’autorité racine aux Émetteurs d’authentification client : ouvrez certlm.msc, faites un clic droit sur Émetteurs d’authentification client > Certificats, choisissez Toutes les tâches > Importer et importez le certificat racine.
Lorsqu’un utilisateur accède à une application SaaS via UserLock SSO, le serveur SSO demande un certificat client au navigateur (modes Allowed et Required). 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 invalide, la demande d’authentification est rejetée. Si aucun certificat n’est présenté, la demande n’est rejetée qu’en mode Required ; en mode Allowed, l’utilisateur se connecte normalement.
Lorsque certificateFilter associe le certificat à un utilisateur qui n’est pas déjà connecté par l’authentification Windows, et que UserLock exige la MFA pour cet utilisateur, celui-ci se connecte sans mot de passe, suivi de la MFA UserLock.
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.
Les paramètres de validation des certificats sont définis dans le fichier appsettings.Production.json du service SSO (C:\ProgramData\ISDecisions\UserLock\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 du certificat est toujours vérifiée, et son autorité racine doit figurer dans le magasin Émetteurs d’authentification client du serveur SSO. Sinon, l’accès est refusé même lorsque certificateFilter vaut None.
⚠️ Note de sécurité – filtre UPN
Lorsque certificateFilter vaut UPN, le SSO fait confiance à l’UPN inscrit dans le certificat. Si un modèle de certificat émis par une autorité de confiance laisse l’utilisateur fournir l’objet dans la demande et comprend l’usage Authentification du client, tout utilisateur autorisé à s’inscrire peut obtenir un certificat portant l’UPN d’un autre utilisateur et ouvrir une connexion sans mot de passe à sa place (la MFA UserLock de cet utilisateur s’applique toujours). Préférez Raw ou Thumbprint, qui exigent un lien enregistré sur le compte de l’utilisateur, ou assurez-vous qu’aucun modèle de ce type n’est émis par les autorités présentes dans Émetteurs d’authentification client.
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. |
⚠️ 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.
Sur le serveur SSO, lancez l’assistant de configuration de UserLock.
Ouvrez le module Authentification unique (SSO).
Mettez à jour la configuration sans modifier aucun paramètre.
La mise à jour :
recrée les deux liaisons SSL du port SSO (0.0.0.0 et [::]) : avec Allowed ou Required, la négociation du certificat client est activée et Émetteurs d’authentification client devient la liste des autorités annoncées aux navigateurs ; avec None, la négociation est désactivée ;
redémarre le service UserLock SSO, qui lit le mode et le filtre au démarrage.
Sur chaque serveur SSO de sauvegarde, lancez l’assistant et cliquez sur Mettre à jour dans Services de secours : le service de secours reprend le mode du serveur principal.
⚠️ Ne modifiez pas la liaison SSL à la main
Chaque mise à jour la recrée d’après certificateMode. Avant de tester, les utilisateurs doivent fermer toutes les fenêtres du navigateur : un navigateur qui réutilise une session précédente ne se voit pas demander de certificat.
Le navigateur ne demande pas de certificat
certificateMode vaut None, ou la configuration n’a pas été mise à jour après la modification du fichier (Étape 2).
Sur le serveur SSO, les deux liaisons doivent afficher Negotiate Client Certificate: Enabled et Ctl Store Name: ClientAuthIssuer (à vérifier avec
netsh http show sslcert ipport=0.0.0.0:<port>, puisipport=[::]:<port>).L’autorité racine des certificats utilisateur doit figurer dans Émetteurs d’authentification client : les navigateurs ne proposent que les certificats émis par les autorités qui y sont listées.
Le certificat utilisateur doit avoir l’usage Authentification du client et sa clé privée, dans le magasin personnel de l’utilisateur.
Fermez toutes les fenêtres du navigateur après une modification : une session réutilisée ne se voit pas demander de certificat.
« A certificate is required. »
Mode Required, et aucun certificat n’a été présenté : l’utilisateur a annulé la demande ou n’a pas de certificat correspondant.
« The certificate is not trusted. »
La chaîne du certificat ne se construit pas sur le serveur SSO, ou sa racine ne figure pas dans Émetteurs d’authentification client.
« Certificate not found in Active Directory. »
certificateFilter n’a pas pu associer le certificat à un utilisateur Active Directory, ou le certificat appartient à un autre utilisateur que celui déjà connecté par l’authentification Windows.
Une fenêtre d’identifiants Windows s’affiche au lieu de la connexion sans mot de passe
certificateFilter vaut None : la connexion sans mot de passe n’est pas disponible.
Le certificat n’est pas lié à l’utilisateur pour le filtre choisi (voir Avant de commencer).
UserLock n’exige pas la MFA pour cet utilisateur : le SSO utilise alors l’authentification Windows.