第三十七章 结合加密和签名 - 安全标头元素的顺序

文章目录

  • [第三十七章 验证和解密入站消息](#第三十七章 验证和解密入站消息)
  • 概述
  • [验证 `WS-Security` 标头](#验证 WS-Security 标头)
  • [访问 `WS-Security` 标头中的 `SAML` 断言](#访问 WS-Security 标头中的 SAML 断言)

第三十七章 验证和解密入站消息

本主题介绍如何验证 IRIS Web 服务或 Web 客户端收到的消息中的安全元素(并自动解密任何加密内容)。

概述

IRIS 网络服务和网络客户端可以验证入站 SOAP 消息的 WS-Security 标头元素,以及自动解密入站消息。

IRIS Web 服务和 Web 客户端还可以处理已签名的 SAML 断言令牌并验证其签名。但是,验证 SAML 断言的详细信息是您的应用程序的责任。

如果使用安全策略,所有上述活动都是自动的。

在所有场景中,IRIS 都使用其根颁发机构证书集合;请参阅设置和其他常见活动。

验证 WS-Security 标头

要验证任何入站 SOAP 消息中包含的 WS-Security 标头元素,请执行以下操作:

  1. Web 服务或 Web 客户端中,设置 SECURITYIN 参数。使用以下值之一:
    • REQUIRE --- Web 服务或 Web 客户端验证 WS-Security 标头元素,如果不匹配或缺少此元素,则会发出错误。
    • ALLOW --- Web 服务或 Web 客户端验证 WS-Security 标头元素。

在这两种情况下,Web 服务或 Web 客户端都会验证 &<Timestamp>, <UsernameToken>, <BinarySecurityToken>, <Signature>, and <EncryptedKey> 标头元素。它还会验证标头中 SAML 断言中的 WS-Security 签名(如果有)。如果合适,还会解密消息。

如果验证失败,则返回错误。

SECURITYIN 参数还有两个可能的值,可用于测试和故障排除:

  • IGNORE --- Web 服务或客户端忽略除 <UsernameToken> 之外的 WS-Security 标头元素,如 CSP 身份验证和 WS-Security 中所述。

为了向后兼容,此值是默认值。

  • IGNOREALL --- Web 服务或客户端忽略所有 WS-Security 标头元素。

注意:如果关联(和编译)配置类中存在安全策略,则 SECURITYIN 参数将被忽略。

访问 WS-Security 标头中的 SAML 断言

如果 WS-Security 标头元素包含 <Assertion> 元素,则 IRIS Web 服务或 Web 客户端会自动验证该 SAML 断言的签名(如果已签名)。

注意:验证需要可信证书。如果 IRIS 可以验证签名者的证书链(从签名者自己的证书到 IRIS 信任的证书颁发机构 (CA) 的自签名证书,包括中间证书(如果有),则它可以验证签名。

但是, IRIS 不会自动验证断言。代码应该检索断言并进行验证。

要访问 SAML 断言,请找到安全标头元素的 <Assertion> 元素。为此,请使用服务或客户端的 SecurityIn 属性的 FindElement() 方法,如下所示:

java 复制代码
 Set assertion=..SecurityIn.FindElement("Assertion") 

这将中返回 %SAML.Assertion 的一个实例。根据需要检查此对象的属性。

相关推荐
hzhsec2 分钟前
AI Security Agent:用自然语言做安全巡检,AI 自己跑命令
人工智能·安全·运维开发·ai编程
追风林13 分钟前
idea支持本地 的 服务器 远程debug
java·服务器·intellij-idea
vpk11217 分钟前
【无标题】
运维·elasticsearch·docker
yuuki23323331 分钟前
【Linux】开发工具链全解析:从 apt 到 gdb
linux·运维·服务器
木禾ali0th38 分钟前
告别大模型“裸奔”:开源项目 ClawVault 架构与核心能力解析
算法·安全
蓝队云计算1 小时前
蓝队云揭秘:如何利用云服务器高效养殖龙虾OpenClaw?
运维·服务器·人工智能·云服务器·openclaw
ZTLJQ1 小时前
驾驭高并发:Python协程与 async/await 完全解析
服务器·数据库·python
浪游东戴河1 小时前
网线简介及分类
运维·服务器·网络
不知名。。。。。。。。1 小时前
仿muduo库实现高并发---请求HttpRequest模块 响应HttpResponse模块
服务器·c++
许国栋_2 小时前
B2B企业如何建设价值管理办公室(VMO)?实践与落地解析
人工智能·安全·云计算·产品经理