2016-08-30 8 views
1

Я хотел бы подтвердить подпись ответа saml. В настоящее время я могу получить значение переменной подписи из утверждения с помощью OpenSAML. Однако, как получить publickey и publicCredential?Как получить BasicX509Credential из ответа SAML 2.0

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

Два способа:

  1. Получить открытый ключ материалы из метаданных IDP.
  2. Получить материалы открытого ключа из ответа SAML (если это так).

Но в идеале вы должны получить материалы открытого ключа из метаданных IdP, которые вы получили во время установления доверия между IdP и SP. Это связано с тем, что доверие устанавливается между IdP и SP во время настройки, а не во время приема ответа SAML от IdP во время выполнения.

+0

Некоторые примеры были бы очень полезными. – GrandAdmiral