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.

Publié le 27 octobre 2026

Vue d’ensemble

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.

Fonctionnement

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.

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 – Configurer la validation des certificats dans UserLock SSO

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.

None (par défaut) : les certificats sont ignorés

Allowed : les utilisateurs sans certificat se connectent normalement ; un certificat présenté doit passer la vérification, sinon l’accès est refusé

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 d’utilisateur. Le certificat est seulement vérifié auprès des autorités de confiance, et la connexion sans mot de passe n’est pas disponible

Thumbprint : correspondance via l’attribut altSecurityIdentities

Raw : correspondance via l’attribut userCertificate

UPN : correspond à l’utilisateur dont l’UPN ou le nom de compte est égal à l’UPN inscrit dans l’autre nom de l’objet (Subject Alternative Name) du certificat (à défaut, son adresse e-mail)

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.

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.

Étape 2 – 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.

  1. Sur le serveur SSO, lancez l’assistant de configuration de UserLock.

  2. Ouvrez le module Authentification unique (SSO).

  3. 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.

Dépannage

  • 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>, puis ipport=[::]:<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.