Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Privilèges élevés dans les compléments SharePoint

Utilisez le complément-seuls les comptes stratégie ou le service à élever les privilèges dans Compléments.

Dernière modification :samedi 15 août 2015

S’applique à :SharePoint 2013 | SharePoint Add-ins | SharePoint Online

Note Remarque

Le nom « Applications pour SharePoint » est remplacé par « Compléments SharePoint ». Lors de la période de transition, il se peut que la documentation et l’interface utilisateur de certains produits SharePoint et outils Visual Studio utilisent toujours le terme « applications pour SharePoint ». Pour plus d’informations, voir Nouveau nom des applications pour Office et SharePoint.

Différentes méthodes sont utilisés pour élever les privilèges dans les solutions de batterie et Compléments. Solutions de batterie élever les privilèges à l'aide de RunWithElevatedPrivileges(SPSecurity.CodeToRunElevated), qui appartient au modèle objet côté serveur SharePoint. Compléments utiliser le application-seuls les comptes de service ou de la stratégie.

Vous voudrez peut-être utiliser des privilèges élevés dans votre complément quand :

  • Votre complément effectue les actions pour les utilisateurs que les utilisateurs ne disposent des autorisations individuelles adéquates pour effectuer. Les administrateurs peuvent affecter pas des utilisateurs certaines autorisations, car le niveau d'autorisation est trop élevé.

    Votre organisation peut, par exemple, implémenter une collection de sites personnalisée mise en service de la solution que les utilisateurs doivent utiliser pour créer des collections de sites. Votre organisation peut spécifier que toutes les nouvelles collections de sites doivent avoir certaines listes, les types de contenu ou les champs leur sont associées. Si les utilisateurs créent des collections de sites sur leur propre, ils peuvent ou ne peuvent pas n'oubliez pas de créer ces objets sur leur nouvelle collection de sites. Dans ce scénario, les utilisateurs créer des collections de sites à l'aide de l' complément, mais les utilisateurs ne sont pas affectées individuellement des autorisations pour créer des collections de sites.

  • Votre complément n'agit au nom de n'importe quel utilisateur ; par exemple, la gouvernance ou gestion des processus.

Contribuer à ce contenu

Vous pouvez obtenir les dernières mises à jour ou contribuer à cet article sur Github. Vous pouvez également contribuer à cet article et d’autres exemples sur GitHub. Pour obtenir la liste complète des exemples, consultez le Centre des développeurs des pratiques et modèles. Nous accueillons avec plaisir vos contributions.

Ajoutez dans-stratégie uniquement utilise OAuth pour authentifier votrecomplément. Lorsque votre complément utilise le complément-only stratégie, SharePoint vérifie les autorisations de l' complément principal uniquement. Ce sont les autorisations qui ont été accordées à l' complément. Autorisation réussit si le complément dispose d'autorisations suffisantes pour effectuer la tâche, indépendamment des autorisations associées à l'utilisateur actuel. Lors de l'autorisation aboutit, un jeton d'accès est renvoyé à votre complément. Votre complément utilisera ce jeton d'accès pour effectuer des opérations requises par votre code.

Pour plus d'informations, consultez la rubrique Add-in types de stratégie d'autorisation dans SharePoint 2013.

Remarque Remarque

Le complément-une seule stratégie est disponible uniquement pour les hébergé par le fournisseur compléments. SharePoint-hébergées compléments qui accèdent au web hôte doivent utiliser la stratégie decomplément utilisateur +.

Avantages de l'utilisation de la complément-uniquement les stratégies dans votre complément incluent :

  • Il est inutile d'accorder une licence utilisateur. Comptes de service nécessitent une licence utilisateur.

  • Vous obtenez un contrôle plus précis sur les autorisations qu'il n'est disponible avec les comptes de service. Par exemple, vous pouvez appliquer des autorisations contrôle total sur votre site web, qui n'est pas possible lorsque vous utilisez des comptes de service.

Vous ne pouvez pas utiliser le complément-uniquement les stratégies avec les API suivantes :

  • Profil utilisateur

  • Recherche

  • Taxonomie (applicable uniquement aux scénarios qui écrivent dans le service de métadonnées gérées)

Pour utiliser le complément-uniquement la stratégie, vous tout d'abord devez accorder des autorisations à l' complément à l'aide de appinv.aspx. Le code suivant à partir du fichier AppManifest.xml montre comment définir le complément-uniquement les stratégies et les autorisations pour votre complément.

 <AppPermissionRequests AllowAppOnlyPolicy="true">
    <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="FullControl" />
  </AppPermissionRequests>

