Настройка проксирования push-уведомлений для OWA для устройств

Область применения: Exchange Server 2013 г.

Включение push-уведомлений для OWA для устройств (OWA для iPhone и OWA для iPad) для локального развертывания Microsoft Exchange 2013 позволяет пользователю получать обновления на значке Outlook Web App на его OWA для iPhone и OWA для iPad, указывающих количество незамеченных сообщений в папке "Входящие". Если push-уведомления не включены или не настроены, пользователь Outlook Web App для устройств сможет узнать о непрочитанных сообщениях, только запустив приложение. Когда поступает новое сообщение, индикатор событий Outlook Web App для устройств обновляется на устройстве пользователя и выглядит так, как показано на рисунке ниже.

Значок OWA для устройств.

Как включить push-уведомления?

Чтобы включить push-уведомления, локальные серверы Exchange 2013 должны подключаться к Службе push-уведомлений Microsoft 365 или Office 365 для отправки push-уведомлений на iPhone и iPad. Локальные серверы Exchange 2013 направляют уведомления об обновлениях через службы уведомлений Microsoft 365 или Office 365, чтобы устранить необходимость регистрации учетных записей разработчиков в сторонних службах push-уведомлений. На схеме ниже изображен процесс получения обновлений о непрочитанных сообщениях с помощью индикаторов событий на устройствах iPhone и iPad.

Процесс push-уведомлений.

Чтобы включить push-уведомления, администратор должен:

  1. Зарегистрируйте свою организацию в Microsoft 365 или Office 365.

  2. обновить все локальные серверы Exchange Server 2013 до версии накопительного пакета обновления 3 (CU3) или более поздней;

  3. Настройте локальную проверку подлинности Exchange 2013 для Microsoft 365 или Office 365 проверки подлинности.

  4. Включите push-уведомления из локальной Exchange Server 2013 в Microsoft 365 или Office 365 и убедитесь, что push-уведомления работают.

Регистрация организации в Microsoft 365 или Office 365

Microsoft 365 и Office 365 — это облачные службы, предназначенные для удовлетворения потребностей вашей организации в обеспечении надежной безопасности, надежности и производительности пользователей. Различные доступные планы подписки включают доступ к приложениям Office и другим службам повышения производительности, которые включены через Интернет (облачные службы), например веб-конференц-связь Lync и Exchange Online размещенной электронной почты для бизнеса.

Многие планы Microsoft 365 и Office 365 также включают классические версии последних приложений Office, которые пользователи могут устанавливать на нескольких компьютерах и устройствах. Все планы Microsoft 365 и Office 365 оплачиваются по подписке, ежемесячно или ежегодно. Дополнительные сведения о том, как зарегистрироваться в Office 365 для вашей организации, см. в статье Что такое Microsoft 365 для бизнеса? Дополнительные сведения о каждой из служб, предлагаемых через Microsoft 365 и Office 365, см. в разделе Описания служб Microsoft 365 и Office 365.

Обновление до версии CU3 или более поздней

Накопительный пакет обновления 3 (CU3) для Exchange Server 2013 устраняет проблемы, обнаруженные в Exchange Server 2013 с момента выпуска его окончательной версии. Он охватывает все проблемы и исправления накопительных пакетов обновления 1 и 2, а также содержит другие исправления и обновления для накопительного пакета 2. Установка этого обновления настоятельно рекомендуется для всех локальных клиентов Exchange Server 2013 и необходима для включения push-уведомлений. О накопительных накопительный пакетах обновления, в том числе о пакете CU3, читайте в разделе Обновления для Exchange 2013.

Настройка локального exchange 2013 для Microsoft 365 или проверки подлинности Office 365

Единый стандартизированный метод проверки подлинности между серверами — это подход, используемый Exchange Server 2013 г. Exchange Server 2013Lync Server 2013 и SharePoint 2013) и Office 2013 поддерживают протокол OAuth (открытая авторизация) для проверки подлинности и авторизации между серверами. При использовании OAuth, стандартного протокола авторизации, используемого многими крупными веб-сайтами, учетные данные и пароли пользователей не передаются с одного компьютера на другой. При этом проверка подлинности и авторизация выполняются с использованием токенов безопасности OAuth, которые обеспечивают доступ к определенному набору ресурсов на конкретный период времени.

