我想询问是否使用idp私钥签署了saml响应,并使用sp公钥加密saml断言。我需要在加密前签署saml断言吗?这有点矫枉过正吗?你知道任何官方文件的标准吗?感谢。
答案 0 :(得分:3)
使用收件人的公钥进行加密可确保只有收件人才能阅读内容。任何人都可以使用收件人的公钥加密数据。
使用发件人的私钥进行签名可确保只有真正的发件人才能创建数据。任何人都可以验证数据确实来自发件人。
在SAML中,SP最重要的是能够验证断言是否确实来自IDP,而不是来自某些虚假来源。这只能通过使用IDP密钥进行签名来完成。这就是SAML标准中强制签名的原因。加密可用于确保除SP之外的任何人都可以读取断言的内容。这在标准中是可选的。
有关详细信息,请参阅SAML2 core specification。
中的第5章答案 1 :(得分:1)
最好的方法是加密然后签署整个SAML响应,而不仅仅是断言。这种方法被认为是最安全的,并且将被SSO /联盟产品更广泛地接受。
签署整个SAML响应的原因是潜在的协议漏洞,其中无法保证SAML响应的来源(如果响应本身没有签名)。