如何在 ASP.NET MVC 5 上公开 WS-Federation 元数据?

How do I expose WS-Federation metadata on ASP.NET MVC 5?

我有一个使用 ASP.NET MVC 5 构建的 SAAS 应用程序,我有几个客户通过表单身份验证访问我的应用程序并且工作正常,但我的一个客户是一家大型企业公司,需要我实现单点登录。我不确定我需要 install/implement 做什么。该客户端需要使用联合,它必须通过行业标准 WS-Federation 实现,我必须通过 Web 协议端点公开 WS-Federation 元数据,以便其 IDP 可以访问。他们还需要使用 SAML 2.0 HTTP Artifact Binding。

所以你在充当国内流离失所者?

您可以使用 WS-Fed 或 SAML 2.0。你不会同时使用两者。

对于这两种协议,您都需要服务器端堆栈。

不知道任何 WS-Fed 服务器端堆栈,但对于 SAML,您可以使用来自 ComponentSpace 的堆栈。支持工件绑定。

请注意,这是最难工作的 SAML 绑定,因为它还需要带外 SOAP 连接。

询问他们是否支持 HTTP Post 或重定向绑定?

您的另一种选择是使用 Auth0 或 Okta 之类的东西。

通常,您只需生成一次元数据,然后通过 URL 或作为 XML 文件将其提供给 IdP。元数据将包含有关您的 SP 的信息,例如受众、重定向 URL、您需要的断言、证书密钥等。这个想法是在 IdP 端设置它的人不必手动输入它们并且可以简单地导入元数据;如果有任何更改(例如,您的证书密钥),这也可以避免他们更新您的 SP 的设置。但是,如果您可以说服他们设置元数据将是一项艰巨的任务,那么配置 WS-Federation(我认为在他们这边的 ADFS 中)是可能的。您需要向他们提供的三项基本信息是:

  • 您的领域(您的 SP 的标识符)
  • 您的回复URL(IdP 将post-支持 SAML)
  • 您希望在 SAML 中的断言(用户名、电子邮件地址等)

您还可以使用 online tool 生成一次性元数据,然后您可以将其托管在您的网站上或通过电子邮件与 IdP 共享。