我应该如何在ASP.NET MVC 4服务提供程序中实现SAMLP 2.0?

sjy*_*sjy 20 .net c# asp.net asp.net-mvc saml-2.0

我正在使用C#开发一个MVC 4 Web应用程序,并希望使用现有的SAML 2.0身份提供程序来处理登录.我正在使用与SimpleSAMLphp的HTTP POST绑定.

看起来,在.NET 4.5中,我应该使用Windows Identity Foundation.首先,我尝试安装身份和访问工具.(我使用的是Visual Studio 2013,它应该集成了这个工具,但是VS2013的版本不支持"re-entrancy",这意味着我不能用它来为我现有的应用程序添加WIF支持.)

在将Identity and Access Tool指向我的身份提供者的元数据后,我收到以下错误消息:

userSelection.SecurityTokenServiceMetadata.SecurityTokenServiceDescriptor

显然,这是错误消息,表明WIF不支持SAMLP 2.0.这似乎与支持的SAML 2.0 令牌不同(至少,这个过时的文档表明存在Microsoft.IdentityModel.Tokens.Saml2命名空间).

然后我发现了SAML 2.0WIF扩展.然而,这是在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,感觉应该有一种更简单的方法.

And*_*bel 17

你是对的,WIF(现在转移到核心.NET下System.IdentityModel)只支持SAML2令牌,而不支持实现服务提供者所需的SAML2协议.

Kentor.AuthServices是一个基于.NET 4.5构建的ASP.NET MVC的开源SP实现.安装软件包并在web.config中添加一些设置 - 无需编码.

免责声明:我是作者 Kentor.AuthServices