Partager via


Configurer l’authentification basée sur un serveur avec SharePoint on-premises

L’intégration de SharePoint basée sur un serveur pour la gestion de documents peut être utilisée pour connecter des applications d’engagement client (Dynamics 365 Sales, Dynamics 365 Customer Service, Dynamics 365 Field Service, Dynamics 365 Marketing et Dynamics 365 Project Service Automation), avec SharePoint local. Lorsque vous utilisez l’authentification basée sur serveur, les services de domaine Microsoft Entra jouent le rôle de courtier et les utilisateurs n’ont pas besoin de se connecter à SharePoint.

Autorisations requises

Les adhésions et privilèges suivants sont requis pour activer la gestion de documents SharePoint.

  • Adhésion d’administrateur général Microsoft 365 – ceci est obligatoire pour :

    • Accès de niveau administratif à l’abonnement Microsoft 365.
    • Exécution de l’Assistant Activer l’authentification basée sur un serveur.
    • Exécution des applets de commande AzurePowerShell.
  • Power Apps Le privilège Exécuter l’assistant d’intégration SharePoint autorise l’assistant Activer l’authentification basée sur le serveur.

    Par défaut, l’administrateur système possède ce privilège.

  • Pour l’intégration locale de SharePoint, l’ppartenance au groupe Administrateurs de batterie SharePoint est requise pour exécuter la plupart des commandes Windows PowerShell sur le serveur SharePoint.

Configurer l’authentification entre serveurs avec SharePoint on-premises

Suivez les étapes dans l’ordre indiqué pour configurer les applications d’engagement client avec SharePoint 2016 en local.

Important

La procédure décrite ici doit être exécutée dans l’ordre indiqué. Si une tâche n’est pas terminée, comme une commande PowerShell qui renvoie un message d’erreur, le problème doit être résolu avant de passer à la commande, à la tâche ou à l’étape suivante.

Vérification des conditions préalables requises

Avant de configurer les applications d’engagement client et SharePoint en local pour l’authentification basée sur serveur, la configuration requise suivante doit être satisfaite :

Conditions préalables SharePoint

Autres conditions préalables

  • Licence SharePoint Online. L’authentification basée sur serveur des applications d’engagement client à SharePoint local doit avoir le nom de principal du service (SPN) SharePoint enregistré dans Microsoft Entra ID. Pour ce faire, au moins une licence utilisateur SharePoint Online est requise. La licence SharePoint Online peut dériver d’une seule licence utilisateur et provient généralement de l’un des éléments suivants :

    • Un abonnement SharePoint Online. Tout plan SharePoint Online est suffisant même si la licence n’est pas affectée à un utilisateur.

    • Un abonnement Microsoft 365 incluant SharePoint Online. Par exemple, si Microsoft 365 E3 est installé, vous disposez de la licence appropriée même si elle n’est pas affectée à un utilisateur.

      Pour plus d’informations sur ces plans, accédez à Trouvez la bonne solution pour vous et Comparer les options SharePoint.

  • Les fonctionnalités logicielles suivantes sont nécessaires pour exécuter les applets de commande PowerShell décrites dans cet article.

    Microsoft.Graph

    Pour installer le module Microsoft.Graph, entrez la commande suivante à partir d’une session PowerShell administrateur.

    $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
    
  • Type approprié de mappage de l’authentification basée sur les revendications à utiliser pour mapper les identités entre les applications d’engagement client et SharePoint local. Par défaut, l’adresse de messagerie est utilisée. Pour en savoir plus, consultez la rubrique Autoriser les applications d’engagement client à accéder à SharePoint et à configurer le mappage de l’authentification basée sur les revendications.

Mettre à jour SharePoint Server SPN dans les services du domaine Microsoft Entra

