我想验证saml响应的签名。目前,我可以使用OpenSAML从断言中获取签名变量的值。但是,如何获得publickey和publicCredential?
try {
BasicX509Credential publicCredential = new BasicX509Credential();
publicCredential.setPublicKey(publicKey);
SignatureValidator signatureValidator = new SignatureValidator(publicCredential);
signatureValidator.validate(signature);
} catch (ValidationException e) {
e.printStackTrace();
// throw new InvalidAssertionException("Assertion signature validation failed.");
}
答案 0 :(得分:0)
两种方式:
但理想情况下,您应该从IdP和SP之间建立信任期间收到的IdP元数据中获取公钥材料。这是因为在配置时在IdP和SP之间建立了信任,而不是在运行时从IdP接收SAML响应。