Configurar a autenticação Servidor a Servidor entre publicar e consumir farms

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 a aplicação de serviço Perfil de Utilizador de um farm de publicação, o SharePoint emite pedidos através da autenticação Servidor a Servidor em nome do utilizador para algumas funcionalidades:

  • Siga um documento numa aplicação Web de conteúdo quando o site pessoal de um utilizador estiver localizado numa aplicação Web num farm externo. A aplicação Web de conteúdo faz um pedido OAuth à aplicação Web Os Meus Sites em nome do utilizador.

  • Crie ou responda a uma publicação de feed de site para um site localizado numa aplicação Web de conteúdo, mas executada através do Newsfeed O Meu Site do utilizador na aplicação Web Os Meus Sites. A aplicação Web Os Meus Sites fará um pedido da aplicação Web de conteúdo em nome do utilizador para escrever a mensagem ou a resposta.

  • Uma tarefa de aplicação de serviço de Perfis de Utilizador para repovoar a cache do feed tem de ser lida a partir do site pessoal ou site de conteúdo. Se a aplicação Serviço de Perfis de Utilizador estiver em execução num farm diferente, envia um pedido OAuth para a aplicação Web Os Meus Sites ou aplicação Web de conteúdo para ler os dados do feed do utilizador ou do site para a cache.

Antes de começar

O procedimento neste artigo requer que 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 incorporado no servidor no qual está a executar 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 seguinte descreve como configurar a autenticação servidor a servidor entre publicar e consumir farms e conceder apenas as permissões necessárias para permitir que as funcionalidades sociais funcionem. Cada farm mantém o seu próprio realm de autenticação exclusivo.

Autorizar o farm de consumo a enviar pedidos OAuth para o farm que aloja a aplicação Web Os Meus Sites

Num servidor do SharePoint no farm que executa a aplicação Web Os Meus Sites (que pode não ser o farm de publicação), inicie a Shell de Gestão do SharePoint e execute este script do PowerShell para registar o farm de consumo como um emissor fidedigno, obter o respetivo principal de aplicação e conceder-lhe 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 pedidos OAuth para o farm de consumo

Num servidor do SharePoint no farm de consumo, inicie a Shell de Gestão do SharePoint e execute este script do PowerShell para registar o farm de publicação como um emissor fidedigno, obter o principal de aplicação e conceder-lhe 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