Проверка подлинности OAuth обычно включает три компонента: один сервер авторизации и две области, которые должны взаимодействовать друг с другом. Маркеры безопасности предоставляются сервером авторизации (также известным как сервер маркеров безопасности) двум областям, которые должны взаимодействовать друг с другом; эти маркеры позволяют удостовериться в том, что сеансы связи, инициируемые одной областью, расцениваются как доверенные другой область. Например, сервер авторизации может выдавать маркеры, которые проверяют, что пользователи из определенной области Lync Server 2013 могут получить доступ к указанной области Exchange 2013, и наоборот.

Совет

Область является контейнером безопасности.

Однако для локальной проверки подлинности между серверами нет необходимости использовать сторонний сервер маркеров. Такие серверные продукты, как Lync Server 2013 и Exchange 2013, содержат встроенные серверы токенов, которые можно использовать для проверки подлинности на других серверах Майкрософт (например, SharePoint Server), поддерживающих проверку подлинности "сервер-сервер". Например, Lync Server 2013 может сам создать и подписать токен безопасности, с помощью которого затем установит связь с Exchange 2013. В таком случае нет необходимости в стороннем сервере маркеров.

Чтобы настроить проверку подлинности между серверами для локальной реализации Exchange Server 2013 до Microsoft 365 или Office 365, необходимо выполнить два шага:

  • Шаг 1. Назначение сертификата встроенному издателю маркеров локальной Exchange Server. Во-первых, локальный администратор Exchange должен использовать следующий сценарий командной консоли Exchange, чтобы создать сертификат, если он не был создан ранее, и назначить его встроенному издателю маркеров локальной Exchange Server. Этот процесс является одноразовым; После создания сертификата этот сертификат следует повторно использовать для других сценариев проверки подлинности и не заменять. Обязательно обновите значение $tenantDomain , чтобы он был именем вашего домена. Для этого скопируйте и вставьте указанный ниже код.

    Примечание. Копирование и вставка кода в текстовый редактор, например Блокнот, и его сохранение с расширением .ps1 упрощает выполнение скриптов оболочки.

    # Make sure to update the following $tenantDomain with your Microsoft 365 or Office 365 organization domain.
    
    $tenantDomain = "Fabrikam.com"
    
    # Check whether the cert returned from Get-AuthConfig is valid and keysize must be >= 2048
    
    $c = Get-ExchangeCertificate | ?{$_.CertificateDomains -eq $env:USERDNSDOMAIN -and $_.Services -ge "SMTP" -and $_.PublicKeySize -ge 2048 -and $_.FriendlyName -match "OAuth"}
    If ($c.Count -eq 0)
    {
        Write-Host "Creating certificate for oAuth..."
        $ski = [System.Guid]::NewGuid().ToString("N")
        $friendlyName = "Exchange S2S OAuth"
        New-ExchangeCertificate -FriendlyName $friendlyName -DomainName $env:USERDNSDOMAIN -Services Federation -KeySize 2048 -PrivateKeyExportable $true -SubjectKeyIdentifier $ski
        $c = Get-ExchangeCertificate | ?{$_.friendlyname -eq $friendlyName}
    }
    ElseIf ($c.Count -gt 1)
    {
        $c = $c[0]
    }
    
    $a = $c | ?{$_.Thumbprint -eq (get-authconfig).CurrentCertificateThumbprint}
    If ($a.Count -eq 0)
    {
        Set-AuthConfig -CertificateThumbprint $c.Thumbprint
    }
    Write-Host "Configured Certificate Thumbprint is:"(get-authconfig).CurrentCertificateThumbprint
    
    # Export the certificate
    
    Write-Host "Exporting certificate..."
    if((test-path $env:SYSTEMDRIVE\OAuthConfig) -eq $false)
    {
        md $env:SYSTEMDRIVE\OAuthConfig
    }
    cd $env:SYSTEMDRIVE\OAuthConfig
    
    $oAuthCert = (dir Cert:\LocalMachine\My) | where {$_.FriendlyName -match "OAuth"}
    $certType = [System.Security.Cryptography.X509Certificates.X509ContentType]::Cert
    $certBytes = $oAuthCert.Export($certType)
    $CertFile = "$env:SYSTEMDRIVE\OAuthConfig\OAuthCert.cer"
    [System.IO.File]::WriteAllBytes($CertFile, $certBytes)
    
    # Set AuthServer
    $authServer = Get-AuthServer MicrosoftSts;
    if ($authServer.Length -eq 0)
    {
        Write-Host "Creating AuthServer Config..."
        New-AuthServer MicrosoftSts -AuthMetadataUrl https://accounts.accesscontrol.windows.net/metadata/json/1/?realm=$tenantDomain
    }
    elseif ($authServer.AuthMetadataUrl -ne "https://accounts.accesscontrol.windows.net/metadata/json/1/?realm=$tenantDomain")
    {
        Write-Warning "AuthServer config already exists but the AuthMetdataUrl doesn't match the appropriate value. Updating..."
        Set-AuthServer MicrosoftSts -AuthMetadataUrl https://accounts.accesscontrol.windows.net/metadata/json/1/?realm=$tenantDomain
    }
    else
    {
        Write-Host "AuthServer Config already exists."
    }
    Write-Host "Complete."
    

    Результаты должны выглядеть следующим образом:

