Как настроить и вызвать неанонимные службы WCF из приложения SharePoint и WPF?

У нас есть веб-приложение CRM / ERP (ASP.Net Forms), работающее поверх SharePoint (WSS и 201x). С другой стороны, у нас есть надстройки для Office (WPF), тесно интегрированные с веб-приложением через службы WCF.

Оба в значительной степени полагаются на проект служб WCF тремя способами:

  1. Службы WCF, вызываемые из исходного кода
  2. Клиентские веб-службы с поддержкой AJAX с использованием webhttpbinding / enablewebscript
  3. Службы WCF, вызываемые из надстроек.

Однако есть проблема безопасности. В нашей текущей настройке службы WCF должны быть настроены на анонимную проверку подлинности. В противном случае наше веб-приложение и надстройки не будут работать с текущей конфигурацией.

Наша цель: чтобы каким-то образом отключить анонимный доступ к службам WCF, не нарушая работу веб-приложения или надстроек.

Это оказалось гораздо менее прямолинейным, чем ожидалось.

Это наша типичная установка:

  • Расширенный сайт SharePoint (WSS / 201x). Сопоставление альтернативного доступа конфигурация:
    • По умолчанию: Active Directory, NTLM.
    • Интранет: поставщик членства, анонимный доступ.
  • Веб-приложение ASP.Net работает в основном веб-приложении SharePoint (в IIS нет вспомогательного веб-приложения).
  • Проект служб WCF настроен в IIS как «вспомогательное» веб-приложение под веб-приложением SharePoint.

Это то, что мы придумали до сих пор:

  • Добавлен в сервисы WCF web.config
  • Изменен Проверка подлинности Windows -> Дополнительные настройки на следующий:
    • Расширенная защита: Принимать
    • [X] Давать возможность Аутентификация в режиме ядра
  • Конфигурация привязки клиента для надстроек и веб-приложения изменена на режим безопасности Транспорт с clientCredentialType Ntlm.

Вышеупомянутое решение работает в нашей тестовой среде SharePoint 2007 во всех трех вышеупомянутых местах.

Однако в SharePoint 201x мы не можем заставить работать вызовы WCF из веб-приложения. По крайней мере, не использовать те же клиентские привязки, что и надстройки (в то время как вызовы WCF из надстроек также работают в SharePoint 2013).

Мы получаем следующее сообщение об ошибке: В пакете безопасности нет учетных данных. Еще одна проблема, с которой мы столкнулись: Тип провайдера не определен. (Исключение из HRESULT: 0x80090017)

Вопрос: Как мы можем использовать службы WCF неанонимно из веб-приложения SharePoint и из WPF?

Есть идеи, как настроить и вызвать их в этом сценарии? (тем или иным способом)

Любые мысли по этому поводу приветствуются!

Обновлять: мы рассмотрели возможность защиты служб WCF с помощью ADFS, что поначалу выглядело многообещающим. Но, к сожалению, это не жизнеспособный вариант, потому что он требует большой настройки контроллера домена, а это не то, что мы можем легко сделать в средах наших клиентов.
EddyZ 19.07.2018 10:44

На данный момент наша лучшая рекомендация - это статья о службах WCF с проверкой подлинности и авторизации на основе утверждений: future-processing.pl/blog/… Конечно, мы не хотели бы использовать нашу собственную настраиваемую службу STS, но для этого используем SecurityTokenService SharePoint.

EddyZ 19.07.2018 10:49

Но, конечно, многие дороги ведут в Рим ... Есть ли другие способы предотвращения анонимного доступа к службам WCF, которые мы можем рассмотреть? Мне кажется, что для этого должно быть как-то довольно прямолинейное решение. Мы, конечно, не первые, кто хочет защитить наши настраиваемые службы WCF в SharePoint на основе утверждений от анонимного доступа, это точно. Может, мы упускаем что-то тривиальное, но важное? Спасибо, Эдди

EddyZ 19.07.2018 11:31
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
187
0

Другие вопросы по теме