如何将 saml sso 与 webforms 一起使用

How to use saml sso with webforms

我有一个网站webforms,需要集成saml sso认证。 我搜索了很长时间以寻找任何信息,但有关的东西太多了,以至于我无法正确识别正确的事情。

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

我的理解是:

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

感谢您的帮助。

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

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

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

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

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

您需要元数据文件作为文件或在 URL 中,您可以使用它来配置您的配置端。有两个元数据实例。

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

  2. FedUtil工具生成的元数据,描述您这边的web应用,以便配置认证端。

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

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

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

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

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

希望这对您有所帮助。