Protection de la clé privée du service d’authentification fédérée
Introduction
Les certificats sont stockés dans le registre sur le serveur FAS. Les clés privées associées sont stockées via le compte Service réseau du serveur FAS et sont marquées comme non exportables par défaut.
Il existe deux types de clés privées :
- La clé privée associée au certificat de l’autorité d’enregistrement (RA), à partir du modèle de certificat Citrix_RegistrationAuthority.
- Les clés privées associées aux certificats utilisateur, à partir du modèle de certificat Citrix_SmartcardLogon.
Il existe en fait deux certificats RA : Citrix_RegistrationAuthority_ManualAuthorization (valide pendant 24 heures par défaut) et Citrix_RegistrationAuthority (valide pendant deux ans par défaut).
Au cours de l’étape 3 de la configuration initiale dans la console d’administration FAS, lorsque l’administrateur clique sur « Autoriser », le serveur FAS génère une paire de clés et envoie une demande de signature de certificat (CSR) à l’autorité de certification pour le certificat Citrix_RegistrationAuthority_ManualAuthorization. Il s’agit d’un certificat temporaire, valide pendant 24 heures par défaut. L’autorité de certification n’émet pas automatiquement ce certificat ; son émission doit être autorisée manuellement sur l’autorité de certification par un administrateur. Une fois le certificat émis au serveur FAS, FAS utilise le certificat Citrix_RegistrationAuthority_ManualAuthorization pour obtenir automatiquement le certificat Citrix_RegistrationAuthority (valide pendant deux ans par défaut). Le serveur FAS supprime le certificat et la clé pour Citrix_RegistrationAuthority_ManualAuthorization dès qu’il obtient le certificat Citrix_RegistrationAuthority.
La clé privée associée au certificat RA est particulièrement sensible, car la politique de certificat RA permet à quiconque possède la clé privée d’émettre des demandes de certificat pour l’ensemble des utilisateurs configurés dans le modèle. Par conséquent, quiconque contrôle cette clé peut se connecter à l’environnement en tant que n’importe quel utilisateur de l’ensemble.
Vous pouvez configurer le serveur FAS pour protéger les clés privées d’une manière qui correspond aux exigences de sécurité de votre organisation, en utilisant l’une des options suivantes :
- Fournisseur de services cryptographiques Microsoft Enhanced RSA and AES ou fournisseur de stockage de clés logicielles Microsoft pour le certificat RA et les clés privées des certificats utilisateur.
- Fournisseur de stockage de clés de plateforme Microsoft avec une puce Trusted Platform Module (TPM) pour la clé privée du certificat RA, et fournisseur de services cryptographiques Microsoft Enhanced RSA and AES ou fournisseur de stockage de clés logicielles Microsoft pour les clés privées des certificats utilisateur.
- Service cryptographique ou fournisseur de stockage de clés d’un fournisseur de module de sécurité matérielle (HSM) avec le périphérique HSM pour le certificat RA et les clés privées des certificats utilisateur.
Paramètres de configuration de la clé privée
Configurez FAS pour utiliser l’une des trois options. Utilisez un éditeur de texte pour modifier le fichier Citrix.Authentication.FederatedAuthenticationService.exe.config. L’emplacement par défaut du fichier est dans le dossier Program Files\Citrix\Federated Authentication Service sur le serveur FAS.

