3.8.3.2. 使用带有客户端的 WS-Trust 安全令牌服务(STS)
若要将客户端配置为从 STS 获取安全令牌,您需要使用 org.picketlink.identity.federation.api.wstrust.WSTrustClient
类以连接到 STS 并请求签发令牌。
首先,您需要实例化客户端:
示例:创建 WSTrustClient
WSTrustClient client = new WSTrustClient("PicketLinkSTS", "PicketLinkSTSPort", "http://localhost:8080/SecureTokenService/PicketLinkSTS", new SecurityInfo(username, password));
接下来,您需要使用 WSTrustClient
来要求提供令牌,如 SAML 断言:
示例:包含 Assertion
org.w3c.dom.Element assertion = null; try { assertion = client.issueToken(SAMLUtil.SAML2_TOKEN_TYPE); } catch (WSTrustException wse) { System.out.println("Unable to issue assertion: " + wse.getMessage()); wse.printStackTrace(); }
断言后,可以通过两种方式将它包含在 并通过 SOAP 消息发送:
客户端可以将 SAML2
Assertion
推送到密钥org.picketlink.trust.saml.assertion
下的 SOAPMessageContext
中。例如:bindingProvider.getRequestContext().put(SAML2Constants.SAML2_ASSERTION_PROPERTY, assertion);
-
SAML2
Assertion
在安全上下文中作为 JAAS 主题的一部分提供。如果 JAAS 与 PicketLink STS 登录模块的使用进行了交互,则会出现此情况。