有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (1) 个答案

  1. # 1 楼答案

    因此,创建断言的一种方法是:

    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);
    

    在发送之前,您可能需要签名,这是通过在您的请求中添加签名来完成的

    收到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;
    }
    

    目前尚不清楚您希望如何以及在何处发送断言。但这是基本程序

    • 创建请求。发送它
    • 等待服务提供商或其他人的回复
    • 验证响应的签名
    • 如果响应有效,则可以向用户授予必要的权限