Le FAS lit le fichier de configuration uniquement au démarrage du service. Si des valeurs sont modifiées, le FAS doit être redémarré pour que les nouveaux paramètres soient pris en compte.
Définissez les valeurs pertinentes dans le fichier Citrix.Authentication.FederatedAuthenticationService.exe.config comme suit :
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderLegacyCsp (bascule entre les API CAPI et CNG)
| Valeur | Commentaire |
|---|---|
| vrai | Utiliser les API CAPI |
| false (par défaut) | Utiliser les API CNG |
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderName (nom du fournisseur à utiliser)
| Valeur | Commentaire |
|---|---|
| Fournisseur de services cryptographiques Microsoft amélioré RSA et AES | Fournisseur CAPI par défaut |
| Fournisseur de stockage de clés logicielles Microsoft | Fournisseur CNG par défaut |
| Fournisseur de stockage de clés de plateforme Microsoft | Fournisseur TPM par défaut. Notez que le TPM n’est pas recommandé pour les clés utilisateur. Utilisez le TPM uniquement pour la clé RA. Si vous prévoyez d’exécuter votre serveur FAS dans un environnement virtualisé, vérifiez auprès de votre fournisseur TPM et d’hyperviseur si la virtualisation est prise en charge. |
| Fournisseur de stockage de clés/CSP du fournisseur HSM | Fourni par le fournisseur HSM. La valeur diffère selon les fournisseurs. Si vous prévoyez d’exécuter votre serveur FAS dans un environnement virtualisé, vérifiez auprès de votre fournisseur HSM si la virtualisation est prise en charge. |
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderType (Requis uniquement en cas d’API CAPI)
| Valeur | Commentaire |
|---|---|
| 24 | Par défaut. Fait référence à la propriété Microsoft KeyContainerPermissionAccessEntry.ProviderType PROV_RSA_AES 24. Doit toujours être 24, sauf si vous utilisez un HSM avec CAPI et que le fournisseur HSM spécifie le contraire. |
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.KeyProtection (Lorsque FAS doit effectuer une opération de clé privée, il utilise la valeur spécifiée ici) Contrôle l’indicateur « exportable » des clés privées. Permet l’utilisation du stockage de clés TPM, si pris en charge par le matériel.
| Valeur | Commentaire |
|---|---|
| NoProtection | La clé privée peut être exportée. |
| GenerateNonExportableKey | Par défaut. La clé privée ne peut pas être exportée. |
| GenerateTPMProtectedKey | La clé privée sera gérée à l’aide du TPM. La clé privée est stockée via le ProviderName que vous avez spécifié dans ProviderName (par exemple, Microsoft Platform Key Storage Provider) |
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.KeyLength (Spécifiez la taille de la clé privée en bits)
| Valeur | Commentaire |
|---|---|
| 2048 | Par défaut. 1024 ou 4096 peuvent également être utilisés. |
Les paramètres du fichier de configuration sont représentés graphiquement comme suit (les valeurs par défaut de l’installation sont affichées en rouge) :

Exemples de scénarios de configuration
Exemple 1
Cet exemple couvre la clé privée du certificat RA et les clés privées des certificats utilisateur stockées à l’aide du Microsoft Software Key Storage Provider
Ceci est la configuration par défaut après l’installation. Aucune configuration supplémentaire de clé privée n’est requise.
Exemple 2
Cet exemple montre la clé privée du certificat RA stockée dans le TPM matériel de la carte mère du serveur FAS via le fournisseur de stockage de clés de plateforme Microsoft, et les clés privées des certificats utilisateur stockées à l’aide du fournisseur de stockage de clés logicielles Microsoft.
Ce scénario suppose que le TPM de la carte mère de votre serveur FAS a été activé dans le BIOS conformément à la documentation du fabricant du TPM, puis initialisé dans Windows ; voir https://docs.microsoft.com/fr-fr/previous-versions/windows/it-pro/windows-vista/cc749022(v=ws.10)?redirectedfrom=MSDN.
Utilisation de PowerShell (recommandé)
Le certificat RA peut être demandé hors ligne à l’aide de PowerShell. Ceci est recommandé pour les organisations qui ne souhaitent pas que leur CA émette un certificat RA via une demande de signature de certificat (CSR) en ligne. Une CSR RA hors ligne ne peut pas être créée à l’aide de la console d’administration FAS.
Étape 1 : Lors de la configuration initiale de FAS à l’aide de la console d’administration, effectuez uniquement les deux premières étapes : « Déployer les modèles de certificat » et « Configurer l’autorité de certification ».

Étape 2 : Sur votre serveur CA, ajoutez le composant logiciel enfichable MMC Modèles de certificats. Cliquez avec le bouton droit sur le modèle Citrix_RegistrationAuthority_ManualAuthorization et sélectionnez Dupliquer le modèle.
Sélectionnez l’onglet Général. Modifiez le nom et la période de validité. Dans cet exemple, le nom est Offline_RA et la période de validité est de 2 ans :

Étape 3 : Sur votre serveur CA, ajoutez le composant logiciel enfichable MMC CA. Cliquez avec le bouton droit sur Modèles de certificats. Sélectionnez Nouveau, puis cliquez sur Modèle de certificat à émettre. Choisissez le modèle que vous venez de créer.
Étape 4 : Chargez les cmdlets PowerShell suivantes sur le serveur FAS :
Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1
Étape 5 : Générez la paire de clés RSA à l’intérieur du TPM du serveur FAS et créez la CSR en saisissant la cmdlet PowerShell suivante sur le serveur FAS. Remarque : Certains TPM limitent la longueur de clé. La longueur de clé par défaut est de 2048 bits. Assurez-vous de spécifier une longueur de clé prise en charge par votre matériel.
New-FasAuthorizationCertificateRequest -UseTPM $true -address <FQDN du serveur FAS>
Par exemple :
New-FasAuthorizationCertificateRequest -UseTPM $true -address fashsm.auth.net
Ce qui suit s’affiche :

Remarques :
- Le GUID d’ID (dans cet exemple, « 5ac3d8bd-b484-4ebe-abf8-4b2cfd62ca39 ») est requis à une étape ultérieure.
- Considérez ce cmdlet PowerShell comme une « substitution » unique utilisée pour générer la clé privée du certificat RA.
- Lors de l’exécution de ce cmdlet, les valeurs lues à partir du fichier de configuration au démarrage du service FAS sont vérifiées pour déterminer la longueur de clé à utiliser (la valeur par défaut est 2048).
- Étant donné que -UseTPM est défini sur $true dans cette opération manuelle de clé privée de certificat RA initiée par PowerShell, le système ignore les valeurs du fichier qui ne correspondent pas aux paramètres requis pour utiliser un TPM.
- L’exécution de ce cmdlet ne modifie aucun paramètre dans le fichier de configuration.
- Lors des opérations ultérieures de clé privée de certificat utilisateur initiées automatiquement par FAS, les valeurs lues à partir du fichier au démarrage du service FAS seront utilisées.
- Il est également possible de définir la valeur KeyProtection dans le fichier de configuration sur GenerateTPMProtectedKey lorsque le serveur FAS émet des certificats utilisateur pour générer des clés privées de certificat utilisateur protégées par le TPM.
Pour vérifier que le TPM a été utilisé pour générer la paire de clés, consultez le journal des applications dans l’Observateur d’événements Windows sur le serveur FAS, au moment où la paire de clés est générée.

Remarque « [TPM: True] »
Suivi de :

Remarque « Provider: [CNG] Microsoft Platform Crypto Provider »
Étape 6 : Copiez la section de demande de certificat dans un éditeur de texte et enregistrez-la sur le disque en tant que fichier texte.

Étape 7 : Soumettez la demande de signature de certificat (CSR) à votre autorité de certification (CA) en tapant ce qui suit dans PowerShell sur le serveur FAS :
certreq -submit -attrib “certificatetemplate:<modèle de certificat de l’étape 2>” <fichier de demande de certificat de l’étape 6>
Par exemple :
certreq -submit -attrib “certificatetemplate:Offline_RA” C:\Users\Administrator.AUTH\Desktop\usmcertreq.txt
Le résultat suivant s’affiche :

À ce stade, une fenêtre Liste des autorités de certification peut apparaître. L’autorité de certification dans cet exemple a l’inscription http (en haut) et DCOM (en bas) activée. Sélectionnez l’option DCOM, si disponible :

Une fois l’autorité de certification spécifiée, PowerShell affiche l’ID de demande :

