Подтвердить что ты не робот

В WCF/WIF, как объединить претензии от двух разных пользовательских маркеров клиента

Я пытаюсь создать что-то вроде: Client аутентифицируется и получает токен из пользовательского STS1, следующий клиент авторизуется с помощью машинного ключа и выдает токен на пользовательском STS2 и получает еще один токен. С последним токеном клиент запрашивает методы в службе RP.

Все службы размещаются в IIS и используют сценарий активной федерации. Оба STS имеют конечные точки с привязками ws2007Federation и ws2007Http, а RP используют ws2007FederationBinding с STS2 в качестве эмитента.

Если я создаю канал с CreateChannelWithIssuedToken, я могу видеть только токен из STS1 и не могу получить токен от STS2.

Итак, я решил передать токен из STS1 как свойство ActAs RST по запросу на токен STS2. И это не удалось - не может дешифровать токен.

  • Как передать оба токена в STS2 и слить в них претензии?
  • Это плохая идея - отправить с RST только что извлеченные заявки из токена STS1?
4b9b3361

Ответ 1

Обычно вам нужно использовать только один токен на каждом шаге. Поэтому, если вам нужно объединить претензии, вы захотите сделать это на этапе преобразования претензий второй STS.

Таким образом, поток будет аутентифицироваться с помощью STS1, а затем аутентифицироваться с помощью STS2 с маркером из STS1. В этот момент вы пройдете через формулы и перейдете, чтобы добавить дополнительные требования по мере необходимости. Затем полученный токен будет готов к использованию из приложения RP.

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

http://www.livingthearchitecture.com/mixing-sso-with-existing-technologies/

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