Restreindre ou autoriser l’accès à une application de service (SharePoint Server 2010)

 

S’applique à : SharePoint Foundation 2010, SharePoint Server 2010

Dernière rubrique modifiée : 2016-11-30

Dans Microsoft SharePoint Server 2010, 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 restreindre l’accès à une application de service afin qu’elle ne soit disponible que pour des applications Web spécifiées. Cela peut constituer une stratégie utile 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.

Cet article explique comment restreindre l’accès à une application de service en ajoutant et en supprimant des comptes de service. En outre, il explique comment rétablir l’accès à une application de service à l’échelle de la batterie de serveurs locale.

Important

Il est vivement recommandé de planifier la sécurité et l’infrastructure des services avant de restreindre l’accès à des applications de service.

Pour plus d’informations sur la planification de l’architecture des services dans SharePoint Server 2010, voir les articles suivants :

Dans cet article :

Restriction de l’accès à une application de service

Vous pouvez restreindre l’accès à une application de service en supprimant des comptes de service de celle-ci. À l’inverse, vous pouvez autoriser l’accès à une application de service en ajoutant des comptes de service à celle-ci. Vous pouvez effectuer ces tâches à l’aide de l’Administration centrale ou de Windows PowerShell 2,0.

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 de l’Administration centrale, 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 l’Administration centrale

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

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

  3. Dans la page Comptes de service, sélectionnez le nom 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 l’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. Sur la page d’accueil 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. Sur le 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 n’importe quel compte de service à l’aide de cette procédure.

Notes

La restauration de l’ID de la batterie de serveurs locale sur l’application de service au moyen de l’Administration centrale requiert une étape supplémentaire qui ne s’applique pas aux autres comptes de service. Pour plus d’informations sur cette opération, voir Restauration de l'accès à une application de service au niveau de la batterie de serveurs plus loin dans cet article.

Restriction de l’accès à une application de service à l’aide de Windows 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 Windows PowerShell 2,0, comme indiqué dans la procédure Pour initier une session Windows PowerShell plus loin dans cette section.

La restriction de l’accès à une application de service à l’aide de Windows PowerShell 2,0 est plus complexe qu’au moyen de l’Administration centrale. Dans Windows PowerShell 2,0, vous utiliserez certaines procédures pour rassembler et stocker des informations que vous indiquerez au cours des procédures ultérieures.

Une fois que vous avez démarré Windows PowerShell 2,0, 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 initier 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 initier une session Windows PowerShell

  1. Vérifiez que la configuration minimale requise suivante est satisfaite : vous êtes membre du rôle SharePoint_Shell_Access sur la base de données de configuration et du groupe local WSS_ADMIN_WPG sur l’ordinateur où SharePoint Server 2010 est installé.

  2. Dans le menu Démarrer, cliquez sur Tous les programmes.

  3. Cliquez sur Produits Microsoft SharePoint 2010.

  4. Cliquez sur SharePoint 2010 Management Shell.

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

  1. Depuis l’invite de commandes Windows PowerShell 2,0, 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> représente 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 uneentité de sécurité, tapez la commande suivante :

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

    <ServiceAccount> représente le nom d’utilisateur (sous la forme jeanne@contoso.com ou contoso\jeanne) que vous avez récupéré en exécutant la commande précédente. La variable $principal contiendra la nouvelle entité de sécurité.

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

  1. Pour récupérer 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
    

    Où *<ServiceApplicationDisplayName>*représente le nom complet 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 exactement 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> représente les autorisations à accorder. En règle générale, il s’agit de Contrôle total. Les autorisations disponibles peuvent varier d’une application de service à l’autre.

    Conseil

    Si vous ne souhaitez pas accorder les autorisations Contrôle total et que vous ne savez pas quelles sont les autorisations que vous pouvez accorder à l’application de service, vous pouvez exécuter les commandes suivantes pour retourner les chaînes des 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 à l’échelle 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 des commandes Windows PowerShell 2,0. Toutefois, vous devez utiliser Windows PowerShell 2,0 pour obtenir l’ID de la batterie de serveurs 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 Windows PowerShell

  1. Cette procédure démarre après l’étape 4 de la procédure Pour initier 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 Windows PowerShell 2,0, tapez les commandes supplémentaires suivantes depuis l’invite de commandes Windows PowerShell 2,0. 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 l’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 Windows 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 $farmID -Rights "Full Control"
    Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
    

    Où *<ServiceApplicationDisplayName>*représente le nom complet 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 exactement 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 Windows 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 
$principal = 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 $farmaccount
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 
$principal = 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 $farmaccount -Rights "Full Control"
Set-SPServiceApplicationSecurity $spguid -ObjectSecurity $security
(Get-SPServiceApplicationSecurity $spguid).AccessRules

See Also

Reference

Get-SPWebApplication
New-SPClaimsPrincipal
Get-SPServiceApplication
Get-SPServiceApplicationSecurity
Grant-SPObjectSecurity
Revoke-SPObjectSecurity
Set-SPServiceApplicationSecurity
Get-SPFarm
Get-SPClaimProvider

Concepts

Configurer l’authentification par revendications (SharePoint Server 2010)
Ajouter ou supprimer une connexion d’application de service à une application Web (SharePoint Server 2010)

Other Resources

Ajouter ou supprimer une connexion d’application de service à une application Web (SharePoint Foundation 2010)