Configuration de l’authentification Kerberos pour les services d’accès client à charge équilibrée

[Cette rubrique est une documentation préliminaire et peut être modifiée dans les versions ultérieures. Des rubriques vides sont incluses comme espaces réservés. N’hésitez pas à nous transmettre vos commentaires. Envoyez-nous un e-mail à l’adresse ExchangeHelpFeedback@microsoft.com.]  

Sapplique à :Exchange Server 2016

Résumé : Découvrez comment utiliser l’authentification Kerberos à l’aide de serveurs Exchange 2016 à charge équilibrée qui exécutent des services d’accès client.

Pour utiliser l’authentification Kerberos avec des serveurs de boîtes aux lettres à charge équilibrée exécutant des services d’accès client, vous devez suivre les étapes de configuration décrites dans cet article.

Tous les serveurs Exchange exécutant des services d’accès client qui partagent les mêmes espaces de noms et URL doivent utiliser les mêmes informations d’identification du compte de service de substitution (ou informations d’identification ASA). En règle générale, un seul compte suffit pour une forêt pour chaque version d’Exchange.

importantImportant :
Exchange 2010 et Exchange 2016 ne peuvent pas partager les mêmes informations d’identification ASA. Si vos informations d’identification ASA ont été créées pour Exchange 2010, vous devez créer un nouveau compte pour Exchange 2016.
importantImportant :
Même si les enregistrements CNAME sont pris en charge pour les espaces de noms partagés, Microsoft recommande d’utiliser des enregistrements A. Ainsi, le client peut correctement émettre une demande de ticket Kerberos fondée sur le nom partagé, et non sur le serveur FQDN.

Lorsque vous configurez le compte ASA, gardez ces recommandations à l’esprit :

  • Type de compte. Nous vous recommandons de créer un compte d’ordinateur plutôt qu’un compte d’utilisateur. Un compte d’ordinateur ne permet pas de connexion interactive et peut avoir des stratégies de sécurité plus simples que celles d’un compte d’utilisateur. Si vous créez un compte d’ordinateur, le mot de passe n’expire pas, mais nous vous recommandons de le mettre à jour régulièrement dans tous les cas. Vous pouvez utiliser la stratégie de groupe locale pour spécifier la durée de vie maximale du compte d’ordinateur et des scripts et ainsi supprimer régulièrement les comptes d’ordinateurs qui ne répondent pas aux exigences des stratégies actuelles. Votre stratégie de sécurité locale détermine également à quel moment vous devez modifier le mot de passe. Bien que nous vous recommandions d’utiliser un compte d’ordinateur, vous pouvez créer un compte d’utilisateur.

  • Nom du compte. Aucune exigence ne s’applique au nom du compte. Vous pouvez utiliser n’importe quel nom conforme à votre schéma d’affectation de noms.

  • Groupe de comptes. Le compte que vous utilisez pour les informations d'identification ASA n’ont pas besoin de privilège de sécurité particulier. Si vous utilisez un compte d’ordinateur, le compte doit simplement être membre du groupe de sécurité Ordinateurs du domaine. Si vous utilisez un compte d’utilisateur, il est simplement nécessaire que le compte soit un membre du groupe de sécurité Utilisateurs du domaine.

  • Mot de passe du compte. Le mot de passe que vous fournissez lorsque vous créez le compte sera utilisé. Ainsi, lorsque vous créez le compte, vous devez utiliser un mot de passe complexe et veiller à ce qu’il soit conforme aux exigences de mot de passe de votre organisation.

