Artículo original publicado el domingo, 20 de marzo de 2011

El otro día alguien hizo una pregunta interesante acerca de la capacidad de una aplicación WCF, que está configurada como se describe en el blog de Eric White (http://blogs.msdn.com/b/ericwhite/archive/2010/06/18/establishing-trust-between-a-wcf-web-service-and-the-sharepoint-2010-security-token-service.aspx) y en el kit de CASI parte 2 (http://blogs.msdn.com/b/sharepoint_sp/archive/2010/12/14/parte-2-del-kit-de-herramientas-de-integraci-243-n-de-notificaciones-azure-y-sharepoint.aspx ).  La configuración que se ofrece en estos blogs describe la modificación del archivo web.config para WCF de modo que incluya vínculos para un emisor y una dirección issuerMetadata, que es una dirección URL de sitio de SharePoint, así como la huella digital de un certificado STS de un conjunto o granja de servidores de SharePoint.  Por lo tanto, si tenemos estos valores codificados para una sola granja, ¿puede un solo WCF admitir solicitudes del kit de CASI en varias granjas?  Afortunadamente, la respuesta es sí, pero se necesita un poco más de configuración.

Los elementos básicos que se configuran en WCF para generar confianza entre este y una granja de servidores de SharePoint son:

  • La dirección URL de un sitio de SharePoint para el emisor
  • La dirección URL de un sitio de SharePoint para issuerMetadata
  • La huella digital del certificado de firma de tokens de la granja de servidores que usa el STS

Los dos primeros aparentemente no son un problema, porque la clase base del kit de CASI invalida mediante programación esos valores en el archivo web.config, con la dirección URL del sitio desde el que se invoca el componente del kit de CASI.  Esto nos permite quitar los dos elementos de la lista de bloqueo.  Afortunadamente, el último elemento se agrega al archivo web.config, no como un elemento único, sino realmente como uno en una matriz de elementos posibles.  Se agrega con una etiqueta <add> sencilla, lo que significa que admite la adición de varias huellas digitales que serán compatibles con WCF.  Aquí, por ejemplo, podemos ver el aspecto que tendrá el archivo web.config para WCF después de agregarle compatibilidad para dos granjas de servidores diferentes:

<add thumbprint="2e074b9965abc3434c20ed0be8bfe82b03e5c9f9" name="farm2"/>
<add thumbprint="F53DE039BB2081E7DF6FEC03E8A644F3743A5A7C" name="app1"/>

Como puede ver, es posible seguir agregando huellas digitales a la lista para admitir tantas granjas de servidores como uno desee, y el kit de CASI se ocupará del resto.

Esta entrada de blog es una traducción. Puede consultar el artículo original en Adding Support for Multiple SharePoint 2010 Farms and the CASI Kit in Your WCF