Поделиться через


Настройка проверки подлинности между серверами SharePoint Server и SharePoint в Microsoft 365

ОБЛАСТЬ ПРИМЕНЕНИЯ:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition yes-img-sopSharePoint в Microsoft 365

Эта статья входит в цикл материалов, описывающий схему действий по настройке гибридных решений SharePoint. Убедитесь, что вы следуете плану при выполнении процедуры, описанных в этой статье.

Примечание.

Мы рекомендуем использовать мастер гибридной конфигурации SharePoint , чтобы установить проверку подлинности между сервером и SharePoint в Microsoft 365. Если по какой-либо причине не удается использовать мастер гибридной конфигурации, выполните действия, описанные в этой статье, чтобы включить проверку подлинности между серверами.

Microsoft рекомендует использовать роли с наименьшим количеством разрешений. Использование учетных записей с более низкими разрешениями помогает повысить безопасность организации. Глобальный администратор — это роль с высокими привилегиями, которую следует ограничивать экстренными сценариями, когда вы не можете использовать существующую роль.

Настройка проверки подлинности между серверами

В этой статье представлены рекомендации по развертыванию гибридной среды SharePoint, в которой происходит интеграция SharePoint Server и SharePoint в Microsoft 365.

Совет

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

Проверка параметров веб-приложения

В гибридной среде SharePoint федеративные пользователи могут отправлять запросы SharePoint в Microsoft 365 из любого веб-приложения SharePoint Server, настроенного для использования встроенной проверки подлинности Windows с NTLM.

Например, необходимо убедиться, что локальные сайты центра поиска, которые необходимо использовать в решении, настроены для использования встроенной проверки подлинности Windows с NTLM. В противном случае придется настроить веб-приложение для применения проверки подлинности Windows с NTLM или использовать сайт центра поиска в веб-приложении, которое соответствует этому требованию. Вы также должны убедиться, что пользователи, которые ожидают, что результаты поиска будут возвращены из SharePoint в Microsoft 365, являются федеративными пользователями.

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

  1. Убедитесь, что учетная запись пользователя, с помощью которой выполняется данная процедура, является участником группы администраторов фермы SharePoint.

  2. В Центр администрирования выберите элемент Управление приложениями и выберите пункт Управление веб-приложениями.

  3. В столбце Имя выберите веб-приложение, которое требуется проверить, и выберите Поставщики проверки подлинности на ленте.

  4. В диалоговом окне Поставщики проверки подлинности в столбце Зона выберите зону, с которой связан сайт центра поиска.

  5. В диалоговом окне Изменение параметров проверки подлинности убедитесь, что выбраны встроенная проверка подлинности Windows и NTLM, как показано на следующем рисунке.

    Параметр типа проверки подлинности для веб-приложения.

Настройка OAuth через HTTP (при необходимости)

По умолчанию для использования OAuth в SharePoint Server требуется протокол HTTPS. Если вы настроили основное веб-приложение для использования протокола HTTP вместо SSL, необходимо включить OAuth по протоколу HTTP на каждом веб-сервере на ферме SharePoint Server.

Примечание.

Если основное веб-приложение настроено для использования протокола SSL, этот шаг необязательный.

Чтобы включить протокол OAuth через HTTP, выполните следующие команды под учетной записью администратора фермы в командной строке Командная консоль SharePoint 2016 на каждом веб-сервере фермы SharePoint Server.

$serviceConfig = Get-SPSecurityTokenServiceConfig
$serviceConfig.AllowOAuthOverHttp = $true
$serviceConfig.Update()

Если вы включили протокол OAuth через HTTP для тестирования, но хотите перенастроить среду для использования протокола SSL, отключите OAuth через HTTP, выполнив следующие команды под учетной записью администратора фермы в командной строке Командная консоль SharePoint 2016 на каждом веб-сервере фермы SharePoint Server.

$serviceConfig = Get-SPSecurityTokenServiceConfig
$serviceConfig.AllowOAuthOverHttp = $false
$serviceConfig.Update()

