Partager via


Travaux du minuteur à distance dans le modèle de complément SharePoint

L’approche que vous adoptez pour implémenter des travaux du minuteur est différente dans le nouveau modèle de complément SharePoint et avec le code de confiance totale. Dans un scénario de code de confiance totale/solution de batterie de serveurs classique, les travaux du minuteur SharePoint étaient créés avec le code du modèle objet côté serveur SharePoint, déployés via les solutions de batterie de serveurs et gérés dans le site web Administration centrale de SharePoint. SharePoint gère la planification et l’exécution du travail du minuteur dans ce scénario.

Dans le scénario de modèle de complément SharePoint, les travaux du minuteur sont créés et planifiés en dehors de SharePoint. SharePoint n’est pas responsable de la planification ou de l’exécution du travail du minuteur dans ce scénario.

Conseils généraux

En règle générale, nous offrons les conseils généraux suivants pour la création de travaux du minuteur.

  • Les travaux du minuteur doivent être implémentés en dehors de SharePoint.
  • Les travaux du minuteur doivent être planifiés en dehors de SharePoint.
  • Les travaux du minuteur doivent s’authentifier via un compte de service ou OAuth.

Défis lors de la création de travaux du minuteur

Le défi principal associé à la création de travaux du minuteur dans les locations Office 365 vient du fait que vous ne pouvez pas déployer des solutions de batterie dans une location Office 365. Sans une solution de batterie de serveurs, vous ne pouvez pas déployer un travail du minuteur SharePoint.

La nouvelle façon de créer un travail du minuteur consiste à en créer un en dehors de SharePoint et de gérer également la planification en dehors de SharePoint. Tenez compte des facteurs suivants associés aux travaux du minuteur SharePoint pour un environnement SharePoint local.

  • SharePoint est fourni avec des centaines de travaux du minuteur prêts à l’emploi que le planificateur SharePoint s’efforce de suivre. Vous pouvez réduire la quantité de mémoire et la puissance du processeur requis sur votre serveur SharePoint en déplaçant le code d’implémentation vers Azure ou un autre environnement.
  • Déplacer la planification et le code d’implémentation associés aux tâches du minuteur vers un autre serveur améliore l’évolutivité et la stabilité de votre serveur SharePoint.

Options relatives à la planification des travaux du minuteur

Vous disposez de deux options pour implémenter la planification d’un travail du minuteur.

  • Planificateur Windows
    • Service Windows
  • Tâche web Azure WebJob
    • Processus de travail de messagerie Azure

Planificateur Windows

Dans ce modèle, le Scheduler gère la planification d’un travail du minuteur. Le code d’implémentation peut être une application console, un script PowerShell ou n’importe quel code que le Scheduler peut appeler.

Option De sous-service Windows

Un service Windows a les mêmes caractéristiques que le planificateur Windows. Microsoft ne recommande pas ce modèle, mais il est bon de le mentionner, car il est couramment utilisé.

À quel moment le planificateur Windows est-il adapté ?

Lorsque vous n’avez pas accès à un abonnement Azure pour planifier des travaux du minuteur avec les tâches web Azure WebJob, utiliser un planificateur Windows s’avère une bonne solution, car cette option peut être implémentée sur n’importe quel ordinateur équipé du système d’exploitation Windows.

  • Nécessite du matériel supplémentaire pour exécuter le planificateur Windows.
  • Nécessite du matériel supplémentaire pour exécuter le code de travail du minuteur.

Prise en main

Les articles suivants utilisent le modèle du planificateur Windows et fournissent des exemples de code pour vous aider à démarrer.

Tâche web Azure WebJob

Dans ce modèle, la tâche web Azure WebJobs gère la planification d’un travail du minuteur et inclut le code d’implémentation.

  • Aucun matériel supplémentaire n’est requis pour exécuter la tâche web Azure WebJobs (code de planification et d’implémentation).
  • Il utilise la tâche web Azure WebJobs pour le code de planification et d’implémentation, ce qui facilite la gestion du travail à un seul emplacement.

Sous-option de rôle de travail Azure

Un rôle de travail Azure présente les mêmes caractéristiques qu’une tâche web Azure. Microsoft ne recommande pas ce modèle, mais il est bon de le mentionner, car il est couramment utilisé.

À quel moment la tâche web Azure WebJob est-elle adaptée ?

Lorsque vous avez accès à un abonnement Azure pour planifier des travaux du minuteur avec les tâches web Azure WebJobs.

Mise en route

Les articles suivants décrivent le modèle de tâche Azure WebJob et fournissent des exemples de code pour vous aider à démarrer.

