Модель безопасности - веб-часть SharePoint 2010 Silverlight, вызывающая службу WCF - PullRequest
3 голосов
/ 17 декабря 2011

У меня интересная ситуация, которую мне не удалось взломать. Вот среда, в которой работает мое приложение Silverlight.

У нас есть интрасеть SharePoint 2010, которая является основным хостом для приложения. На странице веб-части у нас есть веб-часть Silverlight, которая содержит приложение. Мы используем объектную модель клиента, чтобы определить, кто является вошедшим в систему пользователем SharePoint. Пользователи этого приложения получают доступ к сайту SharePoint вне домена AD, который они используют для входа в систему; Это означает, что они имеют учетную запись AD, но их компьютеры являются частью различных доменов. Приложение Silverlight выполняет вызовы к службе WCF через https по протоколу SOAP.

Вопрос в том, как защитить службы таким образом, чтобы единственным допустимым запросчиком было приложение Silverlight при вызове из контекста зарегистрированного пользователя SharePoint?

У каждого конечного пользователя есть учетная запись AD, созданная для него. Сайт SharePoint - это экстрасеть, которая требует от каждого пользователя входа в систему с использованием своих учетных данных AD. Однако конечный пользователь не получает доступ к сайту с компьютера, который является частью домена.

Я попытался использовать проверку подлинности Windows, но у нас есть требование, чтобы пользователю не предлагалось войти в систему (к веб-службам) после того, как он уже вошел в SharePoint. Я пытался использовать клиентскую объектную модель, чтобы «передать» аутентификацию / учетные данные службе, но безуспешно.

Мы должны отключить анонимную аутентификацию, прежде чем мы начнем работать, поэтому я должен найти способ обезопасить службы, но не заставлять пользователей входить во второй раз внутри приложения.

1 Ответ

0 голосов
/ 05 января 2012

из коробки, которую вы не можете, silverlight не может делегировать какой-либо внешней службе по соображениям безопасности. Что вы можете сделать, это защитить свой канал WCF с помощью другого метода (например, на основе сертификата) и вручную отправить текущее имя пользователя. На стороне SharePoint вы можете выдать себя за пользователя.

Это будет довольно непростая вещь, чтобы начать, хотя :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...