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 下的 SOAP MessageContext 中。例如:

    bindingProvider.getRequestContext().put(SAML2Constants.SAML2_ASSERTION_PROPERTY, assertion);
  • SAML2 Assertion 在安全上下文中作为 JAAS 主题的一部分提供。如果 JAAS 与 PicketLink STS 登录模块的使用进行了交互,则会出现此情况。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.