Настройка межсерверной проверки подлинности между локальной средой SharePoint Server и SharePoint в Microsoft 365

В этом разделе описано, как настроить проверку подлинности между серверами:

  • SharePoint Server

  • SharePoint в Microsoft 365

  • Microsoft Entra ID

При настройке проверки подлинности между серверами для гибридных сред вы создаете отношение доверия между локальной фермой SharePoint и клиентомSharePoint в Microsoft 365, который использует Идентификатор Microsoft Entra в качестве доверенной службы подписывания маркеров. Если добавить необходимые оснастки и модули PowerShell, этот процесс можно выполнить в одном окне PowerShell на локальном веб-сервере SharePoint.

Совет

[!Совет] Запишите выполняемые действия, запускаемые командлеты PowerShell и возникающие ошибки. После завершения запишите все содержимое буфера PowerShell перед тем, как закрыть окно. Таким образом, у вас будет журнал выполненных действий, что может быть полезно для устранения неполадок или описания процесса другим. Это также позволит освежить память, если настройка происходит поэтапно.

Ниже приводится высокоуровневое представление процедур, которые необходимо выполнить в этом разделе:

  1. Установка средств управления веб-службами на веб-сервере в вашей ферме SharePoint Server

  2. Настройка проверки подлинности между серверами

    • Задайте переменные, которые будут использоваться на последующих этапах.

    • Отправьте встроенный сертификат STS SharePoint Server в SharePoint в Microsoft 365.

    • Добавьте имя участника-службы (SPN) в Azure.

    • Зарегистрируйте идентификатор объекта-участника приложения SharePoint в Microsoft 365 в локальной среде SharePoint Server.

    • Настройте общую область проверки подлинности между локальной фермой SharePoint Server и SharePoint в Microsoft 365.

    • Настройка локального прокси-сервера приложения Microsoft Entra.

Установка средств управления веб-службами и настройка окна Windows PowerShell

Чтобы продолжить, необходимо установить следующие средства на локальный веб-сервер SharePoint Server:

  • Microsoft Graph PowerShell

  • Командная консоль SharePoint в Microsoft 365

Это проще сделать на веб-сервере фермы SharePoint, так как проще загрузить оснастку Microsoft.SharePoint.PowerShell на веб-серверах, чем на серверах, на которых не установлен SharePoint Server.

Для проверки подлинности в SharePoint Server, SharePoint в Microsoft 365 и Microsoft Entra ID требуются разные учетные записи пользователей. Дополнительные сведения о том, как определить требуемую учетную запись, можно узнать в статье Учетные записи, необходимые для настройки и тестирования гибридной среды.

Примечание.

Чтобы упростить выполнение действий, описанных в этом разделе, мы откроем окно командной строки PowerShell на веб-сервере SharePoint Server и добавим модули и оснастки, позволяющие подключаться к SharePoint Server, SharePoint в Microsoft 365 и Microsoft Entra ID. (Подробная инструкция о том, как это сделать, будет приведена в этой статье позже.) Оставьте окно открытым, чтобы выполнить все оставшиеся шаги PowerShell, приведенные в этой статье.

