【发布时间】:2014-02-25 04:30:42
【问题描述】:
我正在用 C# 开发一个 MVC 4 Web 应用程序,并希望使用现有的 SAML 2.0 身份提供程序来处理登录。我正在使用HTTP POST binding 和SimpleSAMLphp。
看来,在 .NET 4.5 中,我应该使用 Windows Identity Foundation。首先,我尝试安装Identity and Access Tool。 (我使用的是Visual Studio 2013,它应该集成了这个工具,但是VS2013的版本doesn't support "re-entrancy",这意味着我不能用它来为我现有的应用程序添加WIF支持。)
将身份和访问工具指向我的身份提供者的元数据后,我收到以下错误消息:
显然,这是指示 SAMLP 2.0 is not supported by WIF 的错误消息。这似乎与受支持的 SAML 2.0 tokens 不同(至少,这个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,感觉应该有更简单的方法。
【问题讨论】:
标签: c# asp.net .net asp.net-mvc saml-2.0