Restreindre ou autoriser l’accès à une application de service (SharePoint Foundation 2010)
S’applique à : SharePoint Foundation 2010
Dernière rubrique modifiée : 2016-11-30
Dans Microsoft SharePoint Foundation 2010, il est possible de restreindre l’accès à une application de service de sorte qu’elle soit accessible uniquement à des applications Web spécifiées.
Par défaut, toutes les applications de service sur la batterie locale sont accessibles à toutes les applications Web sur la batterie locale. Cependant, il est possible de restreindre l’accès à une application de service de sorte qu’elle soit accessible uniquement à des applications Web spécifiées. Cela peut être une stratégie utile si vous hébergez plusieurs clients sur la même batterie et que vous souhaitez isoler les applications de service d’un client de l’application Web d’un autre client.
Si vous limitez l’accès à une application de service et décidez ultérieurement de la mettre à disposition de toute la batterie, vous pouvez supprimer la restriction.
Cet article décrit comment restreindre l’accès à une application de service en ajoutant et en supprimant des comptes de service. Il décrit également comment rétablir l’accès à une application de service à l’échelle de la batterie.
Important
Nous vous recommandons vivement de planifier l’infrastructure de sécurité et de services avant de restreindre l’accès à des applications de service.
Pour plus d’informations sur la façon de planifier l’architecture des services dans SharePoint Foundation 2010, voir les articles suivants :
Dans cet article :
Restriction de l'accès à une application de service
Restauration de l'accès à une application de service à l'échelle de la batterie
Exemples de code Windows PowerShell
Restriction de l’accès à une application de service
Il est possible de restreindre l’accès à une application de service en supprimant des comptes de service de l’application de service. À l’inverse, il est possible d’autoriser l’accès à une application de service en ajoutant des comptes de service à l’application de service. Vous pouvez effectuer ces tâches à l’aide de l’Administration centrale ou à l’aide de Windows PowerShell 2,0.
Pour restreindre l’accès à une application de service, vous devez effectuer les tâches suivantes :
ajouter un compte de service spécifique à l’application de service ;
supprimer l’ID de batterie locale de l’application de service.
Notes
Les procédures fournies dans cet article décrivent comment restreindre ou restaurer l’accès à une application de service. Toutefois, vous pouvez également appliquer ces procédures afin d’ajouter tout compte de service à toute application de service, ou de supprimer tout compte de service de toute application de service
Par exemple, la procédure intitulée Restaurer l'accès à l'échelle de la batterie locale à une application de service à l'aide de l'Administration centrale décrit explicitement comment ajouter l’ID de batterie locale à une application de service. Cependant, vous pouvez appliquer la même procédure pour ajouter tout autre compte de service à une application de service. Pour cela, vous devez spécifier le compte de service approprié au lieu de l’ID de batterie locale.
Étant donné que l’ID de batterie locale procure un accès à l’échelle de la batterie locale à l’application de service par défaut, il est redondant d’accorder également des autorisations explicites à l’application Web locale à une application de service, à moins que vous ne supprimiez également l’ID de batterie locale.
Pour accorder des autorisations à une application de service, vous devez extraire et spécifier le compte de service approprié. Pour une application Web, ce compte porte également le nom de compte d’identité de pool d’applications.
Une fois que vous avez accordé des autorisations à un compte de service et supprimé l’ID de batterie locale d’une application de service, seules les applications Web gérées par le compte de service assigné peuvent accéder à l’application de service. Vous pouvez assigner plusieurs applications Web (qui ont différents comptes de service de gestion) à la même application de service en répétant ces procédures et en ajoutant les divers comptes de service d’application Web à l’application de service.
Avertissement
Si vous supprimez l’ID de batterie locale d’une application de service et que vous n’affectez pas d’autre compte de service à cette application de service, cette dernière devient inaccessible à toutes les applications 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 limiter l’accès à une application de service à partir de l’Administration centrale, vous devez effectuer les étapes suivantes :
extraire le compte de service d’application Web ;
ajouter le compte de service d’application Web à l’application de service ;
supprimer l’ID de batterie locale de l’application de service.
Procédures dans cette section :
Pour extraire un compte de service d'application Web à l'aide de l'Administration centrale
Pour accorder et supprimer des autorisations pour des comptes de service pour l'accès à une application de service à l'aide de l'Administration centrale
Pour extraire un compte de service d’application Web à l’aide de l’Administration centrale
Vérifiez que le compte d’utilisateur qui effectue cette procédure est membre du groupe SharePoint Administrateurs de batterie.
Dans la page d’accueil d’Administration centrale, dans la section Sécurité, cliquez sur Configurer les comptes de service.
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 est affiché dans la liste Sélectionnez un compte pour ce composant. Prenez note du nom du compte de service car vous l’utiliserez dans la procédure suivante.
Cliquez sur Annuler pour quitter la page Comptes de service sans apporter de modification.
Pour accorder et supprimer des autorisations pour des comptes de service pour l’accès à une application de service à l’aide de l’Administration centrale
Vérifiez que le compte d’utilisateur qui effectue cette procédure est membre du groupe SharePoint Administrateurs de batterie.
Dans la page d’accueil d’Administration centrale, dans la section Gestion des applications, cliquez sur Gérer les applications de service.
Dans la page Gérer les applications de service, cliquez sur la ligne qui contient l’application de service pour laquelle vous souhaitez assigner des autorisations. Le Ruban devient disponible.
Sur le ruban, cliquez sur Autorisations.
Dans la boîte de dialogue Autorisations de connexion, tapez le nom du compte de service que vous avez extrait lors de la procédure précédente, puis cliquez sur Ajouter.
Assurez-vous que le nom du compte de service nouvellement ajouté est sélectionné dans le volet du milieu, puis cliquez sur la case à cocher appropriée dans le volet inférieur pour fournir le niveau d’autorisation requis.
Dans le volet du milieu, cliquez sur Batterie locale, puis sur Supprimer.
Vérifiez que la page Autorisations de connexion mentionne maintenant uniquement le compte de service auquel vous souhaitez accorder l’accès à l’application de service, et que le compte de service possède les 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 modification.
Vous pouvez accorder et supprimer des autorisations pour tout compte de service à l’aide de cette procédure.
Notes
La restauration de l’ID de batterie locale à l’application de service à l’aide de l’Administration centrale requiert une étape supplémentaire qui ne s’applique pas aux autres comptes de service. Pour plus d’informations sur la manière de procéder, voir Restauration de l'accès à une application de service à l'échelle de la batterie plus loin dans cet article.
Restriction de l’accès à une application de service à l’aide de Windows PowerShell
Toutes les procédures de 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 décrit dans la procédure Pour initier une session Windows PowerShell plus loin dans cet article.
Le processus de restriction de l’accès à une application de service à l’aide de Windows PowerShell 2,0 est plus complexe qu’à l’aide de l’Administration centrale. Dans Windows PowerShell 2,0, vous utiliserez certaines procédures afin de recueillir et stocker des informations utilisées comme entrées pour des procédures ultérieures.
Après le démarrage de Windows PowerShell 2,0, les étapes permettant de restreindre l’accès à une application de service sont les suivantes :
extraire l’ID de batterie locale ;
extraire le compte de service d’application Web ;
créer une nouvelle entité de revendications qui contient le compte de service d’application Web ;
extraire l’objet de sécurité de l’application de service ;
ajouter le compte de service d’application Web à l’objet de sécurité de l’application de service ;
supprimer l’ID de batterie locale de l’objet de sécurité de l’application de service ;
assigner l’objet de sécurité mis à jour à l’application de service ;
afficher et examiner les autorisations mises à jour.
Dans cette section :
Pour initier une session Windows PowerShell
Pour extraire l'ID de batterie locale à l'aide de Windows PowerShell
Pour extraire un compte de service d'application Web et créer une entité de revendications à l'aide de Windows PowerShell
Pour extraire 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 préférées
Pour initier une session Windows PowerShell
Vérifiez que les conditions préalables suivantes sont remplies : vous êtes membre du rôle SharePoint_Shell_Access sur la base de données de configuration et membre du groupe local WSS_ADMIN_WPG sur l’ordinateur où les SharePoint Foundation 2010 sont installés.
Dans le menu Démarrer, cliquez sur Tous les programmes.
Cliquez sur Produits Microsoft SharePoint 2010.
Cliquez sur SharePoint 2010 Management Shell.
Pour extraire un compte de service d’application Web et créer une entité de revendications à l’aide de Windows PowerShell
À l’invite de commandes Windows PowerShell 2,0, tapez la commande suivante pour extraire le compte de service (autrement dit, le compte d’identité de pool d’applications) d’une application Web :
$webapp = Get-SPWebApplication <http://WebApplication> $webApp.ApplicationPool.UserName
Où <http://WebApplication> est l’URL de l’application Web.
Le nom du compte de service d’application Web s’affiche à l’invite de commandes.
Pour créer une entité de revendications, tapez la commande suivante :
$principal = New-SPClaimsPrincipal <ServiceAccount> -IdentityType WindowsSamAccountName
Où <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 extraire l’objet de sécurité de l’application de service
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
Où <ServiceApplicationDisplayName> est le nom d’affichage de l’application de service.
Important
Vous devez placer le nom d’affichage entre guillemets et il doit correspondre exactement au nom d’affichage de l’application de service (avec respect de la casse). Si plusieurs applications de service ont exactement le même nom d’affichage (ce qui est déconseillé), vous pouvez exécuter l’applet de commande Get-SPServiceApplication sans argument pour 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
Où <GUID> est 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 préférées
La première étape dans la mise à jour de l’objet de sécurité de l’application de service consiste à ajouter la nouvelle entité de revendications $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>"
Où <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
Pour supprimer l’ID de batterie locale (qui est stocké dans la variable $farmID) de l’objet de sécurité de l’application de service $security, tapez la commande suivante :
Revoke-SPObjectSecurity $security $farmID
Pour assigner l’objet de sécurité $security mis à jour à l’application de service et confirmer que l’objet de sécurité pour l’application de service est mis à jour correctement, tapez les commandes suivantes :
Set-SPServiceApplicationSecurity $spapp -ObjectSecurity $security (Get-SPServiceApplicationSecurity $spapp).AccessRules
Vous pouvez ajouter ou supprimer tout compte de service à une application de service à l’aide de ces procédures.
Restaurer l’accès à l’échelle de la batterie à une application de service
Vous pouvez restaurer l’accès à l’échelle de la batterie à une application de service en ajoutant l’ID de batterie locale à l’application de service. Cette opération peut s’effectuer à l’aide de l’Administration centrale ou de commandes Windows PowerShell 2,0. Toutefois, vous devez utiliser Windows PowerShell 2,0 pour obtenir l’ID de batterie locale.
Dans cette section :
Pour extraire l'ID de batterie locale à l'aide de Windows Powershell
Pour restaurer l'accès à l'échelle de la batterie locale à une application de service à l'aide de l'Administration centrale
Pour restaurer l'accès à l'échelle de la batterie locale à une application de service à l'aide de Windows Powershell
Pour extraire l’ID de batterie locale à l’aide de Windows PowerShell
Cette procédure débute après l’étape 4 de la procédure Pour initier une session Windows PowerShell.
La commande suivante extrait l’ID de batterie locale, le stocke dans la variable $farmID et l’affiche à l’invite de commandes :
$farmID = Get-SPFarm | select id
Si vous souhaitez restaurer l’accès à l’échelle de la batterie à l’aide de l’Administration centrale, copiez cette valeur dans le Presse-papiers afin de l’utiliser dans la procédure suivante.
Si vous souhaitez restaurer l’accès à l’échelle de la batterie à l’application de service à l’aide de Windows PowerShell 2,0, tapez les commandes supplémentaires suivantes à l’invite de commandes Windows PowerShell 2,0. Vous utiliserez les informations extraites 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 à l’échelle de la batterie locale à une application de service à l’aide de l’Administration centrale
Effectuez les étapes 1 à 3 de la procédure Pour accorder et supprimer des autorisations pour des comptes de service pour l'accès à une application de service à l'aide de l'Administration centrale.
Dans la boîte de dialogue Autorisations de connexion, copiez l’ID de batterie locale que vous avez extrait lors de la procédure précédente, puis cliquez sur Ajouter.
Assurez-vous que l’ID de batterie locale est sélectionné dans le volet du milieu. Cliquez sur la case à cocher Contrôle total dans le volet inférieur.
Cliquez sur OK pour restaurer l’accès à l’échelle de la batterie à l’application de service ou sur Annuler pour terminer l’opération sans apporter de modification.
Pour restaurer l’accès à l’échelle de la batterie locale à une application de service à l’aide de Windows PowerShell
Cette procédure débute après l’étape 2 de la procédure Pour extraire l'ID de batterie locale à l'aide de Windows PowerShell.
Pour restaurer l’ID de batterie locale extrait dans l’objet de sécurité d’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> est le nom d’affichage de l’application de service.
Important
Vous devez placer le nom d’affichage entre guillemets, lequel doit correspondre exactement au nom d’affichage de l’application de service (avec respect de la casse). Si plusieurs applications de service ont exactement le même nom d’affichage (ce qui est déconseillé), vous pouvez exécuter l’applet de commande Get-SPServiceApplication sans argument pour 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 restreindre 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 ». En ajoutant « contoso\jane » et en supprimant le compte de service de batterie locale de l’application de service, vous faites en sorte que « Contoso BDC » soit restreinte aux seules applications Web qui sont gérées par le compte de service «contoso\jane », à savoir dans le cas présent 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é à toutes les applications Web dans la batterie 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 Foundation 2010)
Ajouter ou supprimer une connexion d’application de service à une application Web (SharePoint Foundation 2010)