Une topologie SharePoint avec une seule application web, est-ce possible ?

Introduction

Dans le passé, la topologie d’une ferme SharePoint 2010 incluait généralement plusieurs applications web de contenu. Un compte de service et un pool applicatif étaient également prévu pour héberger le MySite. Bien que ceci est totalement supporté, ceci ne répond plus aux meilleures pratiques en matière de performance. À moins d’une raison d’affaires nécessitant de le faire autrement, il serait possible d’avoir une seule application web. Dans ce billet, les différents avantages et inconvénients seront exposés ainsi que la façon de s’y prendre pour y arriver dans SharePoint 2013-2016.

Avantages et inconvénients

Avoir une seule application web apporte plusieurs avantages :

Cependant, cela vient aussi avec sa part d’inconvénients

  • Complexité au niveau de la création des certificats SSL lorsqu’il y a plusieurs domaines;
  • Nécessité d’avoir un nom de domaine dans le URL;
  • Nécessité de que l’ensemble des collections de sites utilisent les mêmes mode d’authentification.

One Web App to rule them all? Comment?

Dans SharePoint 2010, lorsqu’une entité voulais avoir sont propre URL, il fallait inévitablement passer par la création d’une nouvelle application web. Maintenant, il est possible d’avoir plusieurs URL de vanité (Vanity URL) sans créer une application web distincte en utilisant une collection de sites nommées par l’hôte (HNSC).

Étant donné que l’environnement Office 365 utilise des collections de sites nommées par l’hôte, les nouvelles fonctionnalités sont optimisées pour ces collections de sites et devraient être plus fiables.

Pour le déploiement de sites, il est recommandé d’utiliser des collections de sites nommées par l’hôte avec tous les sites situés dans une même application Web, comme illustré dans le diagramme suivant :

hnsc.jpg

Source

 

Plusieurs applications Web avec des collections de sites nommées par l’hôte ?

Si vous utilisez plusieurs applications Web, vous induisez une surcharge opérationnelle et rendez le système plus complexe. Il est recommandé d’utiliser une application Web pour les collections de sites. Toutefois, les raisons suivantes peuvent vous inciter à implémenter des collections de sites dans plusieurs applications Web :

  • Les stratégies de sécurité d’une organisation exigent des applications Web ou des pools d’applications distincts.
  • Les applications Web doivent être configurées différemment.
  • Une organisation exige l’utilisation de plusieurs groupes de proxys.

Il est plus complexe d’implémenter des collections de sites nommées par l’hôte avec plusieurs applications Web dans une batterie de serveurs en raison du travail de configuration supplémentaire que cela entraîne. Par exemple, les URL avec des sites nommés par l’hôte peuvent être réparties sur plusieurs applications Web qui partagent le même port dans une même batterie de serveurs. Ce scénario nécessite des étapes de configuration supplémentaire pour garantir le mappage des demandes avec les applications Web appropriées. Vous devez configurer manuellement les mappages sur chaque serveur Web de la batterie de serveurs en paramétrant une adresse IP par application Web, puis créer et gérer des liaisons d’en-tête d’hôte pour affecter des adresses IP uniques pour chaque site. Des scripts peuvent gérer et répliquer cette configuration d’un serveur à l’autre ; toutefois, cela rend la solution plus complexe. En outre, chaque URL unique nécessite un mappage dans le DNS. En général, si plusieurs applications Web sont obligatoires, nous vous recommandons de privilégier l’utilisation de collections de sites basées sur des chemins d’accès avec mappage des accès de substitution.

 Source

Qu’est-ce qui se passe avec mes certificats SSL ?

Un autre problème se pose lorsque vous souhaitez utiliser des certificats SSL. Il est possible d’utiliser le SSL, mais cela nécessite que vous utilisiez des certificats génériques (* .contoso.com). Les collections de sites nommées par l’hôte doivent être nommées site1.contoso.com, site2.contoso.com, etc. pour passer la validation du navigateur. C’est similaire à ce qui se produit dans vos sites SharePoint Online ex : https://tenant.sharepoint.com, où * .sharepoint.com sera le certificat SSL générique utilisé. Autrement, un certificat Multi-named (SAN) pourrait être utilisé pour site1.contoso.com et site2.contoso.com mais il devra être modifié si vous ajoutez une autre collection de site ex : site3.contoso.com.

