首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否使用断言签名对SAML响应进行签名?

是否使用断言签名对SAML响应进行签名?
EN

Stack Overflow用户
提问于 2011-08-06 02:21:17
回答 4查看 20.2K关注 0票数 15

在对也具有已签名断言的SAML响应进行签名时,我是否应该:

A)生成不带断言签名的响应签名。然后在生成两个签名后注入断言签名。

B)生成断言签名,并在生成响应签名时包含该签名。

C)还有其他的吗?

EN

回答 4

Stack Overflow用户

发布于 2011-08-16 12:54:28

SAML太糟糕了,每次我读到答案时,它们几乎都是正确的,下面是提取的正确算法:

签名XML片段的规范版本( Assertion.

  • Generate a Assertion.

  • Generate fragment

  • Insert saml:subject)

  • Now Response

  • SHA1 response

  • Generate a SignedInfo SHA1

  • SignedInfo XML片段),同样的规范形式

  • 获取SignedInfo、签名和密钥信息并将签名XML SignatureXML创建到断言中(应该正好在saml:subject)

  • Now获取断言(带有签名)并将其插入到具有SHA1

XML片段的

  • a SignedInfo SignedInfo片段中,同样,规范格式将获取SignedInfo、签名和密钥信息,并在响应中创建签名XML

  • SignedInfo SignatureXML

  • 将XML版本信息添加到响应中。

就是这样。SAML是非常糟糕的。有许多细微的细节使得实现SAML成为一场噩梦(比如计算XML子集的规范形式(断言),而且XML文档的XML版本也不包括在内)。

我已经完成了我的实现,我希望再也不会有这样的痛苦了。

票数 43
EN

Stack Overflow用户

发布于 2011-08-06 05:06:48

我相信正确的答案是B)。首先对断言进行签名,然后对包含已签名断言数据的响应进行签名。但是,如果单个颁发者/实体(STS/IDP/etc)同时对两者进行签名,那么就没有真正的理由对断言进行签名了吗?只需对协议消息/响应进行签名,其中应包含断言数据。这将减少SP的处理要求。对于Web SSO,我只在断言和响应由不同的实体签名时才会看到这两个部分都签名。

票数 8
EN

Stack Overflow用户

发布于 2011-08-08 00:50:49

如果同时对两者进行签名,则必须先对断言进行签名,然后再对响应进行签名,因为响应签名将基于响应的全部内容(包括断言签名)。因此,第二次签署断言将使响应签名无效。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6960886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档