23 novembre 2013

SHAREPOINT 2010 : Modification claims provider

Cette semaine je suis tombé sur un petit problème lors de l'utilisation d'un custom claim provider dans SharePoint 2010.
 
Contexte
Disposant, d'une authentification par ADFS sur une web application, je souhaitais tester le très bon provider disponible sur CodePlex nommé "LDAPCP".
Pour ceux qui ne connaissent pas, il est disponible pour SP2010 et SP2013 à l'adresse suivante : http://ldapcp2010.codeplex.com/.
L'avantage de ce custom provider est qu'il permet de pouvoir résoudre les noms dans les people picker  de SharePoint lorsque vous utilisez un provider ADFS (ce qui n'est pas possible nativement...).
 
Problème
Pour l'installation, aucun problème, il suffit de suivre la documentation et ainsi de modifier votre "SPTrustedIdentityTokenIssuer" dans SharePoint en mettant à jour le "ClaimProviderName".
Par contre, le problème survient lorsque vous souhaitez désinstaller un custom claim provider et revenir sur le natif de SharePoint...
Il semble que vous soyez obligé de supprimer votre "SPTrustedIdentityTokenIssuer" puis de le recréer.
Autant dire, dans le meilleur des cas, cela fera quelques minutes à s'amuser!
 
Solution de contournement
Heureusement, il est possible de modifier votre "SPTrustedIdentityTokenIssuer" sans pour autant le recréer à chaque fois que vous voulez changer de claims provider.
Pour cela, il faudra utiliser les commandes PowerShell pour SharePoint suivantes qui utilisent la reflection pour réutiliser le claim provider standard de SharePoint :
$issuer = Get-SPTrustedIdentityTokenIssuer XXXX
$tissuerGetType().GetField("m_ClaimProviderName","NonPublic,Instance").SetValue($ti, $null)
$issuer.Update()
 
J'ai réalisé ceci sur ma plateforme de développement SP2010 et cela a fonctionné à merveille.
Par contre, je ne pense pas que ceci soit supporté sur MS dans le cas d'une plateforme de production chez un client.
 

Aucun commentaire:

Enregistrer un commentaire