Si vous avez plusieurs domaines, un certificat multi domaine (UCC) pourrait être utilisé :

Ex : contoso.com, fabrikam.com

Conclusion

Les avantages sont beaucoup plus nombreux d’y aller avec une topologie avec une seule application web alors il est préférable de s’en tenir aux meilleures pratiques autant que possible.

 

Advertisements

Comment copier des affichages SharePoint d’une liste/bibliothèque vers une autre ?

Introduction

Si vous travaillez avec SharePoint depuis un bon moment, vous vous êtes surement retrouvé dans une situation dont vous aviez créé une liste/bibliothèque avec bon nombre d’affichages et qu’à un bon moment, vous aviez besoin de copier ces affichages vers une autre liste ayant les mêmes colonnes. Malheureusement, il n’y a pas de mécanisme permettant de tout sélectionner vos affichages et de les copier vers une autre liste. Dans ce billet je vous présenterai quelque façons pour y arriver en utilisant en premier un outil tiers et en second un script PowerShell.

Les outils tiers

Bien évidemment, si les outils tiers peuvent copier des listes et des bibliothèques, ils peuvent également être utilisé pour copier des affichages dans des listes existantes.

Dans l’exemple ci-dessous j’utilise ShareGate pour copier des affichages :

Affichage1

Affichage2

Puisque c’est seulement une case à cocher, c’est tout ou rien alors ce n’est pas possible de sélectionner les affichages que l’on veut copier ou pas. Heureusement, ça ne nécessite pas un doctorat en génie nucléaire pour arriver à copier des affichages avec un outils tiers.

Le PowerShell à la rescousse

Si vous effectuer une recherche sur google avec les termes « Copy sharepoint view », les premiers résultats que vous allez trouver utilise majoritairement un script PowerShell afin d’effectuer la tâche. En effet, puisqu’il y a peu de chance qu’on effectue cela à tous les jours, il est préférable de faire un script PowerShell qu’une solution utilisant le modèle objet serveur (SSOM) ou client (CSOM).

Ce script permet d’effectuer la copie des affichages d’une liste source vers une liste de destination.

On peut l’appeler facilement ainsi :

.\Copy-SPListViews.ps1 -SourceWebUrl « https://portal.contoso.com/sites/teamsite/ » -DestinationWebUrl « https://portal.contoso.com/hr » -SourceListTitle « Team Documents » -DestinationListTitle « HR Documents »

Celui-ci peut vous offrir d’avantage de flexibilité si de sélectionner les affichages que l’on veut copier ou pas

 

Conclusion

La copie d’affichage est possible dans la mesure ou les deux listes/bibliothèques ont les mêmes colonnes et dans ce billet je vous ai présenté deux méthodes ayant chacun leur niveau de convivialité et de flexibilité.

Un générateur de « meme » dans Microsoft Teams

J’ai récemment essayé Microsoft Teams et une fonctionnalité qui m’a particulièrement intrigué est le générateur de « meme ». C’est assez avant-gardiste d’offrir cette fonctionnalité puisque dans plusieurs entreprises les sites à caractère humoristique sont souvent bloqués par le filtrage web.

Voici un aperçu de cette fonctionnalité :

TeamMemes2

Par la suite, il suffit de l’ajouter comme un message :

TeamMemes3.PNG

Plusieurs annonces sont à venir au Microsoft Ignite alors on n’a pas fini d’en entendre parler !

 

Facilitez la recherche de sites, d’applications et de ressources pertinentes au travail de vos utilisateurs grâce aux vignettes personnalisées dans SharePoint Server 2016

Introduction

Le lanceur d’applications est une fonctionnalité native d’Office 365 très utile permettant de redimensionner, positionner, épingler, rechercher vos applications en plus de permettre d’ajouter des vignettes personnalisés. Cette fonctionnalité est maintenant disponible dans SharePoint 2016 Server mais pour l’instant, il est seulement possible d’ajouter des vignettes personnalisés.

Prérequis

Il faut installer au minimum la mise à jour publique de novembre 2016 pour SharePoint Server 2016 (Feature Pack 1).

Configuration