Установка средств управления веб-службами и настройка окна PowerShell:

  1. Установка последней версии Microsoft Graph PowerShell

  2. Установите командную консоль SharePoint в Microsoft 365

    Командная консоль SharePoint в Microsoft 365 (64-разрядная версия)

    Дополнительные сведения см. в статье Введение в командную консоль SharePoint в Microsoft 365.

  3. Откройте окно PowerShell.

  4. Чтобы не переполнить буфер и не потерять журнал команд, увеличьте размер буфера для окна PowerShell.

  5. Нажмите на левый верхний угол окна PowerShell и выберите Свойства.

  6. В окне "Свойства" PowerShell перейдите на вкладку Макет.

  7. В разделе "Размер буфера экрана" введите в поле Высота значение 9999 и нажмите ОК.

  8. На этом шаге загружаются скачанные модули, чтобы вы могли использовать их в сеансе PowerShell. Скопируйте следующие команды в сеанс PowerShell и нажмите клавишу ВВОД.

    Add-PSSnapin Microsoft.SharePoint.PowerShell
    Import-Module Microsoft.PowerShell.Utility
    Import-Module Microsoft.Graph
    

    Если позже вам потребуется снова запустить какие-либо этапы настройки, вы сможете снова использовать эти команды для загрузки необходимых модулей и оснастки в новое окно PowerShell.

  9. Введите следующие команды для входа в SharePoint в Microsoft 365 из командной строки PowerShell:

       Connect-MgGraph -Scopes "Group.ReadWrite.All","RoleManagement.ReadWrite.Directory","Organization.ReadWrite.All"
    

    Вам будет предложено войти. Необходимо войти с помощью учетной записи глобального администратора Microsoft 365. Вы можете изучить другие способы подключения к Microsoft Graph.

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

Настройка проверки подлинности между серверами (S2S)

Теперь, когда вы установили средства для удаленного администрирования Microsoft Entra ID и SharePoint в Microsoft 365, вы можете настроить проверку подлинности между серверами.

О переменных, которые вы создадите

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

Переменная Comments
$spcn Корневое доменное имя общедоступного домена. Это значение не должно быть в виде URL-адреса; это должно быть только доменное имябез протокола.
Пример: adventureworks.com.
$spsite Внутренний URL-адрес локального веб-приложения, например http://sharepoint или https://sharepoint.adventureworks.com. Это значение представляет полный URL-адрес с указанием протокола ( http: // или https:// ).
Это внутренний URL-адрес веб-приложения, используемого для гибридных функций.
Пример: http://sharepoint или https://sharepoint.adventureworks.com
$site Объект основного локального веб-приложения. Команда, которая задает значение этой переменной, получает объект сайта, указанного в переменной $spsite.
Эта переменная заполняется автоматически.
$spoappid Идентификатор участника приложения SharePoint в Microsoft 365 всегда равен 00000003-0000-0ff1-ce00-0000000000000. Это универсальное значение определяет SharePoint в объектах Microsoft 365 в организации Microsoft 365.
$spocontextID Идентификатор контекста (ObjectID) клиента SharePoint в Microsoft 365. Это значение является уникальным идентификатором GUID, который идентифицирует ваш клиент SharePoint в Microsoft 365.
Это значение определяется автоматически при выполнении команды для установки переменной.
$metadataEndpoint URL-адрес, используемый прокси-сервером Идентификатора Microsoft Entra для подключения к арендатору Microsoft Entra.
Вам не нужно вводить значение для этой переменной.

Этап 1. Задание переменных

После определения переменных, которые требуется задать, используйте эти инструкции, чтобы присвоить им значения. Предварительное заполнение наиболее часто используемых переменных поможет быстрее выполнить оставшиеся действия. Значения этих перемененных будут установлены, пока вы не закроете сеанс PowerShell. Будьте внимательны, чтобы предоставить точные сведения, где бы вы ни видели угловые скобки (<>), и всегда удаляйте угловые скобки перед выполнением команды. Не изменяйте код за пределами угловых скобок.

Примечание.

Если вам потребуется выполнить какие-либо из этих действий в дальнейшем, начните с выполнения следующих команд PowerShell для этого шага, чтобы задать важные переменные.

Скопируйте следующие объявления переменных и вставьте их в текстовый редактор, например "Блокнот". Задайте входные значения для вашей организации. В командной строке PowerShell, которую вы настроили с помощью средств управления веб-службами, выполните следующие команды:

$spcn="*.<public_root_domain_name>.com"
$spsite=Get-Spsite <principal_web_application_URL>
$site=Get-Spsite $spsite
$spoappid="00000003-0000-0ff1-ce00-000000000000"
$spocontextID = (Get-MgOrganization).Id
$metadataEndpoint = "https://accounts.accesscontrol.windows.net/" + $spocontextID + "/metadata/json/1"

