Condividi tramite


Configurare l‘autenticazione basata su server con SharePoint on-premises

L'integrazione basata su server per la gestione dei documenti viene utilizzata per connettere le app di coinvolgimento dei clienti (Dynamics 365 Sales, Dynamics 365 Customer Service, Dynamics 365 Marketing e) con quelle locali. SharePoint Dynamics 365 Field Service Dynamics 365 Project Service Automation SharePoint Quando si utilizza l'autenticazione basata sul server, i Microsoft Entra Servizi di dominio vengono utilizzati come broker di attendibilità e gli utenti non devono effettuare l'accesso SharePoint.

Autorizzazioni obbligatorie

Sono necessari gli abbonamenti e i privilegi seguenti per abilitare la gestione documenti di SharePoint.

  • Microsoft 365 L'appartenenza all'amministratore globale è richiesta per:

    • Accesso a livello amministrativo all'abbonamento Microsoft 365.
    • Esecuzione della procedura guidata Abilita autenticazione basata su server.
    • Esecuzione dei cmdlet di AzurePowerShell.
  • Power Apps Il privilegio Esegui SharePoint Procedura guidata di integrazione consente di abilitare la procedura guidata Abilita autenticazione basata sul server.

    Il ruolo di sicurezza Amministratore di sistema dispone di questo privilegio per impostazione predefinita.

  • Per l'integrazione in locale, è richiesta l'appartenenza al gruppo Amministratori farm per eseguire la maggior parte dei comandi di PowerShell sul server. SharePoint SharePoint SharePoint

Configurare l'autenticazione tra server con SharePoint on-premises

Per configurare le app di coinvolgimento dei clienti con SharePoint 2016 on-premises, segui i passaggi indicati nell'ordine in cui sono elencati.

Importante

I passaggi riportati di seguito devono essere completati nell'ordine indicato. Se un'attività non viene completata, ad esempio un comando di PowerShell che restituisce un messaggio di errore, il problema deve essere risolto prima di procedere con il comando, l'attività o il passaggio successivo.

Verificare i prerequisiti

Prima di configurare le app di interazione con i clienti e SharePoint on-premises per l'autenticazione basata su server, è necessario soddisfare i prerequisiti seguenti:

Prerequisiti di SharePoint

Altri prerequisiti

  • Licenza di SharePoint Online. Le app di interazione con i clienti per l'autenticazione basata sul server di SharePoint on-premises devono avere il nome dell'entità servizio SharePoint registrato in Microsoft Entra ID. Per ottenere l'accesso è necessaria almeno una SharePoint licenza utente online. La licenza di SharePoint Online può derivare da una singola licenza utente e in genere deriva da:

    • Una sottoscrizione di SharePoint Online. Un qualsiasi piano di SharePoint Online è sufficiente anche se la licenza non è assegnata a un utente.

    • Una sottoscrizione di Microsoft 365 che include SharePoint Online. Ad esempio, se si utilizza Microsoft 365 E3, disponi delle licenze appropriate anche se la licenza non è assegnata a un utente.

      Per maggiori informazioni su questi piani, vai su Trova la soluzione giusta per te e Confronta SharePoint le opzioni.

  • Per eseguire i cmdlet di PowerShell descritti in questo articolo sono necessarie le seguenti funzionalità software.

    Microsoft.Graph

    Per installare il modulo Microsoft.Graph, immettere il seguente comando da una sessione di PowerShell dell'amministratore.

    $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
    
  • Un tipo di mapping appropriato per l'autenticazione basata sulle attestazioni da utilizzare per il mapping delle identità tra le app di interazione con i clienti e SharePoint on-premises. Per impostazione predefinita, viene utilizzato l'indirizzo e-mail. Per ulteriori informazioni, consulta la sezione Concedere alle app di coinvolgimento dei clienti l'autorizzazione ad accedere SharePoint e configurare la mappatura dell'autenticazione basata sulle attestazioni.

Aggiornare l'SPN server di SharePoint nei Servizi di dominio Microsoft Entra

