第二章 使用 SOAP 保护 Web 服务 - WS-Security 标头简介
WS-Security 标头简介
SOAP
消息在 WS-Security
标头元素(SOAP <Header>
元素的 <Security>
子元素)中携带安全元素。以下示例显示了一些可能的组件:
这些元素如下:
- 时间戳标记 (
<Timestamp>
) 包含<Created>
和<Expires>
元素,它们指定此消息有效的时间范围。严格来说,时间戳不是安全元素。但是,如果时间戳已签名,则可以使用它来避免重放攻击。 - 二进制安全令牌 (
<BinarySecurityToken>
) 是二进制编码的令牌,其中包含使接收者能够验证签名或解密加密元素的信息。您可以将其与签名元素、加密元素和断言元素一起使用。 - 用户名令牌 (
<UsernameToken>
) 使Web
客户端能够登录Web
服务。它包含Web
服务所需的用户名和密码;默认情况下,这些内容以`文形式包含。有多种保护密码的选项。 - 断言元素 (
<Assertion>
) 包含创建的 SAML 断言。断言可以是签名的,也可以是未签名的。
断言元素可以包含主题确认元素 (<SubjectConfirmation>
)。此元素可以使用 Holder-of-key
方法或 Sender-vouches
方法。在前一种情况下,断言携带可用于其他目的的密钥材料。
- 加密密钥元素 (
<EncryptedKey>
) 包含密钥、指定加密方法,并包含其他此类信息。此元素描述消息的加密方式。请参阅加密概述。 - 签名元素 (
<Signature>
) 对消息的各个部分进行签名。非正式短语“对消息的各个部分进行签名”表示签名元素适用于消息的这些部分,如“数字签名概述”中所述。
图中没有显示这一点,但签名元素包含指向消息签名部分的 <Reference>
元素。
如此处所示,加密密钥元素通常包含对同一消息中先前包含的二进制安全令牌的引用,并且该令牌包含收件人可用于解密加密密钥的信息。但是, <EncryptedKey>
可以包含解密所需的信息,而不是在消息的其他地方引用令牌。 IRIS
为此支持多种选项。
同样,数字签名通常由两部分组成:使用 X.509
证书的二进制安全令牌和直接引用该二进制安全令牌的签名元素。(除了二进制安全令牌,另一种方法是使用带有 Holder-of-key
方法的签名 SAML
断言。)签名也可以仅由 <Signature>
元素组成;在这种情况下,该元素包含使收件人能够验证签名的信息。 IRIS
也支持多种选项。
SOAP
安全标
本节列出了 IRIS Web
服务和 Web
客户端的 WS-Security
、WS-Policy
、WS-SecureConversation
和 WS-ReliableMessaging
支持详细信息。
IRIS
中的 WS-Security
支持
IRIS
支持 OASIS
创建的 WS-Security 1.1
的以下部分(http://docs.oasis-open.org/wss/v1.1/wss-v1.1-spec-pr-SOAPMessageSecurity-01.pdf
):
WS-Security
标头(http://www.oasis-open.org/committees/download.php/16790/wss-v1.1-spec-os-SOAPMessageSecurity.pdf
)X.509
令牌配置文件1.1
(http://www.oasis-open.org/committees/download.php/16785/wss-v1.1-spec-os-x509TokenProfile.pdf
)-
XML
加密(https://www.w3.org/TR/xmlenc-core/
)具有以下算法选择:- 块加密(数据加密):
AES-128
(默认)、AES-192
或AES-256
- 密钥传输(密钥加密):
RSA-OAEP
(默认)或RSA-v1.5
- 块加密(数据加密):
-
具有独有
XML
规范化的XML
签名(https://www.w3.org/TR/xmldsig-core/
),具有以下算法选择:- 摘要方法:
SHA1
(默认)、SHA256
、SHA384
或SHA512
- 签名算法:
RSA-SHA1
、RSA-SHA256
(默认)、RSA-SHA384
、RSA-SHA512
、HMACSHA256
、HMACSHA384
或HMACSHA512
请注意,可以修改默认签名算法。要进行此操作,请访问管理门户,单击系统管理,然后单击安全,然后单击系统安全,然后单击系统范围安全参数。指定默认签名算法的选项标记为默认签名哈希。
- 摘要方法:
对于加密或签名,如果二进制安全令牌包含 X.509
证书,则 IRIS
将遵循 X.509
证书令牌配置文件和 X509v3
令牌类型。如果密钥材料使用 SAML
断言,则 IRIS
将遵循 WS-Security SAML
令牌配置文件规范。
可以指定应用数字签名的消息部分。
-
UsernameToken
配置文件1.1(http://docs.oasis-open.org/wss/v1.1/wss-v1.1-spec-pr-UsernameTokenProfile-01.pdf)
- 大多数
WS-Security SAML Token Profile 1.1
(http://docs.oasis-open.org/wss/v1.1/wss-v1.1-spec-os-SAMLTokenProfile.pdf
) 基于SAML
版本2.0
。例外情况是IRIS SOAP
支持不包含引用SAML 1.0
或1.1
的功能。
对于出站 SOAP
消息 IRIS Web
服务和 Web
客户端可以签署 SAML
断言令牌。但是,定义实际的 SAML
断言是应用程序的责任。
对于入站 SOAP
消息 IRIS Web
服务和 Web
客户端可以处理 SAML
断言令牌并验证其签名。应用程序必须验证 SAML
断言的详细信息。
未实现完整的 SAML
支持。 IRIS
中的 SAML
支持仅参考此处列出的详细信息。