第十七章 手动添加安全元素

文章目录

第十七章 手动添加安全元素

本主题主要介绍如何手动向 IRIS Web 服务和 IRIS Web 客户端发送的消息中添加安全元素。

以下主题提供了有关特定安全任务的详细信息。

添加安全标头元素

要将安全元素添加到 WS-Security 标头元素,请在 Web 客户端或 Web 服务中使用以下常规过程:

  1. 创建适用类的实例。为此,可以使用名为 Create()CreateX509() 的方法(具体取决于类)。该实例表示 WS-Security 标头元素之一,例如 <Username> or <EncryptedKey>
  2. 通过更新 Web 客户端或 Web 服务的 SecurityOut 属性,将每个实例添加到 WS-Security 标头元素。为此,请调用 AddSecurityElement() 方法。
  3. 发送 SOAP 消息。WS-Security 标头包含在消息中,并包含添加到其中的元素。
  4. 对于后续传出消息:
  • 对于 Web 客户端,SecurityOut 属性保持不变,以便此实例的后续出站消息包含添加的安全标头。如果不希望这样,请将 SecurityOut 属性设置为 null
  • 对于 Web 服务,在第一个出站 SOAP 消息之后,SecurityOut属性会自动设置为null`。

标题元素的顺序

当将多个安全元素添加到标头时,按适当的顺序添加安全标头元素非常重要。当对同一消息元素执行加密和签名时,这一点尤其重要:即按执行加密和签名操作的相同顺序添加它们。

标头元素的顺序指示了消息处理的顺序。WS-Security 1.1 规范规定如下:

当元素添加到 <wsse:Security> 标头块时,它们应该被添加到现有元素的前面。因此,<wsse:Security> 标头块表示消息生产者创建消息所采取的签名和加密步骤。此前置规则确保接收应用程序可以按照子元素在<wsse:Security> 标头块中出现的顺序处理子元素,因为子元素之间不存在前向依赖关系。

当添加标题元素时, IRIS 会将每个元素添加到先前添加的元素之前,但以下情况除外:

  • 如果包含 <Timestamp> 元素,则强制将其作为第一个。
  • 如果包含任何 <BinarySecurityToken> 元素,它们将被强制遵循 <Timestamp> 元素(如果包含)或被强制放在第一个。
  • 当使用 AddSecurityElement() 添加安全标头元素的加密版本时,可以指定第二个参数来强制插入的 <EncryptedData> 元素遵循关联的 <EncryptedKey>

当对同一消息元素执行加密和签名时,按适当的顺序添加安全标头元素尤为重要:即,按照执行加密和签名操作的相同顺序添加它们。

相关推荐
NewCarRen5 小时前
整合STPA、ISO 26262与SOTIF的自动驾驶安全需求推导与验证
人工智能·安全·自动驾驶·预期功能安全
芯盾时代5 小时前
低空经济网络安全体系
安全·web安全
鹿鸣天涯5 小时前
关于进一步做好网络安全等级保护有关工作的问题释疑-【二级以上系统重新备案】、【备案证明有效期三年】
网络·安全·web安全
00后程序员张6 小时前
如何提高 IPA 安全性 多工具组合打造可复用的 iOS 加固与反编译防护体系(IPA 安全 iOS 加固 无源码混淆 Ipa Guard 实战)
android·安全·ios·小程序·uni-app·iphone·webview
小妖同学学AI6 小时前
Rust 深度解析:变量、可变性与所有权的“安全边界”
开发语言·安全·rust
m0_738120727 小时前
网络安全编程——开发一个TCP代理Python实现
python·tcp/ip·安全·web安全·网络安全
安当加密8 小时前
安全登录多人共用的机密电脑:基于动态凭证与会话隔离的解决方案
安全·电脑
七月稻草人8 小时前
Rust 应用状态(App State)管理:类型安全与并发控制的艺术
开发语言·安全·rust
金仓拾光集8 小时前
金仓替代MongoDB:安全与性能协同提升——社交用户画像系统的国产化实践
数据库·安全·mongodb·kingbase·kingbasees·数据库平替用金仓·金仓数据库
GIS数据转换器8 小时前
科技赋能农业现代化的破局之道
大数据·科技·安全·机器学习·智慧城市·制造