Добавление поддержки нескольких ферм SharePoint 2010 и набора средств CASI в WCF

Исходная статья опубликована 20 марта 2011 г.

Кто-то недавно поднял интересный вопрос о возможностях WCF-приложения, настроенного в соответствии с описанием в блоге Эрика Уайта (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) и во второй части моей публикации, посвященной набору средств CASI (https://blogs.msdn.com/b/sharepoint_ru/archive/2010/12/16/azure-sharepoint-2.aspx).  В этих статьях описывается изменение файла web.config для WCF с добавлением ссылок на издателя и адрес метаданных issuerMetadata, который является URL-адресом сайта SharePoint, и отпечатка сертификата службы маркеров безопасности для фермы SharePoint.  В связи с этим возникает вопрос, если эти значения заданы для одной фермы, может ли один WCF-класс поддерживать запросы от набора средств CASI в нескольких фермах?  К счастью, это так, однако для этого необходимо выполнить дополнительную настройку.

Основными элементами, которые настраиваются в WCF для создания отношения доверия между платформой и фермой SharePoint, являются:

  • URL-адрес сайта SharePoint для издателя
  • URL-адрес сайта SharePoint для метаданных issuerMetadata
  • Отпечаток сертификата для подписи маркера фермы, используемого службой маркеров безопасности

Изменение первых двух элементов не представляет проблемы, поскольку базовый класс набора средств CASI позволяет программно переопределить их в файле web.config на URL-адрес сайта, из которого вызывается компонент набора средств CASI.  Таким образом, эти два элемента можно исключить из списка блокировки.  Последний элемент удачным образом добавляется в файл web.config не в виде одного элемента, а в качестве одного из элементов массива возможных элементов с использованием простого тега <add>. Это означает возможность добавления нескольких отпечатков, которые будут поддерживаться в WCF.  Таким образом, после того как я добавил поддержку двух разных ферм, файл web.config для WCF выглядит следующим образом:

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

Как видно, можно просто добавлять отпечатки в список по мере необходимости для поддержки нужного числа ферм, а набор средств CASI выполнит остальные операции за вас.

Это локализованная запись блога. Исходная статья находится по адресу Adding Support for Multiple SharePoint 2010 Farms and the CASI Kit in Your WCF