La configuration pour activer les vignettes personnalisées est très bien décrite sur le site MSDN alors je ne répéterai pas ces étapes.

Ajouter des vignettes personnalisées

Tout d’abord accéder à la liste de vignette créé lors de l’étape précédente :

http://VotreSite/lists/custom%20tiles

Ensuite ajouter un nouvelle élément dans cette liste :

CustomTile.PNG

 

Note : Le champ Publics peut être laissé vide si on veut que la vignette s’affiche pour tous les utilisateurs.

 

Idéalement l’icône devrait être blanc avec un fond transparent afin d’être similaire aux autres icônes.

Exemple d’icône

Une fois que vous avez ajouté un nouvel élément à la liste de vignettes personnalisées, l’affichage dans le lanceur d’application peut prendre jusqu’à 24 heures en raison de la mise en cache. Cependant, on peut forcer le rafraîchissement de cette cache en exécutant avec la fonction JavaScript ClearSuiteLinksCache() dans la console via F12 :

Affiche les résultats dans la console du navigateur du développeur

Résultat :

Application Web Intranet

HomeIntranet

Application Web autre

TilesWebApp

On peut voir que la vignette personnalisé s’ajoute uniquement dans la Web Application Intranet.

Si jamais vous avez spécifié un URL d’icône non-accessible ou invalide vous aurez droit à magnifique hexagone :

TileHExagone.PNG

Activer les vignettes personnalisées dans plusieurs applications web

Pour utiliser la même liste de vignettes personnalisées dans plusieurs applications, activez la fonctionnalité sur chaque application web, puis mettez à jour la propriété CustomTilesListHostUrl dans l’application web qui contient la liste de vignettes personnalisées souhaitée.

Ex :

Enable-SPFeature -Identity CustomTiles -Url http://web_app -Force

$w = Get-SPWebApplication http://web_app
$w.Properties.CustomTilesListHostUrl = « http://web_app url/ »
$w.Update()

Attention de bien spécifier uniquement l’URL de l’application Web et non pas le lien vers la liste de tuile.

Il faut quand même forcer un ClearSuiteLinksCache() et ensuite les tuiles provenant de la première Application Web s’afficheront :

TileWebAppAutre

Dans ce cas, j’ai utilisé deux applications Web de Publication en HTTP et ça a fonctionné correctement. Je n’ai pas réussi à partager de vignettes entre deux applications Web HTTPS (Certificat SSL non vérifié) dont une est de type Publication et l’autre de type Hôte de site Mon Site.

 

Conclusion

C’est une fonctionnalité très intéressante pour permettre la recherche de sites, d’applications et de ressources pertinentes au travail de vos utilisateurs. Ça ne permet pas aux utilisateurs d’ajouter et de redimensionner leur propres tuiles comme dans O365 mais c’est déjà un bon premier pas.

Référence

Vignettes personnalisées dans SharePoint Server 2016 (MSDN)

 

 

 

Erreur trompeuse lors de l’installation de SharePoint 2016 avec AutoSPInstaller

Introduction

Si vous avez déjà monté vous même vos serveurs SharePoint 2010/2013/2016, vous connaissez sans doute le projet Open Source AutoSPInstaller. Idéalement, il est préférable d’installer SharePoint en anglais puis d’ajouter les différents Language Packs. Vous rencontrerez également certaines erreurs si votre système d’exploitation est installé dans une autre langue que l’anglais comme expliqué dans ce billet.

Symptômes

Vous obtenez le message suivant : – Managed Metadata Service Application Proxy already provisioned.
– Granting rights to Metadata Service Application:
– DOMAIN\NomDuCompte…
PS>Erreur de terminaison (Grant-SPObjectSecurity) : « L’argument Rights n’est pas valide. Les valeurs valides sont : Magasin de termes avec accès en lecture, Magasin de termes avec accès en lecture et accès limité en écriture, Magasin de termes avec accès total »
Grant-SPObjectSecurity : L’argument Rights n’est pas valide. Les valeurs valides sont: Magasin de termes avec accès en
lecture, Magasin de termes avec accès en lecture et accès limité en écriture, Magasin de termes avec accès total
Au caractère E:\AutoSPInstaller\SP\AutoSPInstaller\AutoSPInstallerFunctions.ps1:2536 : 21
+ … Grant-SPObjectSecurity $metadataServiceAppSecurity -Princ …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument : (Microsoft.Share…tObjectSecurity:SPCmdletGrantObjectSecurity) [Grant
-SPObjectSecurity], SPException
+ FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletGrantObjectSecurityPS>Erreur de terminaison () : «  – Error provisioning the Managed Metadata Service Application »
>> Erreur de terminaison () : «  – Error provisioning the Managed Metadata Service Application »
————————————————————–
– Script halted!
– Error provisioning the Managed Metadata Service Application
Press any key to exit…

