Configuration de l’autorité de certification

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

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

Vous pouvez utiliser la console d’administration FAS pour configurer FAS avec plusieurs autorités de certification lors de la création ou de la modification d’une règle :

Modifiez la règle avec deux autorités de certification.

Toutes les autorités de certification sélectionnées doivent publier le modèle de certificat Citrix_SmartcardLogon (ou le modèle que vous avez choisi dans votre règle).

Si l’une des AC que vous souhaitez utiliser ne publie pas le modèle souhaité, suivez la procédure Configurer une autorité de certification.

Remarque:

Vous n’avez pas besoin d’effectuer l’étape Autoriser ce service pour chaque autorité de certification, car le certificat d’autorisation configuré dans cette étape peut être utilisé dans n’importe laquelle de vos autorités de certification.

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. Par ailleurs, en cas d’échec de l’un des serveurs d’AC configurés, le serveur FAS bascule sur un autre serveur d’AC disponible.

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

FAS accède à Microsoft CA via DCOM. DCOM utilise le port 135 pour découvrir le port sur lequel le service effectue les écoutes. Par défaut, le port d’écoute est alloué dynamiquement. Cela peut compliquer la mise en œuvre de la sécurité du pare-feu. Par conséquent, Microsoft a prévu de configurer un port statique. Pour configurer un port statique sur une AC Microsoft, sélectionnez Démarrer > Exécuter > dcomcnfg.exe pour ouvrir le panneau Configuration DCOM. Développez Ordinateurs > Mon ordinateur > Configuration DCOM pour afficher le nœud de demande CertSrv. Modifiez ensuite les propriétés de l’application DCOM de demande CertSrv :

Image localisée

Modifiez les points de terminaison pour sélectionner un point de terminaison statique et spécifiez un numéro de port TCP (900 dans le graphique précédent).

Dans cet exemple, le pare-feu doit autoriser les ports 135 et 900.

Redémarrez l’autorité de certification Microsoft pour appliquer la modification.

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 135. Lorsqu’un client doit utiliser DCOM, il se connecte au service DCOM RPC sur le serveur et demande l’accès à un serveur DCOM particulier. Cela déclenche l’ouverture du port 900 (dans cet exemple) et le serveur DCOM demande au client de se connecter à ce port.

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 standard qui envoie une requête de liste d’utilisateurs. L’exemple précédent contient un argument de filtre pour inclure uniquement les utilisateurs disposant d’un UPN UserPrincipalName et d’un compte à l’état « activé ».

L’argument SearchBase spécifie la partie d’Active Directory dans laquelle rechercher des utilisateurs. Vous pouvez ignorer cette option si vous souhaitez inclure tous les utilisateurs présents dans AD.

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 suivant crée une liste de certificats utilisateur à partir de la liste d’utilisateurs générée précédemment.

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 l’autre sur le serveur de basculement.

Le script précédent est conçu pour une règle nommée « par défaut ». Si votre règle porte un nom différent (par exemple, « bonjour »), modifiez la variable $rule dans le script.

Image localisée

Renouveler le certificat d’autorisation FAS

Vous pouvez renouveler un certificat d’autorisation FAS sans perturber les utilisateurs FAS.

Utilisation de la console d’administration FAS

  • Cliquez sur Réautoriser pour générer une nouvelle demande de certificat d’autorisation FAS : réautoriser

Vous devez approuver manuellement la demande auprès de l’AC. Pour en savoir plus, consultez Autoriser le service d’authentification fédérée.

  • Une fois qu’un nouveau certificat d’autorisation a été généré, le service FAS indique qu’il n’est pas encore associé à vos règles. Cliquez sur Mettre à jour la configuration pour associer le nouveau certificat d’autorisation aux règles. Mettre à jour la configuration

