Создание настраиваемой активной службы STS для SharePoint 2010 с использованием Windows Identity Foundation - PullRequest
0 голосов
/ 21 ноября 2011

Может кто-нибудь сказать мне, могу ли я создать специальную активную службу безопасности tokebn для sharepoint 2010. Я в основном ищу создание пользовательских sts, при котором мне не нужно покидать сам сайт sharepoint для входа в систему.

Я видел примеры создания пользовательских пассивных sts, но ничего не могу увидеть для пользовательских пассивных sts.

Я довольно новичок в WIF, поэтому любые указатели или помощь будут очень признательны.

РЕДАКТИРОВАТЬ (22 ноября 2011 г.): Хорошо, может быть, я смотрю на все это неправильно.Первая проблема заключается в том, что у меня есть веб-сервисы и веб-сайт (ы), которые должны быть осведомлены о претензиях, и разрешать запросы к каждому как к одному и тому же идентификатору (в этом случае я не могу использовать пассивные sts для сервисов).Вторая проблема заключается в том, что я хочу иметь возможность интегрировать средства входа в систему на домашней странице моего веб-сайта. Насколько я понимаю, этого нельзя достичь с помощью пассивного sts.

EDIT (28 ноября 2011 г.):Ниже приведены рекомендации по идентификации сервера Thinktecture.У меня это довольно легко работает в пассивном сценарии, но я все еще не могу заставить его работать с конечной точкой ws-trust (активный сценарий).Я пытался создать пользовательскую веб-часть для входа в систему с помощью WSTrustChannelFactory и UserNameWSTrustBinding, но всякий раз, когда я вызываю ValidateToken, я получаю сообщение об ошибке «Издатель токена не является доверенным издателем».Доверие должно быть уже установлено, так как я могу войти, используя пассивный механизм входа в систему.

Matt

Ответы [ 2 ]

1 голос
/ 21 ноября 2011
  • Я видел примеры создания пользовательских пассивных sts, но ничего не вижу для активных? пассивных sts.

Посмотрите на Идентификационный сервер .Это активная и пассивная служба пользовательских токенов безопасности.

0 голосов
/ 30 ноября 2011

Потратив значительное количество времени на это, я дошел до корня своей проблемы (я думаю).Я пытался создать пользовательскую веб-часть для входа в систему, которую можно было бы развернуть на домашней странице моего приложения.Оказывается, где-то в реализации ValidateToken есть вызов SPPassiveIssuerName.GetIssuerName.В этом методе принимается решение, основанное на результате вызова TrustedProviderSignInPage.IsTrustedPageRequest (этот метод возвращает значение true, если запрос hhtpcontext относится к чему-то в виртуальном каталоге http://xxxx/_trust/).

ЕслиTrustedProviderSignInPage.IsTrustedPageRequest возвращает значение true, SharePoint выполняет поиск в TrustedLoginIssuerNameRegistry, что хорошо, поскольку мой сертификат зарегистрирован как доверенный.Однако, если он возвращает false, SharePoint проверяет только LocalLoginIssuerNameResgistry - который в основном жестко запрограммирован, чтобы возвращать только встроенный поставщик авторизации.Поскольку моя домашняя страница не находится в каталоге / _trust /, это никогда не сработает - что невероятно раздражает!

Итак, подведем итоги - вы, вероятно, можете сделать это только в SharePoint на странице, которую вы планируете разместитьконтроль входа в систему находится в каталоге / _trust /.

ВАЖНОЕ РЕДАКТИРОВАНИЕ (01/12/2011): Так что после вчерашнего тщательного спада у меня появилась идея заменить встроенный SharePointРеестр имен эмитентов (SPPassiveIssuerNameRegistry) со стандартным ConfigurationBasedIssuerNameRegistry и добавлением в мой IP-STS в качестве доверенного эмитента.Это немного продвинуло меня вперед, но я все еще получал ошибку при вызове SetPrincipalAndWriteSessionToken, что эмитент не может быть найден в реестре имен эмитента.Я не мог решить это часами, но в конце концов я решил реализовать собственный реестр имен эмитентов.После некоторой отладки выясняется, что в какой-то момент в процессе создания утверждений SharePoint пытается проверить свою встроенную службу маркеров безопасности (даже если я ее не использую).Поэтому я вернул пакет в реестр имен издателей, основанный на конфигурации, и добавил в SharePoint один из них, как доверенного (как и моего), - и все это, похоже, работает - woop!Я опубликую полное решение в какой-то момент и отправлю сюда со ссылкой.Будем надеяться, что он придерживается !!

Мэтт

Мэтт

...