Compartilhar via


Configurar a autenticação baseada em servidor com o SharePoint local

A integração baseada em servidor para geranciamento de documentos é usada para conectar aplicativos de engajamento do cliente (Dynamics 365 Sales, Dynamics 365 Customer Service, Dynamics 365 Marketing e Dynamics 365 Marketing) com aplicativos locais. SharePoint Dynamics 365 Field Service Dynamics 365 Project Service Automation SharePoint Ao usar a autenticação baseada em servidor, os Microsoft Entra Serviços de Domínio são usados como o agente de confiança e os usuários não precisam fazer login SharePoint.

Permissões necessárias

As seguintes associações e privilégios são necessários para habilitar o gerenciamento de documento do SharePoint.

  • Microsoft 365 A associação de administrador global é necessária para:

    • Acesso de nível administrativo à subscrição Microsoft 365.
    • Executando Habilitação do assistente para Autenticação baseada no Servidor.
    • Executando os cmdlets do AzurePowerShell.
  • Power Apps O privilégio Executar SharePoint Assistente de Integração permite o assistente Habilitar Autenticação Baseada em Servidor.

    Por padrão, o direito de acesso Administrador do Sistema tem esse privilégio.

  • Para SharePoint integração local, SharePoint a associação ao grupo Administradores de Farm é necessária para executar a maioria dos comandos do PowerShell no SharePoint servidor.

Configurar a autenticação de servidor para servidor com o SharePoint local

Siga as etapas, na ordem fornecida, para configurar aplicativos de engajamento do cliente com o SharePoint 2016 local.

Importante

As etapas descritas a seguir devem ser realizadas na ordem apresentada. Se uma tarefa não for concluída, como um comando do PowerShell que retorna uma mensagem de erro, o problema deverá ser resolvido antes de você continuar para o próximo comando, tarefa ou etapa.

Verificar os pré-requisitos

Para configurar os aplicativos do Customer Engagement e SharePoint local para a autenticação baseada em servidor, os pré-requisitos a seguir devem ser atendidos:

Pré-requisitos do SharePoint

Outros pré-requisitos

  • SharePoint, licença online. A autenticação local baseada em servidor dos aplicativos do Customer Engagement para SharePoint deve ter o SPN (nome da entidade de serviço) do SharePoint registrado no Microsoft Entra ID. Para obter acesso, é necessária pelo menos uma SharePoint licença de usuário on-line. A licença do SharePoint online pode derivar de uma única licença de usuário e costuma ser obtida da seguinte forma:

    • Uma assinatura do SharePoint Online. Qualquer plano do SharePoint online é suficiente, mesmo que a licença não seja atribuída a um usuário.

    • Uma assinatura do Microsoft 365 que inclua o SharePoint online. Por exemplo, se tiver o Microsoft 365 E3, você terá o licenciamento adequado, mesmo que a licença não seja atribuída a um usuário.

      Para obter mais informações sobre esses planos, acesse Encontre a solução certa para você e Compare SharePoint opções.

  • Os seguintes recursos de software são necessários para executar os cmdlets do PowerShell descritos neste artigo.

    Microsoft.Graph

    Para instalar o módulo Microsoft.Graph, digite o seguinte comando em uma sessão de administrador do PowerShell.

    $currentMaxFunctionCount =
        $ExecutionContext.SessionState.PSVariable.Get("MaximumFunctionCount").Value
    
    # Set execution policy to RemoteSigned for this session
    if ((Get-ExecutionPolicy -Scope Process) -ne "RemoteSigned") {
        Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned -Force
    }
    
    # Update MaximumFunctionCount if needed
    if ($currentMaxFunctionCount -lt 32768) {
        $ExecutionContext.SessionState.PSVariable.Set("MaximumFunctionCount", 32768)
    }
    
    # Install and import required modules
    if (-not (Get-Module -ListAvailable -Name "Microsoft.Graph")) {
        $Params = @{
            Name = "Microsoft.Graph"
            Scope = CurrentUser
        }
        Install-Module @Params -Force
    }
    
    $Params = @{
        Name = "Microsoft.Graph"
        Function = @("Connect-MgGraph", "Get-MgOrganization")
    }
    Import-Module @Params
    
    if (-not (Get-Module -ListAvailable -Name "Microsoft.Graph.Identity.DirectoryManagement")) {
        $Params = @{
            Name = "Microsoft.Graph.Identity.DirectoryManagement"
            Scope = CurrentUser
        }
        Install-Module @Params -Force
    }
    
    $Params = @{
        Name = "Microsoft.Graph.Identity.DirectoryManagement"
        Function = @("Get-MgServicePrincipal", "Update-MgServicePrincipal")
    }
    Import-Module @Params
    
  • Um tipo de mapeamento da autenticação baseada em declarações adequado ao uso de identidades de mapeamento entre os aplicativos do Customer Engagement e o SharePoint local. Por padrão, o endereço de email é usado. Saiba mais em Conceder permissão de acesso aos aplicativos de engajamento do cliente SharePoint e configurar o mapeamento de autenticação baseado em declarações.

