Configurar a autenticação servidor a servidor entre a publicação e o consumo de farm

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

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

  • Siga 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.

  • Crie ou responda a uma postagem de feed de site para um site localizado em um aplicativo Web de conteúdo, mas executado por meio do My Site Newsfeed 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 gravar a postagem ou a resposta.

  • Uma tarefa de aplicativo de serviço do Perfil de Usuário para repovoar o cache do feed precisa ser lida no site pessoal ou no site de conteúdo. Se o aplicativo do Serviço de Perfil de Usuário estiver em execução em um farm diferente, ele enviará uma solicitação OAuth para o aplicativo Web Meus Sites ou aplicativo Web de conteúdo para ler os dados do usuário ou do feed 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 internos 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 servidor a servidor entre publicar e consumir fazendas e conceder apenas as permissões necessárias para permitir que os recursos sociais funcionem. Cada farm mantém seu próprio reino de autenticação exclusivo.

Autorizar o farm de consumo 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 consumidor como um emissor confiável, obtenha sua entidade de aplicativo e conceda 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 para o farm consumidor

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, obtenha sua entidade de aplicativo e conceda 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