À l'aide de la complément-uniquement la stratégie nécessite que votre complément utiliser l'autorisation de faible niveau de confiance ou de haut niveau de fiabilité. La stratégie n'est pas disponible avec la bibliothèque inter-domaines JavaScriptSharePoint, qui est une troisième méthode d'obtention d'un accès autorisé aux ressources de SharePoint.

Autorisation de faible niveau de confiance

Votre complément peut utiliser l'autorisation de faible niveau de confiance lors de l'utilisation de la Microsoft Azure Access Control Service (ACS) pour établir une approbation entre votre hébergé par le fournisseur complément et soit votre site de Office 365 ou de votre batterie de serveurs locale SharePoint. Vous en apprendrez plus sur Trois systèmes d’autorisation pour les compléments SharePoint. Pour obtenir une référence à l'objet ClientContext , votre complément doit :

  1. Obtenez l'accès au jeton à l'aide de TokenHelper.GetAppOnlyAccessToken.

  2. Utilisez TokenHelper.GetClientContextWithAccessToken pour obtenir l'objet ClientContext .

RemarqueRemarque

Le fichier TokenHelper est le code source généré par le Outils de développement Microsoft Office pour Visual Studio. Il n'existe aucune documentation de référence pour qu'il, mais il existe des commentaires détaillés dans la classe TokenHelper . Pour afficher les commentaires du code, créez un fournisseur hébergé complément dans Visual Studio.

RemarqueRemarque

Le code dans cet article est fourni tel quel, sans garantie d’aucune sorte, expresse ou implicite, y compris mais sans s’y limiter, aucune garantie implicite d’adéquation à un usage particulier, à une qualité marchande ou une absence de contrefaçon.

Uri siteUrl = new Uri(ConfigurationManager.AppSettings["MySiteUrl"]);
try
{
    // Connect to a site using an add-in-only token.
    string realm = TokenHelper.GetRealmFromTargetUrl(siteUrl);
    var token = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, siteUrl.Authority, realm).AccessToken;

    using (var ctx = TokenHelper.GetClientContextWithAccessToken(siteUrl.ToString(), token))
    {
        // Perform operations on the ClientContext object, which uses the add-in-only token. 
    }
}
catch (Exception ex)
{
    Console.WriteLine("Error in execution: " + ex.Message);
}

Autorisation de niveau de confiance élevé

Si votre complément utilise le système d'autorisation de niveau de confiance élevé (également connu sous le nom S2S protocol), elle appelle une autre méthode de TokenHelper : TokenHelper.GetS2SAccessTokenWithWindowsIdentity.

Remarque importanteImportante

Le TokenHelper.GetS2SAccessTokenWithWindowsIdentity est utilisé pour les deux complément-uniquement et utilisateur + appels complément. Le deuxième paramètre de la méthode, qui conserve l'identité de l'utilisateur, détermine la stratégie qui est utilisé. Transmettez null pour utiliser le complément-stratégie uniquement.

Utiliser des comptes de service à élever les privilèges pour votre complément uniquement lorsque le complément-only stratégie ne fournit pas d'autorisations suffisantes pour effectuer votre tâche. En outre, dans certains scénarios, un compte d'utilisateur est requis. Par exemple, vous devez utiliser les comptes de service quand votre code fonctionne avec toutes les applications de service SharePoint suivantes :

  • Service de profil utilisateur à l'aide du modèle objet côté client (CSOM)

  • Service de métadonnées gérées

  • Recherche

Lorsque vous envisagez d'utiliser des comptes de service dans votre complément, considérez les points suivants :

  • Comptes de service nécessitent une licence utilisateur.

  • Créer soit un compte de service par complément, ou utilisez un compte de service pour tous les compléments dans votre environnement SharePoint.

  • Vous devez fournir le nom d'utilisateur et le mot de passe lors de l'autorisation. Vérifiez les informations d'identification du compte de service sont stockées ou extraite en toute sécurité.

  • Avant que votre complément peut effectuer une action sur un site, les comptes de service tout d'abord doivent avoir l'autorisation d'accéder au site.

Remarque Remarque

compléments acheté à partir de la Office Store ne pouvez pas utiliser les comptes de service.

Le code suivant montre comment s'authentifier en utilisant SharePointOnlineCredentials avec un compte de service.

using (ClientContext context = new ClientContext("https://contoso.sharepoint.com"))
{

    // Use default authentication mode.
    context.AuthenticationMode = ClientAuthenticationMode.Default;  

    // Specify the credentials for the service account.
    context.Credentials = new SharePointOnlineCredentials("User Name", "Password");
}

Afficher: