我的要求是在asp.net中使用SAML2.0實現SSO。 我在我的最後有2個供應商。想要將用戶從一個站點傳遞到其他站點而不登錄到第二個站點。我以前從未使用過SAML2.0。 任何人都可以幫我解決問題,我該怎麼做。在asp.net中使用SAML2.0的SSO
感謝, 蒂帕
我的要求是在asp.net中使用SAML2.0實現SSO。 我在我的最後有2個供應商。想要將用戶從一個站點傳遞到其他站點而不登錄到第二個站點。我以前從未使用過SAML2.0。 任何人都可以幫我解決問題,我該怎麼做。在asp.net中使用SAML2.0的SSO
感謝, 蒂帕
我建議你使用它簡化了處理基於SAML的身份驗證的Windows標識基礎子系統。
的主題是相當廣泛的,所以你需要一個很好的手冊,好在有一個,對於無MS:
http://msdn.microsoft.com/en-us/library/ff423674.aspx
簡而言之:通過兩個服務器之間的身份,其中一人應實施身份提供商服務(安全令牌服務),第二個必須接受由第一個創建和簽名的SAML令牌。
首先讓我們用令牌格式來區分協議。我假設你在談論協議而不是令牌格式。但以防萬一這裏有區別:
對你們在其中有多個身份提供商的場景另一方面。 Wiktor建議的書(我與他人共同撰寫)在Federated Identity with Multiple Partners chapter上更詳細地解釋了這種情況。我建議您閱讀它以獲取身份聯合背後的概念。讓我給你簡短的文章和一些實現細節。有兩種解決方法:
在應用程序級別實現它。 WIF將允許您信任多個身份提供商令牌(這是通過X509證書完成的)。然後,您必須根據網址(如https://idp1.yourapp.com或https://yourapp.com/idp1)或用戶選擇(通過讓主頁有兩個鏈接,每個身份提供者一個鏈接)爲每個身份提供者生成登錄請求。您還必須對來自這些身份提供者的聲明進行規範化(也許其中一個會向您發送「名稱」聲明,另一個聲明)。
YourApp --> Identity Provider 1
\-> Identity Provider 2
使用所謂的「聯邦提供者」。這是另一臺將向您的應用程序發放令牌的服務器,它將與您的身份提供商建立信任關係。您不要讓應用程序信任這兩個身份提供者,而只信任您的聯邦提供者,而提供者將信任身份提供者。這是一個信任鏈。
YourApp --> Federation Provider --> Identity Provider 1
\-> Identity Provider 2
這種架構允許您:
當然,壞處是你現在有其他東西來維護(ADFS服務器)。
這麼棒的總結。謝謝。令人驚訝的是很難找到它凝聚到這。 –
我會建議使用ComponentSpace。他們提供庫以適應SAML 2.0令牌和SAML 2.0協議的所有用例。除CTP外,WIF目前不提供對SAML 2.0協議和令牌格式的支持。
.Net 4.0支持SAML 2.0 – Ravia
@Ravia - 你可以提供任何可用的鏈接。據我所知,看到這個鏈接 - http://connect.microsoft.com/site1168/Downloads/DownloadDetails.aspx?DownloadID=36088它是一個CTP版本,而不是一個RTM。 – kshbondili
你是對的,我的錯誤上來投票答案。 – Ravia
我們寫了一個非常簡單的開源C#組件與ASP.NET應用程序的使用方法:https://github.com/jitbit/AspNetSaml(代碼示例包括)
它很短,基本的,但是那是目標。不要添加一個龐大的第三方軟件包,只需將一個簡短的C#文件放入您的項目中,並且您已準備好SAML。這件事已經爲我們帶來了多年,甚至在.NET 3.x的
[免責聲明]我的貢獻者之一。
PS。叉子和貢獻是非常受歡迎的。
謝謝Wiktor的Zychla爲您的寶貴意見。讓我看看這個。 – dipa
@Wiktor Zychla這是很酷的鏈接 – Ravia