【问题标题】:How do I expose WS-Federation metadata on ASP.NET MVC 5?如何在 ASP.NET MVC 5 上公开 WS-Federation 元数据?
【发布时间】:2019-05-02 14:38:29
【问题描述】:
我有一个使用 ASP.NET MVC 5 构建的 SAAS 应用程序,并且我有几个客户通过表单身份验证访问我的应用程序并且工作正常,但是我的一个客户是一家大型企业公司,要求我实现单点登录-在。我不确定我需要在我身边安装/实施什么。该客户端需要使用联合,它必须通过行业标准 WS-Federation 实现,并且我必须通过 Web 协议端点公开 WS-Federation 元数据,以便其 IDP 可以访问。他们还需要使用 SAML 2.0 HTTP 工件绑定。
【问题讨论】:
标签:
c#
asp.net-mvc-5
single-sign-on
saml-2.0
ws-federation
【解决方案1】:
通常,您只需生成一次元数据,然后通过 URL 或 XML 文件将其提供给 IdP。元数据将包含有关您的 SP 的信息,例如受众、重定向 URL、您需要的断言、证书密钥等。这个想法是,在 IdP 端设置它的人不必手动输入它们,可以简单地导入元数据;如果有任何更改(例如您的证书密钥),这也可以避免他们更新您的 SP 的设置。但是,如果您可以说服他们设置元数据将是一项艰巨的任务,那么配置 WS-Federation(我假设在他们这边的 ADFS 内)是可能的。您需要向他们提供的三个基本信息是:
- 您的领域(您的 SP 的标识符)
- 您的回复 URL(IdP 将在其中回发 SAML)
- 您希望在 SAML 中使用的断言(用户名、电子邮件地址等)
您还可以使用online tool 生成一次性元数据,然后您可以将其托管在您的网站上或通过电子邮件与 IdP 共享。
【解决方案2】:
所以你是在充当 IDP?
您可以使用 WS-Fed 或 SAML 2.0。你不会同时使用两者。
对于这两种协议,您都需要一个服务器端堆栈。
不知道任何 WS-Fed 服务器端堆栈,但对于 SAML,您可以使用来自 ComponentSpace 的堆栈。这支持工件绑定。
请注意,这是最难运行的 SAML 绑定,因为它也需要带外 SOAP 连接。
询问他们是否支持 HTTP Post 或 Redirect 绑定?
您的另一种选择是使用 Auth0 或 Okta 之类的东西。