一般来说是这样的。有加密,然后在 SAML 中唱歌。您永远不想在没有用于 SAML 的数字签名的情况下投入生产。我想您可以出于测试目的禁用签名处理。我们在 SiteMinder 联合服务 (SMFSS) 中允许这样做,仅用于测试目的。因此,话虽如此,您并没有在谈论数字签名,而只是在谈论加密。
但这是我自己非常愚蠢的描述中的两者的概要,虽然我的解释方式听起来很愚蠢,但我希望它会对你有所帮助。如果你已经知道这一点,我提前道歉。另一件事是这是非常基本的,但您可以在 google 搜索加密、解密、证书等方面获得更多详细信息。
实际上,这是我用来培训新的支持人员以使用 SMFSS(SiteMinder 联合服务)进行联合的简要说明,最后是我写的关于证书的部分。这只是我很快写出来的东西,看起来不是很漂亮,但它确实可以快速完成工作。它是作为我对已经安装了 SiteMinder 的 POC SAML 2.0 POST 客户所做的复制而编写的。我只是想我会给你这个,因为它有很多工具,一旦你开始,你可能会发现它们很有用,以防你已经不知道它们。 ;-)
您将需要两个环境,分别是 Agent、Agent OP、Policy Server、Policy Server OP。需要两名代理,因此一名可以是 IDP 和一名 SP。
要设置代理选项包,请参阅:
第 8 章:联合 Web 服务应用程序设置和将联合 Web 服务部署为 Web 应用程序并配置 ServletExec 以使用联合 Web 服务
现在设置 SAML 2.0 POST 身份验证:您应该逐步使用以下内容。但首先请参阅设置必须匹配的章节,因为它们需要匹配 IDP 和 SP 端。下面关于 IDP 和 SP 设置的章节几乎是一步一步来的,真的,按照 14 和 16 一步一步来,你就可以开始了。
第 22 章:必须使用相同值的配置设置
然后使用它来设置 IDP 和 SP:
第 14 章:将 SiteMinder 配置为 SAML 2.0 身份提供者
第 16 章:将 SiteMinder 配置为 SAML 2.0 服务提供者
运行您的 SAML 2.0 事务并获取它的 Fiddler Trace。取出证书并创建一个 .cer 文件。拉出断言并使用以下工具在线检查 XML。
设置 Fiddler 工具并确保您已启用 HTTPS 解密。我在这里有链接,但只需转到 gllgle 并输入“Fiddler Tool HTTPS 解密”,你就会得到它。
用于查看使用从 Fiddler 中取出的 SAML 事务发布或重定向的 URL 通常:
https://rnd.feide.no/simplesaml/module.php/saml2debug/debug.php
当我遇到解析错误或其他错误,合作伙伴说我们的断言不好或者我们的合作伙伴断言不好时,我已经多次使用它来验证 XML(断言)。我喜欢先检查语法,如果没问题,然后检查 SAML 规范,看看它们在 SAML 断言本身中是否有正确的值。换句话说,确保它符合 SAML。
http://www.w3schools.com/dom/dom_validate.asp
提示:您可以从我们的日志或 Fiddler Traces 中取出 base 64 编码的证书信息,然后粘贴到记事本并保存为 name.cer。然后,当您打开此文件时,您可以查看客户正在使用的证书。这很有帮助,因为您可以查看他们是否拥有正确的证书,并查看他们的根 CA 是谁或他们的中间根 CA。确保您获得所有数据,包括可能位于证书信息行末尾的 = 或 ==。
在执行 SLO 或 Artifact 时,合作伙伴需要在后台通道上连接到其他合作伙伴站点上的 Web 服务器。发生这种情况时,正在连接的 Web 服务器将通过 SSL/HTTPS 提供服务。这意味着连接到该服务器的人必须具有 ROOT CA 证书,该证书在其密钥库中签署了 Web 服务器的证书。这与打开浏览器并连接到 HTTPS Web 服务器时的原理相同。所有浏览器都带有已导入其中的主要 Root CA 证书。这样做的全部意义在于,当您将证书放在网络服务器上时,并不是为了保护,而是让任何连接的人都知道您确实是那个网站,并且确实是您所说的那个人。您拥有证书的事实使您的网站成为 HTTPS,您相信他们就是他们所说的人的原因是,当您连接时,他们会为您提供证书,并且如果您在网站上拥有该证书的根 CA,那么这意味着您信任他们的 ROOT CA。如果您信任他们的 ROOT CA,那么您可以连接。如果您没有将 ROOT CA 证书导入浏览器,则无法通过 SSL/HTTPS 连接到该网络服务器。
**加密和解密(如果数据包是从线路上读取的,那么为了数据包数据的安全,数据会被加密):
加密在 IDP 端完成,您可以加密整个断言、NameID 值、属性等等?
使用由 SP 离线提供给 IDP 的公钥证书(SP 的证书)在 IDP 端完成加密。
当 SP 获得断言(或任何 IDP 加密)时,它必须在其密钥库中拥有它的私钥,以便它可以解密数据并读取它。这就是解密。
这是安全和保护数据的原因是只有 SP 应该有自己的私钥。因此,如果这个数据包被盗,除了他们之外,没有人可以解密它。
***签名和验证 - 这不安全,因为它不加密数据。它并不意味着数据包的安全,它是为了告诉某人你真的是你所说的那个人。因此,如果您签署并声明您的合作伙伴将知道它来自他们期望它来自的 IDP。
IDP 必须使用他们的公钥/私钥对来签署数据。
SP 必须使用 IDP 的 PUBLIC 密钥(离线提供给 SP)来验证签名。您知道数据来自该 IDP 的原因是,只有使用 IDP 的私钥签名并使用其公钥解密的数据。换句话说,你不能假装你是 IDP 并将签名数据发送给 SP 并让他们认为它是 IDP,因为 IDP 的公钥只能用于验证用匹配的私钥签名的东西。这证明了你就是你所说的那个人。
结束我写的愚蠢的技术说明**
我希望您发现证书信息和工具对您未来的 SAML 工作很有用!联邦快乐!
更新 - 我无法发布所有链接,但有些只是 base 64 解密,因为它只允许我发布两个我发布最需要的两个。
谢谢!
脆石
CA Technologies SiteMinder 支持