Utilisation du paramètre WHR avec SharePoint 2010 et l’authentification SAML

Article d’origine publié le jeudi 15 septembre 2011

J’ai vu beaucoup de questions et il semble que de nombreuses personnes (y compris moi-même, par un moment) aient été quelque peu perplexes au vu des correctifs inclus dans SharePoint 2010 SP1 + Mise à jour cumulative de juin concernant l’utilisation du paramètre WHR. Celui-ci fonctionne désormais, mais quelques opérations doivent néanmoins être effectuées :

  1. Configurer le SPTrustedIdentityTokenIssuer

Le SPTrustedIdentityTokenIssuer a maintenant une propriété nommée UseWHomeRealmParameter, à laquelle la valeur True doit être affectée pour que SharePoint passe le paramètre WHR avec l’IdP. Voici un court exemple powershell que j’ai utilisé à cette fin :

$ap = get-sptrustedidentitytokenissuer -identity "ADFS with Roles"
$ap.UseWHomeRealmParameter = $true
$ap.Update()

Assez simple. Maintenant, SharePoint enverra tout paramètre WHR détecté.

  1. Écrire ou faire « quelque chose » à ajouter au paramètre WHR

Dans mon cas, j’ai écrit un HttpModule à ajouter au paramètre WHR. Voici comment j’ai procédé :

  • Dans la substitution Init, j’ai ajouté un gestionnaire pour l’événement BeginRequest.
  • Dans le code de l’événement BeginRequest, je regarde si :
    • la demande est destinée à _trust/default.aspx ET
    • AUCUN paramètre WHR n’est encore inclus dans la demande.
  • Si la demande répond aux deux critères ci-dessus, je crée une redirection vers _trust/default.aspx. Dans ce cas :
    • J’ajoute chaque paramètre de chaîne de requête qui était présent auparavant.
    • Je rajoute mon paramètre WHR au
    • Response.Redirect de fin à _trust/default.aspx.

Et voilà. J’ai testé cela à l’aide d’une session de navigation InPrivate dans Internet Explorer afin de ne pas utiliser les cookies d’authentification qui altèrerait autrement les résultats des tests. Jusqu’à maintenant, tous les tests ont fonctionné comme prévu. J’ai également vérifié dans Fiddler que le paramètre WHR basculait comme souhaité vers les services ADFS (dans mon cas). J’ai joint le code source de mon petit projet à ce billet pour vous aider à démarrer.

Ceci est une version localisée d’un article de blog. Vous trouverez la version originale à la page Using the WHR Parameter with SharePoint 2010 and SAML Auth