Atualizar o SPN do Servidor do SharePoint nos Serviços de Domínio do Microsoft Entra

No servidor do SharePoint local, no Shell de Gerenciamento do SharePoint 2016, execute estes comandos do PowerShell na ordem determinada.

  1. Conecte-se ao Microsoft 365.

    Ao executar o comando Connect-MgGraph, você deve fornecer uma conta Microsoft válida que tenha associação de administrador global para a SharePoint licença online necessária.

    Para obter informações detalhadas sobre cada um dos Microsoft Entra comandos do IDPowerShell listados aqui, acesse Gerenciar Microsoft Entra usando o Windows PowerShell.

    Connect-MgGraph -Scopes "Directory.ReadWrite.All", "Application.ReadWrite.All"  
    
  2. Defina o URL do host. SharePoint

    O valor definido para a variável HostNameUrl deve ser o URL completo do nome do host do SharePoint conjunto de sites. O nome de host deve derivar do URL do conjunto de sites e fazer distinção entre maiúsculas e minúsculas. Neste exemplo, a URL do conjunto de sites é https://SharePoint.constoso.com/sites/salesteam, então a URL do nome do host é https://SharePoint.contoso.com.

    Importante

    Se houver vários sites, execute o seguinte comando para cada site.

    # Generate Service Principal Name
    # Note: If there are multiple sites, and the host is the same, no action is needed.
    #       If the host is different, each site needs to be configured to add the 
    #       host to the service principal.
    $uri = [System.Uri]"https://SharePoint.constoso.com/sites/salesteam"
    $hostName = $uri.Host
    $baseUrl = "$($uri.Scheme)://$hostName"
    $servicePrincipalName = $baseUrl
    
  3. Obtenha o Microsoft 365 ID do objeto (locatário) e o SharePoint Nome principal do serviço do servidor (SPN).

    # SharePoint Online App ID
    $SPOAppId = "00000003-0000-0ff1-ce00-000000000000"
    
    # Retrieve SharePoint Online Service Principal
    $SharePoint = Get-MgServicePrincipal -Filter "AppId eq '$SPOAppId'"
    
    $UpdatedServicePrincipalNames = $SharePoint.ServicePrincipalNames |
        Where-Object { $_ -ne $servicePrincipalName }
    $UpdatedServicePrincipalNames += $servicePrincipalName
    
  4. Obtenha o Microsoft 365 ID do objeto (locatário) e o SharePoint Nome principal do serviço do servidor (SPN).

    $maxRetries = 5
    $retryDelay = 5 # seconds 
    
    for ($retry = 1; $retry -le $maxRetries; $retry++) {
        try {
            $Params = @{
     	         ServicePrincipalId = $SharePoint.Id
     			     ServicePrincipalNames = $UpdatedServicePrincipalNames
     		   }
     		   Update-MgServicePrincipal @Params
     		   Write-Host "Service Principal Names updated successfully."
     		   break
     	 }
     	 catch {
     		   if ($_.Exception.Message -match "Directory_ConcurrencyViolation" -and
                $retry -lt $maxRetries) {
     			     Write-Host "Concurrency violation detected. (Attempt $retry of $maxRetries)"
     			     Start-Sleep -Seconds $retryDelay
       		 }
       		 else {
         			 Write-Host "Failed to update Service Principal Names. Error: $_"
     		    	 exit 1
            }
        }
    }
    

Após a conclusão desses comandos, não feche o SharePoint 2016 Management Shell. Continue para o próximo passo.

Atualize o realm do SharePoint para corresponder àquele do SharePoint On-line

No servidor local do SharePoint, no Shell de Gerenciamento do SharePoint 2016, execute este comando do Windows PowerShell.

O comando a seguir exige a associação de administrador de farm do SharePoint e define o realm de autenticação do farm do SharePoint local.

Cuidado

A execução deste comando altera o realm de autenticação do farm do SharePoint local. Para aplicativos que usam um serviço de token de segurança (STS) existente, esse comando pode causar comportamento inesperado com outros aplicativos que usam tokens de acesso. Saiba mais em Set-SPAuthenticationRealm.

# SPOContextId is the tenant ID for the dynamics 365 tenant. It is used to identify the tenant in Azure AD and SharePoint Online.
$SPOContextId = "<tenantId>"
Set-SPAuthenticationRealm -Realm $SPOContextId

