Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’APPLIQUE À :
Édition d’abonnement 2015
2019 
L’intégration des services Microsoft Teams à la Exchange Server locale permet l’intégration de Messagerie vocale infonuagique et de fonctionnalités de calendrier Teams pour les boîtes aux lettres hébergées sur Exchange Server (localement). Pour plus d’informations, consultez la documentation sur l’interaction entre Exchange et Microsoft Teams .
Cette rubrique s’applique à l’intégration à n’importe quelle version prise en charge de Exchange Server. Consultez la matrice de prise en charge des Exchange Server pour savoir quelles versions de Exchange Server sont prises en charge.
Que devez-vous savoir avant de commencer ?
Temps estimé pour réaliser cette tâche : 15 minutes
Avant de pouvoir réaliser cette (ces) procédure(s), des autorisations doivent vous avoir été attribuées. Pour connaître les autorisations dont vous avez besoin, consultez la rubrique Autorisations d’infrastructure Exchange et Shell .
Pour plus d’informations sur les raccourcis clavier qui peuvent s’appliquer aux procédures décrites dans cette rubrique, voir Raccourcis clavier dans le Centre d’administration Exchange.
Pour plus d’informations sur la compatibilité, consultez Skype Entreprise compatibilité avec les applications Office.
Configurer l’intégration entre Exchange Server et O365
Étape 1 : Configurer l’authentification OAuth entre Exchange Server et Exchange Online
Effectuez les étapes décrites dans la documentation Configurer l’authentification OAuth entre Exchange Server et Exchange Online.
Étape 2 : Créer un compte d’utilisateur de messagerie utilisé par les applications partenaires
Cette étape doit être effectuée sur le serveur Exchange. Il crée un utilisateur de messagerie et attribue les autorisations de rôle de gestion nécessaires. Ce compte sera utilisé à l’étape suivante pour accorder à l’application partenaire les autorisations requises.
Spécifiez un domaine vérifié pour votre organization Exchange. Ce domaine doit être le même domaine que le domaine SMTP (Simple Mail Transfer Protocol) principal utilisé pour les comptes Exchange locaux. Ce domaine est appelé <your Verified Domain> dans la procédure suivante.
$user = New-MailUser -Name "TeamsIntegration-ApplicationAccount" -ExternalEmailAddress "TeamsIntegration-ApplicationAccount@<your Verified Domain>"
Set-MailUser -Identity $user.UserPrincipalName -HiddenFromAddressListsEnabled $true
Créez un rôle de gestion basé sur le UserApplication rôle :
New-ManagementRole -Name "TeamsIntegrationRole" -Parent "UserApplication"
Supprimez toutes les entrées de rôle du nouveau rôle de gestion, à l’exception GetDelegatede , GetUserOofSettingsFindItem, DeleteItem, UpdateItem, GetAttachment et ConvertId:
$roleEntries = @("GetDelegate", "FindItem", "GetUserOofSettings", "DeleteItem", "UpdateItem", "GetAttachment", "ConvertId")
Get-ManagementRoleEntry "TeamsIntegrationRole\*" | Where-Object { $roleEntries -notcontains $_.Name } | ForEach-Object { Remove-ManagementRoleEntry -Identity "TeamsIntegrationRole\$($_.Name)" -Confirm:$false }
Attribuez le TeamsIntegrationRole rôle au compte nouvellement créé :
New-ManagementRoleAssignment -Role "TeamsIntegrationRole" -User $user.UserPrincipalName
Étape 3 : Créer et activer une application partenaire pour l’intégration du service Planificateur de calendrier Teams
Pour activer la délégation de calendrier pour les utilisateurs de votre Exchange Server (environnement local), vous devez configurer une application partenaire dédiée pour le Teams Calendar Scheduler Service.
Pour ce faire, créez une application partenaire pour le Teams Calendar Scheduler Service en exécutant la commande suivante dans Exchange Management Shell (EMS) sur votre serveur Exchange local :
New-PartnerApplication -Name "TeamsScheduler" -ApplicationIdentifier "7557eb47-c689-4224-abcf-aef9bd7573df" -Enabled $true -LinkedAccount $user.UserPrincipalName
Étape 4 : Créer et activer une application partenaire pour l’intégration Messagerie vocale infonuagique
Pour activer Messagerie vocale infonuagique pour les utilisateurs de votre environnement local, vous devez configurer une application partenaire dédiée pour Cloud Voicemail.
Pour ce faire, créez une application partenaire pour Cloud Voicemail en exécutant la commande suivante dans Exchange Management Shell (EMS) sur votre serveur Exchange local :
New-PartnerApplication -Name "CloudVoicemail" -ApplicationIdentifier "db7de2b5-2149-435e-8043-e080dd50afae" -Enabled $true -LinkedAccount $user.UserPrincipalName
Étape 5 : Exporter le certificat d’authentification Exchange Server
Exécutez un script PowerShell pour exporter la clé publique du certificat d’authentification Exchange Server, que vous allez importer dans votre organization Microsoft Teams à l’étape suivante.
Enregistrez le texte suivant dans un fichier de script PowerShell nommé, par exemple . ExportAuthCert.ps1
$thumbprint = (Get-AuthConfig).CurrentCertificateThumbprint
if((Test-Path $env:SYSTEMDRIVE\OAuthConfig) -eq $false)
{
New-Item -Path $env:SYSTEMDRIVE\OAuthConfig -Type Directory
}
Set-Location -Path $env:SYSTEMDRIVE\OAuthConfig
$oAuthCert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Thumbprint -match $thumbprint}
$certType = [System.Security.Cryptography.X509Certificates.X509ContentType]::Cert
$certBytes = $oAuthCert.Export($certType)
$certFile = "$env:SYSTEMDRIVE\OAuthConfig\OAuthCert.cer"
[System.IO.File]::WriteAllBytes($certFile, $certBytes)
Dans Exchange Management Shell dans votre organization Exchange local, exécutez le script PowerShell que vous avez créé. Par exemple : .\ExportAuthCert.ps1
Étape 6 : Charger le certificat d’authentification Exchange Server
Ensuite, utilisez le module Microsoft Graph PowerShell pour charger le certificat d’authentification local que vous avez exporté à l’étape précédente vers Microsoft Entra Access Control Services (ACS). Si le module n’est pas installé, ouvrez une fenêtre Windows PowerShell en tant qu’administrateur et exécutez la commande suivante :
Install-Module -Name Microsoft.Graph.Applications
Ouvrez un espace de travail Windows PowerShell sur lequel les applets de commande Microsoft Graph sont installées. Toutes les commandes de cette étape doivent s’exécuter à l’aide du Windows PowerShell connecté à la console Microsoft Graph.
Enregistrez le texte suivant dans un fichier de script PowerShell nommé, par exemple .
UploadAuthCert.ps1Connect-MgGraph -Scopes Application.ReadWrite.All $certFile = "$env:SYSTEMDRIVE\OAuthConfig\OAuthCert.cer" $objFSO = New-Object -ComObject Scripting.FileSystemObject $certFile = $objFSO.GetAbsolutePathName($certFile) $cer = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($certFile) $binCert = $cer.GetRawCertData() $credValue = [System.Convert]::ToBase64String($binCert) $serviceNames = @("db7de2b5-2149-435e-8043-e080dd50afae", "7557eb47-c689-4224-abcf-aef9bd7573df") foreach ($serviceName in $serviceNames) { Write-Host "[+] Trying to query the service principals for service: $serviceName" -ForegroundColor Cyan $p = Get-MgServicePrincipal -Filter "AppId eq '$serviceName'" Write-Host "[+] Trying to query the keyCredentials for service: $serviceName" -ForegroundColor Cyan $servicePrincipalKeyInformation = Get-MgServicePrincipal -Filter "AppId eq '$serviceName'" -Select "keyCredentials" $keyCredentialsLength = $servicePrincipalKeyInformation.KeyCredentials.Length if ($keyCredentialsLength -gt 0) { Write-Host "[+] $keyCredentialsLength existing key(s) found - we keep them if they have not expired" -ForegroundColor Cyan $newCertAlreadyExists = $false $servicePrincipalObj = New-Object -TypeName Microsoft.Graph.PowerShell.Models.MicrosoftGraphServicePrincipal $keyCredentialsArray = @() foreach ($cred in $servicePrincipalKeyInformation.KeyCredentials) { $thumbprint = [System.Convert]::ToBase64String($cred.CustomKeyIdentifier) Write-Host "[+] Processing existing key: $($cred.DisplayName) thumbprint: $thumbprint" -ForegroundColor Cyan if ($newCertAlreadyExists -ne $true) { $newCertAlreadyExists = ($cer.Thumbprint).Equals($thumbprint, [System.StringComparison]::OrdinalIgnoreCase) } if ($cred.EndDateTime -lt (Get-Date)) { Write-Host "[+] This key has expired on $($cred.EndDateTime) and will not be retained" -ForegroundColor Yellow continue } $keyCredential = New-Object -TypeName Microsoft.Graph.PowerShell.Models.MicrosoftGraphKeyCredential $keyCredential.Type = "AsymmetricX509Cert" $keyCredential.Usage = "Verify" $keyCredential.Key = $cred.Key $keyCredentialsArray += $keyCredential } if ($newCertAlreadyExists -eq $false) { Write-Host "[+] New key: $($cer.Subject) thumbprint: $($cer.Thumbprint) will be added" -ForegroundColor Cyan $keyCredential = New-Object -TypeName Microsoft.Graph.PowerShell.Models.MicrosoftGraphKeyCredential $keyCredential.Type = "AsymmetricX509Cert" $keyCredential.Usage = "Verify" $keyCredential.Key = [System.Text.Encoding]::ASCII.GetBytes($credValue) $keyCredentialsArray += $keyCredential $servicePrincipalObj.KeyCredentials = $keyCredentialsArray Update-MgServicePrincipal -ServicePrincipalId $p.Id -BodyParameter $servicePrincipalObj } else { Write-Host "[+] New key: $($cer.Subject) thumbprint: $($cer.Thumbprint) already exists and will not be uploaded again" -ForegroundColor Yellow } } else { $params = @{ type = "AsymmetricX509Cert" usage = "Verify" key = [System.Text.Encoding]::ASCII.GetBytes($credValue) } Write-Host "[+] This is the first key which will be added to this service principal" -ForegroundColor Cyan Update-MgServicePrincipal -ServicePrincipalId $p.Id -KeyCredentials $params } }Exécutez le script PowerShell que vous avez créé lors de l’étape précédente. Par exemple :
.\UploadAuthCert.ps1Une fois que vous avez lancé le script, une boîte de dialogue d’informations d’identification s’affiche. Entrez les informations d’identification du compte d’administrateur client dans votre Microsoft Entra organization Microsoft Online. Après avoir exécuté le script, laissez le Windows PowerShell connecté à la session Microsoft Graph ouvert. Vous utiliserez la session pour exécuter un script PowerShell à l’étape suivante.
Étape 7 : Vérifier que le certificat a été chargé sur les principaux de service internes
Dans la session PowerShell connectée à Microsoft Graph, exécutez la commande suivante
(Get-MgServicePrincipal -Filter "AppId eq '7557eb47-c689-4224-abcf-aef9bd7573df'" -Select "keyCredentials").KeyCredentials | Format-List * (Get-MgServicePrincipal -Filter "AppId eq 'db7de2b5-2149-435e-8043-e080dd50afae'" -Select "keyCredentials").KeyCredentials | Format-List *Vérifiez que vous voyez une clé répertoriée avec des données de date de début et de fin qui correspondent aux dates de début et de fin de votre certificat OAuth Exchange
Étape 8 : Vérifier votre réussite
Vérifiez que la configuration est correcte en vérifiant que certaines fonctionnalités fonctionnent correctement.
Confirmer Messagerie vocale infonuagique fonctionnalité dans une configuration Exchange hybride
- Activer
Automatic repliesdans votre boîte aux lettres hébergée sur Exchange Server (local) à l’aide d’Outlook sur le web (OWA) ou d’Outlook Desktop - Ouvrez
Teams, accédez àManage out-of-office voicemailSettings>Calls>et case activéeWhen Outlook automatic replies are on - Entrez un message d’accueil personnalisé à la
Your custom greetingzone - Passer un appel Teams à cet utilisateur
- Laisser un message vocal
- Écoutez le message d’accueil pendant l’appel :
- Si l’application partenaire CloudVoicemail fonctionne, vous entendrez le message d’accueil personnalisé d’absence du bureau
- Si cela ne fonctionne pas, le message d’accueil normal sera lu à la place
- Après l’appel, case activée si votre message vocal a été correctement remis à la boîte aux lettres de l’utilisateur
- Activer
Vérifiez que l’historique des conversations pour les clients mobiles est visible dans le dossier Outlook
Conversation History.Vérifiez que les messages de conversation archivés sont déposés dans la boîte aux lettres locale de l’utilisateur dans le dossier à l’aide
Purgesd’EWSEditor.Vous pouvez également inspecter le trafic pendant l’établissement d’une liaison OAuth. Le trafic OAuth est distinct et ne ressemble pas à l’authentification de base. Un indicateur clé est la présence d’identificateurs d’émetteur dans l’échange de jetons, par exemple :
7557eb47-c689-4224-abcf-aef9bd7573df@<realm>db7de2b5-2149-435e-8043-e080dd50afae@<realm>
Ces identificateurs peuvent également apparaître avec une barre oblique de début, par exemple :
/7557eb47-c689-4224-abcf-aef9bd7573df@<realm>. Ces jetons n’incluent pas de nom d’utilisateur ou de mot de passe, ce qui met en évidence un principe de base d’OAuth : l’authentification sans échange d’informations d’identification.Si vous souhaitez être sûr d’utiliser OAuth avec succès, assurez-vous de savoir à quoi vous attendre et de savoir à quoi doit ressembler le trafic. Voici à quoi s’attendre.
Voici un exemple de configuration, mais vous pouvez utiliser n’importe quel outil de suivi réseau de votre choix pour entreprendre ce processus.
Étape 9 : Désactiver ou supprimer l’application Skype Entreprise Online héritée
L’application interne Skype for Business Online héritée, qui a l’ID d’application 00000004-0000-0ff1-ce00-000000000000, sera progressivement désactivée à partir du 13 octobre 2025. Dans le cadre de cet effort, l’application interne dédiée au service planificateur de calendrier Teams et Messagerie vocale infonuagique ont été introduites.
Suivez les étapes de cette section pour désactiver toute application partenaire qui utilise une application interne Skype for Business Online héritée :
Get-PartnerApplication | Where-Object { $_.ApplicationIdentifier -eq "00000004-0000-0ff1-ce00-000000000000" -and $_.Enabled -eq $true } | Set-PartnerApplication -Enabled $false
Si vous souhaitez supprimer l’application partenaire héritée Skype for Business Online , vous pouvez exécuter la commande suivante :
Get-PartnerApplication | Where-Object { $_.ApplicationIdentifier -eq "00000004-0000-0ff1-ce00-000000000000" -and $_.Enabled -eq $true } | Remove-PartnerApplication
Sujets associés
Configurer l’authentification OAuth entre Exchange et Exchange Online organisations