Sur le serveur SharePoint local, dans le SharePoint 2016 Management Shell, exécutez les commandes PowerShell dans l’ordre indiqué.

  1. Connectez-vous à Microsoft 365.

    Lorsque vous exécutez la commande Connect-MgGraph, vous devez entrer un compte Microsoft valide ayant l’appartenance Administrateur global pour la licence SharePoint Online demandée.

    Pour plus d’informations sur chacune des commandes Microsoft Entra ID PowerShell répertoriées ici, accédez à Gestion de Microsoft Entra à l’aide de Windows PowerShell.

    Connect-MgGraph -Scopes "Directory.ReadWrite.All", "Application.ReadWrite.All"  
    
  2. Définissez l’URL de l’hôte SharePoint.

    La valeur que vous définissez pour la variable HostNameUrl doit être l’URL d’hôte complet de la collection de sites SharePoint. Le nom d’hôte doit être dérivé de l’URL de la collection de sites et est sensible à la casse. Dans cet exemple, l’URL de la collection de sites est https://SharePoint.constoso.com/sites/salesteam, donc le nom d’hôte est le suivant : https://SharePoint.contoso.com.

    Important

    S’il existe plusieurs sites, exécutez la commande suivante pour chaque 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. Procurez-vous l’ID d’objet Microsoft 365 (client) et le nom de principal de service (SPN) du serveur SharePoint.

    # 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. Procurez-vous l’ID d’objet Microsoft 365 (client) et le nom de principal de service (SPN) du serveur SharePoint.

    $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
            }
        }
    }
    

Une fois ces commandes achevées, ne fermez pas SharePoint 2016 Management Shell. Passez à l’étape suivante.

Mise à jour du domaine SharePoint pour qu’il corresponde à celui de SharePoint Online

Sur le serveur SharePoint local, dans le SharePoint 2016 Management Shell, exécutez cette commande Windows PowerShell.

La commande suivante nécessite l’appartenance administrateur de batterie SharePoint et définit le domaine d’authentification de SharePoint sur la batterie locale.

Avertissement

L’exécution de cette commande modifie le domaine d’authentification de la batterie SharePoint locale. Pour les applications qui utilisent un service d’émission de jeton de sécurité (STS) existant, cette commande peut entraîner un comportement inattendu avec d’autres applications qui utilisent les jetons d’accès. Pour plus d’informations, voir 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

Créer un émetteur de jeton de sécurité de confiance pour Microsoft Entra ID sur SharePoint

Sur le serveur SharePoint local, dans le SharePoint 2016 Management Shell, exécutez les commandes PowerShell dans l’ordre indiqué.

Les commandes suivantes requièrent l’appartenance administrateur de batterie SharePoint .

Pour plus d’informations sur ces commandes PowerShell, accédez à SharePoint 2016 : Liste des applets de commande PowerShell.

  1. Activez la session PowerShell pour modifier le service d’émission de jeton de sécurité pour la batterie SharePoint.

    $c = Get-SPSecurityTokenServiceConfig  
    $c.AllowMetadataOverHttp = $true  
    $c.AllowOAuthOverHttp= $true  
    $c.Update()  
    
  2. Définissez le point de terminaison des métadonnées.

    $metadataEndpoint = 
        "https://login.microsoftonline.com/common/.well-known/openid-configuration"  
    $oboissuer = "https://sts.windows.net/*/" 
    $issuer = "00000007-0000-0000-c000-000000000000@" + $SPOContextId  
    
  3. Créez le nouveau proxy d’application du service de contrôle de jeton dans 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
    }
    

Autoriser les applications d’engagement client à accéder à SharePoint et à configurer le mappage de l’authentification basée sur les revendications

Sur le serveur SharePoint local, dans le SharePoint 2016 Management Shell, exécutez les commandes PowerShell dans l’ordre indiqué.

Les commandes suivantes requièrent l’appartenance Administrateur de collection de sites SharePoint.

  1. Enregistrez les applications d’engagement client avec la collection de sites SharePoint.

    Entrez l’URL de la collection de sites SharePoint en local. Dans cet exemple, <https://sharepoint.contoso.com/sites/crm/> est utilisé.

    $site = Get-SPSite "https://sharepoint.contoso.com/sites/crm/"
    $Params = @{
        site = $site.RootWeb
        NameIdentifier = $issuer
        DisplayName = "crmobo"
    }
    Register-SPAppPrincipal @Params
    
  2. Accordez aux applications d’engagement client l’accès au site SharePoint. Remplacez <https://sharepoint.contoso.com/sites/crm/> par votre URL de site SharePoint.

    Nonte

    Dans l’exemple ci-dessous, l’application d’engagement client est autorisée à accéder à la collection de sites SharePoint spécifiée à l’aide du paramètre de collection de sites Étendue. Le paramètre Étendue accepte les options suivantes. Choisissez l’étendue la plus appropriée pour votre configuration SharePoint.

    • site. Autorise les applications d’engagement client à accéder uniquement au site web SharePoint spécifié. Il n’autorise pas l’accès aux sous-sites du site nommé.
      • sitecollection. Autorise les applications d’engagement client à accéder à tous les sites web et sous-sites de la collection de sites SharePoint spécifiée.
      • sitesubscription. Autorise les applications d’engagement client à accéder à tous les sites web de la batterie SharePoint, notamment l’ensemble des collections de sites, sites web et sous-sites.

    Important

    S’il existe plusieurs sites, exécutez le script pour chaque 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. Définissez le type de mappage de l’authentification basée sur les revendications

    Important

    Par défaut, le mappage de l’authentification basée sur les revendications utilise l’adresse de messagerie du compte Microsoft de l’utilisateur et l’adresse locale de messagerie professionnelle SharePoint de l’utilisateur pour le mappage. Lorsque vous utilisez le mappage d’authentification basé sur les revendications, les adresses e-mail de l’utilisateur doivent correspondre entre les deux systèmes. Pour plus d’informations, voir Sélection d’un type de mappage de l’authentification basée sur les revendications.

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

