如何在java中创建和处理saml断言?
我是opensaml-j的初学者,我想创建一个断言来委托功能。我用SAML编写了一个断言,如下图: 有人能帮我用opensaml-j创建图中所示的断言吗如何在java中创建和处理saml断言?,java,opensaml,Java,Opensaml,我是opensaml-j的初学者,我想创建一个断言来委托功能。我用SAML编写了一个断言,如下图: 有人能帮我用opensaml-j创建图中所示的断言吗 如何处理后一种方法呢?因此创建断言的一种方法是: AuthnRequest authnRequest = new AuthnRequestBuilder().buildObject(); 设置SAML2.0请求的必需属性。由您决定SAML请求中的内容 authnRequest.setID(<>)); authnRequest.se
如何处理后一种方法呢?因此创建断言的一种方法是:
AuthnRequest authnRequest = new AuthnRequestBuilder().buildObject();
设置SAML2.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);
authnRequest.setID());
authnRequest.setVersion(SAMLVersion.VERSION_20);
authnRequest.setIssueInstant(new DateTime());
setProtocolBinding(httpBinding);
authnRequest.setIssuer(发行人);
authnRequest.setNameIDPolicy(nameIdPolicy);
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;
}
//签名验证
Signature Signature=samlResponse.getSignature();
SignatureValidator SignatureValidator=新的SignatureValidator(
新X509CredentialImplementation();
试一试{
signatureValidator.validate(签名);
}捕获(ValidationException e){
LOGGER.error(“XML签名不是**验证**,或者验证操作期间出错”);
返回false;
}
目前还不清楚如何以及在何处发送断言。但这是基本过程
- 创建请求。发送它
- 等待服务提供商的响应或其他响应
- 验证响应的签名
- 如果响应有效,则可以向用户授予必要的权限