任何人都可以请您尝试澄清有关使用SAML进行单点登录的问题。
string rawSamlData = Request["SAMLResponse"];
此代码获取身份提供者SAML响应吗? 提前致谢。
答案 0 :(得分:6)
滚动自己的SAML确实可行,但这有点工作。我已经在.NET 4.5上完成了它,它支持验证断言,但我必须构建自己的saml协议处理。在VS2005上,你对框架的支持要少得多,但它仍然可行。
回答你的问题:
一个。是的,Request["SAMLResponse"]
应该包含来自idp的saml响应。
B中。 SAMLResponse将包含带有SAML响应的BASE64编码的xml。
℃。 SAML <Response>
消息包含<assertion>
节点,该节点是用户的数据。您必须自己创建一个.NET标识。然后,您可以使用表单身份验证cookie机制来保持用户登录。
d。不明白这个问题。
如果您可以升级到更好地支持SAML并声称内置身份验证的.NET 4.5,那应该会好得多。但是我认为我在Kentor.AuthServices中完成的代码可以向后移植到.NET 3.5。
答案 1 :(得分:6)
我们编写了一个免费的开源模块,将SAML添加到ASP.NET应用程序中,我们专门针对.NET 4.0及更低版本(没有内置SAML,也没有内置的XML SHA256签名)支持)。 https://github.com/jitbit/AspNetSaml
您仍然可以在.NET 4.5及更高版本中使用它,以避免来自.NET库(如System.Deployment等)的不必要的依赖。它只是您可以放入项目中的一个简短的C#文件。
[免责声明]我是其中一位贡献者!
答案 2 :(得分:0)
听起来你正试图推出自己的SAML堆栈?
使用现有库会更容易 - 请参阅SAML : SAML connectivity / toolkit 。
这些提供了您需要的所有管道。
VS 2005可能会提供一些问题。至少,您需要ASP.NET 3.5。所有的身份工具都缺失了(FedUtil /身份和访问工具等)