Utilizzo del parametro WHR con SharePoint 2010 e SAML Auth

Articolo originale pubblicato giovedì 15 settembre 2011

Le correzioni incluse nel Service Pack 1 di SharePoint 2010 e nell'aggiornamento cumulativo di giugno per consentire l'utilizzo del parametro WHR hanno generato molte domande e confusione (io stesso per un po' mi sono sentito perso). Sebbene sia ora possibile utilizzare questo parametro, sono necessarie alcune operazioni:

  1. Configurare SPTrustedIdentityTokenIssuer

SPTrustedIdentityTokenIssuer dispone ora di una proprietà denominata UseWHomeRealmParameter, che deve essere impostata su True per consentire a SharePoint di passare il parametro WHR insieme a IdP. Di seguito potete trovare un breve frammento di PowerShell che ho utilizzato per questo scopo:

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

Molto semplice, ora SharePoint invierà qualsiasi parametro WHR rilevato.

  1. Scrivete o eseguite un'operazione per aggiungere il parametro WHR.

Nel mio caso ho scritto un HttpModule per aggiungere il parametro WHR. Di seguito vi illustro in dettaglio come ho fatto:

  • Nell'override Init ho aggiunto un gestore per l'evento BeginRequest
  • Nel codice per l'evento BeginRequest verifico se:
    • La richiesta è indirizzata a _trust/default.aspx e
    • Nella richiesta non è ancora incluso un parametro WHR
  • Se la richiesta soddisfa i due criteri descritti sopra, creo un reindirizzamento a _trust/default.aspx. Per questo scopo eseguo le operazioni seguenti:
    • Aggiungo ogni parametro della stringa di query che era presente in precedenza
    • Aggiungo il parametro WHR alla fine
    • Reindirizzo Response.Redirect a _trust/default.aspx

Tutto qui. Ho testato questa procedura utilizzando una sessione del browser InPrivate in IE poiché non vengono utilizzati i cookie di autenticazione che altrimenti potrebbero alterare i risultati del test. Finora tutti i test hanno dato i risultati sperati e ho anche verificato in Fiddler che il parametro WHR ora passa a ADFS (nel mio caso) come desiderato. Ho allegato a questo post di blog il codice sorgente per il mio semplice progettino in modo da aiutarvi nelle fasi iniziali.

Questo è un post di blog localizzato. L'articolo originale è disponibile in Using the WHR Parameter with SharePoint 2010 and SAML Auth