Criar um emissor de token de segurança confiável para o Microsoft Entra ID no SharePoint

No servidor do SharePoint local, no Shell de Gerenciamento do SharePoint 2016, execute estes comandos do PowerShell na ordem determinada.

Os comandos a seguir exigem a associação de administrador de farm do SharePoint.

Para obter informações detalhadas sobre esses comandos do PowerShell, acesse SharePoint 2016: Lista de cmdlets do PowerShell.

  1. Habilite a sessão do PowerShell para fazer alterações no serviço de token de segurança para o farm do SharePoint.

    $c = Get-SPSecurityTokenServiceConfig  
    $c.AllowMetadataOverHttp = $true  
    $c.AllowOAuthOverHttp= $true  
    $c.Update()  
    
  2. Defina o ponto de extremidade dos metadados.

    $metadataEndpoint = 
        "https://login.microsoftonline.com/common/.well-known/openid-configuration"  
    $oboissuer = "https://sts.windows.net/*/" 
    $issuer = "00000007-0000-0000-c000-000000000000@" + $SPOContextId  
    
  3. Criar o novo proxy de aplicativo do serviço de controle de token no Microsoft Entra ID.

    $existingIssuer = Get-SPTrustedSecurityTokenIssuer "D365Obo"
    if ($existingIssuer) {
        $Params = @{
            Identity = $existingIssuer
            IsTrustBroker = $true
            MetadataEndpoint = $metadataEndpoint
            RegisteredIssuerName = $oboissuer
        }
        Set-SPTrustedSecurityTokenIssuer @Params
    } else {
        $Params = @{
            Name = "D365Obo"
            IsTrustBroker = $true
            MetadataEndpoint = $metadataEndpoint
            RegisteredIssuerName = $oboissuer
        }
        $obo = New-SPTrustedSecurityTokenIssuer @Params
    }
    

Conceder permissão aos aplicativos do Customer Engagement para acessar o SharePoint e configurar o mapeamento da autenticação baseada em declarações

No servidor do SharePoint local, no Shell de Gerenciamento do SharePoint 2016, execute estes comandos do PowerShell na ordem determinada.

Os comandos a seguir exigem a associação de administração de conjunto de sites do SharePoint.

  1. Registre os aplicativos do Customer Engagement no conjunto de sites do SharePoint.

    Insira a URL do conjunto de sites do SharePoint local. Neste exemplo, <https://sharepoint.contoso.com/sites/crm/> é usado.

    $site = Get-SPSite "https://sharepoint.contoso.com/sites/crm/"
    $Params = @{
        site = $site.RootWeb
        NameIdentifier = $issuer
        DisplayName = "crmobo"
    }
    Register-SPAppPrincipal @Params
    
  2. Conceda aos aplicativos do Customer Engagement acesso ao SharePoint local. Substitua <https://sharepoint.contoso.com/sites/crm/> pelo SharePoint URL do seu site.

    Observação

    No exemplo a seguir, é concedida permissão ao aplicativo do Customer Engagement para o conjunto de sites do especificado SharePoint usando o parâmetro de conjunto de sites –Scope. O parâmetro de escopo aceita as seguintes opções. Escolha o escopo que seja mais apropriado para sua configuração do SharePoint.

    • site. Concede aos aplicativos do Customer Engagement permissão somente ao site especificado do SharePoint. Não concede permissão a nenhum subsite no site nomeado.
      • sitecollection. Concede permissão aos aplicativos do Customer Engagement para todos os sites e subsites dentro do conjunto de sites especificado do SharePoint.
      • sitesubscription. Concede a permissão dos aplicativos do Customer Engagement para todos os sites na farm do SharePoint, incluindo todos os conjuntos de sites, os sites e os subsites.

    Importante

    Se houver vários sites, execute o script para cada site.

    $Params = @{
        NameIdentifier = $issuer
        Site = "https://sharepoint.contoso.com/sites/crm/"
    }
    $app = Get-SPAppPrincipal @Params
    
    $Params = @{
        AppPrincipal = $app
        Site = $site.Rootweb
        Scope = "sitecollection"
        Right = "FullControl"
    }
    Set-SPAppPrincipalPermission @Params
    
  3. Defina o tipo de mapeamento de autenticação baseada em declarações.

    Importante

    Por padrão, o mapeamento de autenticação baseada em declarações usa o endereço de e-mail da conta da Microsoft do usuário e o endereço de e-mail SharePoint local de trabalho do usuário para mapeamento. Ao usar o mapeamento de autenticação baseado em declarações, os endereços de e-mail do usuário devem corresponder entre os dois sistemas. Saiba mais em Selecionando um tipo de mapeamento de autenticação baseado em declarações.

    $Params = @{
        IncomingClaimType = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
        IncomingClaimTypeDisplayName = "EmailAddress"
    }
    $map1 = New-SPClaimTypeMapping @Params -SameAsIncoming
    