Cause

À première vue, l’erreur semble indiquer un problème de d’autorisations puisque l’applet de commande utilisé est Grant-SPObjectSecurity et que l’erreur semble être l’argument « Rights ».

Cependant, si on regarde attentivement le fichier AutoSPInstallerFunctions.ps1 qui s’occupe de créer le service Managed Metadata Service Application à la ligne suivante :
Grant-SPObjectSecurity $metadataServiceAppSecurity -Principal $accountPrincipal -Rights « Full Access to Term Store »
On voit que l’argument « Rights » est en anglais « Full Access to Term Store » alors que dans le message d’erreur on voit que les valeurs valides sont : « Magasin de termes avec accès en lecture, Magasin de termes avec accès en lecture et accès limité en écriture, Magasin de termes avec accès total »

Résolution

Première résolution:

Modifier la langue d’affichage de Windows afin de mettre l’anglais par défaut :

Langue

Deuxième résolution :

Modifier les lignes « Grant-SPObjectSecurity » du fichier AutoSPInstallerFunctions.ps1 afin de mettre la valeur du paramètre « Rights » correspondant à la langue d’affichage de votre système d’exploitation.

Exemple :

En-Us
Grant-SPObjectSecurity $profileServiceAppPermissions -Principal $currentUserAcctPrincipal -Rights « Full Control »

Fr-Ca

Grant-SPObjectSecurity $profileServiceAppPermissions -Principal $currentUserAcctPrincipal -Rights « Contrôle total »

Conférencier @ SharePoint Saturday Montréal 2017

Introduction

Le 13 mai 2017 aura lieu au Collège Maisoneuve, 2701 Rue Nicolet, Montréal l’événement SharePoint Saturday Montréal. J’aurai la chance d’y participer à nouveau en tant que conférencier.

Vous travaillez de près ou de loin avec SharePoint, Office 365 ou Azure? Joignez-vous à un groupe d’architectes, de développeurs, d’intégrateurs, de gestionnaires de communautés et des gens d’affaires gravitant autour de SharePoint lors de de la tenue de la 5e édition du SharePoint Saturday Montréal.
Plusieurs conférenciers de qualité sont annoncés avec des présentations de DEV/ITPRO/User/Business.
Voici le lien pour vous inscrire :
inscrire

Conclusion

C’est un super événement GRATUIT, à ne pas manquer avec plein de goodies, du smoked meat et d’excellents conférenciers.

Présentation du programme de reconnaissance MVP à la 5e édition du Bootcamp Azure Global, Québec

Introduction

Le 22 avril 2017 avait lieu à L’ENAP, l’événement Québec Azure BootCamp 2017. J’ai eu la chance de participer à cet événement en tant que conférencier avec Simran Chauldry.

La 5e édition du Bootcamp Azure Global, Québec a été organisé par Microsoft. Il s’agit d’une journée où des collaborateurs partagent leur expertise pour former des communautés dédiées à la plateforme Azure et accélérer l’adoption et l’exploitation de l’infonuagique (« Cloud »).

Près de 150 personnes se sont inscrit à cet événement « Sold out » dont plusieurs experts ont présenté 11 conférences de niveau 200 et 300 et ont partagé leur passion pour la plateforme Azure.

Jason Hermitage était présent pour présenter le Keynotes qui était très pertinent sur le positionnement de Microsoft.

Ma présentation

Titre :  Programme de reconnaissance MVP

Si vous ne pouviez y être voici la présentation :

Conclusion

Un autre succès pour la 5e édition de l’événement complet que l’on espère revoir l’an prochain! Si vous avez des questions concernant le programme de reconnaissance MVP n’hésitez pas à communiquer avec moi!