Flux RSS SharePoint dans SharePoint

Si vous avez déjà tenté d'utiliser les flux RSS générés par SharePoint pour les listes et bibliothèques de documents au sein même de SharePoint afin d'afficher/agréger du contenu situé sur d'autres sites/collections de site, vous avez peut-être buté sur un fait établi : ces flux RSS sont authentifiés (sauf cas de mode anonyme), vous assurant ainsi que les seuls éléments sur lesquels les personnes ont une permission en lecture pourront les voir.

Or, pour qu'un composant (une webpart) puisse correctement afficher des flux authentifiés, il faudra donc qu'il passe les informations sur le compte utilisateurs (les "credentials"). Et ceci, en mode "NTLM", ce n'est tout simplement pas possible ! Il faut pour cela appeler le mode Kerberos à la rescoussse (ici un petit article pour configurer le mode Kerberos + un autre pour l'utilisation des flux authentifiés).

Cependant, il existe une autre alternative, avec son lot d'avantages et d'inconvénients : donner le travail à faire au navigateur (côté client donc).

En effet, le fait d'appeler le flux RSS depuis le client fait qu'il sera appelé avec le compte de l'utilisateur courant. Comment s'y prendre ? Et bien en utilisant ce qui a fait le succès du Web 2.0 : l'AJAX. Je vous conseille de lire ces 3 articles :

Alors bien sûr, le fait de se placer côté client pose des contraintes :

  • compatibilité du code javascript sur les différents navigateurs
  • javascript activé
  • problèmes possibles avec des urls de flux sur d'autres domaines que celui du site
  • ...

Mais on arrive ainsi facilement à une solution viable !

Enfin, afin de vous faciliter le travail, je vous fourni 2 petits fichiers qui vous permettront de joindre la théorie à la pratique dans le fichier "RSS.zip", le fichier rss.js et le fichier rss.xsl. Vous pouvez déposer les 2 dans un sous-répertoire du répertoire "LAYOUTS" sur votre serveur (désolé, le packaging sera à faire !), et les utiliser directement dans une webpart Edition de contenu. Vous pourrez vous servir de ces fichiers pour réaliser une webpart avec sélection du flux, de sa mise en forme, etc... mais voici comment utiliser tel quel les 2 fichiers (on supposera que les fichiers soient dispos sous l'URL /_layouts/RSS/):

  • déposer une webpart d'édition de contenu et en éditer le code source
  • ajouter le code suivant :

    <script language="javascript" src="/_layouts/RSS/rss.js"></script>
    <script language="javascript">
    var jsurl = "<votre url de flux RSS SharePoint>";
    displayXSLTransform(jsurl, "/_layouts/RSS/RSS.xsl", "rssReader", "/_layouts/images/GEARS_AN.GIF");
    </script>

A vous de jouer maintenant

Gat, quand le javascript vient à la rescousse !

 

Commentaires

Le 03 Nov 2009 03:24, Hugo PAIN a dit:

Solution effectivement interessante en soit et même séductrice mais tu te heurtes hélas à ce qu'on appel une technique de "cross-site scripting", c'est à dire que le serveur utilise le navigateur pour requêter un système tiers potentiellement malveillant.

Comme tu l'évoques, ce genre d'attaques sont souvent bloquées par les navigateurs modernes ou au mieux un message d'alerte prévenant l'utilisateur de l'action apparait.
Toujours est il qu'en entreprise, les contraintes de sécurité empêchent la plupart du temps d'avoir recours à cette méthode...
Reste donc ... Kerberos ;-)

Laisser un commentaire





Validation Image CAPTCHA