Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
GILT FÜR:
Abonnementedition 2015
2019 
Die Integration von Microsoft Teams-Diensten in lokale Exchange Server ermöglicht das Microsoft Teams-Kalenderfeature und die Cloud-Voicemail Integration für Postfächer, die auf Exchange Server (lokal) gehostet werden. Weitere Informationen finden Sie in der Dokumentation Zur Interaktion von Exchange und Microsoft Teams .
Dieses Thema bezieht sich auf die Integration in jede unterstützte Version von Exchange Server. Überprüfen Sie die Exchange Server-Unterstützungsmatrix, um herauszufinden, welche Versionen von Exchange Server in einem unterstützten Zustand sind.
Was Sie wissen müssen, bevor Sie anfangen
Geschätzte Dauer bis zum Abschluss dieser Aufgabe: 15 Minuten
Ihnen müssen Berechtigungen zugewiesen werden, bevor Sie diese Prozedur oder Prozeduren ausführen können. Informationen dazu, welche Berechtigungen Sie benötigen, finden Sie im Thema Exchange- und Shell-Infrastrukturberechtigungen .
Informationen zu Tastenkombinationen, die für die Verfahren in diesem Thema gelten können, finden Sie unter Tastenkombinationen im Exchange Admin Center.
Informationen zur Kompatibilität finden Sie unter Skype for Business Kompatibilität mit Office-Apps.
Konfigurieren der Integration zwischen Exchange Server und O365
Schritt 1: Konfigurieren der OAuth-Authentifizierung zwischen Exchange Server und Exchange Online
Führen Sie die schritte aus, die in der Dokumentation Konfigurieren der OAuth-Authentifizierung zwischen Exchange Server und Exchange Online beschrieben sind.
Schritt 2: Erstellen eines neuen E-Mail-Benutzerkontos, das von Partneranwendungen verwendet wird
Dieser Schritt muss auf dem Exchange-Server ausgeführt werden. Es erstellt einen E-Mail-Benutzer und weist die erforderlichen Verwaltungsrollenberechtigungen zu. Dieses Konto wird im nächsten Schritt verwendet, um der Partneranwendung die erforderlichen Berechtigungen zu gewähren.
Geben Sie eine überprüfte Domäne für Ihre Exchange-organization an. Diese Domäne sollte dieselbe Domäne sein, die wie die primäre SMTP-Domäne (Simple Mail Transfer Protocol) für die lokalen Exchange-Konten verwendet wird. Diese Domäne wird im folgenden Verfahren als <your Verified Domain> bezeichnet.
$user = New-MailUser -Name "TeamsIntegration-ApplicationAccount" -ExternalEmailAddress "TeamsIntegration-ApplicationAccount@<your Verified Domain>"
Set-MailUser -Identity $user.UserPrincipalName -HiddenFromAddressListsEnabled $true
Erstellen Sie eine neue Verwaltungsrolle basierend auf der UserApplication Rolle:
New-ManagementRole -Name "TeamsIntegrationRole" -Parent "UserApplication"
Entfernen Sie alle Rolleneinträge aus der neuen Verwaltungsrolle mit Ausnahme GetDelegatevon , , GetUserOofSettingsFindItem, DeleteItem, UpdateItemund GetAttachmentConvertId:
$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 }
Weisen Sie die TeamsIntegrationRole Rolle dem neu erstellten Konto zu:
New-ManagementRoleAssignment -Role "TeamsIntegrationRole" -User $user.UserPrincipalName
Schritt 3: Erstellen und Aktivieren einer Partneranwendung für die Integration des Teams-Kalenderplandiensts
Um die Kalenderdelegierung für Benutzer in Ihrer Exchange Server (lokale Umgebung) zu aktivieren, müssen Sie eine dedizierte Partneranwendung für konfigurierenTeams Calendar Scheduler Service.
Erstellen Sie hierzu eine neue Partneranwendung für die Teams Calendar Scheduler Service , indem Sie den folgenden Befehl in der Exchange-Verwaltungsshell (EMS) auf Ihrem lokalen Exchange-Server ausführen:
New-PartnerApplication -Name "TeamsScheduler" -ApplicationIdentifier "7557eb47-c689-4224-abcf-aef9bd7573df" -Enabled $true -LinkedAccount $user.UserPrincipalName
Schritt 4: Erstellen und Aktivieren einer Partneranwendung für Cloud-Voicemail Integration
Um Cloud-Voicemail für Benutzer in Ihrer lokalen Umgebung zu aktivieren, müssen Sie eine dedizierte Partneranwendung für Cloud Voicemailkonfigurieren.
Erstellen Sie dazu eine neue Partneranwendung für Cloud Voicemail , indem Sie den folgenden Befehl in der Exchange-Verwaltungsshell (EMS) auf Ihrem lokalen Exchange-Server ausführen:
New-PartnerApplication -Name "CloudVoicemail" -ApplicationIdentifier "db7de2b5-2149-435e-8043-e080dd50afae" -Enabled $true -LinkedAccount $user.UserPrincipalName
Schritt 5: Exportieren des Exchange Server-Authentifizierungszertifikats
Führen Sie ein PowerShell-Skript aus, um den öffentlichen Schlüssel des Exchange Server-Authentifizierungszertifikats zu exportieren, das Sie im nächsten Schritt in Ihre Microsoft Teams-organization importieren.
Speichern Sie den folgenden Text in einer PowerShell-Skriptdatei namens, z. B 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)
Führen Sie in der Exchange-Verwaltungsshell in Ihrem lokalen Exchange-organization das von Ihnen erstellte PowerShell-Skript aus. Beispiel: .\ExportAuthCert.ps1
Schritt 6: Hochladen des Exchange Server-Authentifizierungszertifikats
Verwenden Sie als Nächstes das Microsoft Graph PowerShell-Modul, um das lokale Authentifizierungszertifikat hochzuladen, das Sie im vorherigen Schritt in Microsoft Entra Access Control Services (ACS) exportiert haben. Wenn Sie das Modul nicht installiert haben, öffnen Sie ein Windows PowerShell Fenster als Administrator, und führen Sie den folgenden Befehl aus:
Install-Module -Name Microsoft.Graph.Applications
Öffnen Sie einen Windows PowerShell Arbeitsbereich, in dem die Microsoft Graph-Cmdlets installiert sind. Alle Befehle in diesem Schritt müssen mit dem mit der Microsoft Graph-Konsole verbundenen Windows PowerShell ausgeführt werden.
Speichern Sie den folgenden Text in einer PowerShell-Skriptdatei namens, z. B
UploadAuthCert.ps1. .Connect-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 } }Führen Sie das PowerShell-Skript aus, das Sie im vorigen Schritt erstellt haben. Beispiel:
.\UploadAuthCert.ps1Nach dem Start des Skripts wird ein Dialogfeld zur Eingabe Ihrer Anmeldeinformationen angezeigt. Geben Sie die Anmeldeinformationen für das Mandantenadministratorkonto in Ihrem Microsoft Online-Microsoft Entra organization ein. Lassen Sie nach dem Ausführen des Skripts die Windows PowerShell geöffnet, die mit der Microsoft Graph-Sitzung verbunden ist. Sie verwenden die Sitzung im nächsten Schritt zum Ausführen eines PowerShell-Skripts.
Schritt 7: Überprüfen, ob das Zertifikat in die Erstanbieterdienstprinzipale hochgeladen wurde
Führen Sie in der mit Microsoft Graph verbundenen PowerShell-Sitzung Folgendes aus:
(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 *Vergewissern Sie sich, dass ein Schlüssel mit Start- und Enddaten aufgeführt wird, der mit dem Start- und Enddatum Ihres Exchange OAuth-Zertifikats übereinstimmt.
Schritt 8: Überprüfen Des Erfolgs
Überprüfen Sie, ob die Konfiguration korrekt ist, indem Sie überprüfen, ob einige der Features erfolgreich funktionieren.
Bestätigen Cloud-Voicemail Funktionalität in einer Exchange-Hybridkonfiguration
- Aktivieren
Automatic repliesIn Ihrem Postfach, das auf Exchange Server (lokal) gehostet wird, mithilfe von Outlook im Web (OWA) oder Outlook Desktop - Öffnen Sie
Teams, wechseln Sie zuManage out-of-office voicemailSettings>Calls>, und überprüfen SieWhen Outlook automatic replies are on - Eingeben einer benutzerdefinierten Begrüßungsnachricht in das
Your custom greetingFeld - Tätigen eines Teams-Anrufs an diesen Benutzer
- Hinterlassen einer Voicemailnachricht
- Hören Sie sich die Begrüßung während des Anrufs an:
- Wenn die CloudVoicemail-Partneranwendung funktioniert, hören Sie die benutzerdefinierte Abwesenheitsgruß.
- Wenn es nicht funktioniert, wird stattdessen die reguläre Begrüßung wiedergegeben.
- Überprüfen Sie nach dem Anruf, ob Ihre Voicemailnachricht erfolgreich an das Postfach des Benutzers übermittelt wurde.
- Aktivieren
Vergewissern Sie sich, dass der Unterhaltungsverlauf für mobile Clients im Outlook-Ordner
Conversation Historyangezeigt wird.Vergewissern Sie sich mithilfe von EWSEditor, dass archivierte Chatnachrichten im lokalen Postfach des
PurgesBenutzers im Ordner abgelegt werden.Alternativ können Sie den Datenverkehr während des OAuth-Handshakes untersuchen. OAuth-Datenverkehr ist eindeutig und ähnelt nicht der Standardauthentifizierung. Ein wichtiger Indikator ist das Vorhandensein von Ausstellerbezeichnern im Tokenaustausch, z. B.:
7557eb47-c689-4224-abcf-aef9bd7573df@<realm>db7de2b5-2149-435e-8043-e080dd50afae@<realm>
Diese Bezeichner können auch mit einem führenden Schrägstrich angezeigt werden, z. B.
/7557eb47-c689-4224-abcf-aef9bd7573df@<realm>. Diese Token enthalten keinen Benutzernamen oder ein Kennwort, was ein Kernprinzip von OAuth hervor hebt: Authentifizierung ohne Austausch von Anmeldeinformationen.Wenn Sie sicherstellen möchten, dass Sie OAuth erfolgreich verwenden, stellen Sie sicher, dass Sie wissen, was Sie erwarten und wie der Datenverkehr aussehen soll. Hier sehen Sie also, was Sie erwarten können.
Hier sehen Sie ein Beispiel für die Einrichtung eines Netzwerks, aber Sie können ein beliebiges Netzwerkablaufverfolgungstool verwenden, um diesen Prozess durchzuführen.
Schritt 9: Deaktivieren oder Entfernen der Legacy-Skype for Business Online-Anwendung
Die Ältere Erstanbieteranwendung Skype for Business Online mit der Anwendungs-ID 00000004-0000-0ff1-ce00-000000000000wird ab dem 13. Oktober 2025 schrittweise deaktiviert. Im Rahmen dieser Bemühungen wurde die dedizierte Erstanbieteranwendung für den Teams-Kalenderplanerdienst und Cloud-Voicemail eingeführt.
Führen Sie die Schritte in diesem Abschnitt aus, um alle Partneranwendungen zu deaktivieren, die ältere Erstanbieteranwendungen Skype for Business Online verwenden:
Get-PartnerApplication | Where-Object { $_.ApplicationIdentifier -eq "00000004-0000-0ff1-ce00-000000000000" -and $_.Enabled -eq $true } | Set-PartnerApplication -Enabled $false
Wenn Sie die Legacy-Partneranwendung Skype for Business Online entfernen möchten, können Sie den folgenden Befehl ausführen:
Get-PartnerApplication | Where-Object { $_.ApplicationIdentifier -eq "00000004-0000-0ff1-ce00-000000000000" -and $_.Enabled -eq $true } | Remove-PartnerApplication
Verwandte Themen
Konfigurieren der OAuth-Authentifizierung zwischen Exchange und Exchange Online Organisationen