---
locale: "fr"
updated_at: "2025-10-29T10:51:51.786Z"
canonical: "https://www.isdecisions.com/fr/userlock/docs/guides/sso/authentification-par-certificat"
---

# Authentification par certificat

Verifiez les utilisateurs et appareils dans UserLock SSO grace aux certificats de machine.

### 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é](/userlock/docs/guides/sso/installer-configurer-sso).

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