Partager via


Modèles de client d’approvisionnement PnP

Considérez les modèles de client comme une extension se superposant aux modèles de site ou d’approvisionnement PnP. Au lieu de simplement approvisionner un site en artefacts, vous pouvez désormais créer des sites et des équipes, provisionner des entrées AD Azure et une taxonomie, etc.

Remarque

L’infrastructure d’approvisionnement PnP & moteur d’approvisionnement PnP sont des solutions open source avec une communauté active qui le prend en charge. Il n’existe pas de contrat SLA Microsoft pour le support technique relatif à cet outil open source.

Remarque

Une bonne ressource pour les modèles de locataire est le référentiel de modèles d’approvisionnement PnP qui contient tous les modèles précédemment utilisés dans le service lookbook (qui n’est plus disponible). Vous y trouverez un dossier de client et plusieurs dossiers contenant chacun un modèle. Les sous-dossiers contiennent un dossier source. Dans le dossier source, vous trouverez un fichier template.xml qui est un modèle de client.

La séquence

Une séquence est un outil permettant de créer des collections de sites et des sous-sites facultatifs. Notez qu’une séquence ne peut créer qu’un « site moderne » : un site de communication, un site d’équipe moderne avec un groupe Office 365 connecté ou une équipe moderne sans groupe Office 365 connecté.

<pnp:Sequence ID="sequence">
    <pnp:SiteCollections>
        <pnp:SiteCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="pnp:CommunicationSite" ProvisioningId="MAIN" SiteDesign="Topic" Title="My New Site" Description="" Url="/sites/mynewsite" IsHubSite="false" Owner="user@domain.com">
        <pnp:Templates>
            <pnp:ProvisioningTemplateReference ID="MAIN-TEMPLATE"/>
        </pnp:Templates>
        </pnp:SiteCollection>
    </pnp:SiteCollections>
</pnp:Sequence>

Dans l’extrait de code ci-dessus, vous constatez que nous créons un site de communication lors de l’application du modèle.

Il est important d’avoir un attribut xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" dans l’élément <pnp:SiteCollection>, car cela permet au schéma de déterminer les propriétés qui s’appliquent aux différents éléments. Un site de communication possède des propriétés différentes de celles d’un site d’équipe.

Un enfant de l’élément <pnp:SiteCollection> est <pnp:Templates>. Il vous permet de faire référence à un ou plusieurs modèles. Bien que vous ayez la possibilité de conserver ces modèles dans des fichiers distincts, nous vous conseillons de les conserver au départ dans le même fichier.

Lorsque le moteur analyse le modèle, il commence par créer les collections de sites, dans le cas présent, le site avec l’URL /sites/mynewsite. Une fois que vous avez créé le site, celui-ci trouve le modèle avec l’ID MAIN-TEMPLATE et l’applique au site que vous venez de créer.

Équipes

Vous pouvez facilement configurer une équipe à créer :

 <pnp:Teams>
    <pnp:Team DisplayName="My Test Team" Description="" Visibility="Private" Photo="TeamData/TEAM_ef3020c6-1953-4367-b7c5-a6da8e24d049/photo_ef3020c6-1953-4367-b7c5-a6da8e24d049_432X432.jpg" Specialization="None">
      <pnp:FunSettings />
      <pnp:GuestSettings AllowCreateUpdateChannels="false" />
      <pnp:MembersSettings />
      <pnp:MessagingSettings />
      <pnp:Security>
        <pnp:Owners>
          <pnp:User UserPrincipalName="user@domain.com" />
        </pnp:Owners>
        <pnp:Members>
          <pnp:User UserPrincipalName="user@domain.com" />
        </pnp:Members>
      </pnp:Security>
      <pnp:DiscoverySettings ShowInTeamsSearchAndSuggestions="false" />
      <pnp:Channels>
        <pnp:Channel DisplayName="General" Description="test" ID="19:796d063baf3fad3ffa2231aeaf092c8fb9b44e@thread.skype">
          <pnp:Tabs>
            <pnp:Tab DisplayName="Lists and Pages" TeamsAppId="2a527703-1f6f-4559-a332-d8a7d288cd88"/>
            <pnp:Tab DisplayName="Docs" TeamsAppId="com.microsoft.teamspace.tab.files.sharepoint">
              <pnp:Configuration EntityId="" ContentUrl="https://tenant.sharepoint.com/sites/mynewsite/Shared%20Documents" RemoveUrl="" WebsiteUrl="" />
            </pnp:Tab>
          </pnp:Tabs>
        </pnp:Channel>
      </pnp:Channels>
    </pnp:Team>
  </pnp:Teams>

L’exemple ci-dessus crée une équipe, ajoute un canal et deux onglets à ce même canal.

Modèle de client de provisionnement contenant une équipe avec PowerShell PnP

La seule façon de créer une équipe par programme consiste à utiliser Microsoft Graph. Nous avons besoin d’un jeton d’accès pour Graph lorsque vous utilisez PowerShell PnP afin d’approvisionner un modèle contenant un élément Teams. PowerShell PnP peut acquérir automatiquement le jeton d’accès pour vous, cependant, vous devez d’abord fournir le consentement pour votre client.

Pour ce faire, vous pouvez procéder comme suit :

Register-PnPManagementShellAccess

Il s’agit d’une action ponctuelle uniquement. Une fois cette étape de consentement réalisée, vous pouvez utiliser les méthodes habituelles pour vous connecter à l’aide de PnP PowerShell.

Le flux utilisé par le moteur de approvisionnement est le suivant :

  1. Vous vous connectez au moyen de vos informations d’identification avec Connect-PnPOnline <tenant>.sharepoint.com -Interactive.
  2. Vous appliquez le modèle avec Invoke-PnPTenantTemplate -Path yourtemplate.pnp
  3. Le moteur d’approvisionnement commence à approvisionner tout artefact SharePoint qu’il trouve dans ce modèle.
  4. Lorsque le moteur rencontre un artefact nécessitant un jeton d’accès pour Microsoft Graph, il rappelle PowerShell PnP afin d’obtenir un tel jeton.
  5. PowerShell PnP tente, à l’aide des informations d’identification que vous avez utilisées à l’étape 1 et du consentement accordé précédemment, d’acquérir un jeton à l’aide de l’inscription de l’application Azure mutualisée dans PnP Management Shell. Dès qu’il obtient le jeton, il le renvoie au moteur d’approvisionnement qui l’utilisera pour effectuer les appels appropriés à l’API Microsoft Graph.

Si vous souhaitez supprimer ce consentement ultérieurement, connectez-vous à votre portail Azure et accédez à Azure Active Directory. Dans la section Applications d’entreprise, vous trouverez une entrée appelée « PnP Management Shell » avec l’ID client 31359c7f-bd7e-475c-86db-fdb8c937548e. Supprimez cette entrée pour effacer le consentement.

Voir aussi