Options d’authentification

Pour que vos tâches de minuteur interagissent avec SharePoint, elles doivent être authentifiées. Pour l’instant, vous pouvez utiliser deux modèles pour authentifier les travaux du minuteur.

  • Utilisation d’un compte de service
  • Utilisation d’OAuth

Utilisation d’un compte de service

Dans ce modèle, vous définissez un ou plusieurs comptes de service permettant d’authentifier les travaux du minuteur.

  • Les comptes de service sont définis dans SharePoint.

    • Dans une location Office 365, selon les fonctionnalités dont disposent vos tâches de minuteur, les comptes de service peuvent nécessiter l’affectation d’une licence Office 365.
    • Vous pouvez créer des comptes de service en fonction d’un travail de minuteur ou utiliser un seul compte pour tous les travaux du minuteur.
    • Créez des noms clairs et descriptifs pour les comptes de service de façon à pouvoir identifier facilement les opérations qu’ils exécutent.

    Par exemple : si votre travail du minuteur modifie les éléments de liste, la colonne Modifié par relative aux éléments de liste affiche le nom du compte de service associé au travail du minuteur.

  • Lors de l’authentification avec des comptes de service, vous devez récupérer un nom d’utilisateur et un mot de passe pour le compte de service.

    • L’extrait de code ci-dessous illustre l’utilisation d’un nom d’utilisateur et d’un mot de passe pour s’authentifier.

    • Veillez à bien enregistrer et récupérer le nom d’utilisateur et le mot de passe de manière sécurisée.

      using (ClientContext context = new ClientContext("https://tenancy.sharepoint.com"))
      {
        // Use default authentication mode
        context.AuthenticationMode = ClientAuthenticationMode.Default;
        // Specify the credentials for the account that will execute the request
        context.Credentials = new SharePointOnlineCredentials("User Name", "Password");
      }
      

Prise en main

Les articles suivants décrivent comment utiliser un modèle d’authentification de compte de service et fournissent des exemples de code pour vous aider à démarrer.

Utilisation d’OAuth

Dans ce modèle, vous définissez une application dans SharePoint ou Azure Active Directory et vous utilisez les jetons d’authentification associés à l’application pour l’authentification.

  • Lorsque vous utilisez une application SharePoint pour l’authentification, vous créez un principal d’application et vous lui affectez des autorisations.

    • Dans ce modèle, des travaux du minuteur peuvent être implémentés via un complément SharePoint hébergé par un fournisseur ou une application console.
    • Pour enregistrer un principal d’application pour le complément SharePoint hébergé par un fournisseur ou une application console, utilisez la page AppRegNew dans SharePoint.

    Cette page est accessible à l’URL suivante http://<tenancy>/<site>/_layouts/AppRegNew.aspx

    • Pour accorder des autorisations à un principal d’application, utilisez la page AppInv dans SharePoint.

    Cette page est accessible à l’URL suivante http://<tenancy>/<site>/_layouts/AppInv.aspx

  • Les tâches du minuteur utilisent les autorisations de l’application uniquement, car aucun utilisateur interactif ne leur est associé.

    • L’extrait de code ci-dessous illustre l’obtention d’un jeton d’accès et l’utilisation des autorisations de l’application uniquement pour s’authentifier à SharePoint.

      string accessToken = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, siteUri.Authority, realm).AccessToken;
      
      using(var clientContext = TokenHelper.GetClientContextWithAccessToken(siteUri.ToString(),accessToken))
      {
        //Implement timer job code
      }
      
  • Lorsque vous utilisez une application Azure Active Directory pour vous authentifier, vous créez une application Azure Active Directory dans le portail Microsoft Azure et vous lui attribuez des autorisations.

    • Dans ce modèle, des travaux du minuteur peuvent être implémentés via un complément SharePoint hébergé par un fournisseur ou une application console.
    • Dans ce modèle, vous interagissez avec la bibliothèque d’authentification Active Directory ou l’API Microsoft Graph pour récupérer un jeton d’accès.
    • Le jeton d’accès est utilisé pour l’authentification à SharePoint (et éventuellement d’autres services Office 365 dans une location Office 365).

Prise en main

Les articles suivants décrivent le modèle d’authentification OAUth et fournissent des exemples de code pour vous aider à démarrer.

Exemples PnP

S’applique à

  • Office 365 multi-locataire (MT).
  • Office 365 dédiés (D) partiellement
  • SharePoint 2013 en local : partiellement

Les modèles pour les versions dédiées et en local sont identiques au complément SharePoint technique du modèle, mais il existe des différences sur les technologies qui peuvent être utilisées.