SAML很可怕,每次我读完回答,他们几乎是正确的,这里是正确的算法:
> SHA1是断言的规范版本.
>生成具有SHA1签名的SignedInfo XML片段
>签署SignedInfo XML片段,再次是规范的形式
>签署SignedInfo,签名和密钥信息,并创建一个签名XML片段
>将此SignatureXML插入到断言中(应该在saml:subject之前)
>不要断言(包含签名)并插入到响应中
> SHA1这个回应
>生成具有SHA1签名的SignedInfo XML片段
>签署SignedInfo XML片段,并创建一个签名XML片段
>将此SignatureXML插入响应
>将XML版本信息添加到响应.
而已. SAML是完全可怕的有许多细微之处使得实现SAML成为一场噩梦(如计算XML的一个子集的规范形式(断言),也不包括XML版本的XML文档.
我完成了我的实施,我希望不要再次重新审视这样的痛苦.