Java Web 服务: WS-Trust 和 WS-SecureConversation
2010-07-16 00:00:00 来源:WEB开发网WS-Trust 的核心是一组用来发出、更换、取消以及验证安全令牌的消息。这些消息可以由客户机通过调用一种称为 Security Token Service(STS)的特定类型的 SOAP Web 服务进行交换。它们还可以以其他的方式传递(比如以对另外一个服务的请求的安全头部的形式)。
STS 的基础知识
STS 是一种 Web 服务,可实现一个由 WS-Trust 规范定义的简单接口。这个接口允许客户机使用安全令牌提交对几种类型操作的请求。由于一个 STS 就是一种 Web 服务,因此 WS-Security 可被直接用在请求和响应消息内,而 WS-SecurityPolicy 则可被用来指定由客户机提供的凭证的类型或需要在消息上进行的其他的安全性处理。
最基本的一种操作是发出新令牌。清单 1 显示了为此目的而向一个 STS 发出一个示例请求,这个示例是经过编辑的,其中删除了各种头部,只列出请求主体。(稍后您将看到未删除头部的示例。)清单 1 所请求的是由 WS-SecureConversation 使用的一种称为 Security Context Token (SCT) 的特定令牌:
清单 1. 向 STS 请求一个安全令牌
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
...
</soap:Header>
<soap:Body xmlns:wsu=".../oasis-200401-wss-wssecurity-utility-1.0.xsd"
wsu:Id="Id-7059772">
<wst:RequestSecurityToken
xmlns:wst="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
<wst:RequestType>http://.../ws-sx/ws-trust/200512/Issue</wst:RequestType>
<wsp:AppliesTo xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
<wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Address>http://localhost:8800/cxf-seismicsc-signencr/</wsa:Address>
</wsa:EndpointReference>
</wsp:AppliesTo>
<wst:Lifetime xmlns:wsu=".../oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsu:Created>2010-05-12T10:33:22.774Z</wsu:Created>
<wsu:Expires>2010-05-12T10:38:22.774Z</wsu:Expires>
</wst:Lifetime>
<wst:TokenType
>http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512/sct</wst:TokenType>
<wst:KeySize>128</wst:KeySize>
<wst:Entropy>
<wst:BinarySecret Type="http://docs.oasis-open.org/ws-sx/ws-trust/200512/Nonce"
>kIYFB/u430k3PlOPfUtJ5A==</wst:BinarySecret>
</wst:Entropy>
<wst:ComputedKeyAlgorithm
>http://.../ws-sx/ws-trust/200512/CK/PSHA1</wst:ComputedKeyAlgorithm>
</wst:RequestSecurityToken>
</soap:Body>
</soap:Envelope>
更多精彩
赞助商链接