Oracle OpenSSO 安全令牌服务 (OpenSSO STS) 可在 Web 服务客户端与 Web 服务提供者之间建立信任关系,然后在它们之间维持这种信任。Web 服务可信任仅由一个实体 (OpenSSO STS) 分发的令牌,而不必与多个客户端进行通信。通过这种方式,OpenSSO STS 可大大降低信任点管理的系统开销。
以下部分将提供有关以下内容的说明:如何确定安全令牌需求,如何配置安全令牌服务以生成安全令牌并验证其是否满足这些需求。
当添加新的 Web 服务提供者安全代理配置文件时,Web 服务提供者会自动注册到 OpenSSO STS。有关详细信息,请参见下面的部分:
将某 Web 服务提供者注册到 OpenSSO STS 后,可以配置 OpenSSO STS 以生成该 Web 服务提供者可接受的 Web 客户端安全令牌。
您必须先确定 Web 服务提供者需要哪种类型的安全令牌,然后才能配置安全令牌服务以生成 Web 客户端安全令牌。OpenSSO STS 支持 Liberty Alliance Project 安全令牌和 Web 服务互操作性基本安全配置文件安全令牌。
使用 Liberty Alliance Project 令牌启用安全性时,HTTP(超文本传输协议)客户端(即浏览器)会通过 Web 服务客户端向 Web 服务提供者发送访问请求。Web 服务安全代理会将该请求重定向至 OpenSSO STS 验证服务。如果采用 Liberty Alliance Project 安全机制,HTTP(超文本传输协议)安全代理会发出重定向命令。如果使用 WS-IBS 安全,SOAP 安全代理会发出重定向命令。
OpenSSO STS 验证服务会确定 Web 服务提供者注册的安全机制,并检索相应的安全令牌。成功进行验证后,Web 服务客户端会提供 SOAP 消息体,而 Web 服务客户端上的 SOAP 安全代理会插入安全标头和一个令牌。然后,在将请求发送给 WSP 之前,会对该消息进行签名。
Web 服务提供者端的 SOAP 安全代理会先验证 SOAP 请求中的签名和安全令牌,然后再将该请求转发给 Web 服务提供者自身。Web 服务提供者然后将处理该请求并将 SOAP 安全代理签名的响应返回给 Web 服务客户端。然后,Web 服务客户端上的 SOAP 安全代理会验证签名,之后再将该响应转发给 Web 服务客户端。
下表列出 Liberty Alliance Project 事务支持的令牌及其简短描述。
表 3–1 请求者令牌 - Liberty Alliance Project
下表列出 WS-IBS 事务支持的令牌及其简短描述。
表 3–2 请求者令牌 - WS-IBS
使用安全令牌生成矩阵可以帮助您配置 OpenSSO STS 以生成 Web 服务提供者所需的 Web 服务客户端安全令牌。首先,在名为“OpenSSO STS 输出令牌”的最后一列中,找到满足 Web 服务提供者令牌要求的描述。然后,使用同一行中的参数值来配置安全令牌服务。“令牌生成矩阵图例”提供有关表标题和可用选项的信息。有关详细的配置说明,请参见第 5.2.3 部分“配置安全令牌服务”。有关 Web 服务安全性和相关术语的一般信息,请参见:
http://www.oracle.com/technology/tech/standards/pdf/security.pdf
http://download.oracle.com/docs/cd/E15523_01/web.1111/b32511/intro_security.htm#CDDHHGEE
安全令牌生成矩阵汇总了常用的安全令牌服务参数设置和 OpenSSO STS 基于这些设置生成的安全令牌的类型。
表 3–3 安全令牌生成矩阵
行 |
消息级别安全绑定 |
Web 服务客户端令牌 |
KeyType |
代表令牌 |
使用密钥 |
OpenSSO STS 输出令牌 |
1 |
非对称 |
X509 |
持有者 |
是 |
否 |
SAML 持有者,无证明密钥 |
2 |
非对称 |
用户名 |
持有者 |
是 |
否 |
SAML 持有者,无证明密钥 |
3 |
非对称 |
X509 |
持有者 |
否 |
否 |
SAML 持有者,无证明密钥 |
4 |
非对称 |
用户名 |
持有者 |
否 |
否 |
SAML 持有者,无证明密钥 |
5 |
非对称 |
X509 |
对称 |
是 |
否 |
SAML 密钥持有者,对称证明密钥 |
6 |
非对称 |
用户名 |
对称 |
是 |
否 |
SAML 密钥持有者,对称证明密钥 |
7 |
非对称 |
X509 |
对称 |
否 |
否 |
SAML 密钥持有者,对称 |
8 |
非对称 |
用户名 |
对称 |
否 |
否 |
SAML 密钥持有者,对称证明密钥 |
9 |
非对称 |
X509 |
非对称 |
否 |
Web 服务客户端公钥 |
SAML 密钥持有者,非对称证明密钥 |
150 |
非对称 |
X509 |
Oracle 专属 SAML 发件人担保 |
是 |
否 |
SAML 发件人担保,无证明密钥 |
11 |
非对称 |
用户名 |
Oracle 专属 SAML 发件人担保 |
是 |
否 |
SAML 发件人担保,无证明密钥 |
12 |
非对称 |
X509 |
Oracle 专属 SAML 发件人担保 |
否 |
否 |
错误 |
13 |
非对称 |
用户名 |
Oracle 专属 SAML 发件人担保 |
否 |
否 |
错误 |
14 |
传输 |
用户名 |
持有者 |
是 |
否 |
SAML 持有者,无证明密钥 |
15 |
传输 |
用户名 |
持有者 |
否 |
否 |
SAML 持有者,无证明密钥 |
16 |
传输 |
用户名 |
对称 |
是 |
否 |
SAML 密钥持有者,对称 |
17 |
传输 |
用户名 |
对称 |
否 |
否 |
SAML 密钥持有者,对称证明密钥 |
18 |
传输 |
用户名 |
Oracle 专属 SAML 发件人担保 |
是 |
否 |
SAML 发件人担保,无证明密钥 |
19 |
传输 |
用户名 |
Oracle 专属 SAML 发件人担保 |
否 |
否 |
错误 |
20 |
非对称 |
用户名 |
非对称 |
否 |
Web 服务客户端公钥 |
错误 |
21 |
传输 |
用户名 |
非对称 |
否 |
Web 服务客户端公钥 |
错误 |
22 |
非对称 |
X509 |
非对称 |
是 |
否 |
错误 |
23 |
非对称 |
用户名 |
非对称 |
是 |
否 |
错误 |
24 |
传输 |
用户名 |
非对称 |
是 |
否 |
错误 |
25 |
非对称 |
X509 |
非对称 |
否 |
否 |
SAML 密钥持有者,非对称证明密钥 |
26 |
非对称 |
X509 |
否 |
否 |
否 |
SAML 密钥持有者,非对称证明密钥 |
27 |
非对称 |
用户名 |
否 |
否 |
否 |
SAML 密钥持有者,对称证明密钥 |
28 |
传输 |
用户名 |
否 |
否 |
否 |
SAML 密钥持有者,对称证明密钥 |