道歉的形象是可怕的質量,但它顯示了我想要達到什麼樣的情景,並想知道最佳解決方案是什麼?WIF與多個STS的
我有一個測試項目設置,使用RP到一個單一的STS - 在正常工作時,RP被定向到STS批准,然後發送一個令牌回來,簡單。
但是,我想在我的RP上的下拉列表中選擇一個「模式」,並基於此模式,您將重新授權給其中一個STS提供商。顯然,我無法直接轉向STS,因此它必須是動態的,並且爲即時刪除了web.config設置,重新指示.NET項目自動放置在那裏。
任何人都可以提供指導嗎?
道歉的形象是可怕的質量,但它顯示了我想要達到什麼樣的情景,並想知道最佳解決方案是什麼?WIF與多個STS的
我有一個測試項目設置,使用RP到一個單一的STS - 在正常工作時,RP被定向到STS批准,然後發送一個令牌回來,簡單。
但是,我想在我的RP上的下拉列表中選擇一個「模式」,並基於此模式,您將重新授權給其中一個STS提供商。顯然,我無法直接轉向STS,因此它必須是動態的,並且爲即時刪除了web.config設置,重新指示.NET項目自動放置在那裏。
任何人都可以提供指導嗎?
聽起來你會受益於使用Windows Azure的AppFrabric訪問控制服務(ACS)。您希望避免將應用程序中的代碼與每個STS提供程序進行通信,並且ACS旨在解決該問題。我們的想法是,您可以根據需要爲ACS配置儘可能多的STS提供程序,然後您的應用程序(使用WIF)僅與ACS進行通信以執行授權。
瞭解更多關於在這裏(在左側點擊「訪問控制」):http://www.microsoft.com/windowsazure/AppFabric/Overview/default.aspx
你也可以使用ADFS 2.0版做到這一點。任何其他與ADFS聯合的STS都將顯示在「Home Realm Discovery」下拉列表中。
AppFabric ACS是雲中的「本質上」ADFS,沒有什麼能夠阻止您聯合ADFS和ACS。
這就是你要做的。在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";
}
}
的「RedirectingToIdentityProvider」覆蓋正是我會做的一樣好。
只需在此發佈此鏈接,您可以在此找到IdentityFederationSamples的集合,如果這有助於獲得整個解決方案。有一個重定向到兩個STS中的一個的樣本,另一個顯示鏈接STS。 http://www.michelelerouxbustamante.com/post/Cloud-Connections-Las-Vegas-Links.aspx
非常好,謝謝。 – 2011-03-28 16:28:17
是否可以在Azure之外使用ACS?或@thedixon:你打算在Azure上部署嗎?如果兩個答案都是「否」,那麼我不明白這個答案是如何回答這個問題的。我錯過了什麼? – 2011-03-28 16:34:18
ACS在Azure中託管時,使用/消費ACS的應用程序可以在任何地方託管。 – 2011-03-28 16:37:55