Limiter ou activer l’accès à une application de service dans SharePoint Server

 

**Sapplique à :**SharePoint Foundation 2013, SharePoint Server 2013, SharePoint Server 2016

**Dernière rubrique modifiée :**2018-02-21

Résumé : Découvrez comment restreindre l’accès à une application de service en ajoutant et en supprimant des comptes de service, et rétablir l’accès à une application de service à l’échelle de la batterie de serveurs locale dans SharePoint Server 2016 et SharePoint 2013.

Dans SharePoint Server, vous pouvez restreindre l’accès à une application de service afin qu’elle ne soit disponible que pour des applications web spécifiées.

Par défaut, toutes les applications de service sur la batterie de serveurs locale sont disponibles pour toutes les applications web sur cette même batterie de serveurs. Toutefois, vous pouvez souhaiter restreindre l’accès à une application de service si vous hébergez plusieurs clients sur la même batterie de serveurs et que vous souhaitez isoler les applications de service d’un client de l’application web d’un autre client.

Si vous restreignez l’accès à une application de service et qu’ultérieurement vous décidez de la rendre accessible à la totalité de la batterie de serveurs, vous pouvez supprimer la restriction.

Contenu de cet article :

  • Restreindre l'accès à une application de service

  • Restaurer l'accès à une application de service au niveau de la batterie de serveurs

  • Exemples de code Microsoft PowerShell

Restreindre l’accès à une application de service

Pour restreindre l’accès à une application de service, supprimez les comptes de service de celle-ci. À l’inverse, pour autoriser l’accès à une application de service, ajoutez des comptes de service à celle-ci. Vous pouvez effectuer ces tâches à l’aide de l’Administration centrale ou de PowerShell.

Pour restreindre l’accès à une application de service, vous devez effectuer les tâches suivantes :

  1. Ajoutez un compte de service spécifique à l’application de service.

  2. Supprimez l’ID de la batterie de serveurs locale de l’application de service.

Notes

Les procédures indiquées dans cet article expliquent comment restreindre ou restaurer l’accès à une application de service. Toutefois, vous pouvez suivre les étapes indiquées dans les procédures pour ajouter n’importe quel compte de service à une application de service quelconque ou pour supprimer n’importe quel compte de service de l’application de service de votre choix.
Par exemple, la procédure Pour restaurer l'accès à une application de service à l'échelle de la batterie de serveurs locale à l'aide de l'Administration centrale explique comment ajouter l’ID de la batterie de serveurs locale à une application de service. Toutefois, vous pouvez utiliser la même procédure pour ajouter n’importe quel autre compte de service à une application de service. Pour ce faire, vous fournissez le compte de service approprié au lieu de l’ID de la batterie de serveurs locale.

Étant donné que l’ID de la batterie de serveurs locale donne accès à l’application de service à l’échelle de la batterie de serveurs locale par défaut, il s’avère redondant d’accorder par ailleurs des autorisations d’application web locales explicites à une application de service, sauf si vous supprimez également l’ID de la batterie de serveurs locale.

Pour accorder des autorisations à une application de service, vous devez récupérer et fournir le compte de service approprié. Dans le cas d’une application web, ce compte est également appelé compte d’identité du pool d’applications.

Après avoir accordé des autorisations à un compte de service et supprimé l’ID de la batterie de serveurs locale d’une application de service, seules les applications web gérées par le compte de service affecté peuvent accéder à l’application de service. Vous pouvez affecter plusieurs applications web (possédant différents comptes de service de gestion) à la même application de service en répétant ces procédures et en ajoutant les différents comptes de service d’application web à l’application de service.

Avertissement

Si vous supprimez l’ID de la batterie de serveurs locale d’une application de service et que vous n’affectez aucun autre compte de service à cette application de service, celle-ci n’est plus accessible à aucune application web.

Dans cette section :

  • Restreindre l'accès à une application de service à l'aide de l'Administration centrale

  • Restreindre l'accès à une application de service à l'aide de Windows PowerShell

