6 avril 2013

Office 365 : InfoPath GetUserProfileByName

Aujourd'hui un court article sur une limitation découverte sur InfoPath Forms Services dans le cadre d'Office 365 lors de la tentative d'utilisation d'un service web SharePoint.
 
La méthode "GetUserProfileByName" permet de retrouver facilement les informations de l'utilisateur connecté sur SharePoint en recherchant les données depuis sa fiche de profil.
L'appel de cette méthode depuis un formulaire InfoPath Forms Services génère une exception (error 5566 ou 401).
 
En effet, celui-ci n'est pas accessible depuis InfoPath dans Office 365 à cause du paramétrage de désactivation de la protection de bouclage ("DisableLoopBackCheck").
Cela fonctionne généralement sur les serveurs SharePoint On Premise car la clé de registre "DisableLoopBackCheck" est positionnée à "1".
 
Voici un article du support MS répertoriant ce problème :
 
Malheureusement, pour des raisons de sécurité évidentes du côté de chez Microsoft, cette contrainte semble immuable. Autant prédire qu'il y ait peu de chances que cette utilisation dans O365 soit un jour possible ...
 
Il reste donc 2 solutions de contournement aussi contraignantes l'une que l'autre:
  • Réaliser un formulaire "client lourd" se connectant à ce web service car cela fonctionne avec cette méthode (Inconvénient : Les utilisateurs devront posséder InfoPath sur leur poste),
  • Utiliser une liste SharePoint comprenant les informations nécessaire (Inconvénient : duplication de l'information).

Aucun commentaire:

Enregistrer un commentaire