Configurar a autenticação de Servidor para Servidor entre farms de publicação e consumo

APLICA-SE A:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint no Microsoft 365

Quando um farm consome o aplicativo de serviço de Perfil de Usuário de um farm de publicação, o SharePoint emite solicitações usando a autenticação de Servidor para Servidor em nome do usuário para alguns recursos:

  • Seguir um documento em um aplicativo Web de conteúdo quando o site pessoal de um usuário estiver localizado em um aplicativo Web em um farm externo. O aplicativo Web de conteúdo faz uma solicitação OAuth para o aplicativo Web Meus Sites em nome do usuário.

  • Criar ou responder a uma postagem de feed de site para um site localizado em um aplicativo Web de conteúdo, mas executado por meio do feed de notícias do Meu Site do usuário no aplicativo Web Meus Sites. O aplicativo Web Meus Sites fará uma solicitação do aplicativo Web de conteúdo em nome do usuário para escrever a postagem ou a resposta.

  • Uma tarefa de aplicativo de serviço de Perfil de Usuário para preencher novamente o cache de feed precisa ler do site pessoal ou do site de conteúdo. Se o aplicativo Serviço de Perfil de Usuário estiver em execução em um farm diferente, ele enviará uma solicitação OAuth ao aplicativo Web Meus Sites ou ao aplicativo Web de conteúdo para ler os dados do feed do usuário ou do site no cache.

Antes de começar

O procedimento neste artigo requer que você já tenha configurado o seguinte:

Verifique se você possui as seguintes associações:

  • função de servidor fixa Securityadmin na instância do SQL Server.
  • A função de banco de dados fixa db_owner em todos os bancos de dados que devem ser atualizados.
  • Membro do grupo Administradores interno no servidor no qual você está executando os cmdlets do PowerShell. Um administrador pode usar o cmdlet Add-SPShellAdmin para conceder permissões para usar cmdlets SharePoint Server.

    Observação

    [!OBSERVAçãO] Se você não possui permissões, entre em contato com o Administrador da instalação ou com o administrador do SQL Server para solicitar permissões. Para mais informações sobre as permissões do Windows PowerShell, consulte Add-SPShellAdmin.

Configure a autenticação de servidor-a-servidor entre os farms de publicação e de consumo

O procedimento a seguir descreve como configurar a autenticação de servidor para servidor entre farms de publicação e de consumo e conceder apenas as permissões necessárias para permitir que os recursos sociais funcionem. Cada farm mantém seu próprio domínio de autenticação exclusivo.

Autorizar o farm consumidor a enviar solicitações OAuth para o farm que hospeda o aplicativo Web MySites

Em um servidor do SharePoint no farm que executa o aplicativo Web MySites (que pode não ser o farm de publicação), inicie o Shell de Gerenciamento do SharePoint e execute este script do PowerShell para registrar o farm de consumo como um emissor confiável, obter a entidade de segurança do aplicativo e conceder a ele as autorizações necessárias:

# 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)

Autorizar o farm de publicação a enviar solicitações OAuth ao farm de consumo

Em um servidor do SharePoint no farm de consumo, inicie o Shell de Gerenciamento do SharePoint e execute este script do PowerShell para registrar o farm de publicação como um emissor confiável, obter a entidade de segurança do aplicativo e conceder a ele as autorizações necessárias:

# 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)

Confira também

Conceitos

Compartilhar aplicativos de serviço entre farms no SharePoint Server

Visão geral da autenticação do SharePoint Server

Plano de autenticação servidor-para-servidor no SharePoint Server

Outros recursos

New-SPTrustedSecurityTokenIssuer

Set-SPAppPrincipalPermission