Executar o assistente Habilitar integração do SharePoint baseada em servidor

Siga as etapas a seguir:

  1. Verifique se você tem a permissão apropriada para executar o assistente. Saiba mais em Permissões necessárias.

  2. Vá para Configurações>Gerenciamento de Documentos.

  3. Na área Gerenciamento de Documentos, clique em Habilitar integração do SharePoint baseada no servidor.

  4. Analise as informações e clique em Avançar.

  5. Para os locais do SharePoint, clique em Locais e, em seguida, em Avançar.

  6. Insira a URL do conjunto de sites do SharePoint, por exemplo, https://sharepoint.contoso.com/sites/crm. O site já deverá estar configurado para SSL.

  7. Clique em Avançar.

  8. A seção para validar sites aparece. Se todos os sites forem determinados como válidos, clique em Habilitar. Se um ou mais sites forem considerados inválidos, acesse Solução de problemas de autenticação baseada em servidor.

Selecionar as entidades que você deseja incluir no gerenciamento de documentos

Por padrão, as entidades Conta, Artigo, Lead, Produto, Cotação e Especificações são incluídas. Você pode adicionar ou remover as entidades usadas para geranciamento de documentos em SharePoint Configurações de geranciamento de documentos . Vá para Configurações>Gerenciamento de Documentos. Saiba mais em Habilitar geranciamento de documentos em entidades.

Adicionar a integração com o OneDrive for Business

Depois de concluir os aplicativos do Customer Engagement e a configuração de autenticação baseada em servidor local do SharePoint, você também pode integrar o OneDrive for Business. Com a integração do OneDrive de negócios e dos aplicativos do Customer Engagement, os usuários podem criar e gerenciar documentos privados usando o OneDrive for Business. Esses documentos podem ser acessados depois que o administrador do sistema habilitar o OneDrive para empresas.

Habilitar o OneDrive for Business

No Windows Server onde o SharePoint Server local está sendo executado, abra o Shell de Gerenciamento do SharePoint e execute os comandos a seguir:

Add-Pssnapin *  

# Access WellKnown App principal  
[Microsoft.SharePoint.Administration.SPWebService]::ContentService.WellKnownAppPrincipals  
  
# Create WellKnown App principal  
$ClientId = "00000007-0000-0000-c000-000000000000"  
$PermissionXml = @"
<AppPermissionRequests AllowAppOnlyPolicy="true">
    <AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
    <AppPermissionRequest Scope="http://sharepoint/social/tenant" Right="Read" />
    <AppPermissionRequest Scope="http://sharepoint/search" Right="QueryAsUserIgnoreAppPrincipal" />
</AppPermissionRequests>
"@

$wellKnownApp = New-Object `
    -TypeName "Microsoft.SharePoint.Administration.SPWellKnownAppPrincipal" `
    -ArgumentList ($ClientId, $PermissionXml)  
  
$wellKnownApp.Update()    

Selecionando um tipo de mapeamento de autenticação baseada em declarações

Por padrão, o mapeamento de autenticação baseada em declarações usa o endereço de e-mail da conta da Microsoft do usuário e o endereço de e-mail de trabalho local do usuário para mapeamento. SharePoint Seja qual for o tipo de autenticação baseada em declarações que você usar, os valores, como endereços de e-mail, devem corresponder entre aplicativos de engajamento do cliente e SharePoint. Microsoft 365 a sincronização de diretórios ajuda a corresponder endereços de e-mail. Saiba mais em Implantar Microsoft 365 Sincronização de Diretórios em Microsoft Azure. Para usar um tipo diferente de mapeamento de autenticação baseado em declarações, acesse Definir mapeamento de declarações personalizado para SharePoint integração baseada em servidor.

Importante

Para habilitar a propriedade Email de trabalho, o SharePoint local deverá ter um Aplicativo de Serviço de Perfil de Usuário configurado e iniciado. Para habilitar um aplicativo de serviço de perfil de usuário no SharePoint, acesse Criar, editar ou excluir aplicativos de serviço de perfil de usuário no SharePoint Server 2016. Para fazer alterações em uma propriedade do usuário, como E-mail comercial, acesse Editar uma propriedade de perfil de usuário. Para obter mais informações sobre o aplicativo de serviço de perfil de usuário, acesse Visão geral do aplicativo de serviço de perfil de usuário no SharePoint Server 2016.