Restreindre l’accès à une application de service à l’aide de l’Administration centrale

Pour restreindre l’accès à une application de service à l’aide du le site Web Administration centrale de SharePoint, vous devez effectuer la procédure suivante :

  1. Récupérez le compte de service d’application web.

  2. Ajoutez le compte de service d’application web à l’application de service.

  3. Supprimez l’ID de la batterie de serveurs locale de l’application de service.

Procédures décrites dans cette section :

  • Pour récupérer un compte de service d'application web à l'aide de l'Administration centrale

  • Pour accorder et supprimer, à l'aide de l'Administration centrale, des autorisations pour des comptes de service afin de définir l'accès à une application de service

Pour récupérer un compte de service d’application web à l’aide de Administration centrale

  1. Vérifiez que le compte d’utilisateur qui effectue cette procédure est membre du groupe SharePoint Administrateurs de batterie.

  2. Dans la page d’accueil de l’Administration centrale, dans la section Sécurité, cliquez sur Configurer les comptes de service.

  3. Dans la page Comptes de service, sélectionnez les services et le composant de l’application web dans la première liste déroulante.

    Le compte de service apparaît dans la liste Sélectionnez un compte pour ce composant. Notez le nom du compte de service, car vous l’utiliserez dans la prochaine procédure.

  4. Cliquez sur Annuler pour quitter la page Comptes de service sans apporter de modifications.

Pour accorder et supprimer, à l’aide de Administration centrale, des autorisations pour des comptes de service afin de définir l’accès à une application de service

  1. Vérifiez que le compte d’utilisateur qui effectue cette procédure est membre du groupe SharePoint Administrateurs de batterie.

  2. Dans la page d’accueil de l’Administration centrale, dans la section Gestion des applications, cliquez sur Gérer les applications de service.

  3. Dans la page Gérer les applications de service, cliquez sur la ligne qui contient l’application de service pour laquelle vous souhaitez affecter des autorisations.

    Le ruban devient accessible.

  4. Dans le groupe Partage du ruban, cliquez sur Autorisations.

  5. Dans la boîte de dialogue Autorisations de connexion, tapez le nom de compte de service que vous avez récupéré au cours de la procédure précédente, puis cliquez sur Ajouter.

  6. Vérifiez que le nom de compte de service nouvellement ajouté est sélectionné dans le volet du milieu, puis activez la case à cocher appropriée dans le volet inférieur pour fournir le niveau d’autorisation requis.

  7. Dans le volet du milieu, cliquez sur Batterie de serveurs locale, puis sur Supprimer.

  8. Vérifiez que la page Autorisations de connexion recense uniquement le compte de service qui doit accéder à l’application de service et que le compte de service dispose des autorisations requises sur l’application de service. Cliquez sur OK, pour modifier les autorisations, ou sur Annuler, pour terminer l’opération sans apporter de modifications.

Vous pouvez accorder et supprimer des autorisations pour tout compte de service à l’aide de cette procédure. Pour restaurer l’ID de la batterie de serveurs locale sur l’application de service au moyen de CentralAdmin_2nd, une étape supplémentaire, qui ne s’applique pas aux autres comptes de service, est requise. Pour plus d’informations sur cette opération, reportez-vous à l’article Restauration de l'accès à une application de service au niveau de la batterie de serveurs plus loin dans cet article.

Restreindre l’accès à une application de service à l’aide de Microsoft PowerShell

Toutes les procédures indiquées dans cette section supposent que vous disposez des autorisations appropriées et que vous avez ouvert la fenêtre d’invite de commandes PowerShell, comme indiqué dans la procédure Pour démarrer une procédure Windows PowerShell plus loin dans cette section.

La restriction de l'accès à une application de service à l'aide de PowerShell est plus complexe que l'exécution de la même tâche à l'aide de l'Administration centrale. Dans PowerShell, vous utiliserez certaines procédures pour rassembler et stocker des informations que vous utiliserez dans les procédures ultérieures.

