SharePoint 2016 : Les « Durable Links »
Une des nouveautés orientée utilisateur de SharePoint 2016 est une fonctionnalité nommée « Durable links ».
Comme son nom l’indique, elle permet à un utilisateur d’utiliser des liens « durables » pour les documents.
Aujourd’hui, si vous envoyez un lien vers un document par email, et si le lendemain vous renommez ou déplacez ce document, le lien reçu par mail devient invalide.
Avec cette nouvelle fonctionnalité, vous accédez au document même si celui-ci est renommé, ou déplacé.
Principe
Le principe des « Durable links », c’est de vous permettre d’obtenir une URL unique pour chaque document, basée sur un ID.
En une image tirée de l’article Bill Baer sur ce sujet :
Sur ce schéma, on voit la notion de WOPI (Web Application Open Platform Interface Protocol), symptomatique de l’utilisation d’Office Online Server (l’Office Web Apps vnext).
En effet, la présence d’Office Online Server est un prérequis à l’utilisation de ces « Durable links ».
Vous trouvez d’ailleurs dans cet article les instructions nécessaires à son installation et configuration avec SharePoint 2016.
Fonctionnement
Lors de la consultation d’un document (via Office Online Server, donc), une URL d’accès au document est mise à votre disposition :
Cette URL est la « docID-based durable URL » dont parle Bill Baer sur son schéma, et est construite dans mon cas selon le formalisme suivant :
http://URL_WebApp/Nom_Bibliothèque/Nom_Document?d=w%5BID_Document%5D
Lors de l’appel à cette URL , l’ID présent dans l’URL va être utilisé par OOS pour récupérer et afficher le document, processus qui se déroule donc en 2 étapes, Fiddler à l’appui :
- 1 : Passage par la ferme OOS,
- 2 : Retour à la ferme SharePoint.
Cet ID passé en paramètre n’est ni plus ni moins que l’ID du document (Champ « ID » de la table « AllDocs ») :
Ou plus proprement l’ID récupérable via PowerShell (propriété « UniqueId » :
Pour la suite de cet article, je vais utiliser un document pptx, qui est hébergé dans une bibliothèque nommée « Demo LD » de ma collection de site :
En passant par PowerShell, il est possible de récupérer une nouvelle propriété (LinkingUrl) de l’objet SPFile associé, qui représente la « docID-based durable URL » du document.
Lors de mes présentations et de la démo associé à ce sujet, je modifie généralement l’URL pour montrer que le document s’affiche même avec un nom qui ne correspond plus, car c’est l’ID qui fait foi.
Par exemple ici, je remplace l’URL récupérée sur l’image précédente par : http://sp2016interne.spasipe.local/FAKE DOCLIB/FAKE DOC.pptx?d=w865f0db61bd64d70810cb72d36139edd
Résultat : je suis redirigé sur « http://sp2016interne.spasipe.local/_layouts/15/WopiFrame.aspx?sourcedoc={865F0DB6-1BD6-4D70-810C-B72D36139EDD}&file=Dubai%20-%20PowerBi%20V3.pptx&action=default », et le document s’affiche correctement :
Et donc même si le document est déplacé ou renommé, l’URL « originale » permet toujours d’afficher le document.
CQFD !
Liens durables vs « ID unique de document »
Sur ce lien du site adopteunsharepoint.com, vous trouverez une très bonne explication sur la différence entre ces 2 fonctionnalités.
Références
Office Online Server : Installation et configuration avec SharePoint 2016
Office Online Server, c’est l’ « Office Web Apps Server » version 2016 (dans cet article en version Preview).
Celui-ci reprend globalement les mêmes concepts que son prédécesseur, que ce soit en terme d’architecture ou de procédure d’installation.
Je dis globalement, car Office Online Server s’enrichit, ayant notamment absorbé Excel Services.
A ce sujet, vous pouvez consulter cet article, pour connaître les fonctionnalités dépréciées d’Excel Services vs les fonctionnalités nécessitant désormais Excel Online dans OOS.
Par ailleurs, OOS permet l’utilisation des Durable Links (article à venir sur ce sujet).
Les concepts
Même si les concepts architecturaux sont identiques à ceux d’Office Web Apps Server, revenons sur quelques concepts :
1. OOS s’installe sur un serveur dédié, ou pour des besoins de haute disponibilité, sur plusieurs serveurs dédiés.
Dans ce dernier cas, on se fera un plaisir de load-balancer l’ensemble avec un boitier F5, ou autre.
OOS aime l’exclusivité – N’installez rien d’autre sur les serveurs (SharePoint, SQL Server, …).
2. Les serveurs composant votre ferme OOS doivent idéalement appartenir au même domaine AD (ou à défaut à des domaines de la même forêt)
3. Vous pouvez vous baser sur les prérequis de SharePoint 2016 pour dimensionner vos serveurs, soit :
Pour du test (c’est une version Preview, donc pas d’utilisation en production), personnellement mes machines virtuelles sous Hyper-V fonctionnent basiquement avec 6 Go de RAM.
4. OOS fonctionne en HTTP, ou en HTTPS.
5. Les ports à ouvrir sur le firewall : 80, 443 et 809 (si plusieurs serveurs OOS).
6. Système d’exploitation : Windows Server 2012 R2, 64 bits
Avec ces informations en tête, nous pouvons poursuivre.
L’infrastructure utilisée pour cet article
- Un contrôleur de domaine « SPAsipe.local » (autorité de certification, tout ça, …),
- Un serveur SharePoint 2016 « Batterie à serveur unique », avec SQL server installé sur ce serveur,
- Un certificat SSL (friendlyname : OOSCert),
- Un serveur OOS unique, mais avec un alias pour l’attaquer via https://oosfarm.spsasipe.local.
- Consulter mon article de l’époque sur les Office Web Apps Server,
- Consulter la page Technet.
Préparation du serveur OOS
OOS ne comportant pas d’installeur pour les prérequis, il va falloir les installer via PowerShell.
1. Lancez PowerShell en tant qu’administrateur.
2. Installez les prérequis en lançant la commande suivante :
Add-WindowsFeature Web-Server,Web-Mgmt-Tools,Web-Mgmt-Console,Web-WebServer,Web-Common-Http,Web-Default-Doc,Web-Static-Content,Web-Performance,Web-Stat-Compression,Web-Dyn-Compression,Web-Security,Web-Filtering,Web-Windows-Auth,Web-App-Dev,Web-Net-Ext45,Web-Asp-Net45,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Includes,InkandHandwritingServices,NET-Framework-Features,NET-Framework-Core,NET-HTTP-Activation,NET-Non-HTTP-Activ,NET-WCF-HTTP-Activation45,Windows-Identity-Foundation
- Rebootez le serveur.
Génération et installation du certificat
1. Pour créer mon certificat, je commence par effectuer une « Certificate Request », via IIS > Server Certificates, qui me fournit un fichier que je stocke bien au chaud pour la suite.
2. Je contacte mon autorité de certification, via http://dc/certsrv, et je clique sur « Request a certificate ».
3. Je clique sur « advanced certificate request »
4. Je colle le contenu de ma certificate request dans la première zone, et je sélectionne « Web Server » comme template.
Un clic sur « Submit » pour conclure.
5. Il ne reste plus qu’à télécharger le certificat généré.
6. Passons à l’instal0altion : lancez mmc, chargez le snapin « Certificates », (Local computer) , et cliquez sur « Personal ».
Cliquez- droit > All tasks > Import…
7. Sélectionnez le certificat précedemment téléchargé
8. Cliquez-droit sur le certificat > Properties, et saisissez le « Friendly name » pour le certificat, dans mon cas « OOSCert ».
9. On est tout bon, passons à l’installation.
Installation
1. Lancez « Setup.exe ».
2. Cliquez sur « I accept the terms of this agreement »; cliquez sur » Continue ».
Création de la ferme OOS
Relancez la fenêtre PowerShell en tant qu’administrateur.
1. Lancez la commande « New-OfficeWebAppsFarm -InternalUrl https://oosfarm.spasipe.local -CertificateName « OOSCert » -EditingEnabled »
Le détail des paramètres :
- -InternalUrl : l’alias de mon serveur OOS (ça aurait pu être https://monserveur.spasipe.local),
- -CertificateName : le nom du certificat utilisé,
- -EditingEnabled : permet l’édition des documents au sein d’OOS.
2. Pour vérifier que la ferme s’est correctement créée, lancez dans un navigateur l’URL https://NomDeVotreServeur-ou-Alias/hosting/discovery.
Si le XML s’affiche dans le navigateur : Office Online Server est opérationnel, et donc ici en internal-HTTPS.
Configuration du serveur SharePoint 2016
1. Lancez le Management Shell de SharePoint 2016.
2. Pour créer la relation entre le serveur SharePoint 2016 et le serveur OOS, lancez la commande « New-SPWOPIBinding -ServerName <AliasDeLaFerme_Ou_NomDuServeur_OOS> ».
La liste des applications et les extensions gérées s’affiche alors (Je n’en affiche ici qu’une petite partie).
3. Tout comme OWA, OOS utilise un concept de zones (URL interne et URL externe) et peut utiliser les protocoles HTTP et HTTPS.
Pour vérifier la zone actuelle, lancez « Get-SPWOPIZone »
On voit ici que je suis en « internal-http » (dû à l’utilisation d’un ancien serveur OOS), car par défaut c’est la zone « internal-https » qui est utilisée.
J’utilise alors la commande « Set-SPWOPIzone » pour rétablir la configuration initiale.
En passant, pour déconnecter une ferme OOS d’une ferme SharePoint :
Test du fonctionnement d’OOS
Connectez-vous sur un site, et cliquez sur « … » à droite d’un document Office.
- Avant la configuration d’OOS :
- Après :
Restreindre l’utilisation d’OOS en spécifiant les domaines
L’Allow List d’OOS vous permet de limiter son utilisation en spécifiant le ou les domaine(s) autorisé(s) à l’utiliser.
3 commandes vous seront utiles :
- Get-OfficeWebAppsHost : Liste les domaines autorisés; si la liste est vide c’est qu’aucune restriction n’existe,
- New-OfficeWebAppsHost : Ajoute un domaine à l’Allow List.
- Remove-OfficeWebAppsHost : Vous devinez ?
Exemple :
Si vous tentez d’utiliser OOS depuis un domaine non autorisé, il se passe ceci :
Références
Le 1er meeting du User Group Office 365 Suisse, c’est le 29 février 2016 !
Le 29 février 2016 se tiendra la première édition du User Group Office 365 suisse, sur Genève.
Organisé par Yoan Topenot, cet événement gratuit et ouvert à tous vous permettra d’assister à 5 sessions sur Office 365 et son écosystème.
La liste des sessions est la suivante :
- Gagner en productivité et en collaboration grâce à Office 365
- Les nouvelles perspectives des groupes Office 365 grâce aux connecteurs
- Les nouveautés de Sharepoint 2016 <== C’est moi !
- MDM & RMS Une protection totale, sortez couvert !
- The future of Microsoft Data platform, focus on Azure IOT, Analytics and Power BI
Toutes les informations sont disponibles sur : http://www.swiss-user-group.org/2016/01/27/metting-du-user-group-office-365-29-fevrier-2016, (le formulaire d’inscription se trouve en bas de page).
Au plaisir de vous y voir !