Uso del parámetro WHR con SharePoint 2010 y SAML Auth

Artículo original publicado el martes, 15 de septiembre de 2011

He visto muchas preguntas y confusión (y yo mismo me he encontrado algo perdido) con respecto a la revisiones de SharePoint 2010 SP1 y la actualización acumulada de junio para permitir el uso del parámetro WHR.  De hecho esto funciona ahora pero requiere algunos cambios:

  1. Configurar el SPTrustedIdentityTokenIssuer

El SPTrustedIdentityTokenIssuer tiene una propiedad denominada UseWHomeRealmParameter ahora; se debe establecer en true para que SharePoint pase el parámetro WHR al IdP.  A continuación, verá un corto fragmento de código de PowerShell que he usado para hacer esto:

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

Bastante sencillo; ahora SharePoint enviará cualquier parámetro WHR que encuentre.

  1. Escriba o haga "algo" para anexar el parámetro WHR

En mi caso escribí un HttpModule para anexar el parámetro WHR.  De manera específica aquí, así es como lo hice:

  • En la invalidación de inicialización agregué un controlador para el evento BeginRequest
  • En el código para el evento BeginRequest compruebo si:
    • La solicitud se dirige a _trust/default.aspx Y
    • La solicitud NO tiene un parámetro WHR incluido todavía
  • Si la solicitud satisface los dos criterios descritos anteriormente, creo una redirección de nuevo al _trust/default.aspx.  Cuando lo hago:
    • Agrego todos los parámetros de la cadena de consulta que estaban allí anteriormente
    • Anexo mi WHR al final
    • Response.Redirect de nuevo a _trust/default.aspx

Esto ha sido todo.  Lo he probado con una sesión de explorador InPrivate en IE porque no usará las cookies de autenticación que podrían desequilibrar de otra manera de los resultados de la prueba.  Hasta el momento todas las pruebas han funcionado de la manera esperada; también he comprobado en Fiddler que el parámetro WHR está fluyendo ahora hacia ADFS (en mi caso) de la manera deseada.  He adjuntado el código fuente para mi pequeño y sencillo proyecto a esta publicación para ayudarle a empezar.

Esta entrada de blog es una traducción. Puede consultar el artículo original en Using the WHR Parameter with SharePoint 2010 and SAML Auth