文章
· 八月 16 阅读大约需 4 分钟

第二章 使用 SOAP 保护 Web 服务 - WS-Security 标头简介

第二章 使用 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-SecurityWS-PolicyWS-SecureConversationWS-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.1http://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-192AES-256
    • 密钥传输(密钥加密):RSA-OAEP(默认)或RSA-v1.5
  • 具有独有 XML 规范化的 XML 签名(https://www.w3.org/TR/xmldsig-core/),具有以下算法选择:

    • 摘要方法:SHA1(默认)、SHA256SHA384SHA512
    • 签名算法:RSA-SHA1RSA-SHA256(默认)、RSA-SHA384RSA-SHA512HMACSHA256HMACSHA384HMACSHA512

    请注意,可以修改默认签名算法。要进行此操作,请访问管理门户,单击系统管理,然后单击安全,然后单击系统安全,然后单击系统范围安全参数。指定默认签名算法的选项标记为默认签名哈希。

对于加密或签名,如果二进制安全令牌包含 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.01.1 的功能。

对于出站 SOAP 消息 IRIS Web服务和 Web 客户端可以签署 SAML 断言令牌。但是,定义实际的 SAML 断言是应用程序的责任。

对于入站 SOAP 消息 IRIS Web 服务和 Web 客户端可以处理 SAML 断言令牌并验证其签名。应用程序必须验证 SAML 断言的详细信息。

未实现完整的 SAML 支持。 IRIS 中的 SAML 支持仅参考此处列出的详细信息。

讨论 (0)1
登录或注册以继续