Configurer l’authentification de serveur à serveur entre les batteries de serveurs de publication et de consommation
S’APPLIQUE À :2013 2016 2019 Édition d’abonnement SharePoint dans Microsoft 365
Lorsqu’une batterie de serveurs consomme l’application de service Profil utilisateur d’une batterie de publication, SharePoint émet des demandes à l’aide de l’authentification de serveur à serveur pour le compte de l’utilisateur pour certaines fonctionnalités :
Suivez un document sur une application web de contenu lorsque le site personnel d’un utilisateur se trouve sur une application web dans une batterie de serveurs externe. L’application web de contenu effectue une requête OAuth à l’application web Mes sites au nom de l’utilisateur.
Créez ou répondez à un billet de flux de site pour un site situé sur une application web de contenu, mais effectué via le flux d’actualités Mon site de l’utilisateur sur l’application web Mes sites. L’application web Mes sites effectue une demande de l’application web de contenu au nom de l’utilisateur pour écrire le billet ou la réponse.
Une tâche d’application de service profil utilisateur pour remplir à nouveau le cache de flux doit lire à partir du site personnel ou du site de contenu. Si l’application de service de profil utilisateur s’exécute dans une autre batterie de serveurs, elle envoie une requête OAuth à l’application web Mes sites ou à l’application web de contenu pour lire les données de flux utilisateur ou de site dans le cache.
Avant de commencer
La procédure décrite dans cet article nécessite que vous ayez déjà configuré les éléments suivants :
- Partage de l’application de service profil utilisateur entre une batterie de serveurs consommatrice et une batterie de serveurs de publication, comme indiqué dans Partager des applications de service entre batteries de serveurs dans SharePoint Server.
- Configuration des applications de service Paramètres d’abonnement et Gestion des applications sur les batteries de serveurs de publication et de consommation, comme indiqué dans la section « Configurer les paramètres d’abonnement et les applications du service de gestion des applications » de cet article
Vérifiez que vous êtes membre :
- du rôle serveur fixe Securityadmin sur l'instance SQL Server.
- du rôle de base de données fixe db_owner sur toutes les bases de données à mettre à jour ;
- Membre du groupe Administrateurs intégré sur le serveur sur lequel vous exécutez les applets de commande PowerShell.
Un administrateur peut utiliser la cmdlet Add-SPShellAdmin pour accorder les autorisations d'utilisation des cmdlets SharePoint Server.
Notes
[!REMARQUE] Si vous ne disposez pas des autorisations, contactez votre administrateur d'installation ou votre administrateur SQL Server afin de les demander. Pour plus d'informations sur les autorisations PowerShell, voir Add-SPShellAdmin.
Configurer l’authentification de serveur à serveur entre la batterie de serveurs de publication et la batterie de serveurs consommatrice
La procédure suivante décrit comment configurer l’authentification de serveur à serveur entre les batteries de serveurs de publication et de consommation, et accorder uniquement les autorisations nécessaires pour permettre aux fonctionnalités de réseaux sociaux de fonctionner. Chaque batterie de serveurs conserve son propre domaine d’authentification unique.
Autoriser la consommation de la batterie de serveurs à envoyer des requêtes OAuth à la batterie de serveurs hébergeant l’application web MySites
Dans un serveur SharePoint de la batterie de serveurs exécutant l’application web MySites (qui n’est peut-être pas la batterie de serveurs de publication), démarrez SharePoint Management Shell et exécutez ce script PowerShell pour inscrire la batterie de serveurs consommatrice en tant qu’émetteur approuvé, obtenir son principal d’application et lui accorder les autorisations requises :
# 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)
Autoriser la publication de la batterie de serveurs pour envoyer des requêtes OAuth à la batterie de serveurs consommatrice
Dans un serveur SharePoint de la batterie de serveurs consommatrices, démarrez SharePoint Management Shell et exécutez ce script PowerShell pour inscrire la batterie de serveurs de publication en tant qu’émetteur approuvé, obtenir son principal d’application et lui accorder les autorisations requises :
# 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)
Voir aussi
Concepts
Partager des applications de service entre plusieurs batteries dans SharePoint Server
Vue d'ensemble de l'authentification pour SharePoint Server
Planifier l'authentification de serveur à serveur dans SharePoint Server