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

文章目录

  • [第三十七章 验证和解密入站消息](#第三十七章 验证和解密入站消息)
  • 概述
  • [验证 `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 的一个实例。根据需要检查此对象的属性。

相关推荐
星野川崎20633 分钟前
电商多店运维:云机24小时挂机频繁掉线、账号无故风控深度原因分析及解决方案
大数据·运维·服务器·云计算·电商
ltl1 小时前
存储加密工程:块级、文件级与应用级怎么选
安全
RisunJan1 小时前
Linux命令-xauth(X11 认证授权管理)
linux·服务器·microsoft
熊IT3 小时前
什么是原生住宅 IP?如何判断一个 IP 是否真正“原生”?
服务器·网络·tcp/ip
不灭的程序员阿澄3 小时前
在飞牛 NAS 上用 Docker 运行 DeepSeek Harness
运维·docker·容器
Elastic 中国社区官方博客3 小时前
让大模型思考,让小模型执行:在 Elastic Workflows 中拆分 LLM 成本
大数据·运维·数据库·人工智能·elasticsearch·ai
破碎的南瓜3 小时前
wordpress核心框架漏洞(wp2shell)—先行版(小白篇)
安全·wordpress漏洞·wp2shell
艾伦_耶格宇4 小时前
【AI】-4 OpenCode Go 接入 Obsidian 完整指南
运维·开发语言·人工智能·agent·opencode
SXkehuirongsheng4 小时前
APP开发定制和模板开发哪个更实用?
大数据·运维·人工智能
fb_123455 小时前
Linux三剑客超全精讲(grep+sed+awk)零基础入门|正则+实战面试题
linux·运维·服务器