如何在asp.net中实现SAML?

Gop*_*h G 0 saml-2.0

任何人都可以请您尝试澄清我使用SAML进行单点登录的问题.

  • a)我们可以通过string rawSamlData = Request["SAMLResponse"];此代码获得身份提供者SAML响应吗?
  • b)SAML响应中的标记是什么?
  • c)我们如何在asp.net C#(vs2005)中接收令牌值?
  • d)我们可以强制身份提供者将用户值作为标记值发送吗?

提前致谢.

And*_*bel 6

滚动你自己的SAML确实是可能的,但它有点工作.我已经在.NET 4.5上完成了它,它支持验证断言,但我必须构建自己的saml协议处理.在VS2005上,你对框架的支持要少得多,但它仍然可行.

回答你的问题:

Request["SAMLResponse"]答:是的,应该包含来自idp的saml响应.

B. SAMLResponse将包含带有SAML响应的BASE64编码的xml.

C. SAML <Response>消息包含一个<assertion>节点,该节点是用户的数据.您必须自己创建一个.NET标识.然后,您可以使用表单身份验证cookie机制来保持用户登录.

D.不明白这个问题.

如果您可以升级到更好地支持SAML并声称内置身份验证的.NET 4.5,那应该会好得多.但是我认为我在Kentor.AuthServices中完成的代码可以向后移植到.NET 3.5.


jaz*_*cat 6

我们编写了一个免费的开源模块,将SAML添加到ASP.NET应用程序中,我们专门针对.NET 4.0及更低版本(没有内置SAML,也没有内置的XML SHA256签名支持).https://github.com/jitbit/AspNetSaml

您仍然可以在.NET 4.5及更高版本中使用它,以避免来自.NET库(如System.Deployment等)的不必要的依赖.它只是您可以放入项目的一个简短的C#文件.

[免责声明]我是贡献者之一!

  • 我已经在一个简单的asp.net网页中使用了它,并且效果很好。谢谢 (2认同)