Martin_Wildi, jdixon we have found a way, thanks to someone on the MS Exchange Online escalation team. After hybrid setup, we have to create new authservers on our Exchange on-prem, add our customer's domains to them, create an intraorganizationconnector each in the cloud and on premise and upload the Exchange cert to ExO:
# primary domain first in array
$domains = $tenant.domains.split(",")
$tenantServiceDomain = "$($tenant.tenant).mail.onmicrosoft.com"
# Exch on premise:
New-AuthServer -Name "WindowsAzureACS-$($tenant.tenant)" -AuthMetadataUrl "https://accounts.accesscontrol.windows.net/$($domains[0])/metadata/json/1"
New-AuthServer -Name "evoSTS-$($tenant.tenant)" -Type AzureAD -AuthMetadataUrl "https://login.windows.net/$($domains[0])/federationmetadata/2007-06/federationmetadata.xml"
set-authserver "WindowsAzureACS-$($tenant.tenant)" -domainname "$($tenant.domains)"
set-authserver "evoSTS-$($tenant.tenant)" -domainname "$($tenant.domains)"
New-IntraOrganizationConnector -name "ExchangeHybridOnPremisesToOnline $($tenant.tenant)" -DiscoveryEndpoint https://outlook.office365.com/autodiscover/autodiscover.svc -TargetAddressDomains $tenantServiceDomain
# ExO:
Connect-ExchangeOnline
New-IntraOrganizationConnector -name ExchangeHybridOnlineToOnPremises -DiscoveryEndpoint https://$($publicAddressExchangeServerOnPrem)/autodiscover/autodiscover.svc -TargetAddressDomains $domains
# MSOL:
Connect-MsolService
$ServiceName = "00000002-0000-0ff1-ce00-000000000000";
$x = Get-MsolServicePrincipal -AppPrincipalId $ServiceName;
$x.ServicePrincipalnames.Add("$($publicAddressExchangeServerOnPrem)");
$x.ServicePrincipalnames.Add("$($autodiscoverAddressExchangeServerOnPrem)");
Set-MSOLServicePrincipal -AppPrincipalId $ServiceName -ServicePrincipalNames $x.ServicePrincipalNames;
$CertFile = $pathToExchangeCert.cer
$objFSO = New-Object -ComObject Scripting.FileSystemObject
$CertFile = $objFSO.GetAbsolutePathName($CertFile)
$cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate
$cer.Import($CertFile)
$binCert = $cer.GetRawCertData()
$credValue = [System.Convert]::ToBase64String($binCert)
New-MsolServicePrincipalCredential -AppPrincipalId $x.AppPrincipalId -Type asymmetric -Usage Verify -Value $credValue