Pour créer le compte ASA en tant que compte d’ordinateur, procédez comme suit :
  1. Sur un ordinateur joint au domaine, exécutez Windows PowerShell ou l’Environnement de ligne de commande Exchange Management Shell.

    Utilisez la cmdlet Import-Module pour importer le module Active Directory.

    Import-Module ActiveDirectory
    
  2. Utilisez la cmdlet New-ADComputer pour créer un compte d’ordinateur Active Directory en suivant la syntaxe de cette cmdlet :

    New-ADComputer [-Name] <string> [-AccountPassword <SecureString>] [-AllowReversiblePasswordEncryption <System.Nullable[boolean]>] [-Description <string>] [-Enabled <System.Nullable[bool]>]
    

    Exemple :

    New-ADComputer -Name EXCH2016ASA -AccountPassword (Read-Host 'Enter password' -AsSecureString) -Description 'Alternate Service Account credentials for Exchange' -Enabled:$True -SamAccountName EXCH2016ASA
    

    Quand EXCH2016ASA correspond au nom du compte, la description Alternate Service Account credentials for Exchange peut être ce que vous voulez et la valeur du paramètre SamAccountName (ici EXCH2016ASA) doit être unique dans votre répertoire.

  3. Utilisez la cmdlet Set-ADComputer pour activer le support de chiffrement AES 256 utilisé par Kerberos à l’aide de la syntaxe de cette cmdlet :

    Set-ADComputer [-Name] <string> [-add @{<attributename>="<value>"]
    

    Exemple :

    Set-ADComputer EXCH2016ASA -add @{"msDS-SupportedEncryptionTypes"="28"}
    

    EXCH2016ASA est le nom du compte, et où l’attribut à modifier est msDS-SupportedEncryptionTypes avec une valeur décimale de 28, qui permet de réaliser les chiffrements suivants : RC4-HMAC, AES128-CTS-HMAC-SHA1-96, AES256-CTS-HMAC-SHA1-96.

Pour en savoir plus sur ces cmdlets, consultez les articles Import-Module et New-ADComputer.

Si votre déploiement est un déploiement inter-forêts ou de forêt de ressources et que certains utilisateurs se trouvent en dehors de la forêt Active Directory qui contient Exchange, vous devez configurer des relations d’approbation entre les forêts. Aussi, pour chaque forêt dans le déploiement, vous devez configurer une règle de routage qui permet d’établir une relation d’approbation entre tous les suffixes de noms dans la forêt et entre les forêts. Pour plus d’informations sur la gestion des approbations inter-forêts, consultez l’article Gestion des approbations de forêt.

Une fois le compte ASA créé, vous devez associer les noms de principaux du service (SPN) Exchange aux informations d’identification ASA. La liste des SPN Exchange peut différer selon votre configuration, mais elle doit au moins comprendre les éléments suivants :

  • http/   Utilisez ce SPN pour Outlook Anywhere, MAPI sur HTTP, Services Web Exchange, la découverte automatique et les carnets d’adresses en mode hors connexion.

Les valeurs de SPN doivent correspondre au nom de service sur l’équilibrage de la charge réseau et non sur des serveurs individuels. Pour vous aider à choisir les valeurs SPN appropriées, prenez en compte les scénarios suivants :

Chacun de ces scénarios part du principe que les noms de domaine complets (FQDN) à charge équilibrée ont été déployés pour les URL internes, les URL externes et l’URI interne de découverte automatique utilisées par les membres exécutant les services d’accès client.

Si vous disposez d’un site Active Directory unique, votre environnement peut ressembler à celui représenté par le schéma ci-dessous :

Objet CAS Array avec un seul site Active Directory et l’authentification Kerberos

En fonction des noms de domaine complets utilisés par les clients Outlook internes dans le schéma précédent, vous devez associer les SPN suivants au compte ASA :

  • http/mail.corp.tailspintoys.com

  • http/autodiscover.corp.tailspintoys.com

Si vous disposez de plusieurs sites Active Directory, votre environnement peut ressembler à celui représenté par le schéma ci-dessous :

Objet CAS Array avec plusieurs sites AD et l’authentification Kerberos

En fonction des noms de domaine complets utilisés par les clients Outlook dans le schéma précédent, vous devez associer les SPN suivants au compte ASA utilisé par les serveurs de boîtes aux lettres exécutant des services d’accès client dans ADSite 1 :

  • http/mail.corp.tailspintoys.com

  • http/autodiscover.corp.tailspintoys.com

Vous devez également associer les SPN suivants au compte ASA utilisé par les serveurs de boîtes aux lettres exécutant des services d’accès client dans ADSite 2 :

  • http/mailsdc.corp.tailspintoys.com

  • http/autodiscoversdc.corp.tailspintoys.com

Une fois le compte créé, vous devez vérifier qu’il a été répliqué sur tous les contrôleurs de domaine AD DS. Plus précisément, le compte doit être présent sur chaque serveur exécutant les services d’accès client qui utiliseront les informations d’identification du compte ASA. Ensuite, vous configurez le compte en tant que compte ASA sur chaque serveur exécutant les services d’accès client dans votre déploiement.

Vous pouvez configurer le compte ASA en utilisant l’Environnement de ligne de commande Exchange Management Shell, tel que décrit dans l’une de ces procédures :

  • Déployer le compte ASA sur le premier serveur Exchange 2016 exécutant les services d’accès client

  • Déployer le compte ASA sur les autres serveurs Exchange 2016 exécutant les services d’accès client

La seule méthode prise en charge pour le déploiement des informations d'identification ASA consiste à utiliser le script RollAlternateServiceAcountPassword.ps1. Pour plus d'informations, voir Utilisation du script RollAlternateserviceAccountCredential.ps1 dans l’environnement de ligne de commande Exchange Management Shell. Une fois le script exécuté, il est recommandé de vérifier que tous les serveurs ciblés ont été mis à jour correctement.

  1. Ouvrez l’Environnement de ligne de commande Exchange Management Shell sur un serveur Exchange 2016.

  2. Naviguez jusqu’aux répertoires <Exchange 2016 installation directory>\V15\Scripts.

  3. Exécutez la commande suivante pour déployer les informations d’identification ASA sur le premier serveur Exchange 2016 exécutant les services d’accès client :

    .\RollAlternateServiceAccountPassword.ps1 -ToSpecificServer cas-1.corp.tailspintoys.com -GenerateNewPasswordFor tailspin\EXCH2016ASA$
    
  4. Lorsque vous êtes invité à indiquer si vous souhaitez modifier le mot de passe pour le compte de service de substitution, répondez Oui.

Voici un exemple de sortie qui est affiché lorsque vous exécutez le script RollAlternateServiceAccountPassword.ps1.

========== Starting at 01/12/2016 10:17:47 ==========
Creating a new session for implicit remoting of "Get-ExchangeServer" command...
Destination servers that will be updated:

Name                                                        PSComputerName
----                                                        --------------
cas-1                                                   cas-1.corp.tailspintoys.com


Credentials that will be pushed to every server in the specified scope (recent first):

UserName                                                                                                        
Password
--------                                                                                                        
--------
tailspin\EXCH2016ASA$                                                                             
System.Security.SecureString


Prior to pushing new credentials, all existing credentials that are invalid or no longer work will be removed from  the destination servers.
Pushing credentials to server mbx-1
Setting a new password on Alternate Serice Account in Active Directory

Password change
Do you want to change password for tailspin\EXCH2016ASA$ in Active Directory at this time?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y
Preparing to update Active Directory with a new password for tailspin\EXCH2016ASA$ ...
Resetting a password in the Active Directory for tailspin\EXCH2016ASA$ ...
New password was successfully set to Active Directory.
Retrieving the current Alternate Service Account configuration from servers in scope
Alternate Service Account properties:

StructuralObjectClass QualifiedUserName Last Pwd Update       SPNs
--------------------- ----------------- ---------------       ----
computer              tailspin\EXCH2016ASA$   1/12/2016 10:19:53 AM

Per-server Alternate Service Account configuration as of the time of script completion:


   Array: {mail.corp.tailspintoys.com}

Identity  AlternateServiceAccountConfiguration
--------  ------------------------------------
cas-1 Latest: 1/12/2016 10:19:22 AM, tailspin\EXCH2016ASA$
          ...

========== Finished at 01/12/2016 10:20:00 ==========

        THE SCRIPT HAS SUCCEEDED

  1. Ouvrez l’Environnement de ligne de commande Exchange Management Shell sur un serveur Exchange 2016.

  2. Naviguez jusqu’aux répertoires <Exchange 2016 installation directory>\V15\Scripts.

  3. Exécutez la commande suivante pour déployer les informations d’identification ASA sur un autre serveur Exchange 2016 exécutant les services d’accès client :

    .\RollAlternateServiceAccountPassword.ps1 -ToSpecificServer cas-2.corp.tailspintoys.com -CopyFrom cas-1.corp.tailspintoys.com
    
  4. Répétez l’étape 3 pour chaque serveur exécutant les services d’accès client sur lequel vous souhaitez déployer les informations d’identification ASA.

Voici un exemple de sortie qui est affiché lorsque vous exécutez le script RollAlternateServiceAccountPassword.ps1.

========== Starting at 01/12/2016 10:34:35 ==========
Destination servers that will be updated:

Name                                                        PSComputerName
----                                                        --------------
cas-2                                                   cas-2.corp.tailspintoys.com


Credentials that will be pushed to every server in the specified scope (recent first):

UserName                                                                                                        
Password
--------                                                                                                        
--------
tailspin\EXCH2016ASA$                                                                             
System.Security.SecureString

Prior to pushing new credentials, all existing credentials will be removed from the destination servers.
Pushing credentials to server mbx-2
Retrieving the current Alternate Service Account configuration from servers in scope
Alternate Service Account properties:

StructuralObjectClass QualifiedUserName Last Pwd Update       SPNs
--------------------- ----------------- ---------------       ----
computer              tailspin\EXCH2016ASA$   1/12/2016 10:19:53 AM

Per-server Alternate Service Account configuration as of the time of script completion:


   Array: cas-2.corp.tailspintoys.com

Identity  AlternateServiceAccountConfiguration
--------  ------------------------------------
cas-2 Latest: 1/12/2016 10:37:59 AM, tailspin\EXCH2016ASA$
          ...


========== Finished at 01/12/2016 10:38:13 ==========

        THE SCRIPT HAS SUCCEEDED

  • Ouvrez l’Environnement de ligne de commande Exchange Management Shell sur un serveur Exchange 2016.

  • Exécutez la commande suivante pour vérifier les paramètres sur un serveur exécutant les services d’accès client :

    Get-ClientAccessServer CAS-3 -IncludeAlternateServiceAccountCredentialStatus | Format-List Name, AlternateServiceAccountConfiguration
    
  • Répétez l’étape 2 sur chaque serveur exécutant les services d’accès client pour lequel vous souhaitez vérifier le déploiement des informations d’identification ASA.

Voici un exemple de la sortie qui est affichée lorsque vous exécutez la commande Get-ClientAccessServer ci-dessus et qu'aucune information d'identification ASA précédente n'a été définie.

Name                                 : CAS-1
AlternateServiceAccountConfiguration : Latest: 1/12/2016 10:19:22 AM, tailspin\EXCH2016ASA$
                                       Previous: <Not set>
	                                       ...

Voici un exemple de la sortie qui est affichée lorsque vous exécutez la commande Get-ClientAccessServer ci-dessus et que des informations d'identification ASA ont été définies précédemment. Les informations d'identification ASA précédentes et la date et l'heure auxquelles elles ont été définies sont renvoyées.

Name                                 : CAS-3
AlternateServiceAccountConfiguration : Latest: 1/12/2016 10:19:22 AM, tailspin\EXCH2016ASA$
                                       Previous: 7/15/2015 12:58:35 PM, tailspin\oldSharedServiceAccountName$
 	                                       ...

importantImportant :
N’associez pas les SPN avec des informations d’identification ASA tant que vous n’avez pas déployé ces informations d’identification sur au moins un serveur Exchange 2016, comme décrit précédemment dans la section Déployer les informations d'identification ASA sur le premier serveur Exchange 2016 exécutant les services d'accès client. Dans le cas contraire, vous rencontrerez des erreurs d’authentification Kerberos.

Avant d’associer les SPN au compte ASA, vous devez vérifier que les SPN cibles ne sont pas déjà associés à un autre compte de la forêt. Les informations d’identification ASA doivent être le seul compte de la forêt auquel ces noms SPN sont associés. Vous pouvez vérifier qu’aucun autre compte de la forêt n’est associé aux noms de principaux du service en exécutant la commande setspn à partir de la ligne de commande.

Pour vérifier qu’un SPN n’est pas déjà associé à un compte dans une forêt en exécutant la commande setspn, procédez comme suit :
  1. Appuyez sur Démarrer. Dans la zone Recherche, saisissez Invite de commandes, puis, dans la liste des résultats, sélectionnez Invite de commandes.

  2. Depuis l’invite de commandes, entrez la commande suivante :

    setspn -F -Q <SPN>
    

    Où <SPN> est le SPN que vous souhaitez associer au compte ASA. Par exemple :

    setspn -F -Q http/mail.corp.tailspintoys.com
    

    La commande ne doit retourner aucune donnée. Si elle renvoie des données, cela signifie qu’un autre compte est déjà associé au SPN. Répétez une fois cette étape pour chaque SPN que vous souhaitez associer au compte ASA.

Pour associer un SPN à des informations d'identification ASA à l’aide de la commande setspn, procédez comme suit :
  1. Appuyez sur Démarrer. Dans la zone Recherche, saisissez Invite de commandes, puis, dans la liste des résultats, sélectionnez Invite de commandes.

  2. Depuis l’invite de commandes, entrez la commande suivante :

    setspn -S <SPN> <Account>$
    

    Où <SPN> est le SPN que vous souhaitez associer aux informations d’identification du compte ASA et <Account> est le compte associé aux informations d’identification du compte ASA. Par exemple :

    setspn -S http/mail.corp.tailspintoys.com tailspin\EXCH2016ASAXCH2016ASA$
    

    Exécutez une fois la commande suivante pour chaque SPN que vous souhaitez associer aux informations d’identification du compte ASA.

Pour vérifier que vous avez associé les noms SPN aux informations d’identification ASA à l’aide de la commande setspn, procédez comme suit :
  1. Appuyez sur Démarrer. Dans la zone Recherche, saisissez Invite de commandes, puis, dans la liste des résultats, sélectionnez Invite de commandes.

  2. Depuis l’invite de commandes, entrez la commande suivante :

    setspn -L <Account>$
    

    Où <Account> est le compte associé au compte ASA. Par exemple :

    setspn -L tailspin\EXCH2016ASAXCH2016ASA$
    

    Vous ne devez exécuter cette commande qu’une seule fois.

  1. Ouvrez l’Environnement de ligne de commande Exchange Management Shell sur un serveur Exchange 2016.

  2. Pour activer l’authentification Kerberos pour les clients Outlook Anywhere, exécutez la commande suivante sur votre serveur Exchange 2016 exécutant les services d’accès client :

    Get-OutlookAnywhere -Server CAS-1 | Set-OutlookAnywhere -InternalClientAuthenticationMethod  Negotiate
    
  3. Pour activer l’authentification Kerberos pour le MAPI sur des clients HTTP, exécutez les opérations suivantes sur votre serveur Exchange 2016 exécutant des services d’accès client :

    Get-MapiVirtualDirectory -Server CAS-1 | Set-MapiVirtualDirectory -IISAuthenticationMethods Ntlm, Negotiate
    
  4. Répétez les étapes 2 et 3 pour chaque serveur Exchange 2016 exécutant les services d’accès client pour lequel vous voulez activer l’authentification Kerberos.

Après avoir correctement configuré Kerberos et le compte ASA, vérifiez que les clients peuvent s’authentifier, comme décrit dans ces tâches.

Le service Hôte de services Microsoft Exchange (MSExchangeServiceHost) sur le serveur exécutant les services d’accès client gère les informations d’identification du compte ASA. Si ce service n’est pas en cours d’exécution, l’authentification Kerberos n’est pas possible. Par défaut, le service est configuré pour se lancer automatiquement au démarrage de l’ordinateur.

Pour vérifier que le service Hôte de services Microsoft Exchange est démarré
  1. Cliquez sur Démarrer, entrez services.msc puis sélectionnez services.msc dans la liste.

  2. Dans la fenêtre Services, repérez le service Hôte de services Microsoft Exchange dans la liste des services.

  3. L’état du service doit être En cours d’exécution. Si l’état n’est pas En cours d’exécution, cliquez avec le bouton droit sur le service, puis sur Démarrer.

Quand vous avez configuré le compte ASA sur chaque serveur exécutant les services d’accès client, vous avez exécuté la cmdlet set-ClientAccessServer. Une fois que vous avez exécuté cette cmdlet, vous pouvez utiliser les journaux pour connaître les connexions Kerberos ayant fonctionné.

Pour vérifier que Kerberos fonctionne correctement à l’aide du fichier journal HttpProxy, procédez comme suit :
  1. Dans un éditeur de texte, accédez au dossier où est stocké le journal HttpProxy. Par défaut, le journal est stocké dans le dossier suivant :

    %ExchangeInstallPath%\Logging\HttpProxy\RpcHttp

  2. Ouvrez le fichier journal le plus récent et recherchez le mot Negotiate. La ligne du fichier journal ressemble à l’exemple suivant :

    2014-02-19T13:30:49.219Z,e19d08f4-e04c-42da-a6be-b7484b396db0,15,0,775,22,,RpcHttp,mail.corp.tailspintoys.com,/rpc/rpcproxy.dll,,Negotiate,True,tailspin\Wendy,tailspintoys.com,MailboxGuid~ad44b1e0-e44f-4a16-9396-3a437f594f88,MSRPC,192.168.1.77,EXCH1,200,200,,RPC_OUT_DATA,Proxy,exch2.tailspintoys.com,15.00.0775.000,IntraForest,MailboxGuidWithDomain,,,,76,462,1,,1,1,,0,,0,,0,0,16272.3359,0,0,3,0,23,0,25,0,16280,1,16274,16230,16233,16234,16282,?ad44b1e0-e44f-4a16-9396-3a437f594f88@tailspintoys.com:6001,,BeginRequest=2014-02-19T13:30:32.946Z;BeginGetRequestStream=2014-02-19T13:30:32.946Z;OnRequestStreamReady=2014-02-19T13:30:32.946Z;BeginGetResponse=2014-02-19T13:30:32.946Z;OnResponseReady=2014-02-19T13:30:32.977Z;EndGetResponse=2014-02-19T13:30:32.977Z;,PossibleException=IOException;
    
    

    Si vous voyez que la valeur AuthenticationType est Negotiate, cela signifie que le serveur est en train de créer des connexions Kerberos authentifiées.

Si vous devez mettre à jour le mot de passe du compte ASA régulièrement, suivez les étapes relatives à la configuration des informations d’identification du compte ASA contenues dans cet article. Envisagez la création d’une tâche planifiée pour effectuer une mise à jour régulière du mot de passe. Veillez à contrôler la tâche planifiée pour vérifier le changement en temps opportun du mot de passe et éviter toute erreur d’authentification.

Pour configurer vos serveurs exécutant les services d’accès client pour qu’ils n’utilisent pas Kerberos, dissociez ou supprimez les SPN des informations d’identification du compte ASA. Si les SPN sont supprimés, vos clients ne tenteront pas de procéder à une authentification Kerberos et les clients configurés pour utiliser l’authentification Negotiate utiliseront à la place NTLM. Les clients configurés pour utiliser uniquement Kerberos ne parviendront pas à se connecter. Une fois les SPN supprimés, vous devez également supprimer le compte.

Pour supprimer les informations d'identification ASA
  1. Ouvrez l’Environnement de ligne de commande Exchange Management Shell sur un serveur Exchange 2016 et exécutez la commande suivante :

    Set-ClientAccessServer CAS-1 -RemoveAlternateServiceAccountCredentials
    
    
  2. Bien que vous n’ayez pas à le faire immédiatement, vous devrez dans tous les cas redémarrer tous les ordinateurs clients pour effacer le cache de ticket Kerberos de l’ordinateur.

 
Afficher: