Configuration de l’autorité de certification du Service d’authentification fédérée

Cet article décrit la configuration avancée du Service d’authentification fédérée Citrix (FAS) pour l’intégration avec les serveurs d’autorité de certification (CA) qui ne sont pas pris en charge par la console de gestion FAS. Les instructions utilisent les API PowerShell fournies par FAS. Vous devez disposer de connaissances de base sur PowerShell avant d’exécuter les instructions de cet article.

Définir plusieurs serveurs d’autorité de certification à utiliser dans FAS

Cette section décrit comment configurer un serveur FAS unique pour qu’il utilise plusieurs serveurs d’autorité de certification pour émettre des certificats. Cela permet l’équilibrage de charge et le basculement des serveurs d’autorité de certification.

Étape 1 : Découvrir combien de serveurs d’autorité de certification FAS peut localiser

Utilisez l’applet de commande Get-FASMsCertificateAuthority pour déterminer les serveurs d’autorité de certification auxquels FAS peut se connecter. Dans l’exemple suivant, FAS peut se connecter à trois serveurs d’autorité de certification.

PS > Add-PSSnapin Citrix*
PS > Get-FasMsCertificateAuthority

Address                         IsDefault   PublishedTemplates
-------                         ---------   ------------------

DC1.bvt.local\bvt-DC1-CA        False       {Citrix_SmartcardLogon, Citrix_Regis...
ca1.bvt.local\CA1.bvt.local     False       {Citrix_SmartcardLogon, Citrix_Regis...
ca2.bvt.local\ca2.bvt.local     False       {Citrix_SmartcardLogon, Citrix_Regis...

Étape 2 : Modifier la définition de certificat existante

Citrix vous recommande de créer un rôle à l’aide de la console de gestion FAS, plutôt qu’à l’aide de PowerShell pour créer le rôle. Cela évite d’avoir à ajouter le SDL manuellement ultérieurement. Dans l’exemple suivant, un rôle appelé « default » est créé à l’aide de la règle d’accès configurée :

Image localisée

Pour ajouter plusieurs autorités de certification au champ d’autorité de certification, vous devez configurer la définition de certificat à l’aide de PowerShell. (L’ajout de plusieurs autorités de certification n’est pas pris en charge à partir de la console d’administration FAS dans cette version.)

Tout d’abord, vous devez connaître le nom de la définition de certificat. Le nom ne peut pas être déterminé à partir de la console de gestion ; utilisez l’applet de commande Get-FASCertificateDefinition.

PS > Get-FasCertificateDefinition

Name                        : default_Definition
CertificateAuthorities      : {DC1.bvt.local\bvt-DC1-CA}
MsTemplate                  : Citrix_SmartcardLogon
AuthorizationCertificate    : 86ce221c-7599-43a3-9dbd-8e6a3c2be7b7
PolicyOids                  : {}
InSession                   : True

L’équivalent dans l’interface utilisateur est :

Image localisée

Une fois que vous avez le nom de la définition de certificat, modifiez la définition de certificat pour obtenir une liste de CertificateAuthorities, plutôt qu’un seul certificat :

Image localisée

L’applet de commande Get-FASCertificateDefinition renvoie désormais :

PS > Get-FasCertificateDefinition
Name                        : default_Definition
CertificateAuthorities      : {DC1.bvt.local\bvt-DC1-CA, ca1.bvt.local\CA1.bvt.local, ca2.bvt.local\ca2.bvt.local}
MsTemplate                  : Citrix_SmartcardLogon
AuthorizationCertificate    : 86ce221c-7599-43a3-9dbd-8e6a3c2be7b7
PolicyOids                  : {}
InSession                   : True

Une fois que vous avez configuré plusieurs serveurs d’autorité de certification, la console d’administration FAS ne peut pas être utilisée pour configurer FAS. Les champs « Certificate Authority » et « Certificate Template » sont vides, comme illustré ici :

Image localisée

Remarque :

Si vous utilisez la console pour modifier la règle d’accès, votre configuration d’autorité de certification multiple est remplacée. Répétez simplement l’étape 2 pour reconfigurer avec toutes les autorités de certification.

Si vous souhaitez reconfigurer les ACL de règle d’accès à partir de powershell et que vous ne savez pas quelles valeurs fournir, nous vous suggérons ce qui suit :

  • Créez une deuxième règle (« test », par exemple), avec une seule autorité de certification.
  • Configurez les ACL sur la règle « test ».
  • Utilisez PowerShell pour inspecter l’ACL (Get-FasRule —name “test”).
  • Utilisez PowerShell pour appliquer l’ACL à la règle d’origine (Set-FasRule).
  • Supprimez la règle « test » car elle n’est plus nécessaire.

Changements de comportement attendus

Une fois que vous avez configuré le serveur FAS avec de multiples serveurs d’autorité de certification, la génération de certificat utilisateur est distribuée entre tous les serveurs d’autorité de certification configurés. De plus, si l’un des serveurs d’autorité de certification configurés échoue, le serveur FAS bascule vers un autre serveur d’autorité de certification disponible.

Configurer l’autorité de certification Microsoft pour l’accès TCP

Par défaut, l’autorité de certification Microsoft utilise DCOM pour l’accès. Cela peut compliquer la mise en place d’un pare-feu de sécurité, par conséquent Microsoft permet le basculement vers un port TCP statique. Sur l’autorité de certification Microsoft, utilisez Démarrer>Exécuter>DCOMCNFG.exe pour ouvrir le panneau de configuration DCOM, développez Ordinateurs>Poste de travail>Configuration DCOM pour afficher le nœud Demande de CertSrv, puis modifiez les propriétés de l’application DCOM de demande de CertSrv :

Image localisée

Modifiez les points de terminaison (endpoints) pour sélectionner un point de terminaison statique et spécifiez un numéro de port TCP (900 dans l’illustration ci-dessus).

Redémarrez l’autorité de certification Microsoft et envoyez une demande de certificat. Si vous exécutez «netstat –a –n –b », vous verrez que certsvr écoute désormais le port 900 :

Image localisée

Il n’est pas nécessaire de configurer le serveur FAS (ou toute autre machine utilisant l’autorité de certification), car DCOM a une étape de négociation utilisant le port RPC. Lorsqu’un client doit utiliser DCOM, il se connecte au service DCOM RPC sur le serveur de certificats et demande l’accès à un serveur DCOM particulier. Cela déclenche l’ouverture du port 900 et le serveur DCOM indique au serveur FAS comment se connecter.

Pré-générer les certificats utilisateur

La durée d’ouverture de session pour les utilisateurs peut nettement s’améliorer lorsque les certificats utilisateur sont pré-générés dans le serveur FAS. Les sections suivantes décrivent comment y procéder, pour un ou plusieurs serveurs FAS.

Obtenir une liste d’utilisateurs Active Directory

Vous pouvez améliorer la génération de certificat en interrogeant AD et en stockant la liste des utilisateurs dans un fichier (par exemple, un fichier .csv), comme illustré dans l’exemple suivant.

Import-Module ActiveDirectory

$searchbase = "cn=users,dc=bvt,dc=local" # AD User Base to Look for Users, leave it blank to search all
$filename = "user_list.csv" # Filename to save

if ($searchbase -ne ""){
    Get-ADUser -Filter {(UserPrincipalName -ne "null") -and (Enabled -eq "true")} -SearchBase $searchbase -Properties UserPrincipalName | Select UserPrincipalName | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $filename
} else {
    Get-ADUser -Filter {(UserPrincipalName -ne "null") -and (Enabled -eq "true")} -Properties UserPrincipalName | Select UserPrincipalName | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $filename
}
<!--NeedCopy-->

Get-ADUser est une applet de commande qui envoie une requête de liste d’utilisateurs. L’exemple ci-dessus contient un argument de filtre pour inclure uniquement les utilisateurs disposant d’un UserPrincipalName et avec un état de compte « activé ».

L’argument SearchBase spécifie la partie d’Active Directory dans laquelle rechercher des utilisateurs. Vous pouvez ignorer cette option si vous voulez inclure tous les utilisateurs présents dans Active Directory. Remarque : cette requête peut renvoyer un grand nombre d’utilisateurs.

Le fichier CSV ressemble à l’exemple ci-dessous :

Image localisée

Serveur FAS

Le script PowerShell utilise la liste d’utilisateurs générée et crée une liste de certificats utilisateur.

Add-PSSnapin Citrix.A*
$csv = "user_list.csv"
$rule = "default" # rule/role in your admin console
$users = Import-Csv -encoding utf8 $csv
foreach ( $user in $users )
{
    $server = Get-FasServerForUser -UserPrincipalNames $user.UserPrincipalName
    if( $server.Server -ne $NULL) {
        New-FasUserCertificate -Address $server.Server -UserPrincipalName $user.UserPrincipalName -CertificateDefinition $rule"_Definition" -Rule $rule
    }
    if( $server.Failover -ne $NULL) {
        New-FasUserCertificate -Address $server.Failover -UserPrincipalName $user.UserPrincipalName -CertificateDefinition $rule"_Definition" -Rule $rule
    }
}
<!--NeedCopy-->

Si vous disposez de plusieurs serveurs FAS, le certificat d’un utilisateur particulier est généré deux fois : une fois sur le serveur principal et une autre sur le serveur de basculement.

Le script ci-dessus inclut une règle « default ». Si votre règle porte un autre nom (par exemple, « hello »), il vous suffit de modifier la variable $rule dans le script.

Image localisée

Renouveler les certificats d’autorité d’inscription

Si plusieurs serveurs FAS sont utilisés, vous pouvez renouveler un certificat d’autorisation FAS sans affecter les utilisateurs connectés. Remarque : bien que vous puissiez également utiliser l’interface utilisateur pour annuler et renouveler l’autorisation FAS, cela a pour effet de réinitialiser les options de configuration FAS.

Effectuez la procédure suivante dans l’ordre indiqué :

  1. Créer un nouveau certificat d’autorisation : New-FasAuthorizationCertificate

  2. Noter le GUID du nouveau certificat d’autorisation, renvoyé par : Get-FasAuthorizationCertificate

  3. Placer le serveur FAS en mode de maintenance : Set-FasServer –Address <FAS server> -MaintenanceMode $true

  4. Changer le nouveau certificat d’autorisation : Set-FasCertificateDefinition –AuthorizationCertificate <GUID>

  5. Retirer le serveur FAS du mode de maintenance : Set-FasServer –Address <FAS server> -MaintenanceMode $false

  6. Supprimer l’ancien certificat d’autorisation : Remove-FasAuthorizationCertificate

Informations connexes

Configuration de l’autorité de certification du Service d’authentification fédérée