Exécuter l’assistant Activer l’intégration SharePoint basée sur un serveur

Procédez comme suit :

  1. Vérifiez que vous disposez de l’autorisation appropriée pour exécuter l’Assistant. Pour en savoir plus, consultez Autorisations requises.

  2. Accédez à Paramètres>Gestion des documents.

  3. Dans la zone Gestion des documents, cliquez sur Activer l’intégration SharePoint basée sur un serveur.

  4. Consultez les informations, puis cliquez sur Suivant.

  5. Pour les sites SharePoint, cliquez sur Local, puis sur Suivant.

  6. Entrez l’URL de la collection de sites SharePoint en local, sous la forme https://sharepoint.contoso.com/sites/crm, par exemple. Le site doit être configuré pour SSL.

  7. Cliquez sur Suivant.

  8. La section de validation des sites apparaît. Si tous les sites sont déterminés valides, cliquez sur Activer. Si un ou plusieurs sites sont déterminés non valides, accédez à Dépannage de l’authentification basée sur serveur.

Sélectionnez les entités à inclure dans la gestion des documents

Par défaut, les entités Compte, Article, Prospect, Produit, Devis Documentation commerciale sont incluses. Vous pouvez ajouter ou supprimer les entités qui seront utilisées pour la gestion de documents avec SharePoint dans Paramètres de gestion des documents. Accédez à Paramètres>Gestion des documents. Pour plus d’informations, voir Activer la gestion des documents sur des entités.

Ajout de l’intégration de OneDrive Entreprise

Une fois que vous avez effectué la configuration de l’authentification basée sur serveur pour les applications d’engagement client et SharePoint local, vous pouvez également intégrer OneDrive Entreprise. Avec l’intégration des applications d’engagement client et de OneDrive Entreprise, les utilisateurs peuvent créer et gérer des documents privés avec OneDrive Entreprise. Ces documents sont accessibles dès que l’administrateur système active OneDrive Entreprise.

Activer OneDrive Entreprise

Sur Windows Server où SharePoint Server local s’exécute, ouvrez le SharePoint Management Shell et exécutez les commandes suivantes :

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

Sélection d’un type de mappage de l’authentification basée sur les revendications

Par défaut, le mappage de l’authentification basée sur les revendications utilise l’adresse de messagerie du compte Microsoft de l’utilisateur et l’adresse locale de messagerie professionnelle SharePoint de l’utilisateur pour le mappage. Notez que, quel que soit le type d’authentification basée sur les revendications que vous utilisez, les valeurs telles que les adresses de messagerie, doivent être identiques entre les applications d’engagement client et SharePoint. La synchronisation d’annuaires Microsoft 365 permet de faire correspondre les adresses de messagerie électronique. Pour en savoir plus, consultez Déploiement de la synchronisation d’annuaires Microsoft 365 dans Microsoft Azure. Pour utiliser un autre type de mappage d’authentification basée sur les revendications, voir Définition d’un mappage de revendication personnalisé pour l’intégration basée sur SharePoint.

Important

Pour activer la propriété de messagerie de travail, le SharePoint local doit avoir une application de service Profil utilisateur configurée et démarrée. Pour activer une application de service Profil utilisateur dans SharePoint, voir Création, modification ou suppression d’applications de service Profil utilisateur dans SharePoint Server 2016. Pour apporter des modifications à une propriété d’utilisateur, comme la messagerie de travail, voir Modification d’une propriété de profil utilisateur. Pour plus d’informations sur l’application de service Profil utilisateur, voir Vue d’ensemble de l’application de service Profil utilisateur dans SharePoint Server 2016.