Utilisation de PowerShell

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

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

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

  3. Échangez l’ancien certificat d’autorisation avec le nouveau : Set-FasCertificateDefinition –AuthorizationCertificate <GUID>

  4. Supprimez l’ancien certificat d’autorisation : Remove-FasAuthorizationCertificate. Assurez-vous d’utiliser l’option DeleteUserCerts $false, afin de ne pas interrompre l’activité de l’utilisateur.

Annulation de l’autorisation FAS et suppression des certificats FAS

Utilisation de la console d’administration FAS

  • Cliquez sur le lien Annuler l’autorisation et supprimez les certificats d’autorisation. Vous pouvez supprimer tous les certificats utilisateur et toutes les règles (même si cela n’est pas nécessaire pour effacer les certificats). Annuler l'autorisation

  • Si vous ne supprimez pas les règles, la prochaine fois que vous autoriserez le FAS, vous recevrez un avertissement : Avertissement

L’avertissement indique que le certificat d’autorisation n’est pas encore associé aux règles. Cliquez sur Mettre à jour la configuration pour associer le nouveau certificat d’autorisation aux règles.

Utilisation de PowerShell

Exécutez la commande PowerShell suivante pour supprimer le certificat d’autorisation et les certificats utilisateur :

$AuthCert = Get-FasAuthorizationCertificate -Address localhost
Remove-FasAuthorizationCertificate -Address localhost -Id $AuthCert.Id
<!--NeedCopy-->

Remarque:

Get-FasAuthorizationCertificate renvoie une liste des certificats d’autorisation et des demandes de certificat d’autorisation en attente, pour vous permettre d’inspecter la valeur de $AuthCert avant de poursuivre l’opération Remove-FasAuthorizationCertificate.

Vous pouvez supprimer le certificat d’autorisation, mais conserver les certificats utilisateur, en définissant le paramètre DeleteUserCerts sur false :

Remove-FasAuthorizationCertificate -Address localhost -Id $AuthCert.Id -DeleteUserCerts $false

Les certificats utilisateur restants peuvent toujours être utilisés par le FAS pour la connexion au VDA et les certificats en- session. Cette approche s’avère particulièrement utile lors du renouvellement de l’autorisation FAS. Pour en savoir plus, consultez Renouveler le certificat d’autorisation FAS.

  • Vous pouvez supprimer les certificats utilisateurs comme suit :

Remove-FasUserCertificate -Address localhost

Cette commande supprime tous les certificats utilisateur du serveur FAS. La commande comporte des options permettant de filtrer l’ensemble des certificats supprimés.

Remarque:

Lorsque le FAS supprime un certificat d’autorisation ou un certificat utilisateur de son espace de stockage interne, il supprime également la paire de clés associée.

Autorisation hors ligne