Une fois que vous avez démarré PowerShell, les étapes restantes pour restreindre l’accès à une application de service sont les suivantes :

  1. Récupérez l’ID de la batterie de serveurs locale.

  2. Récupérez le compte de service d’application web.

  3. Créez une entité de sécurité qui contient le compte de service d’application web.

  4. Récupérez l’objet de sécurité de l’application de service.

  5. Ajoutez le compte de service d’application web à l’objet de sécurité de l’application de service.

  6. Supprimez l’ID de la batterie de serveurs locale de l’objet de sécurité de l’application de service.

  7. Affectez l’objet de sécurité mis à jour à l’application de service.

  8. Affichez et révisez les autorisations mises à jour.

Dans cette section :

  • Pour démarrer une session Windows PowerShell

  • Pour récupérer l'ID de la batterie de serveurs locale à l'aide de Windows PowerShell

  • Pour récupérer un compte de service d'application web et créer une entité de sécurité à l'aide de Windows PowerShell

  • Pour récupérer l'objet de sécurité de l'application de service

  • Pour mettre à jour l'objet de sécurité de l'application de service avec les autorisations de votre choix

Pour démarrer une session Microsoft PowerShell

  1. Vérifiez que vous êtes membre :

    • 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 ;

    • du groupe Administrateurs 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

    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.

  2. Démarrez SharePoint Management Shell.

Pour récupérer un compte de service d’application web et créer un principal basé sur des revendications à l’aide de Microsoft PowerShell

  1. Depuis l’invite de commandes PowerShell, tapez la commande suivante pour récupérer le compte de service (c’est-à-dire, le compte d’identité du pool d’applications) d’une application web :

    $webapp = Get-SPWebApplication <http://WebApplication>
    $webApp.ApplicationPool.UserName
    

    <http://WebApplication> est l’URL de l’application web.

    Le nom du compte de service d’application web apparaît au niveau de l’invite de commandes.

  2. Pour créer une entité de sécurité, tapez la commande suivante :

    $principal = New-SPClaimsPrincipal <ServiceAccount> -IdentityType WindowsSamAccountName
    

    <ServiceAccount> est le nom d’utilisateur (au format jane@contoso.com ou contoso\jane) qui a été extrait en exécutant la commande précédente. La variable $principal contiendra la nouvelle entité de revendications.

Pour récupérer l’objet de sécurité de l’application de service

  1. Pour extraire l’objet de sécurité de l’application de service, tapez les commandes suivantes. La variable $security contiendra l’objet de sécurité de l’application de service.

    $spapp = Get-SPServiceApplication -Name "<ServiceApplicationDisplayName>"
    $spguid = $spapp.id
    $security = Get-SPServiceApplicationSecurity $spguid
    

    <ServiceApplicationDisplayName> est le nom d’affichage de l’application de service.

    Important

    Vous devez placer le nom complet entre guillemets et celui-ci doit correspondre exactement au nom complet de l’application de service, y compris en ce qui concerne la casse. Si plusieurs applications de service portent le même nom complet (ce qui n’est pas recommandé), vous pouvez exécuter l’applet de commande Get-SPServiceApplication sans indiquer d’arguments afin d’afficher toutes les applications de service. Vous pouvez ensuite identifier l’application de service directement d’après son GUID. Par exemple :
    Get-SpServiceApplication
    Toutes les applications de service sont répertoriées.
    $spapp = Get-SpserviceApplication -Identity <GUID>
    $spguid = $spapp.id
    <GUID> représente le GUID de l’application de service pour laquelle vous souhaitez mettre à jour les autorisations.

