我正在C#中開發MVC 4 Web應用程序,並且想要使用現有的SAML 2.0身份提供程序處理登錄。我正在使用HTTP POST binding和SimpleSAMLphp。我想應該使用。首先,我試圖安裝Identity and Access Tool。 (我正在使用Visual Studio 2013,它應該集成了此工具,但是VS2013的版本爲doesn't support "re-entrancy",這意味着我無法使用它將WIF支持添加到我的現有應用程序中。)我應該如何在ASP.NET MVC 4服務提供者中實現SAMLP 2.0?
指向標識和訪問工具我的身份提供者的元數據,我得到這個錯誤信息:
顯然,這是指示SAMLP 2.0 is not supported by WIF錯誤消息。這似乎與支持的SAML 2.0 令牌不同(至少此outdated documentation表示存在Microsoft.IdentityModel.Tokens.Saml2
名稱空間)。
然後我發現了WIF Extension for SAML 2.0。然而,這是在2011年5月發佈的,從那以後似乎並沒有被觸及。儘管如此,我下載了擴展並嘗試構建ZIP文件中包含的SamlConfigTool。該工具是一個控制檯應用程序,通知我:
此工具將提示創建描述依賴方的元數據文件所需的信息。它會提示輸入合作伙伴元數據文件的地址。最後,它將輸出一個名爲
Changes_To_Web_Config.xml
的文件,其中應該對您的網站的web.config文件進行更改以啓用SAML保護。
在輸入我的實體ID和SAML端點後,SamlConfigTool立即崩潰。好的,也許我不需要使用配置工具,我可以複製示例ServiceProvider VS項目中完成的工作。遷移之後,我可以在VS2012中打開項目,但我不清楚它是如何工作的 - 它似乎沒有包含任何C#代碼,只是Web.config中的新條目。我不清楚我應該如何調整這個配置來替換我的MVC 4應用程序中的自定義登錄代碼,並且在任何情況下依賴3年前的死亡庫都不是一個好主意。
那麼,在ASP.NET MVC 4中實現SAML 2.0的最佳方式是什麼?我目前正在手動解碼,編碼,解析和壓縮XML,感覺應該有更簡單的方法。
我已經安裝了AuthServices和在我的'Web.config'中添加了[適當的部分] [1],並且我的項目仍在構建中,但我無法讓AuthServices執行任何操作。將'[Authorize]'屬性添加到我的'ActionResult'中似乎沒有任何作用。 – sjy
嘗試使用http:// yoursite/AuthService/SignIn。它應該開始登錄(我顯然需要用MVC的東西來更新文檔)。要獲得自動重定向,請將auth模式設置爲forms並將loginUrl設置爲〜/ SignIn:http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.loginurl(v=vs.110)。 aspx –
你的意思是AuthServices/SignIn加上「S」 – JDPeckham