Nel server di SharePoint locale, in SharePoint 2016 Management Shell, esegui questi comandi di PowerShell nell'ordine indicato.

  1. Connettersi a Microsoft 365.

    Quando si esegue il comando Connect-MgGraph, è necessario fornire un account Microsoft valido con appartenenza all'amministratore globale per la licenza online richiesta. SharePoint

    Per informazioni dettagliate su ciascuno dei comandi IDPowerShell elencati qui, vedere Microsoft Entra Gestione tramite Windows PowerShell Microsoft Entra .

    Connect-MgGraph -Scopes "Directory.ReadWrite.All", "Application.ReadWrite.All"  
    
  2. Imposta l'URL dell'host. SharePoint

    Il valore impostato per la variabile HostNameUrl deve essere l'URL completo del nome host della SharePoint raccolta siti. Il nome host deve essere derivato dall'URL della raccolta siti e rispetta la differenza tra minuscole e maiuscole. In questo esempio, l'URL della raccolta siti è https://SharePoint.constoso.com/sites/salesteam, quindi l'URL del nome host è https://SharePoint.contoso.com.

    Importante

    Se sono presenti più siti, eseguire il seguente comando per ciascun sito.

    # 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. Ottieni l' Microsoft 365 ID dell'oggetto (tenant) e il SharePoint nome del servizio principale del server (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. Ottieni l' Microsoft 365 ID dell'oggetto (tenant) e il SharePoint nome del servizio principale del server (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
            }
        }
    }
    

Dopo aver completato questi comandi, non chiudere 2016 Management Shell. SharePoint Prosegui con il passaggio successivo.

Aggiornare l'area di autenticazione di SharePoint per corrispondere quella di SharePoint Online

Nel server SharePoint locale, in SharePoint 2016 Management Shell, esegui questo comando Windows PowerShell.

Il seguente comando richiede l'appartenenza di amministratore di farm di SharePoint e imposta l'area di autenticazione della farm di SharePoint on-premises.

Attenzione

L'esecuzione del comando modifica l'area di autenticazione della farm di SharePoint on-premises. Per le applicazioni che utilizzano un servizio token di sicurezza (STS) esistente, questo comando potrebbe causare un comportamento imprevisto con altre applicazioni che utilizzano token di accesso. Per ulteriori informazioni, vedere 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

Creare un'autorità emittente di token di sicurezza attendibile per Microsoft Entra ID in SharePoint

Nel server di SharePoint locale, in SharePoint 2016 Management Shell, esegui questi comandi di PowerShell nell'ordine indicato.

I comandi seguenti richiedono l'appartenenza amministratore di farm di SharePoint.

Per informazioni dettagliate su questi comandi di PowerShell, vedere SharePoint 2016: Elenco dei cmdlet di PowerShell.

  1. Abilitare la sessione PowerShell per apportare modifiche al servizio token di sicurezza per la farm di SharePoint.

    $c = Get-SPSecurityTokenServiceConfig  
    $c.AllowMetadataOverHttp = $true  
    $c.AllowOAuthOverHttp= $true  
    $c.Update()  
    
  2. Impostare l'endpoint dei metadati.

    $metadataEndpoint = 
        "https://login.microsoftonline.com/common/.well-known/openid-configuration"  
    $oboissuer = "https://sts.windows.net/*/" 
    $issuer = "00000007-0000-0000-c000-000000000000@" + $SPOContextId  
    
  3. Creare il nuovo proxy dell'applicazione del servizio di controllo proxy in 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
    }
    

Concedere alle app di interazione con i clienti l'autorizzazione per accedere a SharePoint e configurare il mapping dell'autenticazione basata sulle attestazioni

Nel server di SharePoint locale, in SharePoint 2016 Management Shell, esegui questi comandi di PowerShell nell'ordine indicato.

I comandi seguenti richiedono l'appartenenza amministratore della raccolta siti SharePoint.

  1. Registra le app di interazione con i clienti con la raccolta siti SharePoint.

    Immettere l'URL della raccolta siti SharePoint on-premises. In questo esempio viene utilizzato <https://sharepoint.contoso.com/sites/crm/> .

    $site = Get-SPSite "https://sharepoint.contoso.com/sites/crm/"
    $Params = @{
        site = $site.RootWeb
        NameIdentifier = $issuer
        DisplayName = "crmobo"
    }
    Register-SPAppPrincipal @Params
    
  2. Concedi alle app di interazione con i clienti l'accesso al sito di SharePoint. Sostituisci <https://sharepoint.contoso.com/sites/crm/> con l'URL del tuo SharePoint sito.

    Nota

    Nell'esempio seguente, all'app di interazione con i clienti viene concessa l'autorizzazione per la raccolta siti di SharePoint specificata utilizzando il parametro –Scope site collection. Il parametro Scope accetta le seguenti opzioni. Selezionare l'ambito più appropriato alla configurazione di SharePoint.

    • site. Concede alle app di interazione con i clienti l'autorizzazione solo per il sito Web di SharePoint specificato. Non concede le autorizzazioni per i siti secondari nel sito denominato.
      • sitecollection. Concede alle app di interazione con i clienti l'autorizzazione per tutti i siti Web e i siti secondari nella raccolta siti SharePoint specificata.
      • sitesubscription. Concede alle app di interazione con i clienti l'autorizzazione per tutti i siti Web nel farm SharePoint, incluse tutte le raccolte di siti, i siti Web e i siti secondari.

    Importante

    Se sono presenti più siti, eseguire lo script per ciascun sito.

    $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. Impostare il tipo di mapping dell'autenticazione basata sulle attestazioni.

    Importante

    Per impostazione predefinita, il mapping dell'autenticazione basata sulle attestazioni utilizza l'indirizzo e-mail dell'account Microsoft dell'utente e l'indirizzo e-mail di lavoro SharePoint locale dell'utente per il mapping. Quando si utilizza il mapping dell'autenticazione basata sui claim, gli indirizzi email dell'utente devono corrispondere nei due sistemi. Per ulteriori informazioni, vedere Selezione di un tipo di mappatura dell'autenticazione basata su attestazioni.

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

