Menu Close
Settings Close

Language and Page Formatting Options

3.3. 使用 STS 的 SSO

JBoss EAP 为 SP 提供多个登录模块,用于连接 STS。它还可以运行 STS(PicketLinkSTS)。更具体地说,PicketLinkSTS 定义了多个与其他安全令牌服务的接口,并提供扩展点。可以使用配置插入实施,并通过配置为某些属性指定默认值。这意味着 PicketLinkSTS 生成和管理安全令牌,但不发布特定类型的令牌。相反,它定义允许插入多个令牌提供程序的通用接口。因此,只要每种令牌类型的令牌提供程序存在,就可以将其配置为处理各种类型的令牌。它还指定安全令牌请求和响应消息的格式。

下列步骤是使用 JBoss EAP STS 时处理安全令牌请求的顺序。

  1. 客户端向 PicketLinkSTS 发送安全令牌请求。
  2. PicketLinkSTS 解析请求消息并生成 Jakarta XML Binding 对象模型。
  3. PicketLinkSTS 读取配置文件并根据需要创建 STSConfiguration 对象。它从配置中获取 WSTrustRequestHandler 的引用,并将请求处理委派给处理程序实例。
  4. 请求处理程序在需要时使用 STSConfiguration 来设置默认值,例如当请求没有指定令牌生命周期值时。
  5. WSTrustRequestHandler 创建 WSTrustRequestContext,并设置 Jakarta XML Binding 请求对象及其从 PicketLinkSTS 收到的调用者主体。
  6. WSTrustRequestHandler 使用 STSConfiguration 获取 SecurityTokenProvider,必须用于根据所请求的令牌类型来处理请求。它调用提供程序,并将构建的 WSTrustRequestContext 作为参数传递。
  7. SecurityTokenProvider 实例处理令牌请求,并将发布的令牌存储在请求上下文中。
  8. WSTrustRequestHandler 从上下文获取令牌,根据需要对其进行加密,并构建包含安全令牌的 WS-Trust 响应对象。
  9. PicketLinkSTS 指示请求处理程序生成的响应,并将它返回到客户端。

STS 登录模块(如 STSIssuingLoginModule、STSValidatingLoginModule、SAML2STSLoginModule 等)通常被配置为 JEE 容器安全设置的一部分,以使用 STS 来验证用户。STS 可以和登录模块位于同一个容器上,或者通过 Web 服务调用或其他技术远程访问。