Pour mettre à jour l’objet de sécurité de l’application de service avec les autorisations de votre choix

  1. La première étape de la mise à jour de l’objet de sécurité de l’application de service consiste à ajouter la nouvelle entité de sécurité $principal à l’objet de sécurité de l’application de service $security. Pour ce faire, tapez la commande suivante :

    Grant-SPObjectSecurity $security $principal -Rights "<Rights>"
    

    <Rights> correspond aux autorisations que vous souhaitez accorder. En général, il s’agit de Contrôle total. Les autorisations disponibles peuvent varier selon l’application de service.

    Conseil

    Si vous ne souhaitez pas accorder d’autorisations Contrôle total et que vous ignorez les autorisations qui peuvent être accordées à l’application de service, vous pouvez exécuter les commandes suivantes afin de retourner les chaînes d’autorisations disponibles :
    $rightslist = Get-SPServiceApplicationSecurity $spapp
    $rightslist.NamedAccessRights

  2. Pour supprimer l’ID de la batterie de serveurs locale (stockée dans la variable $farmID) de l’objet de sécurité de l’application de service $security, tapez la commande suivante :

    Revoke-SPObjectSecurity $security $farmID
    
  3. Pour affecter l’objet de sécurité $security mis à jour à l’application de service et vérifier que l’objet de sécurité de l’application de service est correctement mis à jour, tapez les commandes suivantes :

    Set-SPServiceApplicationSecurity $spapp -ObjectSecurity $security (Get-SPServiceApplicationSecurity $spapp).AccessRules
    

Vous pouvez ajouter n’importe quel compte de service à une application de service, ou le supprimer de celle-ci, à l’aide de ces procédures.

Restaurer l’accès à une application de service au niveau de la batterie de serveurs

Vous pouvez restaurer l'accès à une application de service à l'échelle de la batterie de serveurs en ajoutant l'ID de la batterie de serveurs locale à l'application de service. Pour ce faire, vous pouvez utiliser l'Administration centrale ou les commandes PowerShell. Cependant, vous devez utiliser PowerShell pour obtenir l'ID de batterie locale.

Dans cette section :

  • Pour récupérer l'ID de la batterie de serveurs locale à l'aide de Windows PowerShell

  • Pour restaurer l'accès à une application de service à l'échelle de la batterie de serveurs locale à l'aide de l'Administration centrale

  • Pour restaurer l'accès à une application de service à l'échelle de la batterie de serveurs locale à l'aide de Windows Powershell

Pour récupérer l’ID de la batterie de serveurs locale à l’aide de PowerShell

  1. Cette procédure démarre après l’étape 4 de la procédure Pour démarrer une session Windows PowerShell.

  2. La commande suivante récupère l’ID de la batterie de serveurs locale, la stocke dans la variable $farmID et affiche l’ID au niveau de l’invite de commandes :

    $farmID = Get-SPFarm | select id
    

    Si vous souhaitez restaurer l’accès à l’échelle de la batterie de serveurs à l’aide de l’Administration centrale, copiez cette valeur dans le Presse-papiers en vue de l’utiliser dans la procédure suivante.

    Si vous souhaitez restaurer l’accès à l’application de service à l’échelle de la batterie de serveurs au moyen de PowerShell, tapez les commandes supplémentaires suivantes depuis l’invite de commandes PowerShell. Vous utiliserez les informations récupérées dans la procédure suivante.

    $claimProvider = (Get-SPClaimProvider System).ClaimProvider 
    $principal = New-SPClaimsPrincipal -ClaimType "https://schemas.microsoft.com/sharepoint/2009/08/claims/farmid" -ClaimProvider $claimProvider -ClaimValue $farmid
    

Pour restaurer l’accès à une application de service à l’échelle de la batterie de serveurs locale à l’aide de Administration centrale

  1. Effectuez les étapes 1 à 3 de la procédure Pour accorder et supprimer, à l'aide de l'Administration centrale, des autorisations pour des comptes de service afin de définir l'accès à une application de service.

  2. Dans la boîte de dialogue Autorisations de connexion, copiez l’ID de la batterie de serveurs locale que vous avez récupéré au cours de la procédure précédente, puis cliquez sur Ajouter.

  3. Vérifiez que l’ID de la batterie de serveurs locale est sélectionné dans le volet du milieu. Activez la case à cocher Contrôle total dans le volet inférieur.

  4. Cliquez sur OK, pour restaurer l’accès à l’application de service à l’échelle de la batterie de serveurs, ou sur Annuler, pour terminer l’opération sans apporter de modifications.