Eseguire la procedura guidata Abilita integrazione di SharePoint basata su server

Segui questi passaggi:

  1. Verifica di avere le autorizzazioni appropriate per eseguire la procedura guidata. Altre informazioni in Autorizzazioni richieste.

  2. Vai a Impostazioni>Gestione dei documenti.

  3. Nell'area Gestione dei documenti, fai clic su Abilita integrazione di SharePoint basata su server.

  4. Esamina le informazioni e fai clic su Avanti.

  5. Per i siti di SharePoint, fai clic su Locale e quindi su Avanti.

  6. Immettere l'URL della raccolta siti SharePoint on-premises, ad esempio https://sharepoint.contoso.com/sites/crm. Il sito deve essere configurato per SSL.

  7. Fare clic su Avanti.

  8. La sezione di convalida siti viene visualizzata. Se tutti i siti vengono ritenuti validi, fai clic su Abilita. Se uno o più siti vengono considerati non validi, vai a Risoluzione dei problemi di autenticazione basata sul server.

Selezionare le entità da includere nella gestione dei documenti

Per impostazione predefinita, sono incluse le entità account, articolo, lead, prodotto, offerta e documentazione di vendita. È possibile aggiungere o rimuovere le entità utilizzate per la gestione dei documenti in SharePoint Impostazioni di gestione dei documenti . Vai a Impostazioni>Gestione dei documenti. Per ulteriori informazioni, vedere Abilitare la gestione dei documenti sulle entità.

Aggiungere l'integrazione OneDrive for Business

Una volta completata la configurazione dell'autenticazione basata su server delle app di interazione con i clienti e di SharePoint locale, puoi integrare anche OneDrive for Business. Con l'integrazione delle app di interazione con i clienti e di OneDrive for Business, gli utenti possono creare e gestire documenti privati utilizzando OneDrive for Business. È possibile accedere a tali documenti dopo che l'amministratore di sistema li ha abilitati per Business. OneDrive

Abilita OneDrive for Business

Nel Windows Server in cui è in esecuzione il server SharePoint locale, apri SharePoint Management Shell ed esegui i seguenti comandi:

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

Selezione di un tipo di mapping dell'autenticazione basata sulle attestazioni

Per impostazione predefinita, il mapping dell'autenticazione basata sulle attestazioni utilizza l'indirizzo e-mail dell'account Microsoft dell'utente e l'indirizzo e-mail di lavoro locale dell'utente per il mapping. SharePoint Qualunque sia il tipo di autenticazione basata sui claim utilizzato, i valori, come gli indirizzi email, devono corrispondere tra le app di coinvolgimento dei clienti e SharePoint. Microsoft 365 la sincronizzazione delle directory aiuta a far corrispondere gli indirizzi email. Per ulteriori informazioni, vedere Distribuisci Microsoft 365 Sincronizzazione delle directory in Microsoft Azure. Per utilizzare un diverso tipo di mapping di autenticazione basato su claim, vai a Definisci mapping di claim personalizzato per SharePoint integrazione basata su server.

Importante

Per abilitare la proprietà dell'e-mail di lavoro, SharePoint on-premises deve disporre di un'applicazione del servizio di profilo utente configurata e avviata. Per abilitare un'applicazione del servizio profili utente in SharePoint, andare a Creare, modificare o eliminare applicazioni del servizio profili utente in SharePoint Server 2016. Per apportare modifiche a una proprietà utente, ad esempio l'email di lavoro, vai a Modifica una proprietà del profilo utente. Per ulteriori informazioni sull'applicazione del servizio profili utente, vedere Panoramica dell'applicazione del servizio profili utente in SharePoint Server 2016.