После заполнения переменных вы сможете просмотреть их значения, введя имя переменной в окне PowerShell. Например, при вводе $metadataEndpoint возвращается следующее значение:

https://accounts.accesscontrol.windows.net/00fceb75-246c-4ac4-a0ad-7124xxxxxxxx/metadata/json/1

Этап 2. Передача сертификата службы маркеров безопасности STS в SharePoint в Microsoft 365

На этом этапе вы отправляете сертификат STS фермы SharePoint Server своему клиенту SharePoint в Microsoft 365, что позволит SharePoint Server и SharePoint в Microsoft 365 подключиться и использовать приложения-службы друг друга.

Архитектура, которая используется при загрузке сертификата STS в SharePoint в Microsoft 365

Команды на этом шаге добавляют локальный сертификат STS (только открытый ключ) в основной объект SharePoint в Microsoft 365 организации Microsoft 365.

В командной строке PowerShell введите следующие команды:

$Cert = (Get-SPSecurityTokenServiceConfig).LocalLoginProvider.SigningCertificate

$principal = Get-MgServicePrincipal -Filter "AppId eq '$spoappid’” -Property "Id,DisplayName,KeyCredentials,AppId"

$existingCerts = $principal.KeyCredentials

$keyCredentials = @(@{ Type = "AsymmetricX509Cert"; Usage = "Verify"; Key = $Cert.RawData; KeyId = New-Guid; StartDateTime = $Cert.NotBefore; EndDateTime = $Cert.NotAfter; })

$noUpdate = $false

foreach($existingCert in $existingCerts) {

    if ([string]$existingCert.Key -eq [string]$Cert.RawData) {

        $noUpdate = $true

        break

    }

    else {

        $existingCert.Key = $null

        $keyCredentials += $existingCert

    }
}

if (-Not $noUpdate) {

     Update-MgServicePrincipal -ServicePrincipalId $principal.Id -KeyCredentials $keyCredentials

}

Шаг 3. Добавление имени субъекта-службы для имени общедоступного домена в Идентификатор Microsoft Entra

На этом шаге вы добавите имя субъекта-службы (SPN) в клиент Microsoft Entra. Основной объект SharePoint в Microsoft 365 и общедоступное пространство имен DNS вашей компании образуют имя субъекта-службы.

Как и в Active Directory, это имя субъекта-службы регистрирует объект в идентификаторе Microsoft Entra, который используется для поддержки взаимной проверки подлинности между SharePoint Server и SharePoint в Microsoft 365. Базовый синтаксис для имени субъекта-службы:

<тип> или< имя экземпляра службы>

Где:

  • <Тип> службы — это основной объект SharePoint в Microsoft 365, который одинаков для всех клиентов SharePoint в Microsoft 365.

  • <имя_экземпляра> это URL-адрес общедоступного пространства имен домена DNS вашей компании, который всегда выражается подстановочным знаком (даже если SSL-сертификат безопасного канала является сертификатом SAN).

Пример:

