opensaml断言签名验证

时间:2014-08-12 08:52:15

标签: saml saml-2.0 opensaml

我有一个SAML 2响应,其中一个断言已签名且响应本身已再次签名。我使用下面的代码来验证响应的签名配置文件。

SAMLSignatureProfileValidator signatureProfileValidator = new SAMLSignatureProfileValidator();
signatureProfileValidator.validate(response.getSignature());

在代码块下面验证签名。

SignatureValidator signatureValidator = new SignatureValidator(validatingCredential);
signatureValidator.validate(response.getSignature());

但我相信这些东西只会验证响应签名和响应签名配置文件。 我是否还需要验证断言签名?我已尝试使用以下代码块验证断言签名。但它给了我ValidationException,这意味着它无效。但它应该是。

SignatureValidator signatureValidator = new SignatureValidator(validatingCredential);
signatureValidator.validate(assertion.getSignature());

1 个答案:

答案 0 :(得分:0)

为了符合要求,(如果我正确阅读规范),您需要验证两个签名。我相信SAML 2.0 Profiles文档说,在处理SAMLResponse时,SP必须“验证任何存在的签名”。请参见SAML 2.0 Profiles doc中的第4.1.4.3节“消息处理规则”。