1

Помещение: У меня есть инфраструктура, в которой у нас есть настраиваемый RP-STS, реализованный с Windows Identity Foundation, предоставляющий SSO для нескольких сайтов. Этот STS связывается с сайтами через WSFederation. Этот пользовательский STS должен быть устаревшим, потому что организация добавляет Open ID Connect Idp в инфраструктуру.Аннотация OpenID Connect Idp за Windows Identity Foundation STS

Сами сайты (Episerver) содержат всю логику авторизации на заказ, уже основанную на требованиях, предоставляемых STS, и если бы мы просто бросили STS, нам пришлось бы заменить всю эту логику.

Вопрос: Что такое поток редирект браузера интегрировать наши RP-STS с OpenId подключения провайдера таким образом, что браузер конечный пользователь получает сеанс для обоих наших RP STS и Open Id Connect IdP?

Личные мысли о том, как это могло бы быть выполнимо (на основе массивных предположений о том, как OpenID Connect работает), пропустите это, если вы знаете, как ответить:

  1. Сайт посылает HTTP POST для RP-STS, содержащих имя пользователя/пароль
  2. RP STS отвечает браузер с перенаправлением на OpenId Connect IDP (Перенаправление содержит имя пользователя/пароль и адрес REPLYTO устанавливается на RP STS)
  3. OpenId Connect IDP создает локальный сеанс (???) и отвечает перенаправлением на RP STS, перенаправление содержит auth_to кен. (Я не уверен в деталях, которые входят в поток входа openid connect)
  4. RP STS получает пользовательский токен и получает/запрашивает пользовательские данные, строит претензии и строит локальную сессию
  5. RP STS отправляет претензии в токен SAML через WSFed на сайт RP

Я даже близко?

Дальнейшее уточнение:

  • Я не хочу, чтобы удалить существующий STS, но абстрагировать новое изменение инфраструктуры за ней так, что из логики конечных пользователей сайтов перспективной, объектов идентичности и авторизации оставаться без изменений.
  • мне нужна помощь конкретно в том случае, если поток Логин/выход из системы выполнимо между STS и Open ID Connect IDP

ответ

2

WIF и OpenID Connect совершенно разные протоколы, например, WIF - это в основном браузер, основанный на пассивном профиле. Типы токенов различны - SAML и JWT и т. Д.

Способ сделать это через OWIN (Katana - это реализация Microsoft). Существуют пакеты NuGet для WS-Fed и OpenID Connect.

Имеются образцы, доступные для Azure AD - см. Microsoft Azure Active Directory Samples and Documentation, которые вы могли бы использовать в качестве руководства.

OWIN позволит вам использовать оба протокола.

На самом деле, взгляните на IdentityServer3.

Это реализация STS с открытым исходным кодом.

+0

WIF не является протоколом безопасности. Это библиотека Microsoft, которая реализует такие протоколы, как WS-Trust и WS-Federation. Он был заменен классами в пространстве имен System.IdentityModel в .NET 4.5. – MvdD

+0

Если бы я должен был поменять мой сайт конечного пользователя на использование OWIN для auth, то идентификация в этом конце также выглядела бы иначе, и вся логика авторизации пришлось бы переписать. Этого я хочу избежать, и мой вопрос связан с этим. Мой вопрос больше связан с открытым потоком, и если это выполнимо. Чтобы уточнить следующее: я не хочу удалять STS, который у нас есть, я хочу отвлечь за собой новую инфраструктуру. –

+0

MvdD - Чтобы быть ясным - классы в 4.5 все еще WIF. Это просто часть .NET, а не отдельная загрузка. Таким образом, WIF 3.5 переходит на WIF 4.5. – nzpcmad