У меня интересная ситуация, которую мне не удалось взломать. Вот среда, в которой работает мое приложение Silverlight.
У нас есть интрасеть SharePoint 2010, которая является основным хостом для приложения. На странице веб-части у нас есть веб-часть Silverlight, которая содержит приложение. Мы используем объектную модель клиента, чтобы определить, кто является вошедшим в систему пользователем SharePoint. Пользователи этого приложения получают доступ к сайту SharePoint вне домена AD, который они используют для входа в систему; Это означает, что они имеют учетную запись AD, но их компьютеры являются частью различных доменов. Приложение Silverlight выполняет вызовы к службе WCF через https по протоколу SOAP.
Вопрос в том, как защитить службы таким образом, чтобы единственным допустимым запросчиком было приложение Silverlight при вызове из контекста зарегистрированного пользователя SharePoint?
У каждого конечного пользователя есть учетная запись AD, созданная для него. Сайт SharePoint - это экстрасеть, которая требует от каждого пользователя входа в систему с использованием своих учетных данных AD. Однако конечный пользователь не получает доступ к сайту с компьютера, который является частью домена.
Я попытался использовать проверку подлинности Windows, но у нас есть требование, чтобы пользователю не предлагалось войти в систему (к веб-службам) после того, как он уже вошел в SharePoint. Я пытался использовать клиентскую объектную модель, чтобы «передать» аутентификацию / учетные данные службе, но безуспешно.
Мы должны отключить анонимную аутентификацию, прежде чем мы начнем работать, поэтому я должен найти способ обезопасить службы, но не заставлять пользователей входить во второй раз внутри приложения.