Étape 8 : Sur le serveur d’autorité de certification, dans le composant logiciel enfichable MMC de l’autorité de certification, cliquez sur Demandes en attente. Notez l’ID de la demande. Ensuite, cliquez avec le bouton droit sur la demande et choisissez Émettre.
Étape 9 : Sélectionnez le nœud Certificats émis. Recherchez le certificat qui vient d’être émis (l’ID de la demande doit correspondre). Double-cliquez pour ouvrir le certificat. Sélectionnez l’onglet Détails. Cliquez sur Copier dans un fichier. L’Assistant Exportation de certificat se lance. Cliquez sur Suivant. Choisissez les options suivantes pour le format de fichier :

Le format doit être « Standard de syntaxe de message cryptographique – Certificats PKCS #7 (.P7B) » et « Inclure tous les certificats dans le chemin de certification si possible » doit être coché.
Étape 10 : Copiez le fichier de certificat exporté sur le serveur FAS.
Étape 11 : Importez le certificat RA dans le registre du serveur FAS en saisissant la cmdlet PowerShell suivante sur le serveur FAS :

Par exemple :

Ce qui suit s’affiche :

Étape 12 : Fermez la console d’administration FAS, puis redémarrez-la.

Notez que l’étape « Autoriser ce service » est passée au vert et affiche maintenant « Désautoriser ce service ». L’entrée ci-dessous indique « Autorisé par : CSR hors ligne »
Étape 13 : Sélectionnez l’onglet Rôles utilisateur dans la console d’administration FAS et modifiez les paramètres décrits dans l’article principal sur FAS.
Remarque : La désautorisation du FAS via la console d’administration supprimera la règle utilisateur.
Utilisation de la console de gestion FAS
La console de gestion FAS ne peut pas effectuer de CSR hors ligne, il n’est donc pas recommandé de l’utiliser à moins que votre organisation n’autorise les CSR en ligne pour les certificats RA.
Lors de l’exécution des étapes de configuration initiale de FAS, après le déploiement des modèles de certificat et la configuration de l’autorité de certification, mais avant d’autoriser le service (étape 3 de la séquence de configuration) :
Étape 1 : Modifiez le fichier de configuration en changeant la ligne suivante comme suit :

Le fichier doit maintenant apparaître comme suit :

Certains TPM limitent la longueur de clé. La longueur de clé par défaut est de 2048 bits. Assurez-vous de spécifier une longueur de clé prise en charge par votre matériel.
Étape 2 : Autorisez le service.
Étape 3 : Émettez manuellement la demande de certificat en attente depuis le serveur de l’autorité de certification. Une fois le certificat RA obtenu, l’étape 3 de la séquence de configuration dans la console de gestion sera verte. À ce stade, la clé privée du certificat RA aura été générée dans le TPM. Le certificat sera valide pendant 2 ans par défaut.
Étape 4 : Modifiez le fichier de configuration pour qu’il redevienne comme suit :

Remarque : Bien que FAS puisse générer des certificats utilisateur avec des clés protégées par TPM, le matériel TPM peut être trop lent pour les déploiements importants.
Étape 5 : Redémarrez le service d’authentification fédérée Citrix. Cela force le service à relire le fichier de configuration et à refléter les valeurs modifiées. Les opérations automatiques de clé privée ultérieures affecteront les clés de certificat utilisateur ; ces opérations ne stockeront pas les clés privées dans le TPM, mais utiliseront le fournisseur de stockage de clés logicielles Microsoft.
Étape 6 : Sélectionnez l’onglet Rôles utilisateur dans la console d’administration FAS et modifiez les paramètres comme décrit dans l’article principal sur FAS.
Remarque : La désautorisation du FAS via la console d’administration supprimera la règle utilisateur.
Exemple 3
Cet exemple couvre une clé privée de certificat RA et les clés privées de certificats utilisateur stockées dans un HSM. Cet exemple suppose un HSM configuré. Votre HSM aura un nom de fournisseur, par exemple « Fournisseur de stockage de clés du fournisseur HSM ».
Si vous prévoyez d’exécuter votre serveur FAS dans un environnement virtualisé, vérifiez auprès de votre fournisseur HSM la prise en charge de l’hyperviseur.
Étape 1. Lors de la configuration initiale du FAS à l’aide de la console d’administration, ne complétez que les deux premières étapes : « Déployer les modèles de certificat » et « Configurer l’autorité de certification ».

