OpenSAML v3 - 验证 SAML 响应

ano*_*ous 5 opensaml saml-2.0

我们正在为 IDP 发起的 SSO 实施服务提供商。我们使用 openSAML v3 java library来解析使用 POST 的 SAML 响应。

我想验证 SAML 数据和格式,因此试图弄清楚是否有任何内置方法可以用来验证 SAML 数据。我可以使用 SAMLSignatureProfileValidator 和 SignatureValidator 验证签名,但我还想验证 SAML 版本、实体提供者、受众、条件等。

当我深入研究库时,我发现调用 doInvoke() 方法时WSSecuritySAML20AssertionTokenSecurityHandler进行验证的类SAML,但消息应该是 SOAP。此方法使用 SAML20AssertionValidator 进行验证。

我计划使用 SAML20AssertionValidator 来验证断言,因此我需要帮助来实例化 SAML20AssertionValidator。SAML20AssertionValidator 的构造函数如下。尝试理解输入参数

public SAML20AssertionValidator(@Nullable final Collection<ConditionValidator> newConditionValidators,
        @Nullable final Collection<SubjectConfirmationValidator> newConfirmationValidators,
        @Nullable Collection<StatementValidator> newStatementValidators, 
        @Nullable final SignatureTrustEngine newTrustEngine,
        @Nullable final SignaturePrevalidator newSignaturePrevalidator) {
Run Code Online (Sandbox Code Playgroud)

还想确保这是否是验证的正确方向,或者我可以使用其他方法吗?

非常感谢对此的任何指示。