Le Post Infeeny

Les articles des consultants et experts Infeeny

SharePoint, Azure and Claims Integration for Developers

Session animée par Steve Peschka (Principal Architect) et James Petrosky (Solutions Architect)

L’intégration avec Azure possède quelques challenges comme la difficulté de récupérer des données, appliquer les autorisations SharePoint dans Azure, gérer la latence sans impacter l’expérience utilisateur, etc…

Le CASI Kit (Claims Azure SharePoint et I…) est là pour couvrir 3 scénarios :

  • Afficher des données depuis Azure
  • Récupérer des données pour les utiliser dans d’autres WebParts
  • Pas le temps de noter   😉

Comment fonctionne le CASI Kit ? Le client demande une page à SharePoint sur lequel est installé le CASI Kit. Ce kit communique avec Azure via des services WCF, ces services étant chargés de récupérer les données où elles sont (SQL Azure, On-Premise via AppFabric…).

Le kit est composé de 2 composants : 1 classe de base (composant ASP.NET) qui encapsule les connexions à Azure et le détails des contrats WCF et une WebPart qui s’occupe de récupérer les données de manière asynchrone pour les afficher.

Le kit comporte aussi de nombreux guides de bonnes pratiques pour créer des services WCF, héberger des services WCF dans Azure, règles de programmation, etc…

Parmi les guides, celui sur les services WCF et celui sur Azure aident les développeurs à écrire des services capables de fonctionner aussi bien On-Premise que dans Azure en respectant des règles de base pour assurer une maintenance simple. Des choses plus bas niveau comme les question autour des patchs nécessaires, de la gestion des certificats SSL et des DNS sont également inclus dans ce kit.

Une fois configurer correctement, le service WCF est capable de récupérer le jeton SAML de l’utilisateur pour effectuer les traitements adéquats en fonction de ce jeton.

Il est possible d’ajouter une PrincipalPermission sur une méthode pour déterminer quels rôles ont le droit d’appeler telle ou telle méthode du service WCF.

Dans ce cas, la méthode ne peut être utilisée qu’en conjonction avec SharePoint car le système de Claims de SharePoint crypte les données d’une certaine manière et qu’il n’est pas possible de contourner ce mécanisme.

La classe de base inclus dans le kit est fait pour les développeurs qui veulent créer de nouveaux contrôles, développer des applications qui appellent le service WCF, etc…

Cette classe de base doit être surchargée d’après les bonnes pratiques et quelles méthodes doivent être surchargées pour rendre la solution utilisable.

L’utilisation dans SharePoint se fait ensuite en 2 lignes à ajouter dans les layouts : ajouter une référence vers l’assembly du kit et ajouter le contrôle avec les bons paramètres (URL du service WCF, nom de la méthode…) à l’endroit où doivent apparaître les données.

Vu que tout ce qui concerne la connexion à Azure est géré par la classe de base, il n’y a aucune modification à faire dans le web.config même si des changements interviennent dans la chaine (changement d’URL, renommage de méthodes…).

La WebPart est très simple d’utilisation et à déployer car tout est compris dans le package (jQuery est compris dans lot). Le paramétrage de la WebPart (nom de la méthode du service WCF et paramètres à utiliser) se fait via les options classiques de SharePoint (ToolPart).

Pour partager des données issues d’Azure entre plusieurs WebParts, il suffit d’utiliser le cache ASP.NET pour les stocker et les récupérer.

Si l’on souhaite utiliser le kit dans Powershell ou via un job SharePoint, il y a un souci car il n’existe pas de contexte HTTP dans ces 2 cas. Dans ce cas il suffit de paramétrer la propriété SharePointClaimsSiteUrl pour permettre aux composants de fonctionner correctement.

Passons à la démo pour monter une solution de A à Z à partir du kit.

Une solution Visual Studio a été créé avec un minimum de choses. On commence par ajouter des références vers Microsoft.SharePoint, System.Web et System.XXX (pas eu le temps de noter) puis on ajoute une référence vers le service WCF déployé dans Azure.

On ajoute ensuite une classe qui hérite de la classe de base du kit (AzureConnect.WcfConfig).

On surcharge ensuite la méthode ExecuteRequest et on écrit le code pour appeler la méthode adéquate du service WCF.

On ajoute maintenant une page ASPX dans le répertoire LAYOUTS de SharePoint, cette page allant servir de proxy aux WebParts pour effectuer les appels au contrôle du kit, qui sera lui même en charge d’aller récupérer les données sur Azure. Cette page est là pour éviter les problèmes de cross-domain car le contrôle utilie jQuery qui nécessite pour bien fonctionner, que tous les composants soient hébergés sur le même domaine DNS.

On compile et on déploye la solution sur la ferme SharePoint, on édite la page d’accueil du site et on ajoute la WebPart qui est censée affichée les données et fournie dans le kit.

On édite les propriétés de la WebPart pour spécifier le nom de la page située dans LAYOUTS qui va être utilisée, on valide les modifications et là miracle, les données issues d’Azure apparaissent   😉

La WebPart affiche les données issues du token SAML et fournies par le système de Claims de SharePoint et l’on voit effectivement toutes les données correspondant à l’utilisateur (login, firstname, lastname…).

Le code source de la démo présentée sera mis à disposition sur le blog de Steve Peschka dans quelques jours – http://blogs.technet.com/b/speschka.

Autre annonce importante, le code source du CASI Kit sera accessible sur Codeplex très bientôt suite à la demande de quelques clients aux USA – http://casikit.codeplex.com.

Le CASI kit à l’air intéressant mais il est dommage qu’on ai pas du tout vu dans la démo ou même abordé dans les slides, comment paramétrer le système de Claims de SharePoint pour que tout cela fonctionne.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :