Adicionando suporte para vários farms do SharePoint 2010 e o Kit CASI ao seu WCF

Artigo original publicado em 20 de março de 2011, domingo

Alguém levantou uma questão interessante outro dia sobre a capacidade de um aplicativo WCF, configurado conforme descrito no blog de Eric White (https://blogs.msdn.com/b/ericwhite/archive/2010/06/18/establishing-trust-between-a-wcf-web-service-and-the-sharepoint-2010-security-token-service.aspx) e o Kit CASI Part 2 (https://blogs.msdn.com/b/sharepoint_br/archive/2010/12/20/the-claims-azure-and-sharepoint-integration-toolkit-part-2.aspx).  A configuração mostrada nesses blogs descreve a modificação de web.config para o WCF de forma a incluir links para um endereço de emissor e issuerMetadata, que é uma URL do site do SharePoint, e a impressão digital para um certificado STS do farm do SharePoint.  Então, com esses valores codificados para um único farm, pode um único WCF suportar solicitações do Kit CASI em vários farms?  Felizmente a resposta é sim, mas é necessária com uma configuração adicional.

Os elementos básicos configurados no WCF para criar confiabilidade entre ele e o farm do SharePoint são:

  • A URL para um site do SharePoint para o emissor
  • A URL para um site do SharePoint para issuerMetadata
  • A impressão digital do certificado de assinatura do token do farm usado pelo STS

Os primeiros dois elementos, como poderemos ver, não são problema, já que a classe básica do Kit CASI substitui programaticamente os valores de web.config com a URL do site do qual o componente do Kit CASI está sendo invocado.  Assim, podemos remover esses dois itens da lista de bloqueio.  O último item é, felizmente, adicionado a web.config não como item individual, mas como elemento de um conjunto de potenciais itens.  Isso significa que é adicionado com uma simples tag <add>, o que significa que tem suporte para o acréscimo de várias impressões digitais que o WCF suportará.  Veja um exemplo de como ficará web.config para meu WCF depois que eu adicionar suporte para dois diferentes farms:

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

Como podemos ver, pode-se continuar adicionando impressões digitais à lista para dar suporte à quantidade de farms que você desejar, e o Kit CASI cuidará do resto para você.

Esta é uma postagem de blog traduzida. Leia o artigo original sobre Adding Support for Multiple SharePoint 2010 Farms and the CASI Kit in Your WCF