Verwenden des WHR-Parameters mit SharePoint 2010 und SAML-Authentifizierung

Veröffentlichung des Originalartikels: 15.09.2011

Bei den Fixes in SharePoint 2010 SP1 und dem kumulativen Update vom Juni gab es viele Fragen und Missverständnisse (und auch ich hatte so meine Mühe) bezüglich der Verwendung des WHR-Parameters. Das funktioniert nun tatsächlich, erfordert aber ein paar Schritte:

  1. Konfigurieren von SPTrustedIdentityTokenIssuer

Für SPTrustedIdentityTokenIssuer gibt es nun die UseWHomeRealmParameter-Eigenschaft, die auf True festgelegt werden muss, damit der WHR-Parameter von SharePoint an IdP weitergegeben wird. Hierfür habe ich den folgenden kurzen PowerShell-Codeausschnitt verwendet:

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

Das ist eigentlich ganz einfach. SharePoint gibt nun jeden gefundenen WHR-Parameter weiter.

  1. Erstellen von Code oder Ausführen von Schritten zum Anfügen des WHR-Parameters

Ich erstellte ein HttpModule-Element zum Anfügen des WHR-Parameters. Dabei bin ich folgendermaßen vorgegangen:

  • In der Init-Überschreibung fügte ich einen Handler für das BeginRequest-Ereignis hinzu.
  • Im Code für das BeginRequest-Ereignis überprüfte ich Folgendes:
    • Ob die Anforderung an _trust/default.aspx weitergeleitet wird; UND
    • Ob die Anforderung noch KEINEN WHR-Parameter enthält.
  • Falls die Anforderung die beiden oben beschriebenen Kriterien erfüllt, erstelle ich eine Weiterleitung zurück an _trust/default.aspx. Dabei gehe ich wie folgt vor:
    • Ich füge jeden zuvor vorhandenen Abfragezeichenfolgenparameter hinzu.
    • Ich füge den WHR-Parameter am Ende hinzu.
    • Ich leite Response.Redirect an _trust/default.aspx zurück.

Das ist alles. Ich testete das Ganze mithilfe einer InPrivate-Browsersitzung in Internet Explorer, da hier die Authentifizierungscookies nicht verwendet werden, durch die andernfalls die Testergebnisse verfälscht werden könnten. Bisher haben alle Tests die erhofften Ergebnisse geliefert. Außerdem habe ich in Fiddler überprüft, ob der WHR-Parameter wie gewünscht an ADFS (in meinem Fall) weitergegeben wird. Den Quellcode für mein kleines Projekt habe ich diesem Beitrag hinzugefügt, damit Sie loslegen können.

Es handelt sich hierbei um einen übersetzten Blogbeitrag. Sie finden den Originalartikel unter Using the WHR Parameter with SharePoint 2010 and SAML Auth