【问题标题】:How to use saml sso with webforms如何在 Web 表单中使用 saml sso
【发布时间】:2018-02-15 15:28:03
【问题描述】:

我有一个网站网络表单,我需要集成 saml sso 身份验证。 我搜索了很长时间的任何信息,但有很多不同的东西,我无法正确识别正确的事情。

我能说的是我有一个 federationMetadata xml 文件,我想问我是否拥有它所需的所有信息,或者我是否需要更多信息来实现身份验证 sso。

我的理解是:

我必须发布一个带有一些参数的断言请求。 我不明白一些参数并尝试在 federationmetadata.xml 文件中找到它们。 喜欢发行人? 如何使用登录密钥?使用加密? 我必须开发一个 idp 和我必须使用的工具(例如,sustainsys) 我完全迷路了

感谢您的帮助。

【问题讨论】:

标签: c# asp.net webforms single-sign-on saml


【解决方案1】:

SAML 元数据应包含您需要从服务提供商处获得的所有配置信息。同样,您的身份提供者元数据应该是服务提供者所需的所有配置信息。

SAML 消息中的 issuer 字段对应于元数据中的实体 ID。

我建议查看可用的开源和商业产品,而不是开发自己的身份提供程序。

【讨论】:

  • 您好,感谢您的回答,我实际上正在寻找 WIF 和 wsfed 解决方案。我想,这就是我需要的。 SAML好像比较难,这两种方案有很大区别吗?
  • 没有。他们基本上做同样的事情。然而,大多数人使用 SAML SSO 而不是 WS-Federation。如果您计划支持多个不同的合作伙伴站点,您将与 SAML 有更多的互操作性。如果这不是问题,那么 WS-Federation 就可以了。
【解决方案2】:

您的问题有点模糊,但我想帮助澄清一些事情。您现在可能已经取得了进展。

首先,您使用的是 WIF,并且至少需要安装 WIF 运行时。它带有 WIF SDK。您将使用 FedUtil 工具

您需要将元数据文件作为文件或 URL 来配置您的配置。元数据有两个实例。

  1. 描述身份验证/登录发生位置的元数据。这是 FedUtil 工具将检查的内容,并将使用它来了解可用的声明(声​​明是成功登录后 Web 应用程序可用的各种用户信息)。

  2. 由 FedUtil 工具生成的元数据,用于描述您端的 Web 应用程序,以便可以配置身份验证端。

请注意,作为部署的一部分,此元数据交换会提前发生,并且必须在证书过期时进行更新。

FedUtil 工具配置 web.config 文件,以便对整个站点的访问得到处理,因此您必须先成功验证才能访问该站点。如果您使用的是标准的 asp.net 身份信息,那么您可以访问登录用户的详细信息,否则您可以直接访问声明。

您不需要自己做任何断言。这就是我们确定谁登录所需的全部内容:(注意“用户代码”是提供给我们的声明)。

(System.Security.Claims.ClaimsPrincipal)System.Threading.Thread.CurrentPrincipal).Claims.Where(x => x.Type == "usercode").Select(x => x.Value).FirstOrDefault();

还要注意 web.config 中的声明列表对系统没有任何影响,它只是供参考,我认为 Fedutil 工具可以再次使用。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 2016-07-20
    相关资源
    最近更新 更多