我是opensaml-j的初学者,我想创建一个断言来委托我在SAML中编写断言的功能,这里是图像:SAML-based representation of capability
所以有人可以帮我创建opensaml-j图像中显示的断言 以及如何处理后者?
答案 0 :(得分:0)
因此,创建断言的一种方法是:
AuthnRequest authnRequest = new AuthnRequestBuilder().buildObject();
设置SAML 2.0请求的必需属性。您可以自行决定SAML请求中的内容。
authnRequest.setID(<>));
authnRequest.setVersion(SAMLVersion.VERSION_20);
authnRequest.setIssueInstant(new DateTime());
authnRequest.setProtocolBinding(httpBinding);
authnRequest.setIssuer(issuer);
authnRequest.setNameIDPolicy(nameIdPolicy);
authnRequest.setRequestedAuthnContext(requestedAuthnContext);
authnRequest.setDestination(idpUrl);
在发送之前,您可能需要签名,这可以通过在您的请求中添加签名来完成。
收到SMAL回复后,您可以通过验证其签名来验证它:
// Signature validation
Signature signature = samlResponse.getSignature();
SignatureValidator signatureValidator = new SignatureValidator(
new X509CredentialImplementation(<>);
try {
signatureValidator.validate(signature);
} catch (ValidationException e) {
LOGGER.error("XML signature is not **validate**, or there is an error during the validation operation");
return false;
}
目前尚不清楚您希望如何以及在何处发送断言。但这是基本程序。