这些saml请求响应是否足够好?

时间:2012-03-28 05:43:58

标签: single-sign-on saml

我为我的服务设置了单点登录(SSO)。所有服务都使用IDPorvider(IDP)确认用户的身份。就我而言,我也是国内流离失所者。
在我的saml请求中,我包括以下内容:
1.认证的级别。是必需的。
2.消费者网址
3.目的地服务网址 4.发行人

然后,使用SP(服务提供商)私钥加密此消息,然后使用IDP的公钥加密。然后我发送这个请求 接收请求时的IDP,首先使用自己的私钥解密,然后使用SP的公钥解密。在saml回复中:
目的地网址 2.发行人
3.答复状况

这够好吗?请提出你的建议?

1 个答案:

答案 0 :(得分:-2)

一般来说,它就是这样的。有加密然后在SAML唱歌。如果没有用于SAML的数字签名服务,您永远不想进入生产阶段。您可以禁用签名处理以进行测试。我们在SiteMinder Federation Servcies(SMFSS)中将其用于测试目的。因此,据说你没有说任何有关数字签名的内容,而只是谈论加密。

但是这里有两个在我自己非常愚蠢的描述中的纲要,虽然我对我的解释方式听起来很傻,但我希望它会对你有所帮助。如果你已经知道这件事,我会事先道歉。还有一点是,这是非常基本的,但你可以获得更多关于谷歌搜索加密,解密,证书等的细节。

实际上,这里是我使用SMFSS(SiteMinder联合服务)为联盟培训新支持人员的概述,最后是我在证书上写的部分。这只是我写得很快并且看起来不是很光滑的东西,但它确实很快完成了工作。它是作为我对已经安装SiteMinder的POC SAML 2.0 POST客户所做的事情的副本编写的。我只是觉得我会给你这个,因为它有很多你可能会发现有用的工具,以防你不知道它们。 ; - )

您需要两个具有代理,代理OP,策略服务器,策略服务器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跟踪。拉出证书并创建一个.cer文件。拉出断言并使用以下工具在线检查XML。

设置Fiddler工具并确保启用了HTTPS解密。我在这里有链接,但只是去gllgle并输入" Fiddler Tool HTTPS解密"而且你会得到它。

用于查看通过Fiddler取出的SAML交易发布或重定向的网址通常:

https://rnd.feide.no/simplesaml/module.php/saml2debug/debug.php

当我向合作伙伴解析错误或其他错误时,我已经多次使用过这个来验证XML(断言),说我们的断言不好或者我们的合作伙伴断言不好。我想首先检查语法,如果没有问题,请检查SAML规范,看看它们在SAML断言中是否具有正确的值。换句话说,确保它符合SAML。

http://www.w3schools.com/dom/dom_validate.asp

提示:您可以从我们的日志或Fiddler Traces中取出基本64位编码的证书信息并粘贴到记事本并将其另存为name.cer。然后,当您打开此文件时,您可以查看客户正在使用的证书。这很有用,因为您可以看到他们是否拥有正确的证书,并查看他们的根CA是谁或他们的中间根CA.确保获得所有数据,包括可能位于证书信息行末尾的=或==。

执行SLO或工件时,合作伙伴需要在反向通道上连接到其他合作伙伴网站上的Web服务器。发生这种情况时,正在连接的Web服务器通过SSL / HTTPS提供服务。这意味着连接到该服务器的那个必须具有ROOT CA证书,该证书在其密钥库中签署了Web服务器的证书。其理论与打开浏览器并连接到HTTPS Web服务器时的理论相同。所有浏览器都附带已导入其中的主要根CA证书。这一点的重点在于,当你在网络服务器上放置一个证书时,它并不是真正的保护,它是让任何连接的人知道你真的是那个网站而且真的是你说的那个人。您拥有证书的事实使您的站点成为HTTPS,并且您认为他们是他们所声称的原因是他们在您连接时为您提供证书,如果您在网站上拥有该证书的ROOT CA则这意味着你信任他们的ROOT CA.如果您信任他们的ROOT CA,那么您可以连接。如果您没有将ROOT CA证书导入浏览器,则无法通过SSL / HTTPS连接到该Web服务器。

**加密和解密(如果数据包从线路读取,则数据被加密以保证数据包数据的安全性):

加密是在IDP端完成的,您可以加密整个断言,NameID值,属性以及更多?

使用PUBLIC密钥证书(SP的证书)在IDP端进行加密,该证书由SP离线提供给IDP。

当SP获得断言(或者IDP加密的任何内容)时,它必须在其密钥库中拥有它的私钥,以便它可以解密数据并读取它。这是解密。

这是安全的并保护数据的原因是只有SP应该有自己的私钥。因此,如果这个数据包被盗,没有人可以解密它,但他们。

***签名和验证 - 这不是安全的,因为它不加密数据。它并不意味着对数据包是安全的,它意味着告诉别人你真的是你说你是谁。因此,如果您签署并声明您的合作伙伴将知道它来自IDP,他们希望它来自。

IDP必须使用其公钥/私钥PAIR对数据进行签名。

SP必须使用IDP的PUBLIC密钥(授予SP离线)来验证签名。您知道数据来自该IDP的原因是,只有使用IDP私钥签名的数据才能使用其公钥解密。换句话说,您不能假装您是该IDP并将签名数据发送到SP并让他们认为它是IDP,因为IDP的公钥只能用于验证使用匹配的私钥签名的内容。这证明你就是你说的那个人。

结束愚蠢的技术说明我写了**

我希望您在未来的SAML努力中找到有用的证书信息和工具!快乐联盟!

更新 - 我无法发布所有链接,但有些只是基本的64解密,因为它将允许我只发布两个我发布最需要的两个。

谢谢! Crissy Stone CA Technologies SiteMinder支持