WIF с несколькими STS - PullRequest
       5

WIF с несколькими STS

3 голосов
/ 28 марта 2011

Извиняюсь за ужасное качество изображения, но он показывает мой сценарий того, чего я пытаюсь достичь, и задаюсь вопросом, каково наилучшее возможное решение для этого?

WIF Scenario

У меня есть тестовая настройка проекта с использованием RP для одного STS - в котором все работает нормально, RP направляется в STS для утверждения, а затем отправляет маркер обратно, просто.

Однако я хочу, скажем, раскрывающийся список на моем RP, в котором вы выбираете «режим», и на основе этого режима вы будете перенаправлены для авторизации одному из поставщиков STS. Очевидно, что я не могу перенаправить прямо к STS для этого, и поэтому он должен быть динамическим, а параметры web.config, удаленные для мгновенного перенаправления, автоматически помещают туда проекты .NET.

Кто-нибудь может дать руководство по этому вопросу?

Ответы [ 4 ]

4 голосов
/ 06 мая 2011

Вот что вы делаете. В global.asax добавьте этот код

void WSFederationAuthenticationModule_RedirectingToIdentityProvider(object sender, RedirectingToIdentityProviderEventArgs e)
{
    string whr = HttpContext.Current.Request.QueryString["whr"]; 
    if (!string.IsNullOrEmpty(whr))
    {
        //add your logic to determine the STS
        e.SignInRequestMessage.HomeRealm = @"http://path-to-STS";
    }
}
4 голосов
/ 28 марта 2011

Звучит так, как если бы вы воспользовались Службой контроля доступа Windows Azure AppFrabric (ACS). Вы хотите избежать размещения кода в своем приложении для связи с каждым поставщиком STS, и ACS предназначен для решения этой проблемы. Идея состоит в том, что вы конфигурируете ACS с таким количеством поставщиков STS, сколько хотите, а затем ваше приложение (используя WIF) связывается исключительно с ACS для выполнения авторизации.

Подробнее об этом здесь (нажмите «Контроль доступа» слева): http://www.microsoft.com/windowsazure/AppFabric/Overview/default.aspx

1 голос
/ 07 августа 2011

Переопределение «RedirectingToIdentityProvider» - это именно то, что я хотел бы сделать.

Просто разместив здесь эту ссылку, вы можете найти коллекцию IdentityFederationSamples, если это поможет получить полное решение.Существует пример для перенаправления на один из двух STS, есть другой, который показывает связывание STS.http://www.michelelerouxbustamante.com/post/Cloud-Connections-Las-Vegas-Links.aspx

1 голос
/ 29 марта 2011

Вы также можете использовать ADFS v2.0 для достижения этой цели. Любые другие службы STS, объединенные с ADFS, появятся в раскрывающемся списке «Обнаружение домашней области».

AppFabric ACS является «по существу» ADFS в облаке, и ничто не мешает вам объединить ADFS и ACS.

...