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 avoir une connaissance de base de PowerShell avant d’exécuter les instructions de cet article.

Configurer plusieurs serveurs d’autorité de certification pour une utilisation 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 :

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

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

Si l’une des autorités de certification que vous souhaitez utiliser ne publie pas le modèle souhaité, effectuez l’étape Configurer une autorité de certification pour cette 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é à cette étape peut être utilisé avec n’importe laquelle de vos autorités de certification.

Modifications de comportement attendues

Après avoir configuré le serveur FAS avec plusieurs serveurs d’autorité de certification, la génération des certificats utilisateur est répartie entre tous les serveurs d’autorité de certification configurés. De plus, si l’un des serveurs d’autorité de certification configurés tombe en panne, le serveur FAS bascule vers un autre serveur d’autorité de certification disponible.

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

FAS accède à l’autorité de certification Microsoft à l’aide de DCOM. DCOM utilise le port 135 pour découvrir le port sur lequel le service écoute. Par défaut, le port d’écoute est alloué dynamiquement.

Cela peut entraîner des complexités lors de la mise en œuvre de la sécurité du pare-feu. Par conséquent, Microsoft a prévu une disposition pour configurer un port statique.

Pour configurer un port statique sur l’autorité de certification Microsoft, sélectionnez Démarrer > Exécuter > dcomcnfg.exe pour ouvrir le panneau de configuration DCOM. Développez Ordinateurs > Mon ordinateur > Configuration DCOM pour afficher le nœud Demande CertSrv. Ensuite, modifiez les propriétés de l’application DCOM 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 dispose d’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

Le temps de connexion des utilisateurs s’améliorera considérablement lorsque les certificats utilisateur seront pré-générés au sein du serveur FAS. Les sections suivantes décrivent comment cela peut être fait, que ce soit pour un seul ou plusieurs serveurs FAS.

Obtenir une liste d’utilisateurs Active Directory

Vous pouvez améliorer la génération de certificats en interrogeant l’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 cmdlet standard pour interroger une liste d’utilisateurs. L’exemple précédent contient un argument de filtre pour lister uniquement les utilisateurs ayant un UserPrincipalName et un statut de compte « activé ».

L’argument SearchBase restreint la partie de l’AD à rechercher pour les utilisateurs. Vous pouvez le laisser vide si vous souhaitez inclure tous les utilisateurs de l’AD.

Remarque :

  • Cette requête peut renvoyer un grand nombre d’utilisateurs.

  • Le fichier CSV ressemble à ceci :

image localisée

Serveur FAS

Le script PowerShell suivant prend la liste d’utilisateurs précédemment 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 avez plus d’un serveur FAS, le certificat d’un utilisateur particulier est généré deux fois : une fois sur le serveur principal et une fois sur le serveur de basculement.

  • Le script précédent est conçu pour une règle nommée « default ». Si vous avez un nom de règle différent (par exemple, « hello »), 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 interrompre 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](/en-us/federated-authentication-service/2503/media/reauthorize-fas-admin-console.png)

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

-  Une fois qu'un nouveau certificat d'autorisation a été généré, 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 à vos règles. ![Mettre à jour la configuration](/en-us/federated-authentication-service/2503/media/update-the-config-fas-admin-console.png)

Utilisation de PowerShell

Effectuez la séquence suivante :

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

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

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

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

Désautorisation de FAS et suppression des certificats FAS

Utilisation de la console d’administration FAS

-  Cliquez sur le lien **Désautoriser** et supprimez les certificats d'autorisation. Vous pouvez supprimer tous les certificats utilisateur et toutes les règles (bien que ce ne soit pas nécessaire pour effacer les certificats). ![Désautoriser](/en-us/federated-authentication-service/2503/media/deauthorize-service-and-fas-admin-console.png)

-  Si vous ne supprimez pas les règles, lorsque vous autoriserez FAS ultérieurement, vous recevrez un avertissement : ![Avertissement](/en-us/federated-authentication-service/2503/media/update-the-config-fas-admin-console.png)

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

Utilisation de PowerShell

Utilisez 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 de certificats d’autorisation et de demandes de certificat d’autorisation en attente, afin que vous puissiez inspecter la valeur de $AuthCert avant de procéder avec 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 FAS pour la connexion VDA et les certificats en session, ce qui est utile lors du renouvellement de l’autorisation FAS. Pour plus de détails, consultez Renouveler le certificat d’autorisation FAS.

  • Vous pouvez supprimer les certificats utilisateur comme suit :

Remove-FasUserCertificate -Address localhost

Cette commande supprime tous les certificats utilisateur du serveur FAS. La commande dispose d’options pour filtrer l’ensemble des certificats supprimés.

Remarque :

Lorsque FAS supprime un certificat d’autorisation ou un certificat utilisateur de son 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. Cela 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 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 une autorité de certification. Déployer les modèles et configurer l’autorité de certification

  2. Chargez les cmdlets 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 entrant la cmdlet PowerShell suivante sur le serveur FAS :

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

    Ceci donne :

    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 plus de détails, consultez Protection des clés privées.

  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 une réponse de certificat.

    Les cinq étapes suivantes sont spécifiques à l’utilisation d’une autorité de certification Microsoft Enterprise ; pour les autres autorités de certification, contactez votre fournisseur d’autorité de certification pour obtenir de l’aide.

    • Sur votre serveur d’autorité de certification, 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 deux ans :

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

    • Sur votre serveur d’autorité de certification, ajoutez le composant logiciel enfichable MMC Autorité de certification. 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 avez créé.

    • Soumettez la demande de signature de certificat à votre autorité de certification en tapant 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 donne :

      Résultat du modèle de certificat

      À ce stade, une fenêtre Liste des autorités de certification peut apparaître. L’autorité de certification dans cet exemple a l’inscription DCOM (en haut) et HTTP (en bas) activée. 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 le RequestID :

      Statut en attente de la demande de certificat

    • Sur le serveur d’autorité de certification, dans le composant logiciel enfichable MMC Autorité de certification, cliquez sur Demandes en attente. Recherchez l’ID de demande. Ensuite, cliquez avec le bouton droit sur la demande et choisissez Émettre.

    • Sélectionnez le nœud Certificats émis. Recherchez le certificat qui a été émis (l’ID de 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 :

      Assistant d’exportation de certificat de clés privées

    Le format doit être Cryptographic Message Syntax Standard – Certificats PKCS #7 (.P7B) et 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’enregistrement sur le serveur FAS en entrant la cmdlet 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 donne :

    Importer la réponse du certificat d’autorisation FAS

  8. Vérifiez la console d’administration FAS. Elle doit indiquer que FAS est maintenant autorisé.

    Autoriser le service

    Remarque :

    L’étape Autoriser ce service est cochée en vert.

  9. Poursuivez la configuration en créant une règle. Pour plus de détails, consultez Configurer les règles.

Informations connexes