SSO 元数据和 C# MVC

SSO Metadata and C# MVC

我是 SSO 的新手,正在尝试让它在我的组织和另一家公司之间运作。我的理解是,我 post 将凭据数据发送到他们暴露在互联网上的 SSO 服务器,如果成功,他们会 post 将数据返回到我的 C# MVC Web 应用程序以及有关用户的数据。

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

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

如有任何帮助,我们将不胜感激。

谢谢

尤里

他们正在尝试建立基于 SAML2 的单点登录解决方案。 SAML2 基本上通过在 URL 中使用编码的 AuthnRequest 将用户重定向到 Idp 来工作。用户在 idp 中输入凭据(您的应用程序永远不会看到实际的凭据),然后将编码的 SAML2 响应发布到您的应用程序。正确验证这一点并非易事。您需要首先对 XML 签名进行正确验证(包括检查大多数人忘记的引用),然后验证断言中的所有条件。*

元数据是一种描述 URL 各方希望将消息发送到什么地方、消息应该如何编码(使用什么绑定)、用于签署消息的证书等的方式.基本上是对所需配置参数的标准化总结

不要自己做这件事。它比预期的要复杂得多。我已经尝试并学到了艰难的方法。使用现成的 SAML2 库。我的名为 Kentor.AuthServices,可在 GitHub/Nuget 上使用,还有其他开源和商业选项。

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