1

署名された 1 つのアサーションを含む 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());
4

1 に答える 1

0

準拠するためには (仕様を正しく読んでいれば)、両方の署名を検証する必要があります。SAML 2.0 Profiles doc には、SAMLResponse を処理するときに、SP は「存在する署名を検証する」必要があると書かれていると思います。SAML 2.0 Profiles docのセクション 4.1.4.3 メッセージ処理ルールを参照してください。

于 2014-08-13T15:29:24.753 に答える