SAML和.NET 4.5

时间:2014-06-30 21:31:28

标签: .net saml saml-2.0

我有一个IDP,我需要将我的应用程序与我集成。过去,我能够使用VS 2012中的Identity and Access工具扩展轻松设置IDP。我已经设置了ACS和其他使用Windows Federation的IDP。但是现在我有一个新的IDP,但它们没有为我提供该工具所需的联合元数据xml文件。我想弄清楚如何设置它。还有一个复杂程度。我需要创建一个" AuthRequest"。 WIF(Windows Identity Foundation)是否支持此操作或我是否必须手动执行此操作?这是我的方法请告诉我是否可以使用任何其他方法:

  • 生成AuthRequest:在Auth Request中指定服务url(post post url),签署xml文档(使用公钥提供IDP),base 64编码并对URL执行发布idp发送给我(通过SAMLRequest键值)。

  • 一旦用户登录IDP,saml响应将被发送到我在AuthRequest中指定的URL,然后我将采取saml响应(发布通过" SAMLResponse"键/值) ,base64对其进行解码,验证数字签名(它们为我提供了公钥),并通过XPATH遍历XML数据以检索NameID节点值。对于这部分,我正在考虑设置一个自定义的Http Handler。

  • 获取值后,请检查我的数据库以对用户进行身份验证,使用表单身份验证创建票证。现在用户已通过身份验证。

你能建议一个更好的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

否 - WIF不支持SAML。

您有两种选择:

向您的应用程序添加客户端SAML堆栈 - 一些示例here

或者使用ADFS作为桥接器,因为它支持SAML。