SSO元数据和C#MVC

时间:2017-05-30 21:45:32

标签: c# model-view-controller single-sign-on saml

我是SSO的新手,我正试图让我的组织与另一家公司合作。我理解它的方式是,我将凭证数据发布到他们的互联网暴露的SSO服务器,如果成功,他们会将数据发回到我的C#MVC Web应用程序,其中包含有关用户的数据。

然而,另一个组织要求提供SAML xml元数据文件。然后他返回了自己的元数据文件。

我不确定他为什么要求提供文件并提供自己的文件。我在MVC网络应用程序中如何处理元数据文件?他们是否试图在我们的AD服务器之间建立信任?

任何帮助将不胜感激。

由于

尤里

1 个答案:

答案 0 :(得分:1)

他们正在尝试设置基于SAML2的单点登录解决方案。 SAML2基本上是由您将用户重定向到Idp,并在URL中使用编码的AuthnRequest。用户在idp处输入凭据(您的应用永远不会看到实际的凭据),然后将编码的SAML2响应发布到您的应用。正确验证是非常重要的。您需要首先正确验证XML签名(包括检查大多数人忘记的引用),然后验证断言中的所有条件。*

元数据是一种描述每一方希望​​将消息发送到哪些URL,消息应如何编码(使用什么绑定),用于签署消息的证书等的方式。基本上是标准化的摘要。必需的配置参数。

不要自己做这件事。它比预期的要复杂得多。我努力学习并学到了很多东西。使用现成的SAML2库。我的名为Kentor.AuthServices,可在GitHub / Nuget上获得,还有其他开源和商业选项。

*)有各种变体,我在这里描述的是最常见的流程,通过HTTP重定向绑定的AuthnRequest,然后是HTTP POST绑定的简单SamlResponse。