如何从SAML 2.0响应中获取BasicX509Credential

时间:2016-08-30 11:36:52

标签: saml saml-2.0 spring-saml opensaml

我想验证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.");
        }

1 个答案:

答案 0 :(得分:0)

两种方式:

  1. 从IdP元数据中获取公钥材料。
  2. 从SAML Response获取公钥材料(如果有)。
  3. 但理想情况下,您应该从IdP和SP之间建立信任期间收到的IdP元数据中获取公钥材料。这是因为在配置时在IdP和SP之间建立了信任,而不是在运行时从IdP接收SAML响应。