Pour restaurer l’accès à une application de service à l’échelle de la batterie de serveurs locale à l’aide de Microsoft PowerShell

  1. Cette procédure démarre après l’étape 2 de la procédure Pour récupérer l'ID de la batterie de serveurs locale à l'aide de Windows PowerShell.

  2. Pour définir l’ID de la batterie de serveurs locale récupéré sur l’objet de sécurité de l’application de service $security, tapez les commandes suivantes :

    $spapp = Get-SPServiceApplication -Name "<ServiceApplicationDisplayName>"
    $spguid = $spapp.id
    $security = Get-SPServiceApplicationSecurity $spguid
    Grant-SPObjectSecurity -Identity $security -Principal $Principal -Rights "Full Control"
    Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
    

    <ServiceApplicationDisplayName> est le nom d’affichage de l’application de service.

    Important

    Vous devez placer le nom complet entre guillemets et celui-ci doit correspondre exactement au nom complet de l’application de service, y compris en ce qui concerne la casse. Si plusieurs applications de service portent le même nom complet (ce qui n’est pas recommandé), vous pouvez exécuter l’applet de commande Get-SPServiceApplication sans indiquer d’arguments afin d’afficher toutes les applications de service. Vous pouvez ensuite identifier l’application de service directement d’après son GUID.

Exemples de code Microsoft PowerShell

Dans l’exemple suivant, l’administrateur souhaite limiter l’accès à l’application de service « Contoso BDC » à l’application web http://contoso/hawaii, qui est gérée par le compte de service « contoso\jane ». Le fait d’ajouter « contoso\jane » et de supprimer le compte de service de la batterie de serveurs locale de l’application de service permet de limiter « Contoso BDC » aux applications web gérées par le compte de service « contoso\jane », en l’occurrence, à http://contoso/hawaii.

$farmid = Get-SPFarm | select id
$claimProvider = (Get-SPClaimProvider System).ClaimProvider 
$farmappId = New-SPClaimsPrincipal -ClaimType "https://schemas.microsoft.com/sharepoint/2009/08/claims/farmid" -ClaimProvider $claimProvider -ClaimValue $farmid 
webapp = get-spwebapplication http://contoso
$webapp.applicationpool
$principal = New-SPClaimsPrincipal contoso/jane -IdentityType WindowsSamAccountName
$spapp = Get-SPServiceApplication -Name "Contoso BDC"
$spguid = $spapp.id
$security = Get-SPServiceApplicationSecurity $spguid
Grant-SPObjectSecurity $security $principal -Rights "Full Control"
Revoke-SPObjectSecurity $security $farmappId
Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
(Get-SPServiceApplicationSecurity $spguid).AccessRules

Dans l’exemple suivant, l’accès à l’application de service « Contoso BDC » est restauré pour toutes les applications web dans la batterie de serveurs locale.

$farmid = Get-SPFarm | select id
$claimProvider = (Get-SPClaimProvider System).ClaimProvider 
$farmappId = New-SPClaimsPrincipal -ClaimType "https://schemas.microsoft.com/sharepoint/2009/08/claims/farmid" -ClaimProvider $claimProvider -ClaimValue $farmid 
$spapp = Get-SPServiceApplication -Name "Contoso BDC"
$spguid = $spapp.id
$security = Get-SPServiceApplicationSecurity $spguid
Grant-SPObjectSecurity -Identity $security -Principal $farmappId -Rights "Full Control"
Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
(Get-SPServiceApplicationSecurity $spguid).AccessRules

See also

Ajouter ou supprimer des connexions d’application de service à une application web dans SharePoint Server
Autorisations de compte et paramètres de sécurité dans SharePoint Server 2016

Créer une application web dans SharePoint 2013
Get-SPWebApplication
New-SPClaimsPrincipal
Get-SPServiceApplication
Get-SPServiceApplicationSecurity
Grant-SPObjectSecurity
Revoke-SPObjectSecurity
Set-SPServiceApplicationSecurity
Get-SPFarm
Get-SPClaimProvider