00000003-0000-0ff1-ce00-000000000000/*.<public domain name>.com

Если в сертификате используется общее имя sharepoint.adventureworks.com, синтаксис имени субъекта-службы выглядит следующим образом:

00000003-0000-0ff1-ce00-000000000000/*.adventureworks.com

Использование подстановочного знака позволяет SharePoint в Microsoft 365 проверять подключения к любому узлу в этом домене. Это пригодится, если вы когда-либо решите изменить имя узла внешней конечной точки или веб-приложения SharePoint Server.

Чтобы добавить имя субъекта-службы в идентификатор Microsoft Entra, введите следующие команды в командной строке Microsoft Graph PowerShell.

$msp = Get-MgServicePrincipal -Filter "AppId eq '$spoappid'"
$params =@{
  "servicePrincipalNames"="$spoappid/$spcn"
}
Update-MgServicePrincipal -ServicePrincipalId $msp.Id -BodyParameter $params

Чтобы проверить, задано ли имя субъекта-службы, введите следующие команды в командной строке Microsoft Graph PowerShell.

$msp = Get-MgServicePrincipal -Filter "AppId eq '$spoappid'"
$spns = $msp.ServicePrincipalNames
$spns

Вы увидите текущий список SPN для SharePoint в Microsoft 365 в вашей организации Microsoft 365. Одно из имен SPN должно содержать имя общедоступного корневого домена, перед которым стоит идентификатор субъекта приложения SharePoint в Microsoft 365. Для регистрации используются подстановочные знаки, процесс выглядит следующим образом:

00000003-0000-0ff1-ce00-000000000000/*.<public domain name>.com

Это имя должно быть единственным именем субъекта-службы, содержащим имя общедоступного корневого домена.

Этап 4. Зарегистрируйте идентификатор объекта-участника приложения SharePoint в Microsoft 365 с помощью SharePoint Server.

На этом этапе необходимо зарегистрировать идентификатор главного объекта приложения SharePoint в Microsoft 365 в локальной службе управления приложениями SharePoint в Microsoft 365, что позволяет SharePoint Server проверить подлинность в SharePoint в Microsoft 365 с помощью OAuth.

В командной строке PowerShell введите следующие команды:

$spoappprincipalID  = (Get-MgServicePrincipal -Filter "AppId eq '$spoappid'").Id
$sponameidentifier = "$spoappprincipalID@$spocontextID"
$appPrincipal = Register-SPAppPrincipal -site $site.rootweb -nameIdentifier $sponameidentifier -displayName "SharePoint"

Для проверки этого шага в командной строке PowerShell введите переменную $appPrincipal:

$appPrincipal | fl

В результате вы получите описание зарегистрированных субъектов приложения с именем SharePoint Online, похожее на следующий пример:

Зарегистрированный субъект приложения для SharePoint в Microsoft 365

Этап 5. Установка области проверки подлинности SharePoint в Microsoft 365

На этом этапе для идентификатора контекста организации Microsoft 365 в организации задается область проверки подлинности фермы SharePoint Server.

В командной строке PowerShell введите следующую команду:

Set-SPAuthenticationRealm -realm $spocontextID

Чтобы проверить этот этап, в командной строке PowerShell введите следующие команды:

$spocontextID
Get-SPAuthenticationRealm

Вывод каждой из этих команд это GUID, который представляет собой идентификатор контекста клиента SharePoint в Microsoft 365. Результаты всех этих команд должны быть идентичны.

Важно!

Если вы настроили сценарии установки фермы, которые определяют значения области проверки подлинности фермы, их необходимо обновить, добавив новое значение. > Дополнительные сведения о требованиях к значениям областей в сценариях настройки фермы см. в статье Планирование проверки подлинности между серверами в SharePoint Server. Так как вы настроили эту ферму SharePoint для участия в гибридной конфигурации, значение области проверки подлинности фермы SharePoint всегда должно совпадать с идентификатором контекста клиента. Если изменить это значение, ферма не сможет участвовать в гибридной среде.

Шаг 6. Настройка локального прокси-сервера для Идентификатора Microsoft Entra

На этом шаге вы создадите службу прокси-сервера Microsoft Entra ID в ферме SharePoint Server. Это позволяет microsoft Entra ID в качестве доверенного издателя маркеров , который SharePoint Server использует для подписывания и проверки подлинности маркеров утверждений из SharePoint в Microsoft 365.

В командной строке PowerShell введите следующие команды:

New-SPAzureAccessControlServiceApplicationProxy -Name "ACS" -MetadataServiceEndpointUri $metadataEndpoint -DefaultProxyGroup
New-SPTrustedSecurityTokenIssuer -MetadataEndpoint $metadataEndpoint -IsTrustBroker:$true -Name "ACS"

Чтобы проверить команду New-SPAzureAccessControlServiceApplicationProxy:

  1. Перейдите на веб-сайт Центра администрирования SharePoint 2016 и выберите Безопасность>Общая безопасность>Управление доверительными отношениями.

  2. Убедитесь, что имя записи начинается с ACS и она относится к типу Доверенный потребитель службы.

    Чтобы проверить этот этап, в командной строке PowerShell введите следующую команду:

    Get-SPTrustedSecurityTokenIssuer
    

    В результате вы получите описание надежных поставщиков маркеров фермы, где значение свойства RegisteredIssuerName имеет следующий вид:

    00000001-0000-0000-c000-000000000000@<context ID>

    Где:

    • <context ID> — это идентификатор контекста клиента SharePoint в Microsoft 365, который является значением в переменной $spocontextID.

Начиная с октября 2021 г. требуется дополнительный шаг для настройки существующей гибридной конфигурации SharePoint для работы и проверки подлинности с помощью новой поисковой системы Microsoft 365.

Скрипт должен выполняться на сервере, где установлена локальная среда SharePoint (2013, 2016 или 2019). Скрипт пытается установить необходимые зависимости модуля (MSOnline, AzureAD) на сервере, где он выполняется.

  1. Скачайте скрипт конфигурации.

  2. В каталоге, где был скачан скрипт, выполните скрипт с помощью учетной записи администратора локальной фермы SharePoint, выполнив следующую команду:

    Update-FederatedHybridSearchForM365.ps1 -HybridWebApp YourHybridWebApplication -Force
    

    Для получения дополнительных сведений о значениях параметров выполните следующую команду:

    Get-Help .\Update-FederatedHybridSearchForM365.ps1
    
  3. При появлении запроса войдите с помощью учетной записи глобального администратора Microsoft 365.

  4. Дождитесь завершения выполнения скрипта; в случае возникновения проблем обратитесь в службу поддержки Майкрософт.

  5. После выполнения скрипта пользователи не увидят никаких изменений при реализации этого изменения.

Шаг 8 (требуется только для SharePoint Server 2013): предоставление новому участнику приложения разрешения QueryAsUserIgnoreAppPrincipal

SharePoint Server 2013 требует скрытого ограничения в каждом федеративном запросе. Обратный прокси-сервер возвращает документы, индексированные на самом сайте обратного прокси-сервера, а не на внутреннем локальном поисковом сайте, как ожидалось. Чтобы избежать этого, необходимо выполнить следующие действия на сайте администрирования SharePoint Server 2013:

  1. Перейдите к <CentralAdminURL>/_layouts/appinv.aspx и найдите c3959f3a-5ad4-4d2b-b1f0-bc70f9a5d0a1, где вы должны найти Навык бота федеративного поиска Гренландии.

  2. Если в поле "Домен приложения" есть элементы, оставьте их в поле "Домен приложения", а если оно пустое, используйте localhost.

  3. В URL-адресе перенаправления используйте https://localhost.

  4. В поле XML-запроса на разрешение вставьте следующий фрагмент XML:

    <AppPermissionRequests>
    <AppPermissionRequest Scope="http://sharepoint/search" Right="QueryAsUserIgnoreAppPrincipal" />
    </AppPermissionRequests>
    
  5. Страница конфигурации должна выглядеть примерно так, как показано на следующем снимку экрана. По завершении нажмите Создать.

Предоставление разрешения QueryAsUserIgnoreAppPrincipal для приложения

Проверка и дальнейшие действия

Выполнив описанные выше задачи и проверку, проверьте настройки единого входа и синхронизации каталогов.

Чтобы записать выполненные действия, поместите все содержимое буфера PowerShell в файл. Это будет полезно, если вам потребуется воспользоваться журналом настройки при устранении неполадок и в других ситуациях. Это также поможет вам продолжить работу с того места, где вы закончили, если настройка выполняется несколько дней или несколькими людьми.

Завершив и проверив задачи конфигурации, описанные в этой статье, перейдите к стратегии настройки.

См. также

Гибридная конфигурация SharePoint Server

Установка и настройка гибридной среды SharePoint Server