Étape 2 : Consultez la documentation de votre fournisseur HSM pour déterminer la valeur ProviderName de votre HSM. Si votre HSM utilise CAPI, le fournisseur peut être désigné dans la documentation comme un fournisseur de services cryptographiques (CSP). Si votre HSM utilise CNG, le fournisseur peut être désigné comme un fournisseur de stockage de clés (KSP).
Étape 3 : Modifiez le fichier de configuration comme suit :

Le fichier doit maintenant apparaître comme suit :

Ce scénario suppose que votre HSM utilise CNG, de sorte que la valeur ProviderLegacyCsp est définie sur false. Si votre HSM utilise CAPI, la valeur ProviderLegacyCsp doit être définie sur true. Consultez la documentation de votre fournisseur HSM pour déterminer si votre HSM utilise CAPI ou CNG. Consultez également la documentation de votre fournisseur HSM concernant les longueurs de clé prises en charge pour la génération de clés RSA asymétriques. Dans cet exemple, la longueur de clé est définie sur la valeur par défaut de 2048 bits. Assurez-vous que la longueur de clé que vous spécifiez est prise en charge par votre matériel.
Étape 4 : Redémarrez le service d’authentification fédérée Citrix pour lire les valeurs du fichier de configuration.
Étape 5 : Générez la paire de clés RSA à l’intérieur du HSM et créez le CSR en cliquant sur Autoriser dans l’onglet Configuration initiale de la console d’administration FAS.
Étape 6 : Pour vérifier que la paire de clés a été générée dans le HSM, vérifiez les entrées d’application dans le journal d’événements Windows :

Remarque : [Fournisseur : [CNG] HSM_Vendor’s Key Storage Provider]
Étape 7 : Sur le serveur de l’autorité de certification, dans la console MMC de l’autorité de certification, sélectionnez le nœud Demandes en attente :

Cliquez avec le bouton droit sur la demande et sélectionnez Émettre.
Notez que l’étape « Autoriser ce service » est passée au vert et affiche maintenant « Désautoriser ce service ». L’entrée ci-dessous indique « Autorisé par : [<Nom de l’autorité de certification>] »

Étape 8 : Sélectionnez l’onglet Rôles utilisateur dans la console d’administration FAS et modifiez les paramètres comme décrit dans l’article principal sur FAS.
Remarque : La désautorisation du FAS via la console d’administration supprimera la règle utilisateur.
Stockage des certificats FAS
FAS n’utilise pas le magasin de certificats Microsoft sur le serveur FAS pour stocker ses certificats. Il utilise le registre.
Remarque : Lors de l’utilisation d’un HSM pour stocker des clés privées, les conteneurs HSM sont identifiés par un GUID. Le GUID de la clé privée dans le HSM correspond au GUID du certificat équivalent dans le registre.
Pour déterminer le GUID du certificat RA, entrez les cmdlets PowerShell suivantes sur le serveur FAS :
Add-pssnapin Citrix.a*
Get-FasAuthorizationCertificate –address <FQDN du serveur FAS>
Par exemple :
Get-FasAuthorizationCertificate -address cg-fas-2.auth.net

Pour obtenir une liste des certificats utilisateur, saisissez :
Get-FasUserCertificate -address <FAS server FQDN>
Par exemple :
Get-FasUserCertificate –adresse cg-fas-2.auth.net

Informations connexes
- L’article Federated Authentication Service est la référence principale pour l’installation et la configuration de FAS.
- Les déploiements FAS courants sont résumés dans l’article Federated Authentication Services architectures overview.
- D’autres articles « pratiques » sont présentés dans l’article Federated Authentication Service configuration and management.