Le certificat d’autorisation FAS peut être demandé hors ligne à l’aide de PowerShell. Cette méthode convient aux organisations qui ne souhaitent pas que leur autorité de certification émette un certificat d’autorisation via une demande de signature de certificat en ligne.

  1. Lors de la configuration initiale du service FAS à l’aide de la console d’administration, effectuez uniquement les deux premières étapes : Déployer les modèles de certificats et Configurer une autorité de certification. Déployer des modèles et configurer l'autorité de certification

  2. Chargez les applets de commande PowerShell suivantes sur le serveur FAS :

    Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1`
    <!--NeedCopy-->
    
  3. Générez la paire de clés et créez la demande de signature de certificat en saisissant l’applet de commande PowerShell suivante sur le serveur FAS :

    
    $AuthCertRequest = New-FasAuthorizationCertificateRequest -Address localhost $AuthCertRequest
    
    <!--NeedCopy-->
    

    Voici ce que l’on obtient :

    Résultat

    Remarque:

    Les propriétés de la paire de clés générée sont déterminées par la configuration de la clé d’autorisation FAS. Pour en savoir plus, consultez Protection de la clé privée.

  4. Copiez la demande de certificat sur le disque :

    `$AuthCertRequest.CertificateRequest > c:\temp\authcert.csr
    <!--NeedCopy-->
    
  5. Présentez le fichier de demande de certificat (dans cet exemple, authcert.csr) à votre autorité de certification, approuvez la demande et obtenez le certificat en réponse.

    Les cinq étapes suivantes concernent spécifiquement l’utilisation d’une autorité de certification Microsoft Enterprise. Pour utiliser d’autres autorités de certification, contactez votre fournisseur d’AC pour obtenir de l’aide.

    • Sur le serveur de votre autorité de certification, ajoutez le composant logiciel enfichable MMC des 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 deux ans :

      Propriétés du modèle de clés privées

    • Sur le serveur de votre autorité de certification, ajoutez le composant logiciel enfichable MMC de l’autorité de certification. Cliquez avec le bouton droit sur Modèles de certificats. Sélectionnez Nouveau, puis cliquez sur Modèle de certificat à délivrer. Choisissez le modèle que vous avez créé.

    • Soumettez la demande de signature de certificat à votre autorité de certification en saisissant ce qui suit dans une invite de commande PowerShell sur le serveur FAS :

      certreq -submit -attrib "certificatetemplate:<certificate template from step 5a>" <certificate request file from step 4>
      <!--NeedCopy-->
      

      Par exemple :

      certreq -submit -attrib "certificatetemplate:Offline_RA" C:\temp\authcert.csr
      <!--NeedCopy-->
      

      L’exécution de la commande précédente renvoie ce qui suit :

      Résultat du modèle de certificat

      À ce stade, une fenêtre Liste des autorités de certification peut s’afficher. Dans cet exemple, l’autorité de certification a activé l’inscription DCOM (en haut) et HTTP (en bas). Sélectionnez DCOM, si disponible, puis cliquez sur OK:

      Liste des autorités de certification

      Une fois l’autorité de certification spécifiée, la commande se termine et affiche l’élément RequestID :

      Demande de certificat en attente

    • Sur le serveur de l’autorité de certification, dans le composant logiciel enfichable MMC de l’autorité de certification, cliquez sur Demandes en attente. Rechercher l’ID de la demande. Puis cliquez avec le bouton droit sur la demande et choisissez Délivrer.

    • Sélectionnez le nœud Certificats émis. Recherchez le certificat qui a été émis (il doit correspondre à l’ID de la demande). Cliquez deux fois pour ouvrir le certificat. Sélectionnez la page de l’onglet Détails. Cliquez sur Copier dans un fichier. L’assistant d’exportation de certificat ** démarre. Cliquez sur **Suivant. Choisissez les options suivantes pour le format de fichier :

      Assistant d'exportation de certificats de clés privées

    Le format doit respecter la Norme de syntaxe des messages cryptographiques – Certificats PKCS #7 (.P7B) et l’option Inclure tous les certificats dans le chemin de certification si possible doit être sélectionné.

  6. Copiez le fichier de certificat exporté sur le serveur FAS.

  7. Importez le certificat de l’autorité d’inscription dans le serveur FAS en saisissant l’applet de commande PowerShell suivante sur le serveur FAS :

    Import-FasAuthorizationCertificateResponse -Address localhost -Id $AuthCertRequest.Id -Pkcs7CertificateFile <Certificate file from step 6>
    <!--NeedCopy-->
    

    Par exemple :

    Import-FasAuthorizationCertificateResponse -Address localhost -Id $AuthCertRequest.Id -Pkcs7CertificateFile C:\temp\response.p7b
    <!--NeedCopy-->
    

    L’exécution de cette commande renvoie ce qui suit :

    Réponse - Importer le certificat d'autorisation FAS

  8. Vérifiez la console d’administration FAS. L’autorisation FAS doit désormais être affichée.

    Autoriser le service

    Remarque:

    Une coche verte figure à côté de l’étape Autoriser ce service.

  9. Poursuivez la configuration en créant une règle. Pour des informations plus détaillées, reportez-vous à Configurer les règles.

Informations connexes

Configuration de l’autorité de certification