Настроенный отпечаток сертификата: 7595DBDEA83DACB5757441D44899BCDB9911253C
Экспорт сертификата...
Полный.

Примечание.

Прежде чем продолжить, необходимо использовать модуль Azure Active Directory для Windows PowerShell командлетов. Если модуль Azure Active Directory для командлетов Windows PowerShell (ранее известный как модуль Microsoft Online Services для Windows PowerShell) не установлен, его можно установить в разделе Управление Microsoft Entra ID с помощью Windows PowerShell.

  • Шаг 2. Настройка Microsoft 365 или Office 365 для взаимодействия с локальной средой Exchange 2013. Настройте сервер Microsoft 365 или Office 365, с которым Exchange Server 2013 взаимодействует, чтобы он был партнерским приложением. Например, если Exchange Server 2013 локально необходимо взаимодействовать с Microsoft 365 или Office 365, необходимо настроить локальную среду Exchange в качестве партнерского приложения. Партнерское приложение — это любое приложение, непосредственно с которым Exchange 2013 может обмениваться токенами безопасности, не используя при этом сторонний сервер токенов безопасности. Локальный администратор Exchange 2013 должен использовать следующий сценарий командной консоли Exchange, чтобы настроить Microsoft 365 или Office 365 организацию, с которыми взаимодействует Exchange 2013, в партнерское приложение. Во время выполнения запрос на ввод имени пользователя и пароля администратора домена организации Microsoft 365 или Office 365 (например, administrator@fabrikam.com). Обязательно обновите значение $CertFile в расположение сертификата, если он не создан из предыдущего скрипта. Для этого скопируйте и вставьте указанный ниже код.

    # Make sure to update the following $CertFile with the path to the cert if not using the previous script.
    
    $CertFile = "$env:SYSTEMDRIVE\OAuthConfig\OAuthCert.cer"
    
    If (Test-Path $CertFile)
    {
        $ServiceName = "00000002-0000-0ff1-ce00-000000000000";
    
        $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);
    
        Write-Host "Please enter the administrator username and password of the Microsoft 365 or Office 365 organization domain..."
    
        Write-Host "Adding a key to Service Principal..."
    
        $p = Get-MgServicePrincipal -Filter "AppId eq '$ServiceName'"
        $params = @{
          keyCredential = @{
              type = "AsymmetricX509Cert"
              usage = "Verify"
              key = $credValue
              endDateTime = $cer.GetExpirationDateString()
              startDateTime = $cer.GetEffectiveDateString()
          }
        }
    
        Add-MgServicePrincipalKey -ServicePrincipalId $p.Id -BodyParameter $params
    
    }
    Else
    {
        Write-Error "Cannot find certificate."
    }
    

    Результаты должны выглядеть следующим образом:

    Введите имя администратора и пароль домена Microsoft 365 или Office 365 организации...
    Добавление ключа в субъект-службу...
    Полный.

