3.8.2. WS-Trust
WS-Trust 是一种 Web 服务规范,用于定义对 WS-Security 的扩展。它是在分布式系统中实施安全性的一般框架。该标准基于集中式安全令牌服务(STS),该服务能够验证客户端并发行包含各种身份验证和授权数据的令牌。该规范描述了用于安全性令牌规范、交换和验证的协议。以下规格在 WS-Trust 架构中扮演重要角色:
- WS-SecurityPolicy 1.2
- SAML 2.0
- 用户名令牌配置集
- X.509 令牌配置集
- SAML 令牌配置集
- Kerberos 令牌配置集
WS-Trust 扩展满足了跨越多个域且需要共享安全密钥的应用程序的需求。这可以通过提供基于标准的可信第三方 Web 服务(STS)来代理 Web 服务请求者和 Web 服务提供商之间的信任关系。此架构还通过提供此信息的常用位置,减轻了需要更改凭据的服务更新的难度。STS 是请求者和提供程序从中检索并验证安全令牌的常用访问点。
WS-Trust 规范有三个主要组件:
- 用于发布、续订和验证安全令牌的安全令牌服务(STS)。
- 安全令牌请求和响应的消息格式。
- 密钥交换机制。
下面的部分解释了基本的 WS-Trust 场景。有关高级场景,请参阅高级 WS-Trust 场景。
3.8.2.1. 场景:基本 WS-Trust
在本节中,我们提供了一个基本的 WS-Trust 场景示例。它包含一个 Web 服务请求器(ws-requester
)、Web 服务提供商(ws-provider
)和安全令牌服务(STS)。
ws-provider
需要从指定的 STS 发布的 SAML 2.0 令牌由 ws-requester 使用非
对称绑定呈现。这些通信要求在 ws-provider
的 WSDL 中声明。STS 要求 ws-requester
凭据通过对称绑定在 WSS UsernameToken 格式请求中提供。提供来自 STS 的响应包含 SAML 2.0 令牌。这些通信要求在 STS 的 WSDL 中声明。
-
ws-requester
联系ws-provider
并使用其 WSDL。在找到安全令牌签发者要求时,ws-requester
会创建并配置STSClient
,使其包含生成有效请求所需的信息。 -
STSClient
与 STS 联系并使用其 WSDL。发现安全策略。STSClient
创建并发送具有适当凭据的身份验证请求。 - STS 验证凭据。
-
作为响应,STS 签发了一个安全令牌,它提供
ws-requester
通过 STS 进行身份验证的证明。 -
STSClient
向 ws-provider
呈现一条安全令牌消息。 -
ws-provider
验证令牌是否由 STS 签发,因此证明ws-requester 已通过
STS 成功验证了令牌。 -
ws-provider
执行请求的服务,并将结果返回到ws-requester
。