Настройка межсерверной проверки подлинности между публикацией и использованием ферм

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

Когда ферма использует приложение службы профилей пользователей фермы публикации, SharePoint отправляет запросы с использованием проверки подлинности между серверами от имени пользователя для некоторых функций:

  • Следуйте документу в веб-приложении контента, если личный сайт пользователя находится в веб-приложении во внешней ферме. Веб-приложение содержимого отправляет запрос OAuth веб-приложению "Личные сайты" от имени пользователя.

  • Создание публикации веб-канала сайта или ответ на него для сайта, расположенного в веб-приложении контента, но выполняемого через канал новостей личного сайта пользователя в веб-приложении "Личные сайты". Веб-приложение "Личные сайты" будет запрашивать веб-приложение содержимого от имени пользователя, чтобы написать сообщение или ответ.

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

Подготовка к работе

Процедура, описанная в этой статье, требует, чтобы вы уже настроили следующее:

Убедитесь, что вы являетесь участником следующих групп:

  • Предопределенная роль сервера securityadmin для экземпляра SQL Server.
  • Предопределенная роль базы данных db_owner во всех базах данных, которые должны обновляться.
  • Член встроенной группы администраторов на сервере, на котором выполняются командлеты PowerShell. С помощью командлета Add-SPShellAdmin администратор может предоставлять разрешения на использование командлетов SharePoint Server.

    Примечание.

    При отсутствии разрешений обратитесь к своему администратору программы установки или администратору SQL Server за разрешениями. Дополнительные сведения о разрешениях PowerShell см. в статье Add-SPShellAdmin.

Настройка межсерверной проверки подлинности между фермой публикации и потребляющей фермой

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

Авторизация потребляющей фермы для отправки запросов OAuth в ферму, где размещается веб-приложение MySites

На сервере SharePoint в ферме с веб-приложением MySites (который может не быть фермой публикации), запустите командную консоль SharePoint и запустите этот сценарий PowerShell, чтобы зарегистрировать ферму в качестве доверенного издателя, получить субъект приложения и предоставить ему необходимые разрешения:

# Register the consuming farm as a trusted issuer using information in its metadata file
$trustedIssuer = New-SPTrustedSecurityTokenIssuer -MetadataEndpoint "https://<ConsumingFarmWinClaimsWebApp>/_layouts/15/metadata/json/1" -Name "<ConsumingFarmFriendlyName>"

# Get the app principal and set required authorizations
$mySiteHost = Get-SPWeb "http://<MySiteHostUrl/"
$appPrincipal = Get-SPAppPrincipal -Site $mySiteHost -NameIdentifier $trustedIssuer.NameId

# Grant permissions AppOnly and Write on the MySite host
Set-SPAppPrincipalPermission -EnableAppOnlyPolicy -Site $mySiteHost -AppPrincipal $appPrincipal -Scope SiteSubscription -Right Write

# Grant permissions Manage on the PrivateAPI and Read on the SocialPermissionProvider
$privateAPITypeId = New-Object -TypeName System.Guid ("a2ccc2e2-1703-4bd9-955f-77b2550d6f0d")
$socialPermissionProviderId = New-Object -TypeName System.Guid ("fcaec196-a98c-4f8f-b60f-e1a82272a6d2")
$mgr = New-Object -TypeName Microsoft.SharePoint.SPAppPrincipalPermissionsManager ($mySiteHost)
$mgr.AddSiteSubscriptionPermission($appPrincipal, $privateAPITypeId, [Microsoft.SharePoint.SPAppPrincipalPermissionKind]::Manage)
$mgr.AddSiteSubscriptionPermission($appPrincipal, $socialPermissionProviderId, [Microsoft.SharePoint.SPAppPrincipalPermissionKind]::Read)

Авторизация фермы публикации для отправки запросов OAuth в потребляющую ферму

На сервере SharePoint в потребляющей ферме запустите командную консоль SharePoint и запустите этот сценарий PowerShell, чтобы зарегистрировать ферму публикации в качестве доверенного издателя, получить субъект приложения и предоставить ему необходимые разрешения:

# Register the publishing farm as a trusted issuer using information in its metadata file
$trustedIssuer = New-SPTrustedSecurityTokenIssuer -MetadataEndpoint "https://<PublishingFarmWinClaimsWebApp>/_layouts/15/metadata/json/1" -Name "<PublishingFarmFriendlyName>"

# Get the app principal
$centralAdminWeb = Get-SPWeb "http://<ConsumingFarmCentralAdminURL/"
$appPrincipal = Get-SPAppPrincipal -Site $centralAdminWeb -NameIdentifier $trustedIssuer.NameId

# Grant app only permission and Read on the SiteSubscription
Set-SPAppPrincipalPermission -EnableAppOnlyPolicy -AppPrincipal $appPrincipal -Site $centralAdminWeb -Scope SiteSubscription -Right Read

# Grant permissions Manage on the PrivateAPI
$privateAPITypeId = New-Object -TypeName System.Guid ("a2ccc2e2-1703-4bd9-955f-77b2550d6f0d")
$mgr = New-Object -TypeName Microsoft.SharePoint.SPAppPrincipalPermissionsManager ($centralAdminWeb)
$mgr.AddSiteSubscriptionPermission($appPrincipal, $privateAPITypeId, [Microsoft.SharePoint.SPAppPrincipalPermissionKind]::Manage)

См. также

Понятия

Совместное использование приложений службы в разных фермах SharePoint Server

Обзор проверки подлинности для SharePoint Server

Планирование проверки подлинности между серверами в SharePoint Server

Другие ресурсы

New-SPTrustedSecurityTokenIssuer

Set-SPAppPrincipalPermission