Включение передачи push-уведомлений

После успешной настройки проверки подлинности OAuth, выполнив описанные выше действия, локальный администратор должен включить прокси-сервер push-уведомлений с помощью следующего скрипта. Обязательно обновите значение $tenantDomain , чтобы он был именем вашего домена. Для этого скопируйте и вставьте указанный ниже код.

$tenantDomain = "Fabrikam.com"
Enable-PushNotificationProxy -Organization:$tenantDomain

Ожидаемый результат должен выглядеть примерно так:

RunspaceId        : 4f2eb5cc-b696-482f-92bb-5b254cd19d60
DisplayName       : On Premises Proxy app
Enabled           : True
Organization      : fabrikam.com
Uri               : https://outlook.office365.com/PushNotifications
Identity          : OnPrem-Proxy
IsValid           : True
ExchangeVersion   : 0.20 (15.0.0.0)
Name              : OnPrem-Proxy
DistinguishedName : CN=OnPrem-Proxy,CN=Push Notifications Settings,CN=First Organization,CN=Microsoft
                    Exchange,CN=Services,CN=Configuration,DC=Domain,DC=extest,DC=microsoft,DC=com
Guid              : 8b567958-58a4-403c-a8f0-524d7f1e9279
ObjectCategory    : fabrikam.com/Configuration/Schema/ms-Exch-Push-Notifications-App
ObjectClass       : {top, msExchPushNotificationsApp}
WhenChanged       : 8/27/2013 7:23:47 PM
WhenCreated       : 8/14/2013 1:30:27 PM
WhenChangedUTC    : 8/28/2013 2:23:47 AM
WhenCreatedUTC    : 8/14/2013 8:30:27 PM
OrganizationId    :
OriginatingServer : server.fabrikam.com
ObjectState       : Unchanged

Проверка работоспособности push-уведомлений

После выполнения описанных выше шагов push-уведомления проверяются одним из следующих элементов:

  • Отправка тестового сообщения электронной почты в почтовый ящик пользователя.

    1. В учетной записи службы "Веб-приложение OWA для устройств" на мобильной устройстве подпишитесь на получение уведомлений.

    2. Вернитесь на начальный экран устройства; служба "Веб-приложение OWA для устройств" продолжит работу в фоновом режиме.

    3. Отправьте сообщение электронной почты с другого устройства, например с компьютера, в почтовый ящик учетной записи, настроенный на мобильном устройстве.

    4. Через несколько минут на значке приложения должен появиться счетчик непрочитанных сообщений.

  • Включение отслеживания. Еще один способ проверить работоспособность push-уведомлений (или узнать, почему они не работают) — включение отслеживания на сервере почтовых ящиков в своей организации. Администратор локального сервера Exchange 2013 должен включить отслеживание передачи push-уведомлений с помощью следующего сценария. Для этого скопируйте и вставьте указанный ниже код.

    # Send a push notification to verify connectivity.
    
    $s = Get-ExchangeServer | ?{$_.ServerRole -match "Mailbox"}
    If ($s.Count -gt 1)
    {
        $s = $s[0]
    }
    If ($s.Count -ne 0)
    {
        # Restart the monitoring service to clear the cache from when push was previously disabled.
        Restart-Service MSExchangeHM
    
        # Give the monitoring service enough time to load.
        Start-Sleep -Seconds:120
    
        Invoke-MonitoringProbe PushNotifications.Proxy\PushNotificationsEnterpriseConnectivityProbe -Server:$s.Fqdn | fl ResultType, Error, Exception
    }
    Else
    {
        Write-Error "Cannot find a Mailbox server in the current site."
    }
    

    Ожидаемый результат должен выглядеть примерно так:

    ResultType : успешно
    Ошибка:
    Исключение: