我正在开发一个需要集成 SAML2.0 的项目。我突然被投入到这个项目中,我需要让它发挥作用。这是背景:我们创建了文件并希望客户公司使用 SAML2 进行集成以访问我们的网站。我们已经向他们发送了元数据文件。
现在客户公司已经发送了他们的元数据文件。我不知道如何以及如何处理该文件。任何帮助将不胜感激。
ASP.NET,框架 4.0
我正在开发一个需要集成 SAML2.0 的项目。我突然被投入到这个项目中,我需要让它发挥作用。这是背景:我们创建了文件并希望客户公司使用 SAML2 进行集成以访问我们的网站。我们已经向他们发送了元数据文件。
现在客户公司已经发送了他们的元数据文件。我不知道如何以及如何处理该文件。任何帮助将不胜感激。
ASP.NET,框架 4.0
元数据文件基本上为您提供客户的信息。如 entityID、credential 等。如果它是 IdP,那么它还包含几个 URL,以便您知道在哪里发送不同的请求,例如登录请求、属性查询请求。您需要将此元数据提供给您的 SAML 组件,以便它知道应该与哪个客户端通信。
另一个主要目的是在 SP 和 IdP 之间建立信任关系。
这是一个老问题,但我想为.NET 添加一些额外的信息和资源。
SAML 元数据用于在服务提供者和身份提供者之间交换配置信息,反之亦然。这些信息可以包括:
可以对元数据进行签名和加密,以便安全地发送信息。对方可能需要相应的公钥对其进行验证和解密,然后可以用来理解和建立与SP或IdP的连接。
您可以在以下博客文章中看到更多信息:
安全断言标记语言 (SAML) 是一种标准,用于根据用户在另一个上下文中的会话将用户登录到应用程序。与使用用户名/密码登录相比,此单点登录 (SSO) 登录标准具有显着优势:
1.无需输入凭证
2.无需记住和更新密码
3.没有弱密码
使用 SAML SSO 登录可以轻松管理一棵树中的所有应用程序。
How actually SAML works:
用户使用 Intranet 上的链接、书签或类似的链接访问远程应用程序,然后加载应用程序。
应用程序识别用户的来源(通过应用程序子域、用户 IP 地址或类似地址)并将用户重定向回身份提供者,要求进行身份验证。这是身份验证请求。
用户要么与身份提供者有一个现有的活动浏览器会话,要么通过登录身份提供者建立一个。
身份提供者以包含用户用户名或电子邮件地址的 XML 文档的形式构建身份验证响应,使用 X.509 证书对其进行签名,并将此信息发布给服务提供者。
已经知道身份提供者并具有证书指纹的服务提供者检索身份验证响应并使用证书指纹对其进行验证。
建立用户的身份并为用户提供应用程序访问权限。
查看元数据 SAML 2.0 规范以检查您的实现必须读取哪些元素。
如果您正在寻找 SAML2 .Net Tookit,请查看stackoverflow 的这个线程
还可以查看 SAML 开源实现,了解其他人之前是如何解决此问题的:
元数据只不过是包含 SAML 实现与主机通信所需的所有信息的 xml 文件。您可以从此元中提取信息以获得所需的所需信息。像公钥/私钥一样。我希望您也使用证书以安全的方